CYD pendant for 32bit GRBL1.1.f CNC (aka 3018)

I had built a Marlin based CNC with the TFT35 display and I loved the setup. I moved and the place no longer had the space for the 24x48 router, so I just bought a 3018 cnc. It has an offline controller, but it is almost useless for me. I tought why not make a pendant the way I want it, do what I think is useful for me, without any propietary firmware b.s.

So here it is the result: Should connect and comunicate with (my guess) any GRBL CNC thru the serial port.

General top view

Side view with micro SD card

Touch pen

Bottom

Main menu

SD card menu

Running screen

Live override

Instant feed hold

JOG menu

Probe menu

MDI menu

Firmware developed in Arduino IDE.

See below my project requirements

================================================================================

Wired CNC Pendant for grbl 1.1.f connected to serial port

Hardware used:

Hosyond 3.5’’ 320x480 Resistive Touch Screen Display ESP32-WROOM-32E with WiFi+BT, ST7796U Driver LCD TFT Screen Module (CYD):

https://www.amazon.com/dp/B0D93MBWC2?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1

100PPR Manual Pulse Generator 60mm CNC Encoder with 6 Terminals

https://www.amazon.com/dp/B07G9FVHM8?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1

momentary push buttons: Red for feed hold/ Green for run

https://www.amazon.com/dp/B01E38OS7K?ref_=ppx_hzsearch_conn_dt_b_fed_asin_title_2

General requirements:-the display in portrait mode-
1)run code offline from sd card,file names “.nc”;“.NC”;“.gcode”;“.GCODE”;“.txt”;“.TXT”;
display the files, scroll to select, display the file name and confirm the selection,then press “RUN”. After program completed return to main menu
a) Red momentary button = feed hold - when button is pushed first time; when pushed a second time “stop”;
b) Green momentary button: When on feed hold “resume”; when program running toggles between feed and spindle speed override
c) rotary encoder: when program running override the selected by 1% per click. The display has reset to 100% touch button for each the feed and speed
After stop return to main menu
2)Jog:-encoder enabled, momentary push buttons disabled-
a)display top horizontally: “G54”;“G55”;“G56”;“G57”;“G58”; touch selection, highlight selected - will set the work coordinate
b)display left vertically: “X” “0”; “Y” “0” ; “Z” “0” ; touch selection,separate on letters (axes) and zeros; highlight selected axis
When X is highlighted the axis will move on X. When “0” is touched next to “X” zeroes x axis, sets the offset of the highlighted work offset on top of screen;
Similar the other axes
c)display right vertically: “.01”;“.1”;“1”;“10”; touch selection, highlight selected
d)display middle upper of the screen: current work coordinate DRO position X; Y; Z vertically
e)display middle lower the screen: current machine coordinate DRO position X; Y; Z vertically
f)bottom center: “MAIN MENU” -touch, return to main screen
3)Probing: -encoder disabled,momentary push button disabled-
Display Left center: “X+” “0”; -highlight individually, when X+ selected will do the X+ touch macro, when “0” selected after touch, will set X zero of the active work offset
Display Right center: “X-” “0”;
Display Bottom center: “Y+” “0”;
Display Top center: “Y-” “0”;
Display Middle of screen: “Z-” “0”;
bottom center: “MAIN MENU” -touch, return to main screen
4)MDI (manual data input):- encoder disabled,momentary push button disabled-
display one row blank, keyboard with only the GRBL specific caracters and nombers, enter to execute
bottom center: “MAIN MENU” -touch, return to main screen
5)HOME- sends “$H” then returns to the main menu - encoder disabled,momentary push button disabled-
6)UNLOCK- sends “$X”-
MAIN MENU display:
Top left vertically: current work coordinate system, current position x, y, z
Top right vertically: machine coordinate system, current position x, y, z
vertically centered “SD-CARD”; “JOG”; “PROBE”; “MDI”; “HOME”+ “UNLOCK”; - only these are selectable by touch

Rotary encoder,2 Momentary push buttons (Red and Green) and CNC machine connection to any suitable IO pin.
WiFi and Bluetooth should be disabled

================================================================================

If anybody is interested I can post the .ino file for further customization, or the necessary .bin files.

Also I can provide the pendant 3D model in native Solidworks, or exported to STEP, parasolid, etc, for 3d printing STL models.

Great project. I am interested in info and step

I don’t know if I can upload here, but if you send me an email address I can provide you with all the information. I just want to be sure, you wanted the .ino file for Arduino IDE?

You can upload here if you put it in a zip file.

Yes, ino file please and also step if possible.

I just now did see that auto correct changed ino in info in the first message

DIY CNC pendant.zip (5.4 MB)

I added a slide switch to cut the +5v from the serial port of the main board when the machine need to use the USB for communication, so no need to plug in and out the pendant cable.

The 3D printed parts I made from PETG, and the strain relief for the cable from

SUNLU TPU Filament 1.75mm,(1kg,Black,95a TPU).

The switch is

Amazon.com: uxcell 10 Pcs High Knob 6 Pin 3 Position DPDT Panel Slide Switch 0.5A 50V DC : Industrial & Scientific

The brass inserts are

uxcell knurled Insert Nuts, 120Pcs M3 x 4mm L x 5mm OD 3D Printing Brass Nuts Female Threaded Inserts Brass Heat Set Insert Embedment Nut: Amazon.com: Industrial & Scientific

The board is using the TFT_eSPI library, I used the configuration files in the attached folder. Feel free to ask any question you might have.

With the switch implemented