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

DFU bootloader Serial

Hi guys,

I am experimeting using the experimental_bootloader_secure_serial example, but I am not having luck with the example code. I tried using the BLE secure bootloader and all worksfine over BLE.I tried the same steps that I used for the BLE bootloader that are working for me, change the public key, private.pem

I had a wrong RX defined on the Board.h solved the said above.

Update:

I am trying to use the nRF52 DK to emulate a "Custom Board" instead of use the Jlink connection (Serial over USB) I am connecting a USB-Serial converter to the p0.6(tx) and p0.8(rx) to send the Serial DFU command but nothing happens. It works only when I have attached the DK module to the PC over Jlink.

I am using only two wires TX/RX so I disabled the HWFC on the bootloader nrf_serial_dfu.c settings and I did the same to the dfu_transport_serial nrfutil folder and python setup.py build to the changes make affect .Disabling flowcontroll

For the bootloader secure serial I noticed two things: 1)It example does not show a DFUtarg over BLE 2)when I tried nrfutil dfu serial -pkg example.zip -p COM1. The Softdevice and Bootloader serial are present on the nRF52 DK module it gets stuck on 0% for ever (the bootloader is running).

image description

An additional question are there a way to merge the DFU BLE + Serial on the same bootloader?

Thanks

  • The serial bootloader does not advertise on BLE, so thats why you dont see any advertisment packages. I suggest that you change the TX_PIN_NUMBER and RX_PIN_NUMBER to pin P0.03 and P0.04.

  • Hi Bjørn, I tried putting tx/rx the p0.3 and p0.04 with no luck. so I opened the shorts on: SB22, SB23, SB24 and SB25 on the nRF52 DK now I am not able to communicate over the Jlink (just as I expected), but I am able to put my device into bootloader from the APP code writing a commad over serial using p0.06, p0.08 with a USB-Serial converter. Still stuck on the percent bar 0%. The Serial DFU only works over the Jlink for me.

    Note for my custom board I am not using CTS or RTS. Just TX/RX

  • I was wondering if the only way to perform the DFU serial is using a Dev kit Board like the nRF52 DK. or is it possible with a custom hardware? or using a different TX/RX on the Dev kit

  • @Mufasa1: No, it fully possible to use the Serial Bootloader on custom boards. Are you able to debug your custom board in order to verify that the serial bootloader is running correctly? Have you replaced the pca10040.h file with a custom_board.h file?

  • Yes, I did it. I am going to double check again that both app and bootloader have the same pca10040.h file. In case that both are using the same file. I dont know why it does not work on the nRF52 Dk when I changed the Tx/Rx to p03/p04 on the bootloader and app code. A additional info I am running the nrfutil from thr souce code calling main.py if I made any change to the nrfutil code example disabling/enabling the HWFC does it have any effect calling directly the main.py or do I have to compile it before? I tested it using the default Tx/Rx on the DK module and works the serial DFU with no diference. But not when changing the TX/Rx to different pins

1 2