FluidNC is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.
Wifi Search: Not all wiki content is linked via the navigation panel. Please use the search feature if you are not finding what you are looking for. You can also change the navigation panel to a file browser type interface to see all pages.
There is no need to compile the firmware. You use an installation script to upload the latest release of the firmware and then create config file text file that describes your machine. That file is uploaded to the FLASH on the ESP32 using the USB/Serial port or Wifi.
You can have multiple config files stored on the ESP32. The default is config.yaml, but you can change that with $Config/Filename=<myOtherConfig.yaml>
The intent is to maintain as much Grbl compatibility as possible. It is 100% compatible with the day to day operations of running GCode with a sender, so there is no change to the Grbl GCode send/response protocol, and all Grbl GCodes are supported. Most of the $ settings have been replaced with easily readable items in the config file.
FluidNC includes a built-in brower-based Web UI (ESP3D-WebUI) so you control the machine from a PC, phone, or tablet on the same Wifi network. WebUI is a separate project, but the FluidNC team maintains a separate fork with some enhancements - notably an alternative tablet mode that is optimized for use on a tablet computer, including a GCode visualizer - and with support for some FluidNC-specific features. The source code for our fork is at https://github.com/MitchBradley/ESP3D-WEBUI/tree/revamp
To use WebUI, install the wifi version of FluidNC, set FluidNC to connect to your local WiFi network, and browse to
The original Grbl is an awesome project by Sungeon (Sonny) Jeon. I have known him for many years and he is always very helpful. I have used Grbl on many projects.
The Wifi and WebUI is based on this project.
The FluidNC team thanks the following people for game-changing contributions to the code base:
https://github.com/odaki - wrote the I2S driver that enables output expansion. That feature was crucial for creating flexible controller boards that support multiple axes and different use scenarios, instead of having to make different boards to allocate the limited number of ESP32 GPIOs to different functions.
https://github.com/atlaste - wrote the code to configure FluidNC from a yaml text file, and taught us to use C++ effectively. The yaml-file configurability eliminates the need for every user to compile their own private version of FluidNC.
We have a Discord server for the support and development of this project.
This project requires a lot of work and often expensive items for testing. Please consider a safe, secure and highly appreciated donation via the PayPal or Github Sponsor links below.
When we provide support for cheap Chinese or DIY controllers it takes time away from FluidNC development. Those controllers are cheap because those sellers don't support them. You really should donate if we helped you.
If you donate and are on our Discord server, please let us know your Discord username. We can tag you as a sponser. This gives you a sponsor badge next to your name and hopefully encourages others to sponsor FluidNC.