Releases: SourceRabbit/RabbitGRBL
Version 1.6.2
Version 1.6.0
- 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
- Bluetooth connection implemented
Version 1.5.8
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
Version 1.5.6
🚀 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, andMachines. - 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
New ConnectionManager
- Thread-safe I/O through Serial Connection
Connectionis now an abstract base class (Getting ready for Bluetooth and WiFi)- RX buffer initialized with
RX_BUFFER_SIZE(defined inConfig.h)
New MessageSender
- Centralized message sending with level filtering (
Error,Warning,Info,Debug,Verbose) - Messages are suppressed if their level exceeds the configured
Message/Levelsetting
Improvements
grbl_sendfstack buffer size increased from 64 toTX_BUFFER_SIZEbytes- Fixed
va_listusage bug ingrbl_sendf
Version 1.5.4 Build 20260224
- 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
- Coolant state bug fixed
- Stepper_RMT & Stepper_Software impemented
Version 1.5.2 Build 20260223
Canned Cycles Implemented:
- G81 Simple Drilling
- G83 Peck Drilling Cycle - Chip Removing
- G73 Peck Drilling Cycle - Chip Breaking