Skip to content

Releases: SourceRabbit/RabbitGRBL

Version 1.6.2

22 Mar 15:58

Choose a tag to compare

[Fix] WiFi connections (Station & Access Point mode) now use setNoDelay(true), disabling the Nagle algorithm and eliminating response data being held back and delivered all at once.

Version 1.6.0

15 Mar 21:13

Choose a tag to compare

  • WiFi Connection implemented
    Your CNC machine can connect to your home or workshop WiFi network. Once connected, you can control your machine without a USB cable from your PC, laptop, or tablet over the network.

Version 1.5.9

15 Mar 16:22

Choose a tag to compare

  • Bluetooth connection implemented

Version 1.5.8

02 Mar 17:31

Choose a tag to compare

Stepper — RMT as Default, Software as Option
The RMT (Remote Control Transceiver) peripheral is now officially the default step pulse generation method on Rabbit GRBL, leveraging hardware timing without software busy-waiting. Software-based stepping can still be selected by defining USE_SOFTWARE_STEPS in Config.h. Direction delay and pulse timing logic has been fully moved into MotorsManager.

CoordinatesManager — New Coordinate Management Module
Introduces the new CoordinatesManager, a dedicated static class that takes over the management of all Work Coordinate Systems (G54–G59) and reference positions (G28, G30). Coordinate data is persisted in NVS, ensuring values survive power cycles and reboots. The old implementation (Settings/Coordinates.cpp/.h) has been fully removed.

UserOutputsManager — New Public API
New public methods added: SetDigitalOutput(), SetAnalogOutput(), TurnAllDigitalOutputsOff(), TurnAllAnalogOutputsOff(), eliminating the old global sys_set_digital() / sys_set_analog() functions.

Code Cleanup
Removed Regex.cpp/.h (no longer used).
Removed the old stepper_switch() function and stepper_id_t type.
Removed SettingsRestore::Wifi (unused).
Spindle setting keys renamed: GCode/LaserMode → Spindle/LaserMode, GCode/MaxS / GCode/MinS → Spindle/RPM/Max / Spindle/RPM/Min.

Version 1.5.7

01 Mar 14:38

Choose a tag to compare

Version 1.5.6

27 Feb 09:51

Choose a tag to compare

🚀 What's New in v1.5.6

This is a major release. RabbitGRBL has been significantly refactored towards a more object-oriented architecture, improving code maintainability, modularity, and scalability.


✨ New Features & Improvements

🗄️ NVSManager

A dedicated manager class for all Non-Volatile Storage (NVS) operations on the ESP32.
All settings read/write operations are now routed through NVSManager, providing a clean and centralized API for persistent storage.

⚙️ SettingsManager

A new SettingsManager class now handles all $ settings — reading, writing, listing, and persisting them.
Settings are now fully typed objects (IntSetting, FloatSetting, FlagSetting, etc.), each registered with the manager and backed by NVS.

🖥️ GRBLCommandsManager

A new GRBLCommandsManager class centralizes the registration and dispatching of all $ commands.
Commands are now self-contained objects, making it easy to add, remove, or modify commands without touching the core protocol logic.


🏗️ Architecture Changes

  • RabbitGRBL now follows a more object-oriented design across its core subsystems.
  • The codebase is organized into clearly separated modules: Commands, Connection, Controller, Settings, NVS, Diagnostics, and Machines.
  • The new architecture makes it significantly easier to extend RabbitGRBL with new machine types, connection protocols (WiFi, Bluetooth), and hardware controllers.

🔄 Changes from v1.5.5 → v1.5.6

Area v1.5.5 v1.5.6
NVS access Direct ESP32 NVS calls Centralized via NVSManager
Settings handling Procedural / scattered Typed objects via SettingsManager
$ command routing Inline switch/if logic Registered commands via GRBLCommandsManager
Overall architecture Mostly procedural (GRBL legacy) Object-Oriented

💡 Note: This release lays the foundation for future features including WiFi and Bluetooth connectivity, advanced machine profiles, and a more flexible plugin-style extension system.

Version 1.5.5

25 Feb 10:40

Choose a tag to compare

New ConnectionManager

  • Thread-safe I/O through Serial Connection
  • Connection is now an abstract base class (Getting ready for Bluetooth and WiFi)
  • RX buffer initialized with RX_BUFFER_SIZE (defined in Config.h)

New MessageSender

  • Centralized message sending with level filtering (Error, Warning, Info, Debug, Verbose)
  • Messages are suppressed if their level exceeds the configured Message/Level setting

Improvements

  • grbl_sendf stack buffer size increased from 64 to TX_BUFFER_SIZE bytes
  • Fixed va_list usage bug in grbl_sendf

Version 1.5.4 Build 20260224

24 Feb 21:50

Choose a tag to compare

  • Thread safe serial I/O
  • Planner Optimizations
  • Firmware now compiles with ESP32 Arduino Core v2.0.0 (ESP-IDF v4.4)
  • Removed unused variables inherited from the original Grbl_ESP32 codebase
  • Stepper_RMT improvements

Version 1.5.3 Build 20260224

24 Feb 17:22

Choose a tag to compare

  • Coolant state bug fixed
  • Stepper_RMT & Stepper_Software impemented

Version 1.5.2 Build 20260223

23 Feb 20:13

Choose a tag to compare

Canned Cycles Implemented:

  • G81 Simple Drilling
  • G83 Peck Drilling Cycle - Chip Removing
  • G73 Peck Drilling Cycle - Chip Breaking