32
@EvilDeece LinuxCNC For Fun & Profit (now with deadly lasers) Alastair D’Silva @EvilDeece LCA 2016

LinuxCNC for Fun & Profit

Embed Size (px)

Citation preview

Page 1: LinuxCNC for Fun & Profit

@EvilDeece

LinuxCNC For Fun & Profit(now with deadly lasers)

Alastair D’Silva@EvilDeece

LCA 2016

Page 2: LinuxCNC for Fun & Profit

@EvilDeece

Water Cooling

Page 3: LinuxCNC for Fun & Profit

@EvilDeece

Buy one now for only $540!

Page 4: LinuxCNC for Fun & Profit

@EvilDeece

Original control board

Page 5: LinuxCNC for Fun & Profit

@EvilDeece

Parallel Port breakout board

Page 6: LinuxCNC for Fun & Profit

@EvilDeece

Motor control

Page 7: LinuxCNC for Fun & Profit

@EvilDeece

FlexPCB interface

Page 8: LinuxCNC for Fun & Profit

@EvilDeece

End stops

Page 9: LinuxCNC for Fun & Profit

@EvilDeece

G0 X0 Y0(fire laser)G0 X100 Y0(fire laser)G0 X100 Y100(fire laser)G0 X0 Y100(fire laser)Measure and update the millkins config with the skew

Calibration

a b

c

cos(ϴ/2) = ((b/2)2 + c2 - (a/2)2) / bc

ϴ

Page 10: LinuxCNC for Fun & Profit

@EvilDeece

Interfacing the laser PSU

Page 11: LinuxCNC for Fun & Profit

@EvilDeece

Configure Pulse Per Inch (PPI) mode

Page 12: LinuxCNC for Fun & Profit

@EvilDeece

Demo

Page 13: LinuxCNC for Fun & Profit

@EvilDeece

Problems

Page 14: LinuxCNC for Fun & Profit

@EvilDeece

Invert laser control so it is off while the computer is bootingRaster ScansCoolant Temperature/Flow & Lid interlocksAdd Replicape support to MachineKit & move to Beaglebone BlackWebcam MonitoringJog controls

Future

Page 15: LinuxCNC for Fun & Profit

@EvilDeece

Slide 3 http://www.ebay.com.au/itm/CO2-LASER-ENGRAVER-CUTTER-ENGRAVING-CUTTING-MACHINE-CARVING-40W-LASER-PRINTER-/321808036566Slide 5 www.ebay.com.au/itm/5-axis-CNC-Breakout-Board-with-optical-coupler-For-Stepper-Motor-Driver-MACH3-/172045790779Slide 6 http://www.aliexpress.com/item/M542-Leadshine-256-Microstep-driver-2-phase-4-2A-DC18-48V-fit-57-86-motor-for/32341077087.htmlSlide 11 http://www.buildlog.net/blog/2011/12/getting-more-power-and-cutting-accuracy-out-of-your-home-built-laser-system/

Credits

Page 16: LinuxCNC for Fun & Profit

@EvilDeece

Twitter @EvilDeeceEmail [email protected]

Questions?

Page 17: LinuxCNC for Fun & Profit

Background:Currently an open source developer with IBM's

Ozlabs, this talk does is not endorsed by IBM and does not reflect their opinions

One of the co-founders of MHVHobby business “Crankybot” making science based

jewllery

Preparing for christmas markets, building lots of stock. Water cooling failed.

Page 18: LinuxCNC for Fun & Profit

This is why – the adapter connecting the hose was hot-glued in, and the water got warm enough (after a day of operation) to soften the hotglue and the adapter popped out.

Cooling of the tube failed, and the tube current dropped from 12mA to 0.

Page 19: LinuxCNC for Fun & Profit

Needed a replacement in a hurry, found a similar replacement shipped from Sydney for $540.

Page 20: LinuxCNC for Fun & Profit

We tried the software it came with (CorelLaser + pirated Coreldraw). Rastered well, but there was no power control of the laser through software, so we could not vector engrave.

Decided to go back to LinuxCNC which we were running on the original machine.

LinuxCNC is a framework, with a couple of typical applications that are used, but is completely extensible.

