This is a strange problem. 10% of our production boards fail outdoors within tens of seconds and will not fail after tens of minutes if indoors. The rest of our production boards don't care whether they're outdoors or indoors... they just work. TWI appears to be the affected subsystem. We have many subsystems in play including: PWM, SPI, GPIO.
- The problem is not temperature, I literally walk through any door of my house to solve (enter the house) or create the problem (exit the house) within seconds
- board on the seat of my car never fails while driving around a couple of towns
- board on the roof of my car never fails while driving around (2" above metal roof)
- board carried away from the roof of my car or away from the inside of my car will fail by the time I get 2 meters from the car, in multiple locations in a couple of towns.
- board placed inside an unplugged microwave oven outside my house will not fail until it is removed from that Faraday cage, then fails within seconds
- At night, the problem appears to be significantly lowered but not fully solved, this has only been verified at my house (not around two towns)
I am suspecting a TWI timeout is involved and that the BLE has something to do with it. ¡¡¡ If I connect a 10pF impedance I2C analyzer to my I2C bus the problem disappears !!! However, we have boards in customers' hands already that need a SW solution so soldering caps from ground to SCL SDA isn't a sufficient solution, even if we were to prove that works in production.
For diagnostic purposes I would like to disable BLE in my software but leave everything else up. I do not see an easy way to just turn off BLE and creating a version of my code without BLE would be difficult...
Is there a BLE on/off switch function call? One that would disable all explicit advertising in my code and also any discoverable related tx from my nrf52.
SDK 14.2.0 SD 5.0
Thanks,
Jeff