Skip to content

Releases: OpenShock/Firmware

1.5.0-rc.3

21 Dec 02:16
1.5.0-rc.3
a966680

Choose a tag to compare

1.5.0-rc.3 Pre-release
Pre-release

OpenShock Firmware 1.5.0-rc.3

Fixed a critical bug where the firmware could never connect to LCG, and addressed code correctness issues (variable initialization and type casting) along with compiler warning cleanups.

Flashing the firmware

Download OpenShock_[board]_[version].bin and flash it to your microcontroller:

esptool write_flash 0x0 OpenShock_[board]_[version].bin

1.5.0-rc.2

15 Dec 18:10
1.5.0-rc.2
95cc42c

Choose a tag to compare

1.5.0-rc.2 Pre-release
Pre-release

OpenShock Firmware 1.5.0-rc.2

This release candidate focuses on E-Stop reliability, rate limiting behavior, and general internal cleanup and correctness improvements.

Highlights

  • Improved E-Stop handling

    • More reliable state transitions.
    • Removed event spamming by introducing change detection.
    • Added a short re-arm grace period after clearing to prevent immediate re-triggering due to switch bounce or noise.
    • Cleaner handling of external E-Stop triggers.
  • Rate limiter improvements

    • More efficient internal tracking of recent requests.
    • Corrected cleanup and timing behavior under sustained load.
    • More predictable blocking behavior when limits are exceeded.

Stability & Internal Cleanup

  • Safer handling of integer formatting and digit counting (avoids edge-case overflows).
  • Reduced unnecessary string copying by tightening ownership where appropriate.
  • Command handling and serial logic cleaned up for clearer control flow.
  • General warning cleanups, minor API refinements, and consistency improvements across the codebase.

Build & Tooling

  • Minor CI and dependency updates.
  • Expanded compiler warnings where possible to catch issues earlier during development.

Flashing the firmware

Download OpenShock_[board]_[version].bin and flash it to your microcontroller:

esptool write_flash 0x0 OpenShock_[board]_[version].bin

1.5.0-rc.1

27 Nov 19:46
1.5.0-rc.1
d4f68f6

Choose a tag to compare

1.5.0-rc.1 Pre-release
Pre-release

OpenShock Firmware 1.5.0-rc.1

This release candidate focuses on radio reliability, firmware behavior improvements, and a refreshed frontend.

Highlights (User-Visible Firmware Changes)

  • Major RF/RMT transmitter rework for improved timing accuracy and more reliable shocker communication.
  • Updated AssignLCG integration using the new backend endpoint (removes the old LCG override setting).
  • Hub now reports its Wi-Fi signal strength (RSSI), this will be used to show connection health in UI's.
  • Serial output now uses CRLF line endings for improved compatibility with Windows terminals.
  • Added T330 shocker protocol support.

Radio & Timing

  • Reworked RF pipeline with more consistent timing and fewer internal allocations.
  • Fixed timing issues for CaiXianlin and improved PET998DR handling.
  • Additional guardrails added to the RF subsystem to prevent stalls/crash loops.

Firmware Behavior / System

  • Introduced internal execution time limits to prevent firmware from getting stuck in long-running operations.
  • Replaced all ESP.restart() usage with ESP-IDF native esp_restart() calls
  • Improved OTA, Wi-Fi initialization, and crash-loop resilience.

HTTP & Gateway

  • Clearer/more consistent HTTP error and status behavior.
  • Improved 401 handling and token recovery.
  • AssignLCG now reports firmware version and uses the updated endpoint.

Frontend & UX

  • Migrated to Svelte 5 + shadcn.
  • Updated to Tailwind CSS v4 and reduced frontend bundle size.
  • UI palette synced with website.

Misc / Internal Changes

  • PlatformIO, espressif32, FlatBuffers, Node, pnpm, and other dependency updates.
  • Build reproducibility improvements and CI cleanup.
  • Various memory fixes, warning cleanups, and improved parsing logic.

Breaking Changes

  • LCG override removed (new AssignLCG endpoint required).
  • Serial output now uses CRLF (update scripts if needed).

Notes

  • RF timing changes are substantial; please report shocker-specific regressions.
  • Scripts relying on legacy AssignLCG behavior may need updates.

Flashing the firmware

Download OpenShock_[board]_[version].bin and flash it to your microcontroller:

esptool write_flash 0x0 OpenShock_[board]_[version].bin

1.4.0

25 Oct 11:29

Choose a tag to compare

OpenShock Firmware 1.4.0

This release is packed with bugfixes, optimizations, code cleanup, prepwork for ESP-IDF, and some features!

Highlights

  • Add support for configuring hostname of ESP via Serial.
  • Add support for configuring Emergency Stop via Captive Portal and Serial.
  • Report available GPIO pins to Captive Portal Frontend.
  • Massively refactor serial command handler.

Optimizations

  • Bump platform-espressif32 to version 6.9.
  • Start using C++17 features including std::string_view.
  • Clean up platformio.ini file.
  • Lots of miscellanious code cleanup.
  • Implement custom zero-copy type conversion methods with better error checking.
  • Reduce log spam by the arduino library.
  • Improve error handling of gpio pin selection.
  • Attempt to make more sense out of the 998DR protocol serializer.

