REVTURN by JMSCNC
[ REVTURN ]

REVTURN by JMSCNC

A touch-screen CNC lathe controller on an ESP32.

ProtoTRAK / Fanuc style conversational control, built into the grblHAL firmware and served from the lathe itself. Open it on a phone, a tablet by the machine or a PC. No app, no sender, no cloud.

The REVTURN RUN screen: one-line DRO with set and actual speeds, overrides, live backplot and the program
[ WHAT IT IS ]

A real lathe control, not a g-code sender

REVTURN turns an ESP32 into the brains of a CNC lathe. The motion runs on grblHAL, the proven open-source CNC firmware. On top of it sits a full control screen, served by the ESP32 over WiFi: big DRO, HOLD / GO / STOP always on screen, conversational cycles you fill in like a ProtoTRAK, programs, a live backplot and every machine setting, all in one look.

NO PC

The screen lives in the controller's flash. Any browser on the shop WiFi is the control panel: phone, tablet, laptop, all at once.

SPINDLE OR C AXIS

The chuck motor is a stepper: a spindle in rpm under M3 / M4, or a rotary C axis in degrees for threading, indexing and polygons.

THREADS WITHOUT AN ENCODER

Threading moves Z and C together in lockstep, so the pitch is exact without a spindle encoder.

OPEN SOURCE

Firmware, screen, printed parts and every FreeCAD source are on GitHub. Build your own, or buy a board ready to wire.

[ FEATURES ]

Built like a machine control

CONVERSATIONAL CYCLES (BETA)

Face, turn (taper, chamfer, radius), bore, thread, groove / part-off, peck drill, polygon flats and index. Fill in the form, GO previews the toolpath, GO again runs it. Not cut-tested on real stock yet: DRY RUN first.

PROGRAMS

Chain cycles and raw g-code steps into a program, save it on the lathe, import Fusion 360 lathe posts. Dry run (air cut) first if you like.

LIVE BACKPLOT

Watch the tool trace over the planned path with a live tool marker, and a one-line DRO across the top of RUN with set and actual feed and rpm.

HOLD / GO / STOP

Always on screen, on every screen. Feed, spindle and rapid overrides. Alarms explained in plain words, with RESET and UNLOCK.

TOOL TABLE

T1 to T8 with touch-off (offsets from T1), picked with one tap, and stored stroke limits. Saved on the lathe, so every screen shares them.

JOG ANY WAY

Step or continuous jog from the pad, the keyboard arrows (Page Up / Down for the chuck), or a WiFi jog-wheel pendant.

EVERY SETTING

SETTINGS reads grblHAL's own list: all 128 settings in 19 groups, with the right control for each, help text, search, backup and reboot.

MANY SCREENS

Any number of phones and tablets at once. Any of them can HOLD or STOP; a running program shows live on all of them.

SHORT-WAY HOME

The chuck goes back to C zero the short way at the end of a program instead of unwinding hundreds of turns.

WIFI THAT STAYS UP

Rejoins the network by itself after a drop. Find it at revturn.local. Crash-safe step timing for the stepper spindle.

[ BUY ONE ]
The REVTURN controller board: an ESP32 on a screw-terminal breakout, wired up on the REVTURN lathe

The board running the REVTURN lathe, wired to its drivers.

REVTURN controller board, preflashed

$125 + $9 shipping (US)

A bare ESP32 on a screw-terminal breakout board, flashed with the REVTURN firmware and screen and tested before it ships. Wire it to your stepper drivers, power it up, open the screen.

  • ESP32 DevKit (WROOM-32, 4 MB, USB) on a screw-terminal breakout board
  • REVTURN firmware (grblHAL) and the REVTURN screen, flashed and tested
  • Set up as a lathe: X, Z and the chuck as spindle or C axis
  • Not included: stepper drivers, motors, power supply or the lathe

Wiring (screw terminals)

SignalESP32 pinGoes to
X step / dirGPIO 16 / 17Cross slide driver (TB6600 or similar)
Z step / dirGPIO 21 / 22Carriage driver
C step / dirGPIO 18 / 19Chuck driver (spindle or C axis)
Stepper enableGPIO 23Driver enable inputs (shared)
PWM spindleGPIO 4 (PWM), 13 (enable)Optional router / live tool
Limits (spare)GPIO 32, 33, 27X, Y, Z limit inputs, not wired by default

BETA: the conversational cycles have not been cut-tested on real stock yet. Preview first (the first GO only previews), run DRY RUN in the air, set your stroke limits and turn LIMITS on, and do a scratch pass before threading to check the thread direction.

