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

dfu for custom board via UART and BLE

Hi folks!

I'm working with a couple of nrf52832 on custom boards. I'm trying to implement a procedure for firmware updates. I've already played with the examples from the SDK:

DFU via BLE  is working (using the Android Nordic App), DFU via UART is somewhat working if I use nrfutil with a very low baudrate of 9600 and disable hwfc.

I work on a Windows machine & SES, SDK v15.3 and softdevice s132_nrf52_5.0.0.

Now to the part where I'm stuck:

I have a bunch of boards to update and don't want to use the Nordic App. Instead I would like to use one board (connected to a windows/linux machine via UART to USB adapter, no j-link) to work as a controller and perform all the firmware updates via BLE.

Is the procedure below correct as well as complete?

1. If I'm not mistaken I can update my controller board with the so called 'connectivity firmware' and in conjunction with the nrfutil application perform the over the air updates.

2. I guess I have to compile the connectivity firmware on my own to support the correct tx/rx pins, as well as to disable hwfc.

3. In order to compile the connectivity firmware I have to patch the SDK with the patch found in the pc-ble-driver repository. What is the reason for that?

4. I have to compile nrfutil on my own to support a custom (i.e. low) baudrate and disable hwfc in order to get the serial connection to work for my custom controller board.

5. After my controller has successfully updated all boards, I can update the controller with the new firmware via uart using nrfutil.

Thanks in advance! 

Parents
  • Hi lubedence, 

     

    1. If I'm not mistaken I can update my controller board with the so called 'connectivity firmware' and in conjunction with the nrfutil application perform the over the air updates.

     Yes, this should be possible.

     

    2. I guess I have to compile the connectivity firmware on my own to support the correct tx/rx pins, as well as to disable hwfc.

    3. In order to compile the connectivity firmware I have to patch the SDK with the patch found in the pc-ble-driver repository. What is the reason for that?

     Yes, you will need to compile the connectivity firmware so that it uses the correct pins and disable HWFC if do not support this on your board. How are you connecting your board to the computer, via a FTDI chip? If yes, then I would recommend using one that supports HWFC. 

     The PC tools team needed to add some code that is not part of the offical SDK release. So that is the reason for the patch.

    4. I have to compile nrfutil on my own to support a custom (i.e. low) baudrate and disable hwfc in order to get the serial connection to work for my custom controller board.

    Yes, if you do not use a FTDI cable that supports HWFC then you will have to either compile or run nrfutil from the source with changes to the baudrate and HWFC settings. 

    5. After my controller has successfully updated all boards, I can update the controller with the new firmware via uart using nrfutil.

    I think this is possible, but then you would have to modify the connectivity firmware so that you can switch to a serial bootloader that you flash alongside the connectivity firmware. 

    Best regards

    Bjørn 

Reply
  • Hi lubedence, 

     

    1. If I'm not mistaken I can update my controller board with the so called 'connectivity firmware' and in conjunction with the nrfutil application perform the over the air updates.

     Yes, this should be possible.

     

    2. I guess I have to compile the connectivity firmware on my own to support the correct tx/rx pins, as well as to disable hwfc.

    3. In order to compile the connectivity firmware I have to patch the SDK with the patch found in the pc-ble-driver repository. What is the reason for that?

     Yes, you will need to compile the connectivity firmware so that it uses the correct pins and disable HWFC if do not support this on your board. How are you connecting your board to the computer, via a FTDI chip? If yes, then I would recommend using one that supports HWFC. 

     The PC tools team needed to add some code that is not part of the offical SDK release. So that is the reason for the patch.

    4. I have to compile nrfutil on my own to support a custom (i.e. low) baudrate and disable hwfc in order to get the serial connection to work for my custom controller board.

    Yes, if you do not use a FTDI cable that supports HWFC then you will have to either compile or run nrfutil from the source with changes to the baudrate and HWFC settings. 

    5. After my controller has successfully updated all boards, I can update the controller with the new firmware via uart using nrfutil.

    I think this is possible, but then you would have to modify the connectivity firmware so that you can switch to a serial bootloader that you flash alongside the connectivity firmware. 

    Best regards

    Bjørn 

Children
No Data
Related