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

Using FOTA in a non-BLE application

Hi,

I’ve just ordered a few nrf51822 (from seedstudio) and waiting for them to arrive.

They come preloaded with SoftDevice 6.0 or 7.0. with a pre-flashed OTA boot loader.

I’ve read documentation on nrf51 SDK and SoftDevices where all of the FOTA examples require you to instantiate the DFUService that adds the control characteristic to trigger the bootloader.

In the seedstudio wiki they mention that if pin18 is connected to GND, and then power up the module it will enter FOTA-mode I can’t find that documented anywhere in the Nordic documentation.

The problem is, that for my application, I want to use Enhanced Shock Burst, not an BLE application. But I would like to have FOTA as well if possible, for example by pushing a button.

Is there anyway to have an ESB application and still be able to enter FOTA-mode? For example by pulling down pin18 when booting.

Can anyone link me to documentation that connecting pin18 to GND at boot will enter FOTA-mode

Any help is appreciated.

Update

Okay, so I've had some time to play around a bit with this module. As stated, it comes pre-loaded with Softdevice v 7. and all I have to do, to uploade an application is to pull down pin 18 on boot, and I can upload it via nRF Toolbox, I'm using iOS. Note: It has to be pin18, no other pin switches to FOTA-mode on boot. In my case this i quite nice, since I'm developing an ESB application with no ble, this works perfectly without any ble in the application.

Parents
  • Hi, the bootloader examples we have in our SDK is relies on the softdevice being present. Reason for that is that it uses the sd flash API, MBR, BLE for OTA, and interrupt forwarding. Unfortunately, we don't have an example bootloader example using ESB nor a bootloader that doesn't rely on SD API .

    That being said, the bootloader itself is designed to be transport agnostic. This means that it should be possible to write your own transport layer for the ESB and use the same bootloader. If you have memory to spare, it would probably be easiest to have the softdevice loaded in flash. This way you don't have to do any changes besides creating your own transport layer. Otherwise you need to modify the bootloader so it has not dependencies towards the SD.

Reply
  • Hi, the bootloader examples we have in our SDK is relies on the softdevice being present. Reason for that is that it uses the sd flash API, MBR, BLE for OTA, and interrupt forwarding. Unfortunately, we don't have an example bootloader example using ESB nor a bootloader that doesn't rely on SD API .

    That being said, the bootloader itself is designed to be transport agnostic. This means that it should be possible to write your own transport layer for the ESB and use the same bootloader. If you have memory to spare, it would probably be easiest to have the softdevice loaded in flash. This way you don't have to do any changes besides creating your own transport layer. Otherwise you need to modify the bootloader so it has not dependencies towards the SD.

Children
No Data
Related