Flashing the firmware

Download OpenShock_[board]_[version].bin and flash it to your microcontroller:

esptool write_flash 0x0 OpenShock_[board]_[version].bin

1.4.0-rc.2

09 Oct 23:56
6711e9d

Choose a tag to compare

1.4.0-rc.2 Pre-release
Pre-release

OpenShock Firmware 1.4.0-rc.2

Fixed EStop debouncing logic.

Flashing the firmware

Download OpenShock_[board]_[version].bin and flash it to your microcontroller:

esptool write_flash 0x0 OpenShock_[board]_[version].bin

1.4.0-rc.1

08 Oct 20:13
14efa86

Choose a tag to compare

1.4.0-rc.1 Pre-release
Pre-release

OpenShock Firmware 1.4.0-rc.1

This release is packed with bugfixes, optimizations, code cleanup, prepwork for ESP-IDF, and some features!

Highlights

  • Add support for configuring hostname of ESP via Serial.
  • Add support for configuring Emergency Stop via Captive Portal and Serial.
  • Report available GPIO pins to Captive Portal Frontend.
  • Massively refactor serial command handler.

Optimizations

  • Bump platform-espressif32 to version 6.9.
  • Start using C++17 features including std::string_view.
  • Clean up platformio.ini file.
  • Lots of miscellanious code cleanup.
  • Implement custom zero-copy type conversion methods with better error checking.
  • Reduce log spam by the arduino library.
  • Improve error handling of gpio pin selection.
  • Attempt to make more sense out of the 998DR protocol serializer.

Flashing the firmware

Download OpenShock_[board]_[version].bin and flash it to your microcontroller:

esptool write_flash 0x0 OpenShock_[board]_[version].bin

1.3.0

03 Sep 15:12
2e44c5f

Choose a tag to compare

OpenShock Firmware 1.3.0

This release adds support for more boards, has more bugfixes, better error handling, and optimization/cleanup.

Highlight

  • Added support for DFRobot Firebeetle, Wemos S3 Mini and WaveShare S3 Zero boards.

Minor Updates

  • Re-Add PET998DR Quiet Postamble.
  • Fix CaiXianlin protocol sending non-zero when doing a beep command.
  • Moved schema files to seperate repository.
  • Improve error handling and logging.
  • Dependency updates.
  • Code cleanup, optimization and refactoring.

Flashing the firmware

Download OpenShock_[board]_[version].bin and flash it to your microcontroller:

esptool write_flash 0x0 OpenShock_[board]_[version].bin

1.3.0-rc.1

28 Aug 07:20
6c7eb1b

Choose a tag to compare

1.3.0-rc.1 Pre-release
Pre-release

OpenShock Firmware 1.3.0-rc.1

This is the first release candidate for version 1.3.0.

Highlight

  • Added support for DFRobot Firebeetle, Wemos S3 Mini and WaveShare S3 Zero boards.

Minor Updates

  • Re-Add PET998DR Quiet Postamble.
  • Fix CaiXianlin protocol sending non-zero when doing a beep command.
  • Moved schema files to seperate repository.
  • Improve error handling and logging.
  • Dependency updates.
  • Code cleanup, optimization and refactoring.

Flashing the firmware

Download OpenShock_[board]_[version].bin and flash it to your microcontroller:

esptool write_flash 0x0 OpenShock_[board]_[version].bin

1.2.0

27 Aug 12:47
1d8cec7

Choose a tag to compare

OpenShock Firmware 1.2.0

This release adds a new shocker protocol, more bugfixes, configurability, and performance improvements.

Highlight

  • Added support for 998DR Petrainer RF protocol.

Major Updates

  • Add command to get/set api domain.
  • Add command to get/set/clear override for Live Control Gateway (LCG) domain.

Minor Updates

  • Change transmission end command to last for 300 ms.
  • Increase WDT timeout during OTA updates to prevent watchdog resets.
  • Remove non thread-safe RF sequence caching.
  • Update flatbuffers to 23.5.26.
  • Start utilizing StringView more to reduce memory and CPU usage.
  • Small code cleanup and refactoring.

Flashing the firmware

Download OpenShock_[board]_[version].bin and flash it to your microcontroller:

esptool write_flash 0x0 OpenShock_[board]_[version].bin

1.2.0-rc.1

19 Apr 01:03

Choose a tag to compare

1.2.0-rc.1 Pre-release
Pre-release

OpenShock Firmware 1.2.0-rc.1

This is the first release candidate for version 1.2.0.

Highlight

  • Added support for 998DR Petrainer RF protocol.

Major Updates

  • Add command to get/set api domain.
  • Add command to get/set/clear override for Live Control Gateway (LCG) domain.

Minor Updates

  • Change transmission end command to last for 300 ms.
  • Increase WDT timeout during OTA updates to prevent watchdog resets.
  • Remove non thread-safe RF sequence caching.
  • Update flatbuffers to 23.5.26.
  • Start utilizing StringView more to reduce memory and CPU usage.
  • Small code cleanup and refactoring.

Flashing the firmware

Download OpenShock_[board]_[version].bin and flash it to your microcontroller:

esptool write_flash 0x0 OpenShock_[board]_[version].bin