LaserProjector V1


Traditional laser projectors use either a diffraction glass/foil to project a pattern or they have a system which moves laser beam in XY axis directions. The second option usually looks much better because it is possible to program the pattern to be projected. While in the first case, the laser beam is being diffracted and projects a static image, in the second one, the laser still consists of just one beam, that moves very fast. If this movement is fast enough, we perceive it as a pattern because of persistence of vision (POV). This is usually done by having two perpendicular mirrors, each capable of moving the laser beam in one axis. By combining them, it is possible to position the laser beam to the exact location.

For professional applications, galvanometer scanners are usually used. Some of these scanners are rated as fast as 60kpps (kilo point per second). That means, they can position the laser beam to the 60000 different locations in 1 second. This creates a really smooth projection without the stroboscopic effect. However, they can be really expensive. I have used the stepper motors, which is the cheap, not so fast, alternative.

The laser draws the pattern by orbiting the lines over and over at really high speed. Sometimes there are multiple parts of the pattern that are not connected together. In this example, each letter is separated, however when the laser moves from one letter to another one, it creates an unwanted line. This is solved by a technology called blanking. The whole idea behind is, that the laser is switched of when moving from one, to another pattern. This is done by a high-speed controlling unit, which needs to be synchronized with the scanning system.


The stepper motors are held by aluminium sheets, formed into the "L" shape.

A platter from an old HDD had been cut into the 2 rectangular shaped metallic mirrors.

Motor Shield V2 is used to control steppers. On the "development board" part of the shield, a simple circuit is built, to interface the photodiode (used to home the position of the laser) and the transistor switched laser.

PIN13 for PWM, A2 for photodiode


The app is used to remotely control the projector in the "serial" mode. It can be controlled remotely by using your computer's bluetooth adapter. When a new bluetooth device is added, a COM port is automatically assignt to it. This COM port is used in the application for connecting to the projector. Make sure to have .NET framework 4.5.2 installed on your computer to run the app.


This project is superseded by LaserProjector V2


  • 2D XY laser scanning
  • Laser blanking
  • Automatic mirror homing
  • Bluetooth control
  • Windows control app
  • Automatic mode


  • Arduino UNO
  • Motor Shield V2
  • 2x NEMA14 - 5V - 0.9° stepper motor
  • HC-05 Bluetooth module
  • BC547B NPN Transistor
  • 5mm photodiode
  • 3x 5mm LEDs
  • SPDT Switch
  • DC Socket Panel Mount