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.
- 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
- Flexible Connectivity - WiFi (WebSocket), ESP-NOW (no network needed), or wired UART / USB CDC, with automatic status reporting
- Reduced-Axis Machines - Turn off unused axes per machine; X-only machines get a single Main tab with saved positions
- 3D Printed Case and Stand - Print-ready files for an Advance 7" case with room for a large battery, plus a table stand
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)
Download the latest firmware from Releases and flash using:
- esptool.py:
esptool.py --chip esp32s3 --port COM6 write_flash 0x10000 firmware.bin
Refer to the Development Guide for additional instructions.
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), or a 3D printed case with room for much larger batteries, plus a matching table stand
⚠️ ESP32-S3 ONLY - ESP32-P4 versions are NOT supported- Hardware Versions 1.2 through 1.5 Supported
- All versions: DIP switches S0 and S1 must both be set to position 1
- Version 1.2:
⚠️ Untested and may no longer be supported in a future release - use v1.2 firmware from web installer - Versions 1.3, 1.4 and 1.5: Fully tested and recommended. They use the same firmware: v1.4 only changed the boot/reset buttons and v1.5 only changed the silkscreen
- 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)
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)
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
- Desktop Simulator - Run and develop the UI on your PC, connected to a real FluidNC controller
- 3D Printed Case and Stand - Print files, hardware list and assembly for the Advance display
- Power on the device
- On the "Select Machine" screen, click the Edit button.
- Click the "Add" button to add a new machine:
- Name
- Connection: WiFi, ESP-NOW, UART or USB CDC (UART is Advance only). See the Configuration Guide for ESP-NOW pairing, wiring and the FluidNC settings each one needs.
- For WiFi:
- WiFi SSID and Password (machine-specific)
- FluidNC IP address or hostname (e.g. 192.168.0.1 or fluidnc.local)
- WebSocket port (default: 80)
- 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.
Contributions are welcome! Please read our Development Guide for:
- Code architecture and design patterns
- Building and testing
- Submitting pull requests
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.
This project is licensed under the MIT License - see the LICENSE file for details.
- FluidNC - CNC control firmware
- LVGL - Embedded graphics library
- LovyanGFX - Hardware-accelerated display driver
- Issues: GitHub Issues
