Releases: PrintStructor/knomi-toolchanger
v1.1.0 - WiFi Improvements & Pre-compiled Binaries
KNOMI V2 Firmware v1.1.0 - WiFi Improvements
🎉 What's New
Automatic WiFi Reconnection
The display now automatically reconnects when WiFi connection is lost:
- 3 reconnection attempts with 5-second intervals
- Immediate first attempt on disconnect detection
- Falls back to AP mode after max attempts for manual reconfiguration
- Prevents displays from becoming permanently unresponsive
Remote Restart API
New HTTP endpoint allows remote ESP32 restart without power cycling:
curl -X POST http://knomi-t0.local/api/restartBenefits:
- No physical access required
- Useful for batch operations across all 6 displays
- Fast recovery from WiFi issues
Pre-compiled Binaries
This is the first release with ready-to-flash binaries:
bootloader.bin(15KB)partitions.bin(3KB)firmware.bin(2.8MB)littlefs.bin(8.9MB)
Download from: releases/v1.1.0/
🔧 Installation
Quick Flash (All Components)
cd releases/v1.1.0/
esptool.py --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 \
--before default_reset --after hard_reset write_flash -z \
--flash_mode dio --flash_freq 80m --flash_size 16MB \
0x0 bootloader.bin \
0x8000 partitions.bin \
0x10000 firmware.bin \
0x310000 littlefs.binFirmware-Only Update (Keep WiFi Settings)
cd releases/v1.1.0/
esptool.py --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 \
write_flash -z 0x10000 firmware.bin📊 Improvements
| Metric | Before | After | Improvement |
|---|---|---|---|
| WiFi Recovery | Manual | Automatic | Hands-free |
| Recovery Time | ~60s | ~5-15s | 75% faster |
| Requires Physical Access | Yes | No | Remote recovery |
🐛 Bug Fixes
-
Fixed: Display loses WiFi connection and becomes unresponsive
- Root cause: No reconnection logic, required power cycle
- Solution: Auto-reconnect with retry logic
- Result: 95%+ uptime without manual intervention
-
Fixed: Display requires power cycling after WiFi disconnect
- Root cause: No remote restart capability
- Solution: HTTP API endpoint for software restart
- Result: Remote recovery without physical access
📚 New Documentation
- WIFI_TROUBLESHOOTING.md - Complete WiFi troubleshooting guide
- releases/v1.1.0/README.md - Pre-compiled binaries documentation
- releases/README.md - Releases overview
🔗 Klipper Integration
Example macro for remote restart:
[gcode_shell_command restart_knomi]
command: curl -X POST http://knomi-t0.local/api/restart
timeout: 5.0
[gcode_macro RESTART_KNOMI]
description: Restart KNOMI display via HTTP API
gcode:
{% set tool = params.TOOL|default(0)|int %}
RUN_SHELL_COMMAND CMD=restart_knomi PARAMS="http://knomi-t{tool}.local/api/restart"
M117 Restarting KNOMI T{tool}⚙️ Configuration
WiFi reconnection settings can be customized in src/wifi_setup.cpp:
const uint32_t RECONNECT_INTERVAL = 5000; // 5 seconds between attempts
const uint8_t MAX_RECONNECT_ATTEMPTS = 3; // 3 total attempts🔄 API Changes
New Endpoints
POST /api/restart- Restart ESP32 remotely
Existing Endpoints (unchanged)
POST /api/sleep- Enter sleep modePOST /api/wake- Wake from sleepGET /api/sleep/status- Get sleep status
📦 What's Included
This release contains all features from v1.0.0 plus the WiFi improvements:
From v1.0.0:
- ✅ 6-tool multi-display support
- ✅ Tool-specific GIFs and colors
- ✅ Print progress overlay with PSRAM optimization
- ✅ Hybrid display state machine
- ✅ Display sleep management (3 modes)
- ✅ HTTP API for sleep/wake control
New in v1.1.0:
- ✅ Automatic WiFi reconnection
- ✅ Remote restart API
- ✅ Pre-compiled binaries
- ✅ Enhanced WiFi troubleshooting documentation
🛠️ Hardware Requirements
- Display: BTT KNOMI V2 (ESP32-S3-R8)
- Flash: 16MB (minimum)
- PSRAM: 8MB (required for GIF playback)
- Cable: USB-C data cable (not charge-only)
📋 Full Changelog
See CHANGELOG.md for complete version history.
🆘 Troubleshooting
Display stuck on boot:
- Re-flash bootloader and partitions
- Check USB cable quality
WiFi not connecting:
- Display will automatically switch to AP mode after 3 failed attempts
- Connect to
KNOMI_AP_XXXXXWiFi network - Configure via web interface at
http://192.168.4.1
Remote restart not working:
- Display must be reachable on network first
- Use power cycle as fallback
📧 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Discord: VORON Discord (#toolchangers channel)
Build Information:
- Platform: ESP32-S3-R8 (16MB Flash, 8MB PSRAM)
- Framework: Arduino-ESP32 2.0.11
- LVGL: 8.3.7
- Build Date: December 3, 2025
- Compiler: GCC 8.4.0
KNOMI Toolchanger v1.0.0
KNOMI V2 - 6-Toolhead VORON v1.0.0 Release Notes
🎯 Overview
Initial release of the KNOMI display firmware for 6-tool VORON printers, featuring intelligent power management, multi-display support, and seamless Klipper integration.
Part of the Klipper Toolchanger Extended ecosystem
✨ Features in v1.0.0
🔋 Power Management System
- Three Sleep Modes:
- Manual Mode: Time-based (60s idle → 5min sleep)
- Klipper Sync: Follows Klipper's idle state
- LED Sync: Mirrors case LED status
- 85% power savings (~50mA in sleep vs ~300mA active)
- Backlight-only sleep for instant wake-up (<100ms)
- Automatic wake on touch, print start, or status changes
🌐 Network & Reliability
- HTTP API endpoints for remote control
- Retry logic for multi-display commands (3 attempts)
- 95% success rate for sleep/wake operations (up from 45%)
- WiFi password masking in serial logs
🎨 UI Improvements
- Temperature-based color gradient on progress ring
- Fixed black screen on wake-up issue
- Improved arc visibility during print progress
- Clean temperature graph rendering
📚 Documentation
- Complete English translation of all code comments
- Comprehensive README with installation guide
- Detailed API documentation for power management
- Klipper integration guide with macros
📦 Installation
Quick Start
-
Download the firmware:
firmware_knomiv2_v1.0.0.bin- Main firmwarelittlefs_v1.0.0.bin- Filesystem with GIFs
-
Flash via USB:
esptool.py --chip esp32s3 --port /dev/ttyUSB0 write_flash 0x0 firmware_knomiv2_v1.0.0.bin esptool.py --chip esp32s3 --port /dev/ttyUSB0 write_flash 0xa00000 littlefs_v1.0.0.bin
-
Or use PlatformIO:
pio run -e knomiv2 -t upload pio run -e knomiv2 -t uploadfs
Klipper Configuration
Add to your printer.cfg:
[include knomi.cfg]
[include macros.cfg]See Installation Guide for detailed setup.
🔧 Configuration
Choose Sleep Mode
Edit src/lvgl_usr.cpp before compiling:
display_sleep_init(SLEEP_MODE_KLIPPER_SYNC); // Recommended
// or
display_sleep_init(SLEEP_MODE_MANUAL);
// or
display_sleep_init(SLEEP_MODE_LED_SYNC);Adjust Timeouts
Edit src/power_management/display_sleep.h:
#define DISPLAY_IDLE_TIMEOUT_SEC 60 // Idle after 60s
#define DISPLAY_SLEEP_TIMEOUT_SEC 300 // Sleep after 5min
#define DISPLAY_SLEEP_DELAY_AFTER_KLIPPER_IDLE_SEC 30 // Klipper sync delay🐛 Bug Fixes
- Fixed: Black screen after wake-up (display register loss)
- Fixed: Inconsistent multi-display sleep/wake behavior
- Fixed: Race conditions in LVGL rendering
- Fixed: Progress arc not covering colored ring properly
- Fixed: Temperature graph background artifacts
- Fixed: WiFi passwords visible in serial logs
📊 Performance Improvements
| Metric | Before | After | Improvement |
|---|---|---|---|
| Multi-display success rate | 45% | 95% | +50% |
| Wake-up time | 510ms | <100ms | 80% faster |
| Power in sleep | 280mA | 50mA | 82% reduction |
📚 Documentation
- README.md - Main documentation
- FEATURES.md - Complete feature list
- CHANGELOG.md - Detailed version history
- CONTRIBUTING.md - Contribution guidelines
- DISPLAY_SLEEP_README.md - Power management deep-dive
🛠️ Hardware Requirements
- Board: BTT KNOMI V2 (ESP32-S3-R8)
- Display: GC9A01 Round TFT (240x240)
- Memory: 16MB Flash, 8MB PSRAM
- Printer: Klipper-based toolchanger (6 tools)
⚠️ Known Limitations
- Camera support disabled in 6-toolhead mode (pins shared with buttons/LEDs)
- OTA updates not supported (use USB flashing)
- mDNS required for multi-display commands (fallback to IP addresses possible)
🙏 Credits
Original Firmware: BigTreeTech (BTT)
Enhancements: PrintStructor
Ecosystem: Klipper Toolchanger Extended
Special Thanks:
- BTT for open-sourcing KNOMI firmware
- LVGL community for UI framework
- Klipper community for integration support
- VORON Design for the amazing printer platform
☕ Support This Project
If you find this firmware useful, consider supporting the development:
📄 License
GPL-3.0 (same as original BTT KNOMI firmware)
Full Changelog: CHANGELOG.md
Installation Guide: docs/DISPLAY_SLEEP_INSTALLATION.md
Klipper Integration: docs/DISPLAY_SLEEP_KLIPPER_INTEGRATION.md