|
| 1 | +# Version 1.5.0 Release Notes |
| 2 | + |
| 3 | +This release is a major firmware update bringing a fully reworked RF transmitter pipeline for more reliable shocker communication, a new T330 shocker protocol, an RFC 8908-compliant captive portal, a rebuilt frontend (Svelte 5 + shadcn), and significant improvements to E-Stop handling and rate limiting. |
| 4 | + |
| 5 | +***Warning: Petrainer users will need to re-pair their shockers once they update their hub due to protocol changes.*** |
| 6 | + |
| 7 | +### Highlights |
| 8 | + |
| 9 | +- Added **T330 shocker protocol** support |
| 10 | +- Completely reworked RF behaviour for more reliable shocker control |
| 11 | +- ***WAY*** more and responsive stable captive portal (It's a night and day difference) |
| 12 | +- Rebuilt Captive Portal UI to match frontend style. |
| 13 | +- **E-Stop button** is now significantly more reliable with a re-arm grace period |
| 14 | +- **Wi-Fi RSSI telemetry** reported by the hub for connection health display in frontend |
| 15 | + |
| 16 | +### Major Improvements |
| 17 | + |
| 18 | +- **RMT / Radio Transmitter** |
| 19 | + - Added **T330** shocker protocol support |
| 20 | + - Fixed timing issues for **CaiXianlin** and improved **PET998DR** handling |
| 21 | + - Lots of minor optimizations, refactors and guardrails to improve radio reliability |
| 22 | + |
| 23 | +- **E-Stop** |
| 24 | + - More reliable E-Stop state transitions with change detection, eliminating event spamming |
| 25 | + - Re-arm grace period after clearing prevents re-triggering from switch bounce or noise |
| 26 | + |
| 27 | +- **HTTP** |
| 28 | + - Rate limiter now tracks requests more efficiently with corrected cleanup timing and more predictable blocking |
| 29 | + |
| 30 | +- **Captive Portal** |
| 31 | + - Captive portal is now refactored to operate more like **RFC 8908 spec** with improved responsiveness |
| 32 | + - Migrated from Svelte 4 + Skeleton UI to **Svelte 5 + shadcn-svelte** with **Tailwind CSS v4** |
| 33 | + - UI palette synced with OpenShock website; reduced bundle size |
| 34 | + - Added unit testing and Svelte check steps; migrated from npm to **pnpm** |
| 35 | + - Removed mDNS server from captive portal |
| 36 | + - Removed the "AbsolutelySureButton" UI element, meant as a joke but it got old and obnoxious |
| 37 | + |
| 38 | +- **AssignLCG & Gateway** |
| 39 | + - AssignLCG uses the new backend endpoint and reports firmware version; legacy LCG override removed |
| 40 | + - Improved HTTP error/status consistency and 401 token recovery |
| 41 | + |
| 42 | +### Minor Updates / Optimizations |
| 43 | + |
| 44 | +- **Wi-Fi RSSI telemetry** now reported by the hub so the OpenShock.app frontend can display connection health |
| 45 | +- Replaced all `ESP.restart()` calls with ESP-IDF native `esp_restart()` |
| 46 | +- Improved OTA update flow and crash-loop resilience |
| 47 | +- Safer integer formatting, reduced unnecessary string copying, and cleaner command/serial logic |
| 48 | +- **CA certificate bundle** updated to December 2025 Mozilla extract, this bundle is not used yet but will be once we drop Arduino for ESP-IDF |
| 49 | +- **CDN** migrated from Cloudflare R2 (rclone) to Bunny CDN (SFTP) with cache purge support |
| 50 | +- **CI/CD** updated: Actions bumped (checkout v6, codeql v4, download-artifact v7), timeout limits on all jobs, pnpm adopted, Node.js updated |
| 51 | +- Expanded and cleaned up compiler warnings; PlatformIO, espressif32, FlatBuffers, and other dependency updates |
| 52 | + |
| 53 | +### Bug Fixes |
| 54 | + |
| 55 | +- Addressed variable initialization and type casting correctness issues |
| 56 | +- Fixed timing issues in **CaiXianlin** and **PET998DR** shocker protocols |
| 57 | + |
| 58 | +**Full Changelog: [1.4.0 -> 1.5.0](https://github.com/OpenShock/Firmware/compare/1.4.0...1.5.0)** |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | + |
1 | 63 | # Version 1.5.0-rc.7 Release Notes |
2 | 64 |
|
3 | 65 | Fix stable Semver parsing error, make beta builds more verbose, increase OTA task stack size, implement more guards in OTA code. |
|
0 commit comments