Hi All,
(UPDATE! There’s now an official implementation, so check that out! FluidDial/docs/ESP-NOW.md at main · figamore/FluidDial · GitHub )
(Update: How is this different than the websocket implementation mentioned below? ESP-NOW is radio-to-radio protocol of its own. So the flaky-ass wifi network you’re running can die, and the FluidDial still works. This adds a third transport layer: now there’s UART (serial,) WiFi (websockets,) and ESP-NOW (serial over ESP-NOW radio protocol). I didn’t know if it was possible to have both a wifi connection AND ESP-NOW but, magically, it does work. The whole point of having a pendant for me was this direct connection reliability, as my machines love to disconnect for WiFi especially in AP mode, in search of the precious Internet)
With FluidNC 4.0.3 the async web server got me thinking… with ESP-NOW ( ESP-NOW Wireless Communication Protocol | Espressif Systems ) I could maybe do wireless serial comms over ESP-NOW to the FluidDial and the Jackpot. And do it simultaneously with the web UI which uses Wifi through my home router. Would it work? Was it crazy? Yes?
(That is the new FigUI GitHub - figamore/FigUI: Next-generation Web UI for FluidNC · GitHub running on my fork of the newest v4.0.3 FluidNC) Basically to make the FluidDial work you’ll just need a USB power supply and the green/red buttons, and add this to your config.yaml:
espnow_channel:
report_interval_ms: 100
Also, change this from I2S_STATIC to I2S:
stepping:
engine: I2S
To think of how many poor FluidDials met their maker due to accidental wiring mishaps… I dedicate this to their memory! It checks the UART first so it uses your RJ12 connection/hard wiring by default, so you can have both.
Hardware required is just the FluidDial and the buttons. I only have a Jackpot v1, but I assume it’ll work on the newer ones? If they mysteriously arrived at my doorstep I’d eagerly test!
I’ve only done initial testing but the code is available below. I’ll let the FluidNC team know but they may not have any interest since they have the websocket implementation (which, as I outline above, relies on a wifi connection.)
Oh and the ka-chunk in the video was something falling, not me breaking my Lowrider…
Now to make an enclosure that holds a battery… (actually, just a wall wart makes sense for those long sessions.)
Code:
(Be sure to build and upload the filesystem to get the fancy icon)






