Skip to content

NiusThread 0.1.2

Latest

Choose a tag to compare

@dunknowcoding dunknowcoding released this 11 Jun 23:29

0.1.2 - on-mesh commissioning + critical radio ack fixes

Real Thread commissioning, hardware-verified end to end. A factory-fresh board joins with only a passphrase - no network key in the sketch:

  • Thread.commissionerStart() / Thread.commissionerAddJoiner(pskd, timeout) on the admitting side
  • Thread.joinNetwork(pskd) + Thread.joinResult() on the joining side; Thread.eraseNetwork() to forget
  • New examples: CommissionerNode and JoinerNode
  • Verified flow: discovery -> EC-JPAKE DTLS (PSKd) -> JoinerFinalize -> KEK-secured JoinerEntrust -> credentials stored to flash -> attach as child

802.15.4 radio driver fixes (found with the new SWD-readable gNiusRadioDiag counters):

  • Immediate acks are now sent at the spec aTurnaroundTime (192 us). They previously left ~70 us after the frame end - before the peer could turn its radio around - so every unicast silently rode on MAC retransmit exhaustion.
  • otPlatRadioReceive() no longer clips an in-flight ack transmission (the stack calls it right after every delivered frame).
  • Result: bidirectional MAC acks confirmed on hardware; unicast latency and airtime drop dramatically.

Other: setNetwork() now writes a complete operational dataset (ChannelMask / PSKc / SecurityPolicy - required by the Joiner Entrust path); examples moved to channel 25; mbedtls heap sized for the DTLS session.