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 sideThread.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.