Turn an old printer into a laser cutter
Oh yes we build stuff too. While working on our laser cutter and laser burner (a pretty one) there was question visiting my mind: would a printer work? so on a weekend decided to try with a broken one laying around there. And... it works!
Working on the first laser cutter was a challenge, sure you can buy one but it's: expensive, probably not available in your country (not in mine for sure) and, what's the fun?. The second laser cutter was easier, more precise, etc. Common commercial printers (inkjet) have all the parts you need, perhaps not the ones you want but it's a good start.
How difficult would it be to turn an old printer into a laser cutter/burner?First, printers are not plotters. A plotter moves a device on a XY coordinates. It will basically paint points and draw lines depending on the movements. Sure, a plotter would be easier. Inkjets don't move a point on a XY coordinates, they move a print head able to print multiple points, so when the print head moves horizontally it covers several XY coordinates. On a plotter you would need to just replace the pencil with a laser and the respective controlling device for on / off.
Arduino will be used, so, the printer parts must be removed, all of them. The only useful items are the metal parts, rods and perhaps the motors. Older printers used stepper motors (they have multiple cables), those can be controlled on a step by step basis, while DC motors are difficult to control and only have two cables, there is no easy way to make a DC motor turn 1 degree at a time, or make it hold it's position.
The printer I used is a Canon 2810, it has DC motors. Useful? yes. Both motors on this printer use optical encoders, one horizontal and the other one a rotary one. This demands some more work as you have to wire extra stuff and some code for the sketch and controller. I had some stepper motors so the easier solution was replacing the DC motors. Done. Now is easier to wire everything directly to the Arduino.
Instead of using individual controllers for the motors (which I had), I used an Adafruit Motor Shield (L293-D). Why? I already got one, besides it makes things more compact, no need to use individual controllers. This shield allows you to connect 2 stepper motors (unipolar and bipolar) and 2 servos. You could also connect 4 DC motors but it's a lot of work regarding the rotary encoders. Another good thing: this shield lets you use 5V from the Arduino, or change the jumper and you can plug external power source for up to 24V.
Cool it down, keep it fresh. The shield will do most of the job controlling the motors continuously, so it will get hot, depending on the current and motors, it can get REALLY HOT. The shield has thermal protection, son in most cases it will go off before damaging any component. To build a nice working device we add heat sinks. I used one used for computers, cut it in 3 and there you go.
You can use metal, but it's a long way ahead on details on heat and thermal transport, if possible: stick to aluminum, or just get one of those, it's cheap. To make things better I added a fan.
Replacing the motors was not that easy. The printer uses a belt and a geared screw, the diameter of the pins is not the same so I had to work extra time with a press and a Dremel (Dremel is a brand, the right term is "rotary tool"). Use identical motors, it will make things easier.
I had several stepper motors so using the identical ones was no problem, but space was an issue. So I used two diff stepper motors. Once the parts were tight enough, firm and precise, it was time to put everything back together. The case was already clean because I took time to wash the ink and remove the pads. Inkjets are... messy. Take proper care when cleaning.
The electronics are proprietary, I can't think of a way to use them, searched the web but there is nothing really useful.
Limit switch. Remember, you can use stepper motors to move one step at a time (or several), that's precise positioning, but when you turn on your machine, it doesn't know where things are, positions, location, so you must add limit switches to avoid the laser cutter to turn and turn until the carriage ends. The limit switch is now placed below the belt so the moving part (ex holder of the print heads) hits it.
You can use free pins on the Adafruit Shield and put some code on your sketch.
The laserThis is a separate chapter. You need a laser diode, those can be found on DVD RAM units, it's tricky to get them out, it's fun, but they are not so powerful. Usually under 200mw (red and infrared). You never know what's inside, sometimes very weak diodes. BE CAREFUL, laser diodes are delicate, easy to damage, then you need to identify the polarity, use 2 AAA batteries and just feed some current for half a second, NO MORE. Diodes are power hungry and will use all the current available until heat kills them. I had some luck extracting diodes, 7 out of 10 were useful.
USE A CELL PHONE CAMERA. Laser diodes emit dangerous radiation, invisible to the eye. Some are powerful to blind you despite you don't see a damn ray of light. Digital cameras can see this, avoid direct exposure, no kidding. IR diodes are particularly dangerous because your eye don't see the light, so: you wont blink, letting all the IR inside your eye. Besides, it doesn't matter if you don't feel a think when pointing the laser to your skin, your eye has a lens that will focus this beam into your retina, got it? you-ca-go-blind.
Another downside of IR is, if you don't go blind for direct exposure, constant exposure will cause cataracts over time.
Once the diode has been extracted you will need a heat sink for it and a focusing lens. The DVD has both sort of saying, avoid this, several tutorials on the web use them but trust me, it's not worth the time, and mostly: the results are not worth the time and effort. Buy the right module for your laser diameter, or buy cheap 5mw laser pointers and replace them with your laser diode. I did this several times. For this project I'm using an IR laser diode, 500mw, invisible radiation, the weak red dot is just a courtesy of the model. Is it strong? sure, a bit stronger than DVD lases.
How strong? laser power depends on watts or miliwats of the model. Don't feed too much current or you kill it. Lasers also depend on the wavelength. IR is at one extreme while UV is at the other, both are powerful, the ideal ones are Blue/Violet, it also depends on the material you attempt to burn.
The laser driver. This is an extra chapter. You need special but simple electronics. Voltage? most lasers will use 2.2V, but you must limit the current. I used the very common set up of the LM317, this way I can control the mili amps fed to the laser. Check the web, it's quite easy and there is enough tutorials about it. The current is limited/controlled via a resistor, the value depends on how much current you need.
Controlling the laser driver and laser. No you can't wire directly the driver to the Arduino, it lacks power. I used the analog pins to activate a relay, this relay controls the driver on/off.
Careful with EMI. Electro Magnetic Interference can ruin your project. Remember, using a relay involves coils, it sends current in and out, this pulses interfere with the rest of electronics (the same with the motors) so, use the proper relay with magnetic protection. I built mine using a relay, a diode (for reverse current protection) and a toroid.
To avoid, reduce or eliminate EMI, use twisted pairs (cables, it's known technique), ceramic capacitors and specially ferrite toroids. If you don't avoid EMI, trust me, your machine will fail in difficult to understand ways.
I mounted the laser on a heat sink, this is a scrap of a computer processor heat sink. The size and shape allow this laser (in my case) to work perfectly without using a fan. This may vary depending on the laser you pick.
Now in place: the motors, the laser driver (left, with a small heat sink and glued to the side), the relay (orange) with the protection diode and the ferrite toroid.
The Aarduino and the Adafruit Motor Shield are located on the outside with the respective heat sink and the fan.
To control the electronics I used the following code/sketch. This allows you to send Gcode commands from your computer. It's based on the work of Marginally Clever. You will have to read and research about Gcode and GRBL, this sketch is nice, but it's not 100% GRBL compatible, it only understand G0 and G1 commands. If you want full GRBL support then buy a proper shield (hardware) and use the specific sketch/code, I have another machine working this way. Back to this project: I ended modifying the sketch to suit my needs, I can't give you easy explanations, it's not that hard, it's not that easy, I'm just not the perfect person to write about it: I'm a software developer so my perspective on easy/difficult is very different.
Only one limit switch? yes. I used it to send the laser home (0 coordinate). I don't need the other one because I will not be sending anything larger than the machine can understand. What about the other limit? oh, the rod. Well, as you can imagine there is no easy way to detect the beginning or end of the paper.
What I did: added some code for paper input (just like common printers) then change the direction son the printer grabs the paper and feeds it to the proper position (you will understand what I mean when you open your printer and play with the rods and gears). From there, the electronics and sketch do the rest, one axis moves horizontally, and while the other can't move this way, the rod will turn and send the paper in and out, solved. When finished I tell the machine (via code on the sketch) to turn off the laser and turn the road until the paper is ejected, I measured how many turns/steps I needed, you could use an optical sensor for this but, I was too eager to make thins simple so I didn't.
So, does it work? oh yes. To send the Gcode I used PR Sender written for Processing. You can find some info here. I used the original version but it didn't work as expected, ended up modifying it too due to some problems with the comm ports, why? issues with processing version and my OS. Sorry can't provide a final link or code, I discovered the hard way it makes people to just "ask" and stop trying, besides if it doesn't work (as in my case) I can't provide support due to the wide variety of possible issues. I'm sure you see the picture, it's totally unrelated to wanting or not to help.
So there it is, it works, and it's amazingly quiet.
I had more luck and success with CNC / plotter like machines I've built. Why? the laser moves, just the laser, or the laser and the bed. This keeps the paper in place, horizontally without bending it. In this case (printer-burner) the paper is affected by the rods, it's fed to the laser yes, but... when it cuts certain shapes and the paper needs to go back, well, depending on the cut and paper, this will get stuck, it will go up. I'm sure you get it. So the solution is to put the paper inside two sheets of transparent plastic, this will keep everything inside until the machine finishes.
Options? if you don't find the laser cut useful (I like it, it's... useful but the transparent plastic seems like an extra step) then you can turn it into a simple plotter. So, instead of burning/cutting, you can draw on a paper. But... why? my printer already does that, in full color, with great resolution, with no extra steps on software to translate the image into Gcode. Well, building your own plotter you could end up using special ink: gold, silver, etc. Oh BTW, while the machine works, cheap printers won't let you feed thick paper, only thin ones, this limits the use of the machine.
There you have it, the basics of a CNC/Plotter machine using horizontal axis and a rod, and using an old printer.
While using special ink like silver sounds good, I was thinking on using other kind of inks, like thermal or chemical, the ones you could use for special gift cards, where things appear when you expose it to heat (candle) or certain chemicals, as the toy markers kids use these days.
Why? at Kebris we build stuff sometimes, not just websites. Some projects demand some hardware, some Arduino, etc. Besides after building our own laser cutter this was a natural toy to try. The machine will now be disassembled so the parts can be used on another project I have in mind.