This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Custom board not advertising ble

Is there an issue with my clock that's causing the BLE not to advertise?
The debugger seems to an error on the gatt_params_init() function, which should
mean its a RAM address problem. However, nothing gets printed to the debugging terminal
providing the adjusted RAM start address. Does anyone have an idea of what's going on?

Link to SMD crystal used: ASEK2-32.768KHz-LRT

  • Hi,

    The debugger seems to an error on the gatt_params_init() function,

     Exactly what error is returned by gatt_params_init()?

     Also what Softdevice and SDK version are you using?

    regards

    Jared

  • The ATMEGA328P appears to have VCC at +5V on this board, which is too high when connecting I/O pins directly between the ATMEGA and the nRF52. Reduce the +5V to +3.3V as used on the nRF52 on a new board and see if that works. The absolute maximum on the nRF52 input pins should be below 3.6V, and the ATMEGA drives I/O pins at the ATMEGA VCC level (5V).

    If the ATMEGA has to use +5V for some reason, then the connected I/O pins will require level translators. Since there is only 1 pin driving into the nRF52, you could try a series resistor on the pin driven to the nRF52 as a kludge, or even a resistor divider or a blocking schottky diode and rely on the nRF52 internal pull-up for the high level.

  • No output gets printed to the terminal debugger so I can’t give you an exact error message. But here is a picture during debugging of where the system halts. Also I’m using the newest SDK 17 with S132.

     

  • Hello, 

    Sorry for the unclarity but my board has a 3.3 voltage regulator that powers the nRF. I didn’t include the entire schematic. Since it has quite a few components and I thought it’d be an eye sore. However, I was able to write and flash a program that blinks the status LED I have connected to the nRF and it works but my issue is the BLE not wanting to advertise. 

    Thanks, 

    Akil

  • nRF at 3.3V, MEGA at 5V == nRF broken.

    The MEGA output pin connected to the nRF input pin will drive the nRF internal schottky clamp and raise the internal nRF voltage so high that the nRF will die or behave erratically. Maybe the 32kHz crystal stops due to this, now the nRF code will fail when you try sd_softdevice_enable() as the LF clock is no longer working

Related