This is a pendant using a 2432S028 "Cheap Yellow Display" (with built-in ESP32) and a CNC Handwheel encoder. It has the same capabilities and the same user interface as the M5 Dial Pendant. Compared to the M5 Dial Pendant, the CYD Dial Pendant
Refer to the M5 Dial Pendant wiki page for user interface documentation.
The supported part numbers for the display/ESP32 are 2432S028 (resistive touch) and JC2432W328C (capacitive touch). There are many listings for the resistive version on AliExpress, Amazon, EBay, Banggood, etc. The typical price is $10 from AliExpress and $20+ from Amazon or EBay.
The capacitive version is somewhat less common; search AliExpress for "Guition JC2432W328C". Guition also makes a resistive model JC2432W328R; this code does not support that one. The Guition models can be identified by the presence of an RGB LED on the front side as shown below; the other ones have the RGB LED on the back. The capacitive version has an extra IO connector on the back that affects the wiring.
If you can source it, the capacitive version is preferable because the capacitive touch is more responsive to finger touch than the resistive touch. Resistive touch works with fingers but you need to press harder.
Search for "CNC Handwheel Encoder". You want a 60mm, 100PPR, 5V unit. Either the 4-terminal or 6-terminal version will work. They cost about $7 on AliExpress and about $18 on Amazon. You can also get them in black instead of silver.
You could also use a small rotary encoder like these
The CNC handwheel has a better feel, but is more expensive and larger. The small rotaries typically have an extra switch that activates when you press the knob down. That switch could be used for other purposes.
The CYD board has some 4-pin IO ports - the resistive version has 3 such ports while the Guition capacitive version has 4 of them. The mating connectors are JST-1.25 4-pin, also known as PicoBlade.
You can buy them with pigtails already attached, and you can also get them with Dupont connectors on the other end (recommended). When you buy the Cheap Yellow Display, it might come with one such connector with Duponts on the other end. Even so, you need a total of 3 or 4 such connectors, so you will have to buy more.
AliExpress
A nice way to connect back to the FluidNC controller is with a 6-pin RJ12 data cable. That is directly supported by some newer interface boards at the FluidNC side. The 3D printed case is designed to accept this connector.
This breakout board is very convenient.
This breakout comes with the socket and the breakout board separate, so you will have to solder the socket to the board. It does not come with Dupont pins so you might want to purchase them separately. If you solder Dupont pins into the breakout you can make the connection to the CYD board with the Dupont females on the JST cables recommended above. Or you could solder pigtails from the JST connectors directly to the breakout.
You can use this breakout on both ends, as the pinout is designed to plug directly into a 6-pack module socket.
Note that pin 6 is not populated in this picture, since neither pin 2 nor pin 6 is used for this wiring scheme. You can populate them or omit them, at your option.
You could also use an RJ45 socket and use only the middle 6 pins, but you would have to modify the case. If you get an RJ45 breakout with screw terminals, you could avoid any soldering. Or you could hardwire the cable.
Be sure to get straight wired, not crossover. The colors should match up in the orientation shown.
Fusion 360 Design for the CYD case Use this is you want to remix it.
The design of the case is modifiable according to your use case.
Download the top and bottom files.
If you don't want to use an RJ12 port, you can print the part as is. If you want an RJ12 port on the flat side, delete the "Bottom RJ12 ... squared side" object. If you prefer to have the RJ12 port on the rounded side, delete "Bottom RJ12 ... rounded side".
You can also have hooks for attachments by deleting "Bottom Hook Filler"
Magnets can be used to attach the pendant to the machine. If this is your case, you must add a pause to the print at a height of 12mm. The maximum size of the magnets is 8x8x8mm.
Add supports for USB port, SD card, RJ12 port and nuts:
It is possible to print the upper part with the logo in color. (There are two objects in the STEP file).
The case is held together with four M3x12mm self-tapping screws that go through the mounting holes on the CYD board. The bottom of the case has alignment ridges to hold the CYD board in place while attaching the top with the screws. There is some leeway as to the screw length - anything between 8 and 16 mm will work, but the longer the screw, the harder it will be to screw in.
For the JC2432W328C version (capacitive touch): Instead of self-drilling screws, it is possible to use M3x20 screws or longer. A location for the nut is available on the underside of the case.
The specified connector slides into guides in the bottom of the case. Then you can glue it to the case to hold it in place. I used hot glue.
The resistive version has two IO connectors along the top, with pin assignments:
Connector | Pin1 | Pin2 | Pin3 | Pin4 | Notes |
---|---|---|---|---|---|
P3 | GND | IO35 (PND_RX_FNC_TX) | IO22 | IO21 (PND_TX_FNC_RX) | IO21 also controls the backlight |
CN1 | GND | IO22 (ENC_A) | IO27 (ENC_B) | 3.3V |
The capacitive version has three IO connectors along the top, with pin assignments:
Connector | Pin1 | Pin2 | Pin3 | Pin4 | Notes |
---|---|---|---|---|---|
P6 | GND | IO16 | IO4 | IO17 (ENC_B) | These pins are also connected to the RGB LED |
CN1 | GND | IO22 (ENC_A) | IO21 | 3.3V | |
P3 | GND | IO35 (PND_RX_FNC_TX) | IO22 | IO21 (PND_TX_FNC_RX) |
There are several ways of wiring the capacitive version.
With this wiring, the USB Serial port can be used for debugging the pendant firmware. This is a good choice if you are a developer who wants to modify the code. To compile for this wiring, use the cyd platformio env. With this wiring, it is possible to have the FluidNC serial port and the USB port connected simultaneously.
This wiring is tidier than the Debug wiring, requiring only two connectors. It can also be extended with additional buttons, as shown below. To compile for this wiring, use the cyd_nodebug platformio env. In order to upload new firmware with this wiring, you will need to unplug the FluidNC serial connection and plug in the USB port.
As an extension to the No-Debug wiring, the RGB LED GPIOs that appear on the P6 connector can be used for button switches. To compile for this wiring, use the cyd_buttons platformio env. In order to upload new firmware with this wiring, you will need to unplug the FluidNC serial connection and plug in the USB port.
A small rotary encoder can be substituted for the handwheel. The wiring is almost the same as for the handwheel, but the encoder does not require a VCC supply so the 3.3V wire from CN1 is a no-connect. The image below shows the rotary encoder with button switches, but you could omit the switches. The compilation env is the same as for the handwheel - cyd_nodebug without buttons, cyd_buttons with buttons. If your rotary encoder has a switch that is activated by pushing down on the knob, that switch could be used instead of or in addition to (via a parallel connection) one of the button switches.
Use Visual Studio Code with PlatformIO to compile and upload the code. Connect your display to the computer via a USB cable.
Be sure to do all three tasks below.
This creates the file system with the icons and images.
See the config example for FluidDial
See the usage instructions for FluidDial
Use the on-screen red, green, and yellow touch buttons in place of FluidDial's physical switches and its dial switch.
To change the display orientation so you can use the CYC Dial Pendant with the handwheel in different positions relative to the screen, go to the About screen and rotate the handwheel. The orientation will change with each click of the wheel. The orientation will be saved so the pendant will start in the chosen orientation. The default orientation has the handwheel on top and the red/green/yellow buttons on the bottom.
Warning: this feature no longer works (See issue #17). You need to modify the code to change the orientation.
Developing, testing, documenting, and supporting the various FluidDial pendants required hundreds of hours of work and the purchase of many hardware items. If you build one, please consider sponsoring the FluidNC project.