Skip to content

Releases: PrintStructor/knomi-toolchanger

v1.1.0 - WiFi Improvements & Pre-compiled Binaries

03 Dec 07:14

Choose a tag to compare

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/restart

Benefits:

  • 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.bin

Firmware-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

🔗 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 mode
  • POST /api/wake - Wake from sleep
  • GET /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_XXXXX WiFi 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


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

28 Nov 18:27

Choose a tag to compare

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

  1. Download the firmware:

    • firmware_knomiv2_v1.0.0.bin - Main firmware
    • littlefs_v1.0.0.bin - Filesystem with GIFs
  2. 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
  3. 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


🛠️ 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:

Buy Me A Coffee


📄 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