NRF52833 and circuitpython

Hello,

I'm trying to install circuitpython onto an nrf52833 dk board, and am running into a fair amount of trouble.

Wondering if anyone can provide a guide on the explicit processes and requirements to push this project (or one like it) onto the board.

Main issue:

CircuitPython provides a .uf2 file that is 458k large. When the 833dk is powered up with the bootloader exposed, it only has 128k available. Simply not enough room.

Hoping someone can help me see what I'm missing.

Cheers,

S.

OS: Win10/MacOS Monterey
Board: nrf52833 dk, with soc being the next target
CircuitPython repository: https://github.com/adafruit/circuitpython

Parents Reply Children
  • Hi tesc,

    Thanks for getting back.

    I have built this project successfully, but the issue remains the same: the bootloader is simply too small (128k) to accommodate the hex file that results from the build. This means I cannot simply drag-and-drop that hex onto the bootloader.

    When I try to load the hex from the command line using

    nrfjprog -f NRF52 --program MICROBIT.hex --verify --log

    I get some errors that neither micropython nor the microbit project know how to handle -- The former doesn't support NRF52, and the latter is expecting a microbit device, not a Fanstel dk board.

    Parsing image file.
    Verifying programming.
    ERROR: [  nRF52] - Data does not match in address range [0x0001c000-0x00065878] (Flash)
    ERROR: [  nRF52] - Expected byte value 0xdd but read 0x00 at address 0x00027000.
    ERROR: [  nRF52] - Flash verification failed.
    ERROR: [  nRF52] - Failed while verifying file MICROBIT.hex.
    ERROR: Write verify failed.

    The resulting log file is quite lengthy, but I can provide.

    Appreciate any guidance here.

    Best!

  • Still looking for some guidance here. I'm not able to even load the pre-compiled "blinky" example included with the SDK.

  • Hi,

    The nRF52833 has 512 kB of flash (and 128 kB of RAM). I think from your description that you are not talking about a bootloader on the nRF, but rather the bootloader for the programmer MCU on the DK.

    Powering the board while holding the reset button will set the DK into bootloader mode for the interface MCU, which acts a USB to UART bridge and J-Link programmer on the DK. There should be some protections against upgrading this interface MCU with non-functional firmware (such as applications built for the nRF), but in some instances it could be bricked.

    In order to get it up and running again, you can find the interface MCU firmware from the nRF52 DK downloads page. (The nRF52833 DK uses the same firmware as the nRF52 DK.) Hold the reset button when powering on the board, and drag the firmware over to the BOOTLOADER drive. After some time, reset the board (or power it off and on again without pressing any buttons.) The DK should then be ready for normal usage.

    Are you then able to program SDK example projects to the board, using nrfjprog? If not, what error messages (if any) or other behaviour do you get?

    Regards,
    Terje

  • Hi Tesc,

    Thanks for getting back. I was able to overcome this both through nrfjprog and nrfConnect.

    I am able to load the firmware correctly using both tools.

    I have new issues now, but I appreciate the response.

    Best wishes and thanks!

  • Hi,

    Thank you for the status update.

    I am happy to hear that you sorted out the issues! I now consider the issue solved.

    I am also happy to see that you created a new ticket for a separate issue. That's the way we like it, because it makes it easier for other users to search for issues and their solutions.

    Regards,
    Terje

Related