Adafruit nRF52840 Feather Express
Adafruit nRF52840 Feather Express
back to microcontrollers page.
Links
Adafruit nRF52840 Feather Express, VolksEEG: Rust Development On Adafruit nRF52840 Feather Express, crates.io: adafruit-nrf52840-express,
local links
History
2025-01-30: try to convert an example to UF2 format:
tingo@kg-starone:~/personal/projects/2025/rust/embedded/drogue-device/examples/nrf52/adafruit-feather-nrf52840/bt-mesh $ cargo objcopy --bin adafruit-nrf-feather52840-bt-mesh -- -O binary adafruit-nrf-feather52840-bt-mesh.bin warning: skipping duplicate package `basic` found at `/home/tingo/.cargo/git/checkouts/btmesh-e14acedbce757b27/2ae1440/btmesh-nrf-softdevice/examples/nrf52840-dk/basic` Finished dev [optimized + debuginfo] target(s) in 0.13s
check the file
tingo@kg-starone:~/personal/projects/2025/rust/embedded/drogue-device/examples/nrf52/adafruit-feather-nrf52840/bt-mesh $ file *bin adafruit-nrf-feather52840-bt-mesh.bin: ARM Cortex-M firmware, initial SP at 0x20040000, reset at 0x00027100, NMI at 0x000521b0, HardFault at 0x00052e86, SVCall at 0x000521b0, PendSV at 0x000521b0
check memory.x
tingo@kg-starone:~/personal/projects/2025/rust/embedded/drogue-device/examples/nrf52/adafruit-feather-nrf52840/bt-mesh $ more memory.x MEMORY { /* NOTE 1 K = 1 KiBi = 1024 bytes */ MBR : ORIGIN = 0x00000000, LENGTH = 4K SOFTDEVICE : ORIGIN = 0x00001000, LENGTH = 155648 FLASH : ORIGIN = 0x00027000, LENGTH = 256K BOOTLOADER : ORIGIN = 0x000f8000, LENGTH = 24K BOOTLOADER_STATE : ORIGIN = 0x000fe000, LENGTH = 4K STORAGE : ORIGIN = 0x000ff000, LENGTH = 4K RAM : ORIGIN = 0x2000c698, LENGTH = 211304 /* DFU is stored in external flash */ DFU : ORIGIN = 0x00000000, LENGTH = 266240 } __bootloader_state_start = ORIGIN(BOOTLOADER_STATE); __bootloader_state_end = ORIGIN(BOOTLOADER_STATE) + LENGTH(BOOTLOADER_STATE); __bootloader_dfu_start = ORIGIN(DFU); __bootloader_dfu_end = ORIGIN(DFU) + LENGTH(DFU); __storage = ORIGIN(STORAGE);
uf2conv
tingo@kg-starone:~/personal/projects/2025/rust/embedded/drogue-device/examples/nrf52/adafruit-feather-nrf52840/bt-mesh $ uf2conv adafruit-nrf-feather52840-bt-mesh.bin --base 0x00027000 --output adafruit-nrf-feather52840-bt-mesh.uf2
check file
tingo@kg-starone:~/personal/projects/2025/rust/embedded/drogue-device/examples/nrf52/adafruit-feather-nrf52840/bt-mesh $ file *uf2 adafruit-nrf-feather52840-bt-mesh.uf2: UF2 firmware image, file size 00000000, address 0x027000, 721 total blocks
2025-01-30: double press reset button, and it shows up as a usb drive (UF2):
root@kg-starone:~ # ls /media/FTHR840BOOT CURRENT.UF2 INDEX.HTM INFO_UF2.TXT
check bootloader version
root@kg-starone:~ # cat /media/FTHR840BOOT/INFO_UF2.TXT UF2 Bootloader 0.8.3-6-gf60ed7c lib/nrfx (v2.0.0) lib/tinyusb (0.12.0-145-g9775e7691) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7) Model: Adafruit Feather nRF52840 Express Board-ID: nRF52840-Feather-revE Date: May 9 2024 SoftDevice: S140 6.1.1
2025-01-30: sb - connected to my FreeBSD laptop, usbconfig says
root@kg-starone:~ # usbconfig -d ugen0.6 ugen0.6: <Adafruit Industries Feather nRF52840 Express> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
device description
root@kg-starone:~ # usbconfig -d ugen0.6 dump_device_desc ugen0.6: <Adafruit Industries Feather nRF52840 Express> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x00ef <Miscellaneous device> bDeviceSubClass = 0x0002 bDeviceProtocol = 0x0001 bMaxPacketSize0 = 0x0040 idVendor = 0x239a idProduct = 0x0029 bcdDevice = 0x0100 iManufacturer = 0x0001 <Adafruit Industries> iProduct = 0x0002 <Feather nRF52840 Express> iSerialNumber = 0x0003 <B1CBAAF19D5D25DE> bNumConfigurations = 0x0001
2025-01-30: I created this page.