Skip to content

ArduinoNRF 0.3.4

Choose a tag to compare

@dunknowcoding dunknowcoding released this 15 Jun 22:58
· 16 commits to main since this release

ArduinoNRF 0.3.4

Faster uploads — 6.2× (217 s → 35 s)

Root-caused the multi-minute uploads on busy Windows hosts: Win32_SerialPort's
WMI provider was blocking ~90 s per call (it probes every COM device and
stalls on Bluetooth / virtual COM ports), and the pre-touch port resolvers hit
it several times per upload. The serial inventory now derives the COM-name ↔
USB-instance mapping from Win32_PnPEntity (~1.4 s) and never touches the
Serial provider. Measured on real hardware: identity phase 124 s → 3.8 s,
connect→deploy 62 s → 4.4 s. Remaining time is the physical 1200-touch + DFU
transfer.

SoftDevice-aware, safe bare-metal core

This core is deliberately SoftDevice-free (NimBLE and Thread own the radio
bare-metal; Zigbee uses an external CC2530). 0.3.4 makes that explicit,
detectable and safe
rather than implicit:

  • new NrfSoftDevice module: isPresent() / status() / appStartAddress() /
    firmwareId() / versionRaw() — detects an MBR + SoftDevice image in flash
    (e.g. the nice!nano S140) without starting it,
  • a persistent boot-time presence marker readable over SWD,
  • a guarded opt-in requestEnable() hook (off by default, requires
    -DNRF_ENABLE_SOFTDEVICE + a vendored Nordic SDK) for users who want the
    certified BLE stack instead of NimBLE/Thread,
  • NordicHardware.softDeviceInfo(), a SoftDeviceInfo example, and
    docs/platform/SOFTDEVICE.md.

Verified on a ProMicro clone over J-Link: detection correctly reports "no
SoftDevice, application at 0x1000" and the opt-in enable hook stays blocked.

Also in this release

  • Host-wide DFU serialization so concurrent multi-board uploads no longer
    cross-kill each other's nrfutil.
  • Same-PID clone layout / misflash upload guards + INFO_UF2 documentation.
  • USB fix: read the OUT packet length from SIZE.EPOUT, not the unreliable
    EPOUT.AMOUNT on these clones.
  • CC310 shim: sha512 forwarding + smoke KAT.

Install / upgrade: Boards Manager → ArduinoNRF (index served from main).