Hi everyone,
I wanted to share an update on the BLE issue I’m experiencing with the BC40C (nRF5340) module on my custom PCB. I initially described the problem in this Custom Board with BC40C (nRF5340) - Bluetooth won’t advertise after flashing Peripheral UART sample , where I suspected that the issue might be related to a missing or incorrect startup of the application core or network core.
However, based on recent tests, this now seems unlikely. The firmware runs correctly when using the same signals and firmware with the EV-BC40C evaluation board, which suggests that both cores are functioning as expected. This points instead to a possible hardware-level issue — such as a problem with the clock, power supply, or layout.
Project Background
I’m working on the second version (V2) of a prototype device that uses the Fanstel BC40C module for BLE communication. The first version (V1) worked well, including BLE functionality. For V2, I made the following changes:
-
Reduced the PCB size
-
Added I2C functionality
-
Integrated an ADC
-
Added a second status LED
Despite these relatively small modifications, BLE is no longer functioning on the new version (V2). The same firmware that worked on V1 does not initiate advertising on V2.
What I’ve Tried So Far
To isolate the issue, I performed the following test:
-
BC40C Soldered Directly on V2 PCB
I flashed the same firmware onto the BC40C module soldered on the V2 board. The flashing process completes without any errors — even when flashing various BLE test programs (e.g., Peripheral UART, Blinky, custom firmware). The device responds to flashing as expected: for example, if I flash a Blinky program and then erase the chip, the LED stops blinking.Also, the LED behavior changes depending on which firmware is flashed, which further confirms that the firmware is running correctly. However, BLE advertising still does not start in any of the tested BLE samples.
-
Wiring the V2 PCB to the EV-BC40C Evaluation Board
To rule out layout or component-level issues on the V2 PCB, I desoldered the BC40C from V2 and connected each relevant signal via wires from the V2 board to the corresponding pins on the EV-BC40C evaluation board. With the same firmware and the same electrical signals, BLE works perfectly in this setup.
This suggests that the issue may not be firmware-related but rather hardware-related — possibly something about the clock, power supply, or signal integrity on the V2 PCB.
A Curious Observation: LED Blink Frequency Difference
In both setups, an onboard status LED is used to indicate BLE state. I measured the blink intervals and noticed a consistent difference:
-
EV-board wiring setup (where BLE works):
Blink interval: ~1.3 seconds (~0.77 Hz) -
Directly on V2 PCB (where BLE does not work):
Blink interval: ~0.74 seconds (~1.35 Hz)
This is nearly a factor of two difference in frequency — despite running the same firmware. This leads me to wonder:
Could this be a sign of a clock or oscillator issue that’s preventing BLE from working correctly?
Questions / Next Steps
Has anyone observed similar behavior before? Could a misconfigured or faulty external clock, or other hardware-level timing issue, explain both the faster LED blinking and the non-functioning BLE?
If needed, I can provide layout files, power measurements, or any other relevant information. I’d really appreciate any suggestions or ideas on what to check next!
Thanks for reading,