Skip to content

nRF52840 embedded firmware - #81

Open
puddly wants to merge 1 commit into
devfrom
puddly/nrf52840
Open

puddly wants to merge 1 commit into
devfrom
puddly/nrf52840

Conversation

@puddly

@puddly puddly commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

As a test, I was able to quickly port OpenThread RCP + Ziggurat firmware to the nRF52840 dongle. You don't need this to run Ziggurat (host mode with stock OpenThread RCP firmware will always work), it's just a test to see where the embedded stack fits and how well it performs on-chip.

@puddly

puddly commented Nov 2, 2026 •

Copy link
Copy Markdown
Member Author

I migrated my home network to this embedded firmware. No major issues.

I think APS ACKs are a little sluggish, I experienced this a few years ago when I last tried the nRF52840. Will require a bit more investigation.

@puddly
puddly marked this pull request as ready for review November 4, 2026 18:53
Copilot AI balanced review requested due to automatic review settings November 4, 2026 18:53

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The unsafe heap allocator and panic retention depend on linker-defined RAM boundaries and bootloader reset behavior that require a target link map and on-device validation unavailable in this review.

No open issues 🎉

What changed in this PR

Adds an experimental nRF52840 Dongle firmware port combining OpenThread RCP with the embedded Ziggurat stack. This provides an on-chip alternative for evaluation without changing support for host mode with stock RCP firmware.

Changes:

  • Adds firmware build, linking, and USB DFU packaging for the nRF52840 Dongle.
  • Introduces the nrf52 Rust platform feature with a dedicated heap allocator.
  • Extends shared glue with Nordic reset reporting and support for newer OpenThread AES-CCM APIs.
File Description
firmwares/​nrf52840/​ziggurat.cmake Links the Rust stack and configures Nordic glue and system resets.
firmwares/​nrf52840/​ziggurat_vendor_hook.cpp Includes both shared glue sources through the vendor hook.
firmwares/​nrf52840/​build.sh Builds the combined firmware and generates a USB DFU package.
firmwares/​nrf52840/​.gitignore Excludes generated firmware build artifacts.
firmwares/​glue/​ziggurat_glue.cpp Adds Nordic platform support and newer AES-CCM API compatibility.
crates/​ziggurat-ot/​src/​lib.rs Adds Nordic feature validation, critical sections, and heap initialization.
crates/​ziggurat-ot/​Cargo.toml Defines the nrf52 feature and allocator dependency.
crates/​ziggurat-ot/​Cargo.lock Locks the allocator and its transitive dependencies.

Review effort: Balanced

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new feature Adds new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants