All project documentation lives here. Start with the project README for the overview and quick start.
- COMPATIBILITY.md — OS support matrix (Windows / Linux / macOS) and real-board identity audit
- VALIDATION.md — what's verified on real hardware, timing, and how to reproduce it
- Release notes: the GitHub Releases page
- uploads/hands_free_upload.md — button-less UF2 / serial-DFU on the maintenance CDC, UF2 drive-only mode, stale-port protection, and SWD-probe fallbacks
- platform/UPLOAD_BEHAVIOR.md — upload policy and behavior
- bootloaders/README.md — bootloader families
- platform/ARDUINO_IDE2_USB_GDBSTUB.md — single-cable USB-CDC GDB-stub debugging in Arduino IDE 2
- examples/vscode/README.md — sample
launch.json/tasks.jsonfor VS Code +cortex-debug
- boards/README.md — per-board reference index
- platform/BOARD_SUPPORT_STATUS.md — support matrix
- platform/BOARD_SUPPORT_NOTES.md · platform/BOARD_FAMILY_MATRIX.md — family notes & matrix
- platform/PWM_MULTI_MODULE.md — 4-module / 16-channel PWM facade, per-pin frequency, polarity, complementary pairs
- platform/RTC_DRIVER.md — low-level driver for RTC0/1/2 (compare + overflow IRQs)
cores/arduino/NrfPower.h— power management: System ON sleep (WFI/WFE), low-power / constant-latency sub-modes, DCDC, RAM retention, SystemOFF + GPIO / NFC / USB wake sourcescores/arduino/NrfNfcTag.h— NFC-A Type 2 tag emulation (NDEF URI / text), field detect IRQ, read countcores/arduino/NrfPeripherals.h— NrfRng (TRNG), NrfWdt (watchdog), NrfTemp (die temp), NrfQdec (rotary encoder), NrfTimer (TIMER0–4), NrfNvmc (flash erase/write), NrfPpi (peripheral routing), NrfEgu (software events + SWI on 6 channels), NrfComp (analog comparator), NrfMwu (memory watch unit), NrfGpioteOut (output channels for PPI use)cores/arduino/NrfMediaPeripherals.h— NrfQspi (external NOR flash), NrfPdm (MEMS mic), NrfI2s (digital audio). API complete; not verified on the reference ProMicro (no external flash/mic/codec wired) — boards with that hardware need their own verification pass.
- NimBLE (
libraries/NimBLE/) — working. The vendored Apache Mynewt NimBLE host+controller runs on a bare-metal cooperative port. Advertising, connections, MTU exchange, and full GATT service/characteristic/descriptor discovery are verified on hardware against Windows (bleak/WinRT), Android (nRF Connect), and board-to-board. Exchange data over the built-in Nordic UART service withNimBLE::write()/NimBLE::onReceive(). See the BLE section of the project README and theNimBLESmoke,BLESend, andBLEReceiveexamples. - Zigbee / 802.15.4. The future-facing onboard path is Nordic's official
nCS Zigbee R23 add-on as a sidecar firmware flow for the nRF52840's own RADIO.
The existing Arduino sketch path remains the external CC2530 module: flash it
with the built-in CC-Debugger (
libraries/CCDebugger/, no external programmer) and drive it with the separate ArduinoNRF-Zigbee library. Full guide: platform/ZIGBEE.md. - Thread (OpenThread) — working IPv6 mesh on the nRF52840's own radio.
Full OpenThread FTD on a bare-metal 802.15.4 driver, in the separate
NiusThread library
(the in-package
libraries/Thread/is a compatibility shim). HW-verified two-node mesh with UDP. Full guide: platform/THREAD.md. - CC310 (CryptoCell 310) — working hardware crypto on the nRF52840. SHA-256,
AES-CBC/CTR, ECDSA/ECDH P-256, TRNG on the accelerator (CRYS runtime) plus
AES-GCM (Oberon), in the separate
NiusCrypto library
(the in-package
libraries/CC310/is a compatibility shim). HW-verified on ProMicro. Nordic binaries are fetched locally — see NiusCrypto'sdocs/VENDORING.md. - Not yet an Arduino sketch library:
libraries/Zigbee/remains an experimental placeholder and returnsZIGBEE_NOT_VENDORED. Official onboard Zigbee starts with the nCS sidecar tools intools/ncs_zigbee.
- platform/HARDWARE_CAPABILITIES.md — what the core exposes
- platform/PWM_BEHAVIOR.md · platform/PWM_TIMER_BOUNDARIES.md — PWM model & frequency/resolution limits (multi-module summary; full model in platform/PWM_MULTI_MODULE.md)
- platform/POWER_ADC_NOTES.md — ADC / battery-sense behavior
- platform/BLE_WIFI_BOUNDARIES.md — BLE/WiFi facade boundaries (BLE is now a full NimBLE stack; WiFi remains out of scope on nRF52)
- platform/OFFICIAL_STACKS.md - Nordic official stack policy and version pinning
- platform/RADIO_POLICY.md - onboard RADIO ownership rules
- platform/THREAD.md — Thread (OpenThread) mesh on the native radio via the NiusThread library
- platform/ZIGBEE.md - official nCS Zigbee R23 sidecar plus the external CC2530 path
- platform/REFERENCE_COMPARISON.md — comparison vs
pdcook/nRFMicro-Arduino-Core