grbl can control the spindle (on/off + dir or pwm) and coolant (flood/mist) via a couple of pins. But i wanted to have more control and be more flexible. The first version just interfaced to the spindle-on/off pin and translated that into a RC compatible pwm signal.
Currently, grbl is talking to the controller via i2c. There is a simple protocol to send rpm values, switch coolant, select tool index, switch tool and display a message.
Rpm values are sent as 15bit uint. That goes into a PID controller which measures the actual motor rpm and drives the motor accordingly.
The current version looks like this:
- dual layer PCB, SMD parts, the TXB0108 is tricky to solder
- connectors for SPI 1.8″ TFT display (including SDcard reader)
- i2c connector (bottom right)
- turn/press knob (bottom left)
- rpm sense input (for an ir-reflective-optical/hall sensor)
- esc control output
- backlight on/off via FET
- spare PWM FET for laser power control
- some spare pins
Source is available in grbl_mc_leonardo at github.
There’s a version for the Micro attached to a 128×64 LC display showing all of the above information.
The next version will run on a digispark pro + OLED @ 128×64.