FluidNC Pendant "Lunch box"
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
Versatile and robust pendant for use with FluidNC
- Ocena
- 0 / 5
- Polubienia
- 11
- Pobrania
- 13
- Wydruki
- 0
- Wyświetlenia
- 162
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Other Gadgets
- Licencja
- Creative Commons — Attribution — Noncommercial
This pendant is intended to be used with FluidNC.
This is an easy project! It is basically a button box. You are going to need an Arduino mega, a display and one hand full of push buttons. The rest is just bolts. All hardware is easy to source, readily available and cheap to get. In order to build this project, you should be able to do a little soldering and you also need to know how to spell Arduino.
Since you are running your own DIY CNC already, you are basically over qualified for this project. See BOM, to make up your mind if this project is something for you.
Functions:
The display does show information about the currently selected Axis (including spindle) and its coordinates. Iluminated push buttons only come live, if an input can be made during current selection.
Directly select one axis to be Jogged (X, Y, Z (Cartesian) and A, B (Rotational)). Feedrate (speed) and also lenght to be jogged can easily be selected by the rotary encoder.
The selected axis can be homed and also work piece zero can be set via push button. If a tool diameter or tool lenght is punched in, it automatically takes this into account for setting WP-Zero.
The spindle can be selected also, in order to start/stop the tool with a given RPM.
Note: At the end, you are going to find dedicated articles about assembly with all additional information you are going to need. The code to be run on your arduino, still is uploaded here though.
Printing:
All parts are designed to be printable with a 0.4 or 0.6 nozzle. Enable a brim for the Frame. Support only is needed for printing the Bumper parts and GlareShield. All other parts dont need support nor brims. The SideHandles need to be printed on their sloped face, TopPlate and BottomPlate have to be printed on their face side. SideHandles and also Bumper parts can also be printed out of TPU/FLEX material.
You are going to find all Parts as .3mf and .step for you to modify. If you want to use push buttons with other diameters than 16mm, remember to change the hole diameter on the TopCover and DesignPlate.
The extra parts folder contains button guards with slightly altered design. The MMU folder contains the RotaryKnob and ChannelSelector as .3mf only, for easy MMU printing.
BOM:
No | Part | Specification | Amount | Alternative Part | Notes |
|---|---|---|---|---|---|
1 | Display | Graphic LCD Display 128x64 Pixel | 1 | Anything with 128x64 resolution, SPI and running with u8g.lib. | LCD Modul 12864 93x70x12,5mm |
2 | Arduino Mega Pro | Arduino Mega ("Pro" form factor) | 1 | Regular Arduino Mega | Regular Mega is going to work in theory, but it might does not fit into the case because its size |
2 | Rotary Encoder with Pushbutton | KY-040 | 1 | VSM1BF20 | Anything with 16-20 Pulses/rotation is going to work. Needs to have an integrated pushbutton |
3 | Rotary switch | 9 mm mounting Hole. 6 Positions to select. 5.5mm friction fit for Knob. | 1 | 6 Position needed | |
4 | Push Button | LP01-15 NKK | 9 | Any momentary push button with 16mm Diameter and internal LED is going to work | Make sure the overall diameter is not more than 23mm and it is not longer than 21mm. Also Make sure the internal LED can be used with 5V. |
5 | Level shifter | FC-112 | 1 | Needs to be bidirectional | |
6 | Resistor | 220R | 10 | For all LED within the Pushbuttons and LCD Backlight | |
7 | Resistor | 10k | 18 | Pulldown resistors for all Pushbuttons, Rotary Encoder and Rotary Selector | |
8 | Potentiometer | 10k | 1 | Any smal 10k pot will do | only needed for initial setup of display contrast |
9 | PCB Prototyping board | 20x80mm | 1 | Optional but recommended. Level shifter can be wired in directly. Is much neater with PCB | |
10 | PCB Prototyping board | 40x60mm | 1 | Optional but recommended. All buttons and display can be soldered directly to the Arduino. Using PCB is much more easy to revise and trouble shoot later | |
11 | Pin Header | Male and Female | 60 each | Optional but recommended. All buttons and display can be soldered directly to the Arduino. Using pin header is much more easy to revise and trouble shoot later | |
12 | 5V Power supply | continous output of 2A | As long as it can provide 2A @ 5V it is going to work | Optional. This only is needed if you have no 5V source on your CNC machine for powering the lunch box | |
13 | Bolt | M3x5 | 10 | For Mounting USB Cover and Extension Cover Plate to the Frame | |
14 | Bolt | M3x8 | 34 | M3x10 | For mounting Top and Bottom Plate to the Frame. Also for Attaching Button Guards and LCD Frame to the Top Plate. Used for attaching the Grip Long and Grip Short to the bottom Plate. For mounting PCB-LevelshifterHolder to Frame. For securing Knob Big and Knob Smal |
15 | Bolt | M3x10 | 24 | M3x12 | For attaching Handle Long and Handle Short to the Top Plate. Mounting StrapHook To Frame. For mounting all bumpers to the Frame. For mounting Handle Long and handle Short to the frame. |
16 | Bolt | M3x12 | 12 | For Mounting the display to the Top Plate. Mounting bumpers to BottomPlate | |
17 | Bolt | M2x5 | 4 | Optional. Only needed if you Mount the Level Shifter (Pos5) on a PCB (Pos9) | |
18 | Bolt | M2x10 | 4 | Optional. Only needed if you use the PCB (Pos10) for wiring) | |
19 | Jack Screw | 6-32 to M3 | 2 | Check your retired PC parts. This is often used in order to mount/raise the mainboart to the case | For mounting Arduino to PCB-Arduino Base. |
20 | Cable Gland | PG16 | 1 | Any Cable gland, Fitting for the outer diameter of your particular connection cable. | Make sure to alter the diameter of its mounting position if you choose any other cable gland |
21 | Cable | 0.14mm² (35 AWG) | 10m | Basically anything you have at hand anyway | Used for internal wiring. No large diameters needed. 0.14mm² up to 0.5mm² worked fine for me |
22 | Cable | 0.5mm² (24 AWG), minumum 5 Strands, | 3m | Basically anything you have at hand anyway, as long as it is shielded. | Since this cable is going to carry all communication within a "noisy" environment over some distance, a shielded cable is mandatory |
Additional notes for part sourcing:
Any Pushbutton is going to work. Even ones without internal LED. Since the LED is used in order to visualize what inputs can be made, depending from the current setting. Id still highly recommend using ones with internal lighting. If you want to use buttons with different diameter, dont forget to change the mounting holes in the TopPlate. Make sure the Button you use is not longer than 21mm when mounted and also its overall diameter is not wider than 23mm
The Rotary (selector) Switch has to have a mounting hole diameter of 9mm and must not be longer than 21mm when mounted. Its axle, to mount the SwitchSelectors-Knob part to, can be a 5.5mm friction fit. D-key is also going to work. If you are using something completely different, make sure to change the SwitchSelectors mounting hole.
The Rotary Encoder can be anything with additional pushbutton. In order to have distinctive "clicks" and precise control during jogging, many Pulses/rotation might be not that usefull. 20-pulses feel nicely clicky and responsive. If you use anything other than KY-040, make sure you add 10k pull down resistors. It also needs a 6mm D-key for mounting the Knob.
The Display can be substitued with anything as long as it has a resolution of 128x64 pixel and can be directly used with the u8g. library. The lunch box uses pin10 (RS), pin11 (R/W), and pin13 (E) for serial connection. Make sure your display is going to work with that (SPI). Since your formfactor might differ from the 93x70x12,5mm size, you need to change the TopCover and GlareShield in order to fit your display. Maybe you have to use some sort of adapter or additional mounting frame.
The Bidirectional Level Shifter is mandatory because Arduino runs on 5V but ESP32 on 3.3V.
In theory you can get away with a voltage devider, made out of resistors or a one directional level shifter at the ESP32 RX pin. It does need to be bidirectional, but in order to protect the ESP32 if you accidentally switch RX/TX, it should be! Since bidirectional Level shifter are cheap to get, id recommend just using it.
5V power supply. This is an optional part to be used if your CNC cant provide power for the arduino. No matter how your machine is build, id highly recommend using the 6x CNC Controller for FluidNC by B.Dring. This one is a good bang for the buck. All secondary hardware and passive parts are allready on board and you can directly connect the lunch box to the Controller boards pin header.
Assembly:
https://www.printables.com/article/fluidnc-lunchbox-assembly-7ZPLbLZ

