All notable changes to the Croaster firmware are documented here.
Format follows Keep a Changelog.
- Increased the display inversion duration from 5 seconds to 60 seconds
- Refactored OTA handling to return a JSON progress string directly while simplifying internal state management
- Updated
BleManagerandWebSocketManagerto use the streamlined OTA progress flow - Simplified command and core OTA integration paths for the new handler contract
- OTA over BLE (ESP32 only): firmware updates can now be performed via BLE in addition to WebSocket/WiFi
- Timeout checks during BLE OTA to handle stalled transfers
- Improved OTA status reporting:
OtaHandlernow returns anOtaResultstruct containing a JSON progress payload and an error flag - Simplified
OtaHandlerinternals — reduced code size while improving clarity BleManagerupdated to relay OTA binary data toOtaHandlerand forward progress JSON back to the BLE clientWebSocketManagerupdated to forward OTA progress JSON back to the WebSocket client consistently
getExtracommand with corresponding data generation methods (genRandomString, random number/boolean)
- Refactored command handling and improved JSON response generation
- Simplified command handling by removing
restartanderaseparameters fromhandleJsonCommand
- Removed
.DS_Storefiles and added to.gitignore
displayTogglecommand to toggle OLED display on/off- BLE MTU set to 517 for improved throughput
genRandomStringfunction for generating random strings- Indonesian FAQ (
FAQ_ID.md) and Indonesian README (README_ID.md) translations - Issue and pull request templates for contribution guidelines
- Updated firmware progress display during OTA updates
- Updated library dependencies (
platformio.ini) - Set
dummyModetofalse(production default)
- Corrected spelling of
genRandomString - Updated JSON handling comments
- Updated WiFiManager library version and improved
platformio.iniformatting
- SSID name included in JSON data response
- Updated firmware version to
0.44
- Custom partition configuration (
custom32c3sm.csv) for ESP32C3 Super Mini to support OTA - OTA update handling via
OtaHandlerclass resetStatemethod inOtaHandler; updatedbeginmethod to call it
- Refactored
OtaHandler: replaceddebugfwithdebugln, updatedfinalizemethod - Refactored
DisplayManagerto handle OLED presence checks and simplifybeginmethod - Streamlined WiFi setup by removing redundant mode setting
- Standardized temperature variable naming across
CroasterCoreandDisplayManager - Updated temperature handling and command processing for improved clarity
- Initialized
WireinisOledPresentto ensure proper I2C communication - Updated
dummyModetofalseand set WiFi mode in setup
- OTA update handling; firmware version bumped to
0.41
- Removed OTA handling from
BleManager(moved to dedicatedOtaHandler)
- Refactored firmware to version
0.40 - Added partitions configuration and reference link
- Updated GPIO pin assignments in README
- Enhanced device identity functions for IP and SSID retrieval
- Improved JSON command handling in
CommandHandler - Enhanced sensor reading logic in
CroasterCore - Optimized display management in
DisplayManager - Updated blink logic and delay in
CommandHandler - Added
blinkIndicatormethod inDisplayManager - Adjusted
intervalSendDatahandling for consistent timing
DeviceIdentityclass for chip ID, device name, IP address helpers- Loop functions for
WebSocketandWiFiManagerfor better code organization - Screen rotation functionality in
DisplayManager testdrawlinefunction inDisplayManagerfor visual debugging- IP address display toggle in
DisplayManager CommandHandlerclass for centralized JSON command parsing and dispatching (BLE & WebSocket)- ESP32 and ESP8266 conditional compilation (
#if defined(ESP32)/#if defined(ESP8266)) - Detailed class and method documentation (Doxygen-style headers)
- Integrated
DisplayManagerinto command handling and BLE setup - Refactored BLE setup to use device name and
CommandHandler - Simplified BLE and WebSocket handling by integrating
CommandHandler - Updated
getDeviceNameandgetShortChipIdfunctions for improved prefix/suffix handling - Optimized setup sequence —
Serialinitialization before manager setup - Modularized command handling and improved temperature reading logic
- Updated JSON command handling to use proper JSON serialization and logging
- Changed
croasterIntervaltype tounsigned longinDisplayManager - Reordered constructor initialization in
WebSocketManager - Removed inheritance from
BLEServerCallbacksandBLECharacteristicCallbacksinBleManager
- Changed
croasterIntervaltype tounsigned longfor consistency inbroadcastData - Updated git clone URL to use SSH format in README files
- Updated pin definitions
- Refactored display output and WiFi handling
- Renamed target directory and file for clarity
- Removed unused library
- Updated pin definitions and refactored code
- Minor bump; version consistency update
- Added Croaster Arduino sketch (
.ino) and updated conversion script - Updated
copy_to_ino.shto generate the Arduino sketch; implemented BLE server functionality - Added conversion script for
main.cppandCroaster.h; refactored BLE characteristic handling
Croasterclass with sensor integration, temperature conversion, and JSON data handling- LED blinking functionality based on WiFi and BLE connection status
- BLE server functionality (
BleManager)
- Updated serial communication speeds and flash size in
platformio.ini - Refactored BLE data handling to use
Stringtype - Updated Croaster class to use new MAX6675 library
- Adjusted pin definitions for new hardware
- Enhanced dummy data handling
- File conversion script (
copy_to_ino.sh) using Bash for Arduino sketch generation - Dedicated
src/directory structure for modular C++ source files
- Replaced
TempsManagerwithCroasterCoreacross the codebase - Modularized codebase:
BleManager,WiFiManagerUtil,WebSocketManager,DisplayManager,CroasterCore - Updated
DisplayManagermethods for improved data handling and display updates - Replaced Dart file copying logic with a Bash script
- Initial project commit with ESP32-based BLE coffee roaster monitor (2021-02-07)
- Arduino
.inofile support - PlatformIO configuration (
platformio.ini) for ESP8266 and ESP32 - Basic Croaster class with sensor integration and JSON data output
- README and documentation (English)
- Artisan Roaster Scope connection instructions
- Updated project from Arduino-only to PlatformIO build system
- Updated to production dummy data settings
- Progressively enhanced display output, WiFi handling, and BLE connectivity
- Updated README multiple times for wiring diagrams, hardware components, and connection guides
For full commit history, run:
git log --oneline