FluidTouch
FluidTouch is a touch-screen CNC controller interface for the Elecrow CrowPanel 7-inch ESP32 display, designed to control FluidNC-based CNC machines with an intuitive LVGL-based UI featuring joystick control, file management, macros, and real-time machine monitoring.
Install / Use
/learn @jeyeager65/FluidTouchREADME
FluidTouch
A touchscreen CNC controller for FluidNC-based machines
FluidTouch provides an intuitive 800×480 touchscreen interface for controlling CNC machines running FluidNC firmware. Built on the Elecrow CrowPanel 7" ESP32-S3 HMI display with hardware-accelerated graphics and a responsive LVGL-based UI.

✨ Key Features
- Real-time Machine Control - Monitor position, state, feed/spindle rates with live updates from FluidNC
- Multi-Machine Support - Store and switch between up to 4 different CNC configurations
- Intuitive Jogging - Button-based and analog joystick interfaces with configurable step sizes
- Touch Probe Operations - Automated probing with customizable parameters for precise work coordinate setup
- Macro Support - Configure and store up to 9 file-based macros per machine
- File Management - Browse and manage files from FluidNC SD, FluidNC Flash, and Display SD card
- Settings Backup & Restore - Export settings to JSON, auto-import on fresh install, Clear All Settings option
- Power Management - Configurable display dimming, sleep, and deep sleep modes for battery operation
- Terminal - Execute custom commands and view FluidNC messages
- WiFi Connectivity - WebSocket connection to FluidNC with automatic status reporting
🚀 Quick Start
Option 1: Web Installer (Recommended)
The easiest way to install FluidTouch is using our web-based installer:
- Visit: FluidTouch Web Installer
- Click: "Install FluidTouch" button
- Connect: Your ESP32-S3 device via USB-C
- Done! Firmware flashes automatically in 30-60 seconds
Requirements: Chrome, Edge, or Opera browser (Web Serial API support)
Option 2: Pre-built Binaries
Download the latest firmware from Releases and flash using:
- esptool.py:
esptool.py --chip esp32s3 --port COM6 write_flash 0x10000 firmware.bin
Option 3: Build from Source
Refer to the Development Guide for additional instructions.
🖥️ Compatible Hardware
Elecrow CrowPanel 7" Basic ESP32-S3 HMI Display
- ESP32-S3-WROOM-1-N4R8 (4MB Flash + 8MB PSRAM)
- 800×480 TN RGB TFT LCD
- GT911 Capacitive Touch
- PWM Backlight Control
- External battery connector
- Buy on Elecrow ↗ (affiliate link)
Elecrow CrowPanel 7" Advance ESP32-S3 HMI Display ⭐ Recommended
- ESP32-S3-WROOM-1-N16R8 (16MB Flash + 8MB PSRAM)
- 800×480 IPS RGB LCD (superior image quality)
- GT911 Capacitive Touch
- I2C Backlight Control (STC8H1K28)
- Internal battery connector (JST PH 2.0mm 2-pin)
- Optional acrylic case with battery compartment (supports ~1200mAh LiPo batteries)
- ⚠️ ESP32-S3 ONLY - ESP32-P4 versions are NOT supported
- Hardware Versions 1.2 and 1.3 Supported
- Both versions: DIP switches S0 and S1 must both be set to position 1
- Version 1.2: ⚠️ Support is untested - use v1.2 firmware from web installer
- Version 1.3: Fully tested and recommended
- Case Note: When using acrylic case, install 6mm M3 screws in bottom mounting inserts to prevent accidental reset button presses
- Buy on Elecrow ↗ (affiliate link)
📖 Documentation
Detailed documentation is available in the docs/ folder:
- User Interface Guide - Complete UI walkthrough with screenshots
- Usage Instructions - Operating instructions and workflows
- Configuration - WiFi setup, machine configuration, and settings
- Development Guide - Building, debugging, and contributing
🔧 First-Time Setup
- Power on the device
- On the "Select Machine" screen, click the Edit button.
- Click the "Add" button to add a new machine:
- Name
- Connection (currently only Wireless is supported)
- WiFi SSID and Password (machine-specific)
- FluidNC IP address or hostname (e.g. 192.168.0.1 or fluidnc.local)
- WebSocket port (default: 81)
- Port 80 is used by FluidNC v4.0+
- Port 81 is used by WebUI v2 (FluidNC v3.x)
- Port 82 is used by WebUI v3 (FluidNC v3.x) - only allows one connection at a time but will switch cleanly between connections
- Click the "Save" button.
- Click the "Done" button.
- Click on the created machine.
🤝 Contributing
Contributions are welcome! Please read our Development Guide for:
- Code architecture and design patterns
- Building and testing
- Submitting pull requests
💙 Support Development
This project is provided free and open-source. Product links use affiliate codes that help offset development costs at no extra cost to you. Your support is appreciated but never required.
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- FluidNC - CNC control firmware
- LVGL - Embedded graphics library
- LovyanGFX - Hardware-accelerated display driver
📧 Support
- Issues: GitHub Issues
