Sonntag, 15. September 2013

DIY Laserplotter based on Raspberry Pi

As I am very keen on modeling, I am always looking for good tools. When I saw this article I knew that I had to build my own do-it-yourself laserplotter.


As 3D printers are still very expensive I wanted to start with one dimension less. Using a 2D device like this laserplotter it is possible to cut or engrave flat objects.
If you don't want to cut wood an 1W laser is strong enough. It is possible to engrave wood and to cut plastic, cardboard and paper. The power of the laser can be adjusted via pwm and the speed of the plotter. Some materials need to be cut fast to avoid melted or burned edges. If one run isn't enough to cut the material the print job can be repeated.


Engraving is used to print logos or simple pictures on wood, plastic and other materials. It is also possible to create stamps of foam rubber. An black/white or greyscale image is the easiest way to print these jobs. The image support for plotd is still under development but will be released soon.


For cutting I implemented gcode support in plottd. It can be created using the laserengraver plugin for inkscape. This way svg graphics can be used for printing. But it is also possible to print vectors. It is not possible to print object like fonts. But there are vector based fonts for that.


Ok, now: How is it done? I used the mechanics of two old flatbed scanners as x and y axis. I already had one and got another one for 1€ at ebay. The stepper motors can be easily controlled using a PiFace or simple self made electronics connected to a rasperry pi. The resolution of the motors/mechanics combination is 600dpi. It is possible to use the half-step-mode instead of full steps to get 1200dpi, but this would be more an mathematical improvement than a real one.


The most expensive part is the laser. Furthermore you need a Raspberry Pi, protection glasses and some other parts. In total I paid about 250-300€ for my plotter.



  • Raspberry Pi
  • PiFace or ULN2803 and MCP23S17
  • PC power supply (5V and 12V power supply)
  • Two old flat bed scanner (I used two old Tevion (Mustek) devices)
  • constant current source (Ebay)
  • 330Ohm resistor
  • 1,5kOhm resistor
  • laser, e.g. 1W blue-ray
  • collimating lens
  • heat sink with heat-conductive paste
  • little fan
  • 4 push button switches
  • break contacts
  • laser protection glasses (applicable with used laser)
  • aluminum profiles
  • modelltrain wheelset
  • screws
  • Wood for the case
  • air filter
  • some foo
  • and bar



The wiring of the electronics is quite simple. The PC power supply provides 5V and 12V. The 5V supply is used for the Raspberry Pi, the 12V supply for the constant power source of the laser. Furthermore the fan for cooling the laser and for keeping smoke away from the lens needs to be connected. My stepping motors work with 5V, others may need more voltage.
The Piface provides 8 powered outputs to connect two unipolar stepping motors. 4 of the 8 inputs are used for the switches to detect the end positions of the x and y axis.
I also recommend to add break contacts to your case to deactivate the laser when the case is opened. The contacts can be connected to the supply of the constant power source.
The hardware PWM pin (P1 pin 12) of the Raspberry Pi is connected to the PWM input of the constant power source via a 330Ohm resistor. As the laser would be on while the raspberry boots or is shut down, it is needed to add an pull down resistor (about 1,5kOhm) between the PWM input and ground.


I mounted the mechanics on a wooden board and added a metal plate at the plotting area. The y-axis is mounted directly on the board, the bridge where the scanning optic was mounted is the basis for the x-axis. My scanner used a bar for fixing the bridge on one end and a belt to move it. The other side of the bridge slides. As the weight of the x-axis and the laser would prevent sliding, I mounted wheel sets that run on the aluminum profile. The wheel sets can be adjusted to fit into the profile.

The x-axis also uses a bridge, but it is shortened and the wheels are mounted in the middle of it. If you have more than two scanners the wheels could be replaced by the mechanics of another scanner. Especially the y axis could be improved be using a third scanner.

The laser is mounted with the heat sink and a little fan. This fan is not only for cooling the laser, it also prevents that smog (burned wood, melted plastic) destroys the lens. It is also possible to add a z-axis. I plan to use a servo to adjust the height of the laser if thick materials are used.


The software plotd plots gcode files and bitmap images. The current user interface is a simple command line interface. It is planned to run it as a real daemon and to add an web interface for controlling. Any support for developing plotd is welcomed.
You need to have the PiFace lib and WiringPi installed. Checkout plotd via git and run make. Then start plotd as root.
The input files (gcode) or input.bmp must be placed to the directory of the binary file. Before plotting you can adjust speed and power of the laser. Press 'h' to see all available commands.


To protect your eyes the simplest way is to mount the plotter in a closed box. I chose a wooden box. The fans of the pc power supply causes an overpressure inside the case. Air filters at the other end of the case will filter some of the burned or melt particles.


ATTENTION: Working with lasers is very dangerous. They can harm your eyes, burn your skin or cause a fire. Never use it without fitting laser protection glasses for everyone in the same room. If you do not know how to handle lasers don't use them. I do not take responsibility for any harm.

What else? 

Follow me on twitter!

Keine Kommentare:

Kommentar veröffentlichen