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

Control nRF52805 over serial, I2C, or SPI?

I have an nRF52805-based BC805M module from Fanstel. I need to control it from an MCU over serial/I2C/SPI to implement Bluetooth profiles like BIP and FTP. I prefer canned firmware to avoid learning yet another development environment. The BC805M datasheet says it comes preloaded with firmware that supports AT-style serial commands (BT840_AT_3in1PC181113.hex = softdevice S140v6.1.1+BT840_AT_UARTwithout32K+bootloader). That sounds great, but the documentation is minimal and I'm finding no examples online. (It's technically the firmware they use internally for testing. They just don't bother to erase it.) Is there a Nordic SoftDevice that implements a serial/I2C/SPI interface and supports custom profiles (and is well-documented)? Or other third party firmware options?

  • Hi,

    The Nordic provided software does not provide any AT like commands, so you have to ask Fanstel about the AT Commands in the firmware provide by them if you opt to use that.

    Regarding what Nordic provides, you have the SoftDevice and the nRF5 SDK, and also the nRF Connect SDK. In both cases it is possible to use the nRF as a connectivity device via serial interfaces. If you use the SoftDevice you will have to use the serialization support. This allows you to control the nRF via SoftDevice calls from another MCU. If you use the nRF Connect SDK, which is Zephyr based, you can run the BLE controller on the nRF, and the run the BLE host on the other MCU. In this case the communication between them will be HCI over some serial interface.

  • Thanks for the reply. If I understand correctly, I'll need to load two binaries onto the connectivity device: a precompiled Nordic SoftDevice that supports serialization, and a serialization service I compile myself from example source code. If so, that can work. But I don't look forward to fetching source code and compiler, configuring, building, and hoping I got everything right. Is there no .hex available that combines the SoftDevice and the serialization service? Like SoftDevice140_via_UART.hex, or SoftDevice140_via_SPI.hex?

  • Hi,

    jimblob said:
    I'll need to load two binaries onto the connectivity device: a precompiled Nordic SoftDevice that supports serialization, and a serialization service I compile myself from example source code.

    Yes, that is correct.

    jimblob said:
    Is there no .hex available that combines the SoftDevice and the serialization service? Like SoftDevice140_via_UART.hex, or SoftDevice140_via_SPI.hex?

    There are some prebuilt hex files in the SDK,  under <SDK>\examples\connectivity\ble_connectivity\hex\. These are built for specific boards though, so if you use a different pin configuration for the serial interface, or have a board without 32.768 kHz oscillator, or any other HW change that requires FW change those will not work. In most cases you will need to build a connectivity firmware that targets your specific hardware.

  • I finally get why there's no one-hex-fits-all solution. I was only thinking about the nRF5 chip, not how the board could affect FW. I'll dig into the SDK. Now I know what I'm looking for. Thanks.

Related