Can drive simple 2-3 axis machines, lathes, 5 axis, multidimensional robots. Can drive steppers, servos, DC motors + position feedback.

Page 21: LinuxCNC for Fun & Profit

First thin to do is get the machine talking to the PC. LinuxCNC can't use USB for the realtime components, so the parallel port is the typical method for cheap machines.

Can also use FPGA boards for faster step rates, or use MachineKit on the Beaglebone Black to leverage the PRU microcontrollers for much higher step rates.

Limiting factor on the step when bit-bashing steppers is the latency jitter from realtime linux. Some tricks to reduce it, such as tying interrupt handling to 1 core and running applications on another.

Page 22: LinuxCNC for Fun & Profit

Once you have data flowing out, need to get it into a motor.

Microstepping controller synthesizes virtual steps by moving the motor between it's physical steps. Increases resolution, but trades off torque and linearity. We use it to get smoother curves.

Take step and direction pulses, and increment the stepper motor position accordingly. To correlate it correctly, you need to know how many steps per unit distance is required. First approximation by looking at the belt pitch, motor gear teeth, and microsteps per revolution.

Problem: X motor & end-stop interfaced via flex-pcb.

Page 23: LinuxCNC for Fun & Profit

Fabricate an interface on protoboard using 28 gauge wire-wrap wire soldered directly to the flexpcb.

Page 24: LinuxCNC for Fun & Profit

Tell the machine when an axis is at the limit of travel. Commonly a microswitch or photointerruptor.

Page 25: LinuxCNC for Fun & Profit

Next we calibrate the motion of the machine.

Manually cut 2 points 100mm apart, then measure the distance and update the config to correct for the error.

Next, cut 4 points on the corners of a square, use a bit of trig to calculate the skew of the machine, and use the “millkins” kinematics module to correct the skew. This maps the logical coordinates that the g-code refers to, to physical positions on the machine axes.

Page 26: LinuxCNC for Fun & Profit

The computer needs to be able to fire the laser.

There are 2 lines on the PSU to do this, one is ative high and one is active low.

Used an SMD optocoupler with a pullup resistor to drive the active-low line to ground when the line from the parallel port goes high.

Page 27: LinuxCNC for Fun & Profit

Motion requires acceleration, which means that you have varying speeds. On a laser, this means that if the laser power is held constant, you end op with varying power per unit area, with more power delivered at the start/end of cuts when the head is under acceleration.

Use a plugin to configure PPI mode, where the user nominates power per area (as pulses per mm), rather than raw constant power to the laser.

Page 28: LinuxCNC for Fun & Profit

@EvilDeece

Demo

Page 29: LinuxCNC for Fun & Profit

Big problem: some parallel outputs come up high, which leaves the laser on until LinuxCNC is started and takes control.

Laser parked over a hole in the bottom of the machine, burnt a hole through the table and set it on fire.

Page 30: LinuxCNC for Fun & Profit

Fix the laser state on powerup!

Test raster scanl

Add interlocks for coolant temperature & flow, safety interlock on the lid

Add support for Replicate to Machinekit so I can use the TMC2100 stepper controllers for quieter/faster operation

Webcam monitoring

Jog controls

Page 31: LinuxCNC for Fun & Profit

@EvilDeece

Slide 3 http://www.ebay.com.au/itm/CO2-LASER-ENGRAVER-CUTTER-ENGRAVING-CUTTING-MACHINE-CARVING-40W-LASER-PRINTER-/321808036566Slide 5 www.ebay.com.au/itm/5-axis-CNC-Breakout-Board-with-optical-coupler-For-Stepper-Motor-Driver-MACH3-/172045790779Slide 6 http://www.aliexpress.com/item/M542-Leadshine-256-Microstep-driver-2-phase-4-2A-DC18-48V-fit-57-86-motor-for/32341077087.htmlSlide 11 http://www.buildlog.net/blog/2011/12/getting-more-power-and-cutting-accuracy-out-of-your-home-built-laser-system/

Credits

Page 32: LinuxCNC for Fun & Profit

@EvilDeece

Twitter @EvilDeeceEmail [email protected]

Questions?