Releases: crowpilot-fc/crowmotion
Releases · crowpilot-fc/crowmotion
Release list
CrowMotion 0.1.2
Security hardening release (from a full security audit). No user-facing feature changes.
Hardened
- CSRF defense on the device config UI: state-changing endpoints reject cross-origin requests, closing a hotspot-side CSRF vector.
- OTA downgrade protection: the device only updates strictly forward, so a spoofed manifest cannot force an older, vulnerable build.
- Supply chain: the browser flasher and product page no longer load code from a public CDN (esp-web-tools is vendored same-origin), both carry a strict Content-Security-Policy, all CI actions are pinned to commit SHAs, and the release workflow no longer interpolates the release tag into shell.
- Stricter IPv6 handling on the hotspot access check.
Notes
- Device settings are preserved (no config-layout change in this release).
- Known accepted limitation, tracked for a future release: OTA images are not yet cryptographically signed (secure-boot-free app signing is planned). Physical USB reflash remains a trusted operation by design.
Flash from https://crowpilot.in/crowmotion/ or the device's own Check for updates, or with esptool using the attached binaries.
CrowMotion 0.1.1
Hardening, the CrowLink wireless trainer bridge, and a browser flasher.
New
- Flash from your browser: https://updates.crowpilot.in/ flashes any board from Chrome/Edge over USB (Web Serial). ESP32-C3 gets CrowMotion, ESP32-C6 gets CrowLink, as complete images that work on factory-fresh boards.
- CrowLink wireless trainer bridge (new
crowlinkfirmware, ESP32-C6): plugs into any radio's 3.5mm trainer jack and receives channels from the tracker over ESP-NOW, output as 8-channel PPM. Extends radio support beyond FrSky PARA to essentially every radio. Enable the CrowLink toggle in the tracker's config UI (Channels card). Failsafe centers channels 250 ms after link loss. - Hotspot password is now changeable (Device card, 8-64 chars).
Fixed
- Tap detection: real taps were rejected by an over-tight gyro gate; double-tap recenter now works reliably.
- Yaw drift to the rail after a moving boot: gyro auto-calibration now self-heals from a bad startup bias estimate.
- Full config input validation (out-of-range values are clamped or rejected; invalid remap arrays can no longer corrupt memory).
- Config and OTA endpoints are now served only on the hotspot, not the home network.
- OTA rollback: a failed update reverts to the previous firmware on reset.
Notes
- Settings stored on the device are reset to defaults once by this update (config layout changed).
- v1 supports exactly one tracker board: the ESP32-C3 Super Mini.
Flash via the browser (link above), from the device's config UI (Check for updates), or with esptool using the attached binaries.
CrowMotion 0.1.0
First tagged release of CrowMotion, a DIY ~$5 wireless FPV head tracker (ESP32-C3 Super Mini + MPU6500).
Highlights
- FrSky PARA Bluetooth wireless trainer link (service 0xFFF0), bench-verified against an X20S on EthOS
- 100 Hz Madgwick 6DOF fusion with self-healing gyro auto-calibration
- Per-axis channel mapping: sensitivity, deadband, range, invert, TR1-TR8
- Double-tap recenter, quad-tap WiFi config hotspot
- Self-contained config web UI at http://192.168.4.1/ with live 3D view, orientation auto-detect, and OTA (local file upload and server check)
- Onboard status LED with state patterns and fault blink-codes
- Hardened in this release: full config input validation, hotspot-only HTTP endpoints, configurable hotspot password, bootloader rollback on failed OTA
Flashing
Wire per the README, then:
python -m esptool --chip esp32c3 -b 460800 write_flash 0x20000 crowmotion-0.1.0.bin
Or build from source with ESP-IDF v5.5.4 (see docs/BUILD.md). Full setup and usage in the README.
Known limitations: FrSky PARA radios only, no printed enclosure yet, not flight-tested yet.