Croaster
Open-source temperature monitoring system built on ESP-based microcontrollers. Designed for coffee roasting, provides connectivity via WiFi and BLE for remote monitoring and control.
Install / Use
/learn @IiemB/CroasterREADME
☕ Croaster - Open Source Coffee Roaster Monitor
Croaster is a lightweight, open-source temperature monitoring system built on ESP-based microcontrollers. Designed for coffee roasting, it reads from two thermocouple sensors and displays real-time data on an OLED screen. Croaster also provides connectivity via WiFi (ESP8266/ESP32) and BLE (ESP32 only) for remote monitoring and control.
🚀 Features
- Supports NodeMCU ESP8266 (WiFi only)
- Supports ESP32C3 Super Mini (WiFi & BLE)
- Real-time monitoring of two MAX6675 sensors (ET and BT)
- Visual output on a 128x64 OLED display (SSD1306, I2C)
- WiFi communication via WebSocket, compatible with:
- BLE communication (ESP32 only) for the ICRM app
- Custom command system via a centralized
CommandHandlerclass - Easily extendable with user-defined commands
🧩 Hardware Components
- 1× NodeMCU ESP8266 or ESP32C3 Super Mini
- 1× 128x64 OLED display (SSD1306, I2C)
- 2× MAX6675 thermocouple sensor modules
- 2× K-type thermocouple probes
🔌 Wiring Diagram
| |NodeMCU ESP8266|ESP32C3 Super Mini| |:---|:---:|:---:| |OLED Display|GND →GND|GND → GND| | |VCC → 3.3V|VCC → 3.3V| | |SCL → D1|SCL → GPIO9| | |SDA → D2|SDA → GPIO8| |||⠀| |ET Sensor|GND → GND|GND → GND| | |VCC → 3.3V|VCC → 3.3V| | |SCK → D5|SCK → GPIO4| | |SO → D7|SO → GPIO5| | |CS → D8|CS → GPIO6| |||⠀| |BT Sensor|GND → GND|GND → GND| | |VCC → 3.3V|VCC → 3.3V| | |SCK → D5|SCK → GPIO4| | |SO → D7|SO → GPIO5| | |CS → D6|CS → GPIO7|
🛠 Software Highlights
- Written in C++ with the PlatformIO build system
- Modular architecture separating BLE, WebSocket, display, and sensor logic
- CommandHandler class:
- Manages all incoming BLE/WebSocket JSON commands
- Easily customizable for user-defined actions (e.g.
restart,erase, etc.)
🔧 How to Build and Upload
✅ PlatformIO (recommended for ESP8266)
- Install PlatformIO
- Clone the repository:
git clone git@github.com:IiemB/Croaster.git
cd croaster
- Select your board in
platformio.ini(ESP8266 only) - Upload the firmware:
pio run -t upload
✅ Arduino IDE (required for ESP32C3)
- Run the conversion script:
./copy_to_ino.sh
-
Open
croaster-arduinofolder in Arduino IDE -
Select your board:
- ESP8266 → NodeMCU 1.0 (ESP-12E)
- ESP32C3 → Makergo ESP32C3 (ESP32C3 Super Mini is not yet supported by PlatformIO)
-
Select partition
Huge APP(ESP32C3 only)[!NOTE] this partition doesn't support OTA via ICRM App. To handle this, you can follow this steps.
🔗 WiFi Setup Guide
To connect Croaster to your WiFi network, you can follow this quick video guide: ➡️ How to Connect to WiFi - YouTube
📡 Communication Overview
-
WebSocket (WiFi):
- Connects with Artisan Roaster Scope
- Also supports the ICRM app (Android only)
-
BLE (ESP32 only):
- Connects exclusively with the ICRM app (Android only)
🔌 How to Connect Croaster with Artisan
You can connect your Croaster device to Artisan using either a direct WiFi connection or through your home/local WiFi network.
🖥️ Option 1: Direct Connection (Croaster as Access Point)
- On your computer, connect to the WiFi network broadcasted by your Croaster device. (It will appear as something like
[XXXX] Croaster-XXXX) - Open Artisan, go to Config → Port.
- Set the configuration as shown below:

🌐 Option 2: Same WiFi Network (Croaster joins your WiFi)
If your Croaster is already connected to your home WiFi, and your laptop is on the same network:
- Open Artisan, go to Config → Port.
- Enter the IP address assigned to Croaster (you can find this on the Croaster OLED screen or serial log).
- Use the configuration shown here:

📘 License
MIT License — free for personal and commercial use. Contributions welcome!
❤️ Contributing
Pull requests and feedback are welcome!
Related Skills
tmux
349.0kRemote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
diffs
349.0kUse the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
terraform-provider-genesyscloud
Terraform Provider Genesyscloud
blogwatcher
349.0kMonitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
