Open michaelliesenberg opened 1 year ago
You probably want 0.5.3 instead of 0.5.6: https://github.com/kaidyth/nrf52_bootloader/releases/tag/0.5.3 use it instead for the feather boards. This is what I have running on my feather nrf52840.
Flash to board with the following command. This is what the make flash
command does, and what I have running on my feather.
nrfjprog -f nrf52 --program feather-express_bootloader-fbe4571_s140.hex --sectoranduicrerase
Make sure your using the Nordic SDK 16.0.0 toolchain and the appropriate tooling that comes with it. I haven't tested the 17 toolchain. The docker image is provided because it has all the tooling bundled with it.
USB DFU is supported via TTY: See https://github.com/kaidyth/nrf52_bootloader/wiki/Application-Flashing for documentation on how to bundle and sign the application. There isn't UF2 if that's what you're asking, and I have no intention of adding that as a feature as it'd overflow the ROM size.
If you're manually compiling things, you'll need to use x64. micro-ecc doesn't have an arm64 target and that's on Nordic and that library to resolve as they have shared dependencies. On a Arm64 Ubuntu image, GCC is arm-none-eabi-gcc
, but I'm almost certain it won't compile on a arm64 docker image given how old this is.
I cannot upload a sketch from arduino, looks like it is not compatible?
- From Arduino IDE, you need to export the sketch as a hex, with the appropriate compiler settings for the board and everything in-between, then build, sign, and deploy the application itself using these steps. https://github.com/kaidyth/nrf52_bootloader/wiki/Application-Flashing
Notes on Arduino are here: https://github.com/kaidyth/nrf52_bootloader/wiki/Arduino-Notes. I've run really simple sketches like blinky or neopixel, but as documented in the README, the Wiki, and a bunch of issues, this bootloader provides zero support or compatibility with Bluefruit - Bluefruit is incompatible.
With that said, I don't do any development with Arduino and can't really provide any support with it. If you're looking to use Arduino sketches, use the Adafruit bootloader instead.
I've managed to make your bootloader similar to the adafruit and to use the bluefruit stack, I will publish the changes required to work with the adafruit core nrf52, until now works only wirh s140 softdevice, but with small fix should work also with s132
Hey @gb88, awesome news! Looking forward to your merge request.
Hi,
the latest feather express release bootloader doenst work when i flash it: https://github.com/kaidyth/nrf52_bootloader/releases/download/0.5.6/feather-express_bootloader-fbe4571_s140.hex
nrfjprog -f nrf52 --program feather-express_bootloader-fbe4571_s140.hex --verify --log [ #################### ] 1.508s | Program file - Done programming [error] [ Client] - Encountered error -160: Command verify_file executed for 1189 milliseconds with result -160 [error] [ nRF52] - Failed while performing 'Verify' operation on target address 0x00000FF8. -160: Data does not match in address range [0x00000FF8 - 0x00026597] (Flash) Expected byte value 0xC8 but read 0x80 at address 0x00001000. [error] [ nRF52] - Failed while verifying device. -160: Data does not match in address range [0x00000FF8 - 0x00026597] (Flash) Expected byte value 0xC8 but read 0x80 at address 0x00001000. [error] [ Worker] - Data does not match in address range [0x00000FF8 - 0x00026597] (Flash) Expected byte value 0xC8 but read 0x80 at address 0x00001000. ERROR: Write verify failed.
I try the version feather-express_bootloader-0.3.0_s140.hex and it works i could also use my iphone and nrf Connect using the zip file to upload a new firmare.
I cannot upload a sketch from arduino, looks like it is not compatible?
I am using Mac M1 and cannot run docker x86_64 ubuntu image, i try to modify the file and set ubuntu arm64, it works until executing ./build_all.sh ` => ERROR [8/9] RUN cd $HOME/nrf_sdk/16.0.0/external/micro-ecc && ./build_all.sh 0.2s
Is the script ./build_all.sh from nordic only for x86_64?
What should be done to support usb serial DFU like adafruit bootloader does?