Disclaimer:
I cant recommend any seller, since i cant vet them. I cant controll what is get send to you. I made sure that all parts are easy to get and fairly standard in general. Use any platform you like for sourcing. Mouser, Ebay, ELV, Alibaba or even Amazon...
...I got basically all parts via e-bay, if i didnt had them in the parts drawer anyway.
I will not linkt to any shop to buy parts. Not now and not in the future. This is not in order to make this complicated for you, but in order provide piece and quiet down the road. Because i cant vet any seller permanently, i just dont want to be involved in any issues like: "i bought part X from seller Y and it does not fit" or "part X is not in stock at seller Y, please give alternative" or "i bought part X and it is totally crap and cheaply made"... This is because i dont want to give links, but strange folks exist. If you want to, I absolutelly invite you to post a list in the Comment section though. Thx for your understanding.
General Notes:
Although the pendants layout is optimized for CNC milling machines, it also is going to work with all sorts of NC machines, running FuidNC, including lasers. This pendant connects via RX/TX line to your ESP32-FluidNC. Even though you can connect the lunch box to basically any ESP32, it is highly optimized for use with the "6x CNC Controller for FluidNC" by B.Dring.
At the moment support for rotational axis is not fully implemented. As soon they are tested to the fullest extend, this is going to be added within a future code version. Use of Spindle and cartesian X ,Y and Z axis already fully work.