nrf52811 dfu issue

Hi, I'm a novice in embedded systems. I have board based on nrf52811 and firmware written for my device but when I received my board from production I could not load firmware because there is no DFU on board.  I see device as AT 52811 and I can connect but no option to load firmware. 

I understand that I will probably need to make DFU bootloader using nrf util but I am not sure that I will be able to load the current firmware with the DFU bootloader that I made. Also board is very small with just a couple of sensors and it was intended to be updated over Bluetooth. Is it possible to load DFU bootloader over BT or device must be connected to the PC to do so?

Parents Reply
  • I set battery in device and powered development kit via usb. I was able to see both original device and new device. I've read and saved  hex file from old device and than did erase and write to new device. All done with nrf programmer. But new device still does not work although memory map looks same like old device. I checked devlopment kit log and I saw that firmware was not protected. So simple read from old and load on new device should work or?

Children
  • nebojsar said:
    But new device still does not work although memory map looks same like old device.

    How do you determine that it doesn't work? What do you observe?

    nebojsar said:
    I checked devlopment kit log and I saw that firmware was not protected. So simple read from old and load on new device should work or?

    How did you read the code? And what did it output? A .hex file? If so, can you upload it here?

    Best regards,

    Edvin

  • I had old device with good firmware in working condition. I connected it to DK and via programmer app I was able (or at least I think) to get firmware hex file which I downloaded and saved. After I disconnected old device, it stopped working, usual led blink after press on power-on swich does not appear and I cannot find device via bluetooth. After connecting old device I attached new one and loaded hex file that I've got but again device is unresponsive so I think that probably I was just seeing DK memory not one from my devices. I also checked logs which showed always same serial number of device and in this case serial number of DK. I powered DK via usb, and my board was powered by onboard battery (same voltage 3V). I used diagram to connect external board from message above. 

    I am wondering which serial number should be visible when DK and external board(my device) is connected to it? Also if I was just connected to DK how did I manage to destroy/damage original device firmware and why device is not responding now.

  • nebojsar said:
    I am wondering which serial number should be visible when DK and external board

    The serial number that shows up should match the serial number on the white sticker on the DK. This is the serial number for the debugger, and not the on-board nRF chip. So this serial number will not change when you connect your external devices via the debugger. 

    To make sure the other devices are being detected, you can try to read out some registers that would be different on the different devices, such as the address register. For example the FICR->DEVICEADDR[0] register:

    https://docs.nordicsemi.com/bundle/ps_nrf52811/page/ficr.html#register.DEVICEADDR-0-1

    Download and install the nRF command line tools (ignore that it says it is archived. It works for now).

    You may already have it installed, if you have flashed your DK or custom boards using the debugger. Try to type "nrfjprog --version" and see if it responds with a version number, or something like "nrfjprog not found".

    Then, once it is installed, use the command: "nrfjprog --memrd 0x100000A4". This should return different values when the external board is connected and when it is not.

    Try that, and we'll take it from there.

    BR,

    Edvin

Related