Laser8 Laser Projector
A laser projector we built to improve how cars communicate with each other and with pedestrians. We officially named it "Laser8" at our launch event.

How It Started
While we were trying to figure out what to do for our final-year capstone project, I happened to see someone online who’d built a laser projector out of an old hard drive. Our self-driving campus car was being built at the same time, and it instantly reminded me that all those futuristic concept car videos online seem to have this cool feature where they project images onto the ground. So I pitched the idea of building a laser projector and mounting it on the car to my teammates. Everyone was immediately on board, and we got to work.
Materials
- Old HDDs
- HDD motor controller
- Magnets
- Hall effect sensor
- Laser diodes
- Eight mirrors
- Laser-cutting material
- 3D printing filament
- ESP32
How It Works
A spinning mirror moves the laser dot so fast that persistence of vision makes it look like a full image. For the X axis, each mirror sweeps the laser across the wall as it rotates through the beam, drawing a horizontal line. For the Y axis, each of the eight mirrors is tilted up by one more degree than the last, so every line lands one degree higher. With 8 mirrors, that gives us 8 rows of pixels on the Y axis. To control the pixels along the X axis, all you need is a microcontroller switching the laser on and off.
For the high-speed spinning part, the plan was to reuse an old hard drive motor. The target was infinity × 8 pixels (the actual X resolution depends on the microcontroller’s clock speed, so in theory it’s unlimited) at around 80 fps.


The Build, Step by Step
- Hunted down old HDDs (found three)
- Tried writing a three-phase motor control program on an Arduino
- Got the Arduino to sort of control the HDD motor (but super unstable)
- Designed the laser-cut mirror mount
- Laser-cut the mount and attached the mirrors
- Realized our homemade HDD controller was really, really unstable
- Bought an off-the-shelf HDD motor controller board online
- Designed mounts for the laser diode and the Hall sensor
- 3D printed the mounts
- Tried using the Hall sensor data to switch the laser on and off to draw an image
- Surprisingly, the code worked on the first try
- Found out the laser diode’s refresh rate was too low
- Swapped the Arduino Uno for an ESP32
- Realized we didn’t have enough rows
- Added a second laser diode
- Discovered the mirrors fly off at high speed
- Built an enclosure
- Used physical buttons and the ESP32’s built-in touch sensing as controls
- Built a fake car door for the demo
- Realized our project didn’t stand out as much as the other teams’
- Not flashy enough? Make up for it with a video. We shamelessly asked the school to borrow the huge bezel-less screen in the activity center
- Shot and edited a super cringey mock product-launch video
- Showed it off at the department’s official project exhibition

Results
Check out the demo video linked below!