jes notes Index Gallery . Clavichords Cyclecar Dehumidifier Financial Data FreeCAD MSVA Philosophy Signed Distance Functions Shaft passers Snap issues

2026-10-21

Last modified: 2026-10-21 21:18:40

< 2026-10-20 2026-10-22 >

FluidNC on Arduino Nano ESP32

The plan is to flash FluidNC on to an Arduino Nano ESP32 and then connect to it over WiFi and "pretend" to run a job, and do this near the plasma cutter, and see if it is still happy after repeatedly lighting the arc.

So how does one get FluidNC on to an Arduino Nano ESP32?

There is a web-based installer https://installer.fluidnc.com/ but Firefox is not supported.

Easier to use the CLI method or Chromium?

Download the ...-posix.zip file from https://github.com/bdring/FluidNC/releases/latest

Put the ESP32 into bootloader mode by shorting B1 to GND and then pressing the rest button and then removing the short.

Then use install-wifi_s3.sh from the zip file to install FluidNC.

Then use install-fs_s3.sh to install the web interface.

And now I can connect to the WiFi using my phone but I thought it was meant to captive-portal-redirect me to the WebUI, but it just acts like there's no internet.

[http://192.168.0.1/](http://192.168.0.1/`) is the web interface.

It says "File index.html.gz is missing, please upload it". I thought install-fs_s3.sh was meant to do this. I guess try that one again.

Tried again and still no good.

Codex noted that the script writes to 0x3d0000 but the partition table puts the flash at 0x610000, it fixed it for me and now is good.

Let's try and contribute that upstream shall we...

I can't find an existing issue or pull request that appears to relate to this.

Created https://github.com/bdring/FluidNC/pull/1928

Now, onwards, I need to upload a gcode file and set it running and then go and mess about with the plasma cutter.

Do I need an SD card in order to upload a gcode file?

No, you can go to the "FluidNC" tab, then the green folder icon, and upload a file there.

OK, I've uploaded a demo.nc to the internal filesystem, now how do I run it?

Apparently need to type $LocalFS/Run=/demo.nc into the console. Unclear why it is not $Run=LocalFS/demo.nc.

Sweet, looks to be working! To the garage...

I plugged the Arduino Nano ESP32 into the laptop USB port just for power, and the ESP32 reset as soon as I lit the arc. Will now try a USB power adapter instead but not super hopeful.

...It works!

I kept lighting the arc over and over again, probably more than 100 times, and the demo program ran all the way to the end.

A couple of observations:

But I think this is enough to proceed with.

Plan now is:

So the breakout board will be made on probably either stripboard or copper-dot-board.

Oh, I forgot the ESP32 outputs are 3.3v, that's annoying.

The Allegro A4988 drivers accept 3.3v.

I already have a 74HCT245 and 74LS244, both of which can do level-shifting. Need 5v supply but I have 12v supply from old 3d printer and LM7805.

The output terminals in order on the board are:

And A0 and A2 are taken out directly (i.e. no buffer or level shifter) to another screw terminal not currently used, I'm planning to use it for the emergency stop.

How do I configure FluidNC to work with this? Apparently by uploading a config.yaml to its local storage.

Annoyingly, the easiest way for me to get a file on to it is to send it to myself on Signal, download it on my phone, connect my phone to the WiFi of the ESP32, and then upload using the web interface on the phone.

Hmm, I think the ESP32 may not be working when plugged into the breakout board I made and powered over USB. Is connecting the USB VIN to the input of the LM7805 a problem?

I reset and ran $Config/Dump and it looks to be using the pins I asked for.

So I guess next is wire up the 12v power supply and a stepper motor and see if it works? And then see if it still works near the plasma cutter.

OK, wired it all up but the stepper driver appears not to be enabled, the motor has no more resistance than when it is unplugged. The "EN" pin is tied to GND, is that right?

This with the A4988 driver and old 3d printer stepper.

Ah, I forgot to connect VDD to +5v.

And apparently SLEEP and RESET need to be pulled high.

Pulling RESET high has enabled it!

And sweet, the jog control now works.

So tomorrow I need to move this out to the garage, check it still works, then run the demo.nc program again and keep starting the plasma cutter and see if it still works. Fingers crossed it just straightforwardly does, and then I can build a proper electrical cabinet.

I think I have a spare relay module inside the cabinet for the CNC milling machine, need to check that, if not then I'll need to order one.

< 2026-10-20 2026-10-22 >