Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Controlling the machine could be done by one of several existing systems, Smoothie project has a very nice design and it runs on a 32bit ARM and looks as though it might be easy to extend.
The biggest problem with Smoothie and LAOS is that they are both based on mbed which is not Open Source and terribly buggy and poorly documented, so I cannot use Smoothie or LAOS for anything.
I do like the LPC1769 that Smoothie and mbed uses, because the tools for the LPC1769 seem to be very nice (gcc, gdb, openocd, what more could you need?).
My first plan was to stick 32 KB of serial RAM on an ATmega328 which could just make it, but it's going to be tight and not very expansion friendly, besides, I want to get some experience with ARM32, so I built up a nice board with 4 stepper drivers, the LPC1769 and related I/O parts.
LPC1769 and the gcode interpreter will be responsible for all control of the machine but an ATmega328 will sit on the board and keep an eye on the main controller, any fault will result in the watchdog turning off the laser and the motor drivers and signaling the main controller via an alarm pin and providing details via UART.
The board has connections for:
- 24V power in.
- X,Y,Z,A axis, each with a 4 pin motor and two 2 pin limit connectors.
- Laser PSU 5 pins: Gnd, Fire (out), PWM (out), +5v sense (in), Interlock (in).
- General-purpose inputs for: E-stop, flow sensor
- NTC inputs for temperature measurement and flow sensing (ADC with pullup)
- 24V / 500 mA outputs for powering external relays: Exchaust, Assist air.
Mover & Shaker: Real time MCU firmware.
This is the code that moves physical bits around, it lives in the PhotonSaw/firmware/mover directory in git, it doesn't interpret gcode or do any path planning, it only moves the 5 axes in realtime.
The 5 axis is the pixel pointer which is used when engraving.
The driver IC is TIs drv8811 which does 2.5 A per coil and is much easier to solder than the Allegro chips, I've ordered 8.
A future revision would probably use the ST L6470 which does 128-level microstepping, acceleration, sensorless lost-step detection and is controlled via SPI, it's a bit more expensive than the simple step+direction chips, but it's so much more awesome.
Engraving is done by adding a scanline of pixels to a linear move and clocking through the pixels at a constant rate while traveling along the line.