Skip to content

v1.4.8 — Reliability fixes: LED no longer breaks FCC, 7x faster apply, 4G hardened

Choose a tag to compare

@doesthings doesthings released this 17 Jul 10:54

v1.4.8 — Reliability Fixes

LED toggle no longer breaks FCC mode (critical fix)

Toggling LEDs after activating FCC no longer causes FCC to stop working. The LED command was holding a hardware lock that blocked the FCC keepalive for ~1.5 seconds, creating a gap where DJI Fly could reset the radio to CE. Fixed by:

  • LED command no longer holds the hardware lock (uses port 40007, keepalive uses 40009 — different subsystems, no conflict)
  • LED now uses a separate transport instance
  • LED send pattern updated to 2 bursts × 5 writes × 100ms (10 total, matching the reference app)
  • Keepalive now retries with 200ms backoff on lock-failure instead of silently skipping ticks

7x faster FCC apply

FCC unlock now completes in ~880ms instead of ~6.7s:

  • Inter-frame delay: 150ms → 10ms
  • Inter-round delay: 400ms → 100ms
  • Read window: 80ms → 40ms

The 10ms inter-frame delay is proven safe — it's the same timing the 4G activation path has always used successfully.

4G activation hardened

  • Reuses one Unix socket for all 128 frames (was opening 128 separate sockets)
  • Added aircraft model whitelist — refuses 4G on Mini series (no cellular module)
  • Added fast 4G dongle pre-check before sending any frames
  • Serial number validated (≥6 chars) and cached across sessions

DUML frame builder corrected

  • Fixed byte order to match the DJI proxy spec: byte 5 = cmdType, byte 8 = dst
  • Thread-safe sequence counter with random initialization

Full changelog

v1.4.7...v1.4.8