This is a system of physical parts, electronics, and software that can be added to a laser cutter so that the bed (z axis) can level itself, and then act as a motorized z axis, taking the STEP and DIR signals from the controller. It also monitors temperature and flow sensors to control a cooling system.
My two laser-related projects have merged into one. After making a new pendant that mounts to the machine, I combined the monitoring and leveling systems into a single unit running off a Teensy LC. This means there is now just one display for everything. It also helps make all the wiring cleaner...it even has a USB port on the pendant so I don't have to open the side of the machine to do programming.
I added files for the pendant board (FreePCB source files & gerber files), the pendant itself (STEP file), and the custom keycaps I designed (also a STEP file). New code (ino file) also uploaded.
The next step will be upgrading to a RasPi Pico. I designed a new mainboard for this task and it's currently on the way from China.
Since the initial update I added a control panel and sorted out the missed steps. Spent about a week trying to get AccelStepper working with this, then gave up and just rewrote something from an earlier version. New code is uploaded, and some models for the control unit, as well as a quicky FreePCB file I made to plan the hand made circuit board (this file was mostly just for planning; the actual layout changed a little, and instead of the 6 pins plus 3 resistors arrangement for setting the address, I just used 9 pins and no resistors.)
Notes for those that may want to make one: The hole for the address jumpers may need to move depending on the board offset of the 90 degree headers you find. Switch model is in the FreePCB file. I used a hard drive magnet because I had several handy, you may want to change the cutout to fit the magnets you have available.
Still to do:
1.) Interface with the main laser controller so it also acts as a motorized Z. In theory everything is there but it really freaks out if I enable those two lines in setup(). Possibly I need pull down or pull up resistors.
2.) Add pull up resistors to EN lines so that they are quiet during in-system reprogramming.