Have you thought about building a galvonometer-based laser projector, but don’t know where to start? There are a lot of resources out there, but you could do worse than to check out [Breq] and [Mia]’s laser vector project, which provides a very well-documented and low-cost starting point. They boast that the most expensive part of the project was the ANSI-certified safety glasses, which shows a dedication to safety we wish more people would show when playing with coherent light.
The rest of the parts — from the galvos to the RGB lasers module with dichoric mirrors to keep everything on the same beamline, to the ESP32 module driving everything — was ordered from AliExpress, and not from the most expensive vendors, either. Considering that, it works remarkably well.

Like all DIY laser projectors, this one does vector graphics, sweeping the beam fast enough that the human eye registers crisp, clean lines. Galvonometers, or galvos for short, take analog input, so a DAC is needed — fortunately the ESP32-S2 comes with a pair built in. The custom PCB of course has audio-in for the usual Lissajous lightshow or oscilloscope music, but with an ESP32 as the brains, you can do a lot just inside the projector.
Like what? Well, play Asteroids, for instance, using Wiimote controllers. Project a lovely clock. Render text input in various single-stroke fonts. More to the point, since this is a projector, take arbitrary SVG data and project literally any image you’d like — as long as it doesn’t have too many lines, at least. The galvos in this project are rated at 20,000 points per second, which is not exceedingly fast: they were chosen to meet the budget, not the greatest-possible speed.
More to the point is that this is one of the better-documented projects of this type we’ve seen. [Breq] doesn’t just tell us how to build the projector, but why they designed it that way. We really encourage you to give it a read if you’ve been thinking of getting into this sort of display.
We’ve seen plenty of laser projectors before, most of them producing vector images like this one. If you really must have a raster display, though, that’s also an option. Don’t count out vector images, though — they could even replace your Christmas lights.
Thanks to [CapinRedBeard] for the tip! Remember to send any bright ideas you see to our tips line, coherently lit or no.

s/dichloric/dichroic
Oopsie daisy. Thanks for catching that.
While you’re at it, it’s also “galvanometer”, not “galvonometer”, despite the common shorthand spelling of “galvo”.
What a silly language this is.
Sir Terry Pratchett once said about English “It’s a language that follows others into alleyways to knock them over and search their pockets for loose grammar and vocabulary”
English language is basically the bastard child of many European languages. Second generation Latin off spring.
A fly wanted to fly with his fly open. Also: Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo. Even the AI translator will have a hard time handling some of English’ idiosyncrasies.
To be fair, that one’s in german too.
“Wenn Fliegen hinter Fliegen fliegen, fliegen Fliegen Fliegen hinterher”
Insanely cheap now, that stuff. Cool :)
I built my first laser vector drawing rig in 1990, with galvos sourced from chart recorders, and hand-milled holders for front-surfaced mirrors from Edmund Optics. With naturally just a red laser (green was still kilobucks and blue was unobtainium) .
It was hard. Mirror flatness was an issue. Mechanical resonances in the shaft and mirror supports were issues. Mirror support dynamic balance (x, y and Z) was an issue. Even drive power and cooling were issues.
Vector generation, trajectory planning and signal generation were NOT issues: A 386SX ran a playlist loop via a timer interrupt, spitting data to DACs at 1500 Hz. The main program updated playlists in real time, ping-ponging between the active and being-modified lists. Output was via a ISA 12-bit DAC card — the most expensive part of the project.
Ultimately it could get up to about 400 Hz mechanical bandwidth, with the laser brightness modulation running at the full 1500 Hz sample rate. It could draw simple shapes and about 100 straight-line vectors per second. I suppose that would qualify for something like a woefully-slow 200 pps in modern specs.
I see the new super-cheap fast galvos and rgb laser sources now, and in moments of weakness I feel it would be fun to do it all over again. Fortunately the feeling passes.
Meh. I want a projector that produces convincing aurora simulations. I mean, like seriously want, as in would pay very good money for. But everything I’ve seen so far is truly pathetic. I’m not a serious coder, but have been trying to vibe-code (with various tools) something like this, and so far the results aren’t much better than the ubiqitous “aurora projector” toys. I more-or-less understand the physics involved (altitude-dependent molecular stimulation, magnetic vector fields, and all that), but translating that into a respectable simulation, generating either video or even static images, is beyond me. And, it seems, beyond popular vibe coding tools.
So, what does any of this have to do with the topic at hand?
Light? Seems a bit of a reach.
Stupid controller….
A fellow at the local hackerspace brought his laser rig up one evening and we spent quite a while trying to get a vectorMAME implementation running. Of course, LaserMAME is ancient, so there wasn’t really any wheel-invention going on, just passing the right data through.
Oh wait, trying to google LaserMAME directed me back here! The evening in question was recorded and featured on HaD 12 years ago: https://hackaday.com/2013/03/12/playing-mame-games-on-a-rgb-laser-projector/
Wow, I can’t believe you can get a pair of galvos and a driver for $100 now. Those used to cost a fortune.