I run a 3 axis CNC router. I opted for the cheap Arduino based controller, but it was a mistake.
I had lots of trouble with it.
- The USB/UART interface was a nightmare. It was stopping after a certain amount of time, and reseted itself. I’ve read that similar issue was found with the other Arduino implementation.
- Direct connection from the MCU to the drivers. The MCU shall supply the current for the opto-isolators at the stepper driver.
- Direct connection from the inputs. No low pass filter, and EMC filters.
- Not enough GND connections.
- GRPBL compatible
- Wide input voltage range (15-40V)
- Power input filtered
- Reverse polarity protection
- Low pass filters on all inputs
- On board high capacity (16A) relays for coolant and spindle
- On board high power 12V 3A voltage regulator for external devices, such as cooling fan (which I use)
- User selectable interfaces: USB (FTDI232) or Serial (RS232)
- TVS diodes on all external input lines (limit switches, probe, USB)
- Power LED
- Designed using KiCad
Unlike the Arduino, this device doesn’t have a bootloader, so you have to use a ICSP to program the AVR.
It is designed for the TB6600 driver. It has common anode connection for the driver outputs using a transistor array. With this method the CPU is not driving the driver inputs, only the transistors.
Schematics is available here.
I designed the box using FreeCAD. Here are some screen shoots of the model.
Fan and power connection/switch:
I’ve successfully tested my setup, and it seems working. The box is made out of leftover laminated floor pieces. The front and the rear panels was machined by the CNC itself.
It currently uses the serial port, but the USB interface is also available, and tested.
The machine is a cheap 6040 from eBay.
On the top-left corner, there is the power supply for the spindle. The problem is that it doesn’t handle inrush current of the motor, so I can’t use the relay of the controller to switch on the spindle automatically.
If you have any comment or suggestion, please share.