BLEPeripheral not working on custom nRF52832 board

Hello,

I'm using the Fanstel BC832 module which contains Nordic's nRF52832 BLE chip on a custom PCB board. When trying to run the Blinky example on PlatformIO, it works perfectly. However, when trying to run any of the BLE examples that use the BLEPeripheral library, the code gets flashed to my module but I can tell the module doesn't even reach the setup loop (where I set some GPIO lines high and low but I never observed this on the scope). Instead, the LED2 pin shows little short blips (3 V, about 3 us long, spaced about 110 ms apart). I tried flashing two different modules and the same behavior is occurring. I'm thinking this probably has to do with an issue of the crystal initialization, but I'm not really familiar with the details of this library (I was previously using Segger and recently moved to PlatformIO with the Arduino environment).
Does anyone have any suggestions as to what I can try to make the BLE examples work?

Thank you in advance!!

  • If all you are looking to do is get an example running, I know there is an option to run select modules including the softdevice on a synthetic low-freq crystal internally, at the cost of larger power consumption, that can be enabled with a macro in the sdk_config.h file but I'm not sure if this is something that is done easily on platformIO, as I too am more familiar with Segger.

    the macro (at least for sdk 15.3.0) is NRF_SDH_CLOCK_LF_SRC and it seems like you would want to set it to 2 for a synthetic low-freq clock.

  • Before I saw your response, I unsoldered one of the Fanstel BC832 modules from a Fanstel EV-BC832 and soldered it to my custom PCB, and that worked perfectly. So it seems the issue is with using BC832 modules that come from EV's or not. Do you have any insight as to what might be the difference? Thank you!

  • Can you check if the logic level of P0.21 is high in case pin reset have been enabled? Were you able to solder the module from your custom PCB to the EV board from Fanstel and test the opposite move. Edit: Could it be poor soldering?

    Kenneth

  • Hi Kenneth, thank you for your response. Yes, I did check the reset line, which is high when enabled, and it looks the exact same on both the EV module and the isolated BC832. I did try the opposite move, and the isolated BC832, when soldered on to the EV, displays the exact same glitchy behavior and does not actually start running the BLE code. Since I observed this with several modules now, and the pattern is clear, I don’t believe it has to do with poor soldering. I think it might have to do with something on the software end that is done to the BC832’s of the EV (maybe through bootloader, SoftDevice installation, etc), which I’m not doing on the isolated modules. I’m just not sure what that might be… Do I need to install the S132 on my isolated modules before I flash any code?

  • Do you have access to the nrf command line tools and can run "nrfjprog --recover" from a command line window? This should erase all content of flash (including UICR), so it should then be identical to chip from our factory, that said though, how many modules have you tested?

    If you are using SES for programming, then it will program the softdevice at the same time as the application.

    Kenneth

Related