Comments (17)
@jerryneedell current uf2 cannot be used to upgrade the bootloader, bootloader can only be upgraded using cdc interface. Best to use Arduino IDE to do so.
But we could add this feature in future release. Just making sure it doesnβt brick device ππ
from adafruit_nrf52_bootloader.
@hathach Thanks -- before I try it, can you please confirm that I can do this with a CircuitPlayground Bluefruit connected to my system via a USB cable. Do I have to manually enter bootloader mode or any other pre-configuration?
You don't need to force it into DFU mode, the command will does the that trick by connecting at baud 1200 bps then disconnect --touch 1200
. It will then could upgrade the bootloader as normal. You can add --verbose option right after adafruit-nrfutil as well. Don't reset/disconnect or do anything until you see Device programmed
https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/updating-the-bootloader
from adafruit_nrf52_bootloader.
worked great! both on CircuitPlayground Bluefruit and feather_nrf52840_express
from adafruit_nrf52_bootloader.
@dhalbert in case the bootloader is corrupted, we must use a jlink to debrick it :D since there is no way to load this app to rewrite the bootloader :D . This would be mainly use to replace whatever bootloader on the board (that could load this image) by our bootloader.
from adafruit_nrf52_bootloader.
opps, I just realized you mean to run an in-place binary script in filesystem to update the bootloader ?
from adafruit_nrf52_bootloader.
No, not in filesystem: we'd use the existing bootloader to load a program that rewrites the bootloader. This program would overwrite CircuitPython or an Arduino sketch or whatever was in flash. It would be supplied .uf2 and .hex format (and maybe .ino).
from adafruit_nrf52_bootloader.
Ah ok, I was thinking on how to correct the current corrupted bootloader. But I guess it is jlink work, this application firmware is only to replace whatever an oem bootloader on a nrf52840 board to our bootloader.
from adafruit_nrf52_bootloader.
Right, or to update the .uf2 bootloader to a newer version, for whatever reason.
from adafruit_nrf52_bootloader.
This is a bit tricky and easy to brick, we will only create one version of this app for a specific board with current sd which is 6.1.0. User needs to go through normal dfu-flash afterward to upgrade bootloader to the latest. Hopefully nordic bootloadrr does not use locked, or any kind of memory protection :D
from adafruit_nrf52_bootloader.
@hathach Does the bootloader protect itself from a user-program overwrite by using the ACL peripheral? I see that once you protect a region by writing the ACL registers, they can't be changed back until there's a hard reset.
I thought perhaps this is how the bootloader protects itself, and if we can get the bootloader to skip the ACL-setting step (e.g. via the second switch or a pin check or something), then we could enable a user-mode bootloader update.
from adafruit_nrf52_bootloader.
@dhalbert currently ACL is not enabled yet, There is an issue to enable ACL here. #21 . So yeah, we are free to do user-mode bootloader update.
from adafruit_nrf52_bootloader.
Jus to clarify, Can a user now update the Bootloader by simply creating a .uf2 from the released .hex file and then dragging it to the device? If so, should the release assets include .uf2 versions?
I am mostly asking in regards to the circuit playground bluefruit since it does not have an SWD connector installed.
from adafruit_nrf52_bootloader.
you can also use the adafruit-nrfutil manually as well, i will update this comment with the correct syntax when I got home.
from adafruit_nrf52_bootloader.
@hathach Thank you! That would be very helpful!
from adafruit_nrf52_bootloader.
@hathach Thank you! That would be very helpful!
here it is
adafruit-nrfutil dfu serial --package bootloader.zip -p /dev/ttyACM0 -b 115200 --singlebank --touch 1200
from adafruit_nrf52_bootloader.
@hathach Thanks -- before I try it, can you please confirm that I can do this with a CircuitPlayground Bluefruit connected to my system via a USB cable. Do I have to manually enter bootloader mode or any other pre-configuration?
That is, no J-link is necessary for this?
from adafruit_nrf52_bootloader.
bootloader can be updated using uf2 and cdc now. For non-adafruit such as Nordic bootloader and other vendor bootloader, that will mostly use ACL to protect the bootloader. I feel this issue is out of date, could be reopened or create new one if needed.
from adafruit_nrf52_bootloader.
Related Issues (20)
- Workflow-build fails with error code 2 while installing toolchains HOT 3
- DFU OTA upgrade problem HOT 4
- Add factory reset request
- Please add Xiao BLE Bootloader HOT 1
- No such file or directory for "nrf.h" HOT 1
- DFU via Serial1 HOT 1
- PCA10056: Part of the HEX regions are out of the device memory size HOT 10
- MDK NRF52840 USB Dongle bricked after flashing latest bootloader HOT 3
- nRF52840 USB Key as nRF Connect for Desktop BLE Adapter?
- DFU OTA with NRF Connect stuck at 100% HOT 1
- Tool to merge application firmware with bootloader for factory SWD/JLINK-programming HOT 1
- Make all filed with invalid suffix "c3a84" on integer constant HOT 5
- `board_teardown()` resets every pin including the LDO pin on some boards HOT 3
- DFU OTA always fails HOT 1
- non-direct advertising and buttonless DFU features
- Drag and drop reports an error but the application is loaded successfully
- Support for Softdevice S140 7.0.1 HOT 1
- Support for Errata 249 on revision 3 nrf52840 chips
- Can you disable User Button check?
- Build without SD/BLE for nrf52820 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from adafruit_nrf52_bootloader.