Every machine is different: after wiring, set steps per mm (or per degree), max rates and acceleration for your screws, belts and motors in SETTINGS. The GitHub page has the settings from the REVTURN lathe as a starting point.

[ BUILD YOUR OWN ]

Free and open: flash it yourself

  1. Get an ESP32 DevKit (WROOM-32, 4 MB) and wire it to your drivers using the table above.
  2. Build and flash the firmware from GitHub with PlatformIO: pio run -e revturn_lathe -t upload.
  3. Connect it to your shop WiFi, then open http://revturn.local/ on any phone, tablet or PC.
  4. Set your machine up in SETTINGS (steps, rates, lathe mode) and your tools in SET UP. Make chips.

The firmware is grblHAL with the REVTURN changes, under the GNU GPL v3. Everything REVTURN (firmware changes, screen, tools, printed parts) is GPL v3 or later; keep the credit “REVTURN by JMSCNC”. Everything is on GitHub.

[ THE LATHE ]

The junk-bin lathe it was built on

REVTURN grew up on a 3D-printed mini lathe put together from what was laying around the shop: rails from a 3018 CNC upgrade and a scrapped 3D printer, an AliExpress headstock, a Cricut stepper and a StepperOnline NEMA 23 on the chuck. Every printed part is an original FreeCAD design, with the source on GitHub so you can change a number and rebuild it for your own parts.

First test run with all 3 motors linked: X, Z and the chuck in synced moves, nonstop spindle speed and direction changes, and a C-axis threading cycle.

R9 cross slide drawings
R9 cross slide. Long X travel, rides the printed saddle on the Z rails.
Bed end drawings
Bed ends. Clamp both Z rails and carry the Z screw bearings.
Inline X motor mount, both options
Inline X motor mount. NEMA 17 in line with the X screw on split clamp collars.
Printed tool post
Tool post. Height-adjustable, swivels to 0, 45 and 90 degrees, all printed.
Solid quarter inch tool holder
Solid 1/4 in holder. Clamp screws as close to the cutting point as they go.
Tool post at all three angles
Three stops. 0, 45 and 90 degrees, or anywhere in between.
[ SHAKE AND SING ]

Every motor, every note, measured

A stepper sings at its full-step rate, so every feed is a musical note. We laid a phone on the cross slide (phyphox, about 400 readings a second, over WiFi) and walked each motor up in quarter tones from C2, then played 19 chords with all three motors at once, to find out where the scary sounds live.

MotorPlaysPitchSmooth notes
X (cross slide)C2 to G#5, 3.8 octaves21.17 Hz per ipmD2, D#2, D3, F#3 to A#3, F#5 to G#5
Z (carriage)C2 to C#5, 3.2 octaves25.56 Hz per ipmC2, and D#4 to C#5 (11 in a row)
C (chuck)C2 to E7, 5.4 octaves10 Hz per rpm21 notes, most of F3 to D5

Z IS THE SCARY ONE

About 3 m/s² across 4 to 10 ipm, right at its own pitch. Smooth from 12 ipm up. 32x microstepping did not change it: that is the TB6600 and the motor.

X SINGS AT HALF PITCH

Most of X's shake sits at half its step rate, the sign of a driver feeding its two coils unevenly. Worst at 22.7 to 25 ipm.

THE CHUCK IS QUIET

A sixth of X and a fourteenth of Z. Above about 18 rpm it rings the frame at 25 to 30, 50 to 55 and 90 to 110 Hz.

CHORDS ADD NOTHING SCARY

All the motors together shake about as hard as the loudest one alone. Beats wobble, they don't hit harder.

Z axis vibration spectrum for every quarter tone
Z waterfall. One row per quarter tone, bright = strong. The diagonal lines are the motor's pitch, folded at 200 Hz.
X axis vibration spectrum for every quarter tone
X waterfall. The brightest line is half the motor's pitch.
Spindle vibration spectrum for every quarter tone
Chuck waterfall. The fixed vertical bands are the lathe frame ringing, not the motor.
Shake for each of the 19 chords
Chords. Loudest: all three motors at their resonance together.
[ BUY ME A COFFEE ]
The JMSCNC monkey

Like REVTURN? Keep it turning.

REVTURN is free and open source. If it helped you, or you just like watching junk turn into a lathe, a coffee keeps the designs and the updates coming.

☕ BUY ME A COFFEE