Introduction: Laser Show for Poor Man

Picture of Laser Show for Poor Man
Here's another useless but cool looking "must build" gadget for every romantic geek.
Let me introduce PIC microcontroller based three axis laser spirograph.

Check link below if you want to see more patterns
Laser patterns gallery

Step 1: Gathering Stuff

Picture of Gathering Stuff

Design is quite simple and employs regular parts and components but you are free to change/modify it in way you like.

At first prototype I used blank DVD as reflective material but later I discovered more practical way. Technology of making FS mirror is described in my article
DIY Front Surface Mirror

Originally I'm very lazy man so I've chosen programmed microcontroller PIC18F1220 (can be replaced with PIC18F1320) to handle routine job.

PIC implements 3 channels PWM generator.
Actually it's the same engine as one I used in my IKEA light project just code is adopted for PIC18.

PWM signal toggles MOSFET transistor 2N7000 (Id 200mA). Mirror actuator is connected as load to MOSFET.
As mirror actuator I used 5V 200mA CPU cooling fan. It's easy to mount mirror on its flat side.
Device accepts 5V and 12V fan with maximum current 200mA . Voltage is selected by jumper.

Green laser pointer is rated at 3V so I've made LM317-based voltage regulator with adjustable output.

Cheap 5mW green laser module:

What else will you need?
Dozen of resistors and capacitors, potentiometers, toggle switch, power jack, prototyping board, box of proper size and power supply unit.

Step 2: Brain

Picture of Brain

Electronic schematic is simple and can be assembled on a prototyping board but real man always makes troubles for himself, so I've made PCB.

There are two work modes, selected by toggle switch: manual and automatic.
In manual mode operator controls each motor individually by twisting corresponding potentiometer connected to analog input of microcontroller. PIC constantly reads analog inputs and modifies PWM signal so duty value is proportional to voltage on analog input.
In automatic mode microcontroller employs pseudo-random algorithm to calculate duty value for every motor.
Current duty value is stored in internal EEPROM and used as initial data for next calculation
so microcontroller will generates sequence of nonrepetitive unique patterns for long time.

Most pointers are rated from 3V to 4.5V, so make sure you adjust output voltage before connecting laser.

Board is small, so you don't need any brackets to secure it. Pots will hold it perfectly.

Since my supplier run out of PIC18F1220, I had to use PIC18F1320 in new design.
It's pin-compatible chip with increased memory capacity, but it will NOT work with old HEX file,
so pay attention.
I keep PIC18F1220 version as separated file.

Here are some notes from the bench:
- schematic;
- BOM;
- HEX (PIC18F1320 version);
- PCB;
- PCB in AutoCAD format
- source code for CCS compiler.

Documentation zip file

To program chip, I use USB ICD2 programmer (bought it from eBay) and MPLAB IDE (free soft from

PCB contains standard Microchip ICSP port (5-pins header) for programming purpose, also chip can be programmed by any socket programmer with proper software which supports PIC18.

Controller board assembling (high res guide):

For beginners and busy people, programmed chip, PCB, whole kit, or assembled board available upon request.

Some hobbyists may prefer simplified analog PWM controller based on 556 timer.

Step 3: Spirograph Controller V2.

Picture of Spirograph Controller V2.


New controller board is completely redesigned with use of SMT components.
5V switching voltage regulator eliminates needs for heatsink.  As result controller has became 1.5 times smaller and that provides possibility of making truly pocket version of spirograph.
Embedded voltage regulator for low power laser module provides power within 2 - 4V.
Controller supports 5V and 12V fans. Fan voltage can be set by wire jumpers on board.

Along with auto and manual modes of operation modified controller has ability to store your favorite patterns in internal memory with just press of a button and replay them as a slide show.

New controller can store up to 80 user defined patterns and replay them as endless sequence. Time of showing  single pattern can vary from 3 to 60 seconds. Also there's manual mode when next pattern in sequence is triggered by a user.

Descriptions of new controls.

PROG/CYCLE - selects PROGRAM (manual)  or CYCLE (auto) mode of operation. 
RAND/MEM - selects subroutine to generate random pattern or reading stored patterns from internal memory.
CONT/STEP - selects CONTINUOUS or STEP mode of showing sequence of patterns.
This switch is active only in MEM mode.

Button STEP/MEM: 
 - in PROG or CYCLE/RAND modes button writes current pattern in internal memory. Stored patterns can be displayed as slide show in CYCLE/CONT mode.
 - in CYCLE/MEM/STEP mode button cycles trough sequence of stored patterns.
If button is being held pressed during powering up all internal memory will be cleared.

 - in PROG mode defines speed of motor 1.
 - in CYCLE/MEM/CONT mode defines time interval ( from 3 to 60 Sec) of showing single pattern from sequence.
 - in PROG mode defines speed of motor 2.
 - in PROG mode defines speed of motor 3.

Description of operation.

There are two working modes : PROGRAM (manual)  and CYCLE (auto).
In PROGRAM mode, pattern being displayed depends on positions of potentiometers.
Current pattern can be saved in internal memory by pressing button MEM. After 80 patterns have been stored, each new pattern will substitute the oldest pattern.
To clear memory press and hold MEM button during powering up.

In CYCLE mode, unit displays endless sequence of pattern.
In CYCLE/RAND mode, patterns are randomly generated by software. Initial positions of pots determine shape of the first pattern in sequence. Current pattern can by saved in internal memory by pressing button MEM.
In CYCLE/MEM/CONT mode, unit continuously reads patterns to display from internal memory. Time interval for displaying single pattern depends on position of POT A and can vary from 3 to 60 sec.
In CYCLE/MEM/STEP mode, reading of next pattern from memory is triggered by button STEP.

All technical notes such as
- schematic;
- PCB in PDF format;
- BOM;
- HEX file for PIC18F1320;
- C source code for CCS compiler.

can be downloaded from here

Upon request I can provide assembled SMT controller, mirrors and other stuff for this project.

Step 4: Attaching Mirror to the Motor

Picture of Attaching Mirror to the Motor

New tutorial "How to balance acrylic mirrors".

Acrylic mirror is very light, so double sided sticky foam tape will do job.
Piece 1/2 x 1/2 is working good.

You can use thick paper as a wedge to tilt mirror. Insert it between mirror and motor.
In my setup tilt is 2-3 degrees. It results 6' wide pattern at a distance 18'.

It's impossible to center mirror properly regarding motor shaft and even slight offset will cause
vibration and noise at high speed, so I've developed some tricks for mirror balancing.
Make sure your safety glasses still on.

WARNING!!! This method will work only for acrylic/plastic mirrors!!!

At first I've tried to shape spinning mirror with file but fan is low torque device, so even light pressure with tool forced motor to full stop.

Since idea with turning part and fixed tool has failed, I've tried opposite approach -
Dremel with 1/2" sanding drum against motionless mirror, and that's really worked.

Some advices for people who wants to follow.

Motor with mirror must be off.
Select sanding band with coarse grit.
Set Dremel to minimal speed.
Hold Dremel that axes of tool and motor shaft are parallel.
Slowly bring sanding drum to the edge of mirror and press against it. Don't put much pressure. Spinning tool will rotate mirror and file it at the same time.
Take your time, go easy and, if you have enough patience, you'll get perfect round mirror which will run smooth and quiet.

Step 5: Parallel Optical Setup

Picture of Parallel  Optical Setup

Classic setup.

Motors are placed on parallel lines.

I've developed one trick. I use double sided sticky tape to attach motor to base, and after all adjustments I secure motor on place with hot glue.

Adjustment is simple.
Start motors and aim beam that it stays within mirror area at maximum deflection.

As support for pointer I use piece of wood and some hot glue. Cheap and fast.

Step 6: Square Optical Setup

Picture of Square Optical Setup

Square optical setup. I like it better.

Motors form square without one side.

Using this design we can make more compact device.

Everything else is the same as previous step.

Step 7: Let's Build Tiny House

Picture of Let's Build Tiny House

It's a good habit to keep dust away from optical staff, so our device needs hermetic enclosure.

I had Hammond 7x4x2 box lying around, so I put it in business.

Since we determined optic configuration and beam path we can mark and cut out window.
Then get square piece of transparent acrylic and glue it to its place.
Next drill one more hole for power jack, glue it, connect to board and we are done.

Step 8: Well Done

Picture of Well Done

Not bad, not bad, but I would add something spicy.

...Aluminum faceplate and secret military technology of heat toner transfer!!!

That makes real difference.

Now I'm happy.

Step 9: Laser Spirograph V2 Completed

Picture of Laser Spirograph V2 Completed

New version of PIC based laser spirograph.

To make device more compact I've modified design by adding one more mirror.
Now optical components occupy less area and all parts can be fitted in standard 4" x 4" x 2.5" Hammond project box.  

Aluminum faceplate and background illumination are optional.   


mantisman (author)2016-10-30

Could you please get a hold of me? I am very interested in pricing for your latest controller board or if you maybe have a price list for all components. I hope you are still involved in this project.

pmlammers (author)2016-05-12


I am a little confused by the concept. How are the patterns generated by the fans? Is it because the are not perfectly sqaure all of the time?

aunuradha (author)2015-12-18

hiii this is nice laser pattern.

can u plzz send me cost that can cause to make one laser machine like one u havehavemae

ananda1 (author)2012-09-27

How would one integrate a spirograph into a party SAFELY? Would you aim it at the air, a wall, the ground? Lawyers are expensive.

safay (author)ananda12015-08-17

Mount it above eye-level and project it above eye-level.

LucaL3 (author)2015-04-03

Can you send me a pm about the price? Thanks!

Amuraxis (author)2015-01-01

Very nice build.

My commendations on your build quality and your great documentation.

*double thumbs up*

arandolph1 (author)2014-10-14

Yea, kit price? Great design, how do you power it, and how would i build it without the auto?

jpietrzak (author)2014-08-26

How much for the kit? I am interested in it. :)

ChicagoDave (author)2013-06-09

Good stuff. Great PCB design!

Just curious...have you played around at all with a sound-reactive version of this? Like maybe a VU controlled PWM or something along that line of thought?

sdkr88 (author)2013-02-21

Hi am very much interested on this KIT, can you send me the price list of the same. and do you send a predefined KIT / in spare....

davidheld (author)2012-12-09

Do you sell a kit?

I sent you PM.

mondeluz (author)2012-09-15

hey i too want to build this but i too need to know the full price of parts can u PM mee please?

owen1969 (author)2012-06-08

Hi can you PM me the price for parts, Printed board, and fully assembled unit.



I've sent you PM.

Hi can you also please pm me the price? thanks a lot!

SavoJr (author)2012-04-04

303 comments! Sweet! =) Anyhow, have to ruin that beautiful number with my comment.

If you ppl. build DIY laser show equipments consider to add glass art in front of beam.

It should be already weakened by other means though, because directions of the reflections would be more uncontrolled, and it has potential danger to cause eye damage.

It would look good, that's for sure.

Another nice one is to get holographic lenses and put those in front of the device. I found those from EBAY.. were meant to be for lasers, and had good looking effects.

They cause beams to spread out effectively. Seller guy demonstrated that in some of his videos and showed demo where was more than one lens in use at the same time. Impressive stuff!

bbsbb (author)2011-08-12

Nice Job.
Could you also send me the BOM for the parts? How much will it be if I buy them from you?

AP Digital light (author)bbsbb2011-08-14

PM has been sent.

cmcgann (author)AP Digital light2012-01-24

I know that it has been a long time since you posted this, but could you also send me a list of prices for the parts and the preprogrammed PIC or an unassembled kit?

AP Digital light (author)cmcgann2012-01-25

I sent you PM.

mirogajdzik (author)2012-01-24

That is great !

Djandco (author)2012-01-13

Self cooling too!

Kitty2011 (author)2011-11-27

great picturer, have you got other colour graphic, such as blue or red?

tautius (author)2011-11-20

Does anyone have made one of these on an Atmel microcontroller?

onezhou (author)2011-10-21

i seriously want do one as same as yours ,but my patterns are very simple and ugly, i don't know how to solve my problems,would you like give me the nuclear advice,thank you very very much.

AP Digital light (author)onezhou2011-10-23

In this project I've implemented some rules that should provide random pattern generation and smooth transition.

1. All three fan should never run at the same speed or change speed at the same rate. Usually one or two fans are set for low/moderate speed and one is set for high speed. Human eyes cannot distinguish fast changing patterns so best results can be achieved only with regular low speed fans. On a lowest setting controller can maintain fan speed as low as 60 RPM.

2. If one fan or two are accelerating third one should decelerate.

3. Gradual speed increasing/decreasing. It may take 10 -15 sec for fan to accelerate from 0 to 100% speed.

4. One or two fans may stop spinning and take short brake for 5 -10 seconds.

onezhou (author)AP Digital light2011-10-23

thank you !

rhans (author)2011-09-11

Hello, you would pass me the schematic image of what you did when you made this PCI:
If you are willing to pass me, this is my email:

AP Digital light (author)rhans2011-09-11

PCB in PDF format is in archive pmls(MAR10).zip
Just download, unzip and print in 1:1 scale.

mjaffe (author)2011-08-11

Mine was a speaker, wrapped with a balloon with a front surface mirror siliconed on... amazing.

kylekosan23 (author)2011-07-11

it isnt really for a poor man and i cant even make it

williamyjk (author)2010-02-24

Can you please send me separate pricing for:

1) a programmed PIC
2) circuit board only
3) full, un-assembled kit

Thank you.

PM has been sent.

l19bal (author)AP Digital light2011-07-10

Hi could you also send me separate pricing for:

1) programmed PIC
2) PCB Board
3) full un-assembled kit

Thank you.

AP Digital light (author)l19bal2011-07-11

PM has been sent.

hi,  could i have a price for the pre-programmed pic please

many thanks

PM has been sent.

macnomad84 (author)2011-07-10

How easy are these enclosures to drill?

Hammond box is made from PVC plastic. It's a soft material and it's very easy to work with.

effste (author)2010-11-21

i want to make a laser show that analizes 3 frequency and depending on the frequency there will be a different colour of laser.. for example if the frequency of the sound right now is from 0Hz to 300Hz than the laser which is producing the light will be red. If it is from 300Hz to 5KHz the laser which is producing the light will be green and if the frequency is higher than the light will be blue. I will use matlab to generate different frequencies and dump them into the microcontroller. Any ideas on how to do this?

macnomad84 (author)effste2011-07-10

analogue vu meter basically...

microphone -->LM386--> 3x Hi-Q BPFs

Each output would swing between 0-5 V depending on the signal strength in each frequency "bin" made by the BPFs.

Could run each signal into a threshold detector/comparator circuit to turn the lasers on/off.

bpark1000 (author)effste2011-03-20

You will need an RGB laser set, with each one analog controllable. The 3 lasers are combined onto one beam with dichroic mirrors. You could have a computer looking at the music frequency output, and using a look-up table to drive the lasers.

Treknology (author)effste2010-12-30

The reply is very simple, "color organs" are used at discos and clubs. You just need one shrunk down to power your lasers without burning them out. If you want to be really smart, direct the three lasers through a prism so that they combine to form white light and then throw that on the mirrors, as your music changes the density of each primary color, the output of your display will change accordingly. (If been thinking of this for a raster-scan laster projector.)

AP Digital light (author)effste2010-11-22

You can do it even without microcontroller.
Check schematics of color organs.
Usually it includes three band-pass audio filters.
Output signal of each filter can be conditioned and used to drive TTL input of corresponding laser.

effste (author)AP Digital light2010-11-22

but how will i input a song if i don't have a microcontroller?

AP Digital light (author)effste2010-11-23

There are different approaches to accomplish the same task.
You can build analog version including audio preamp and band-pass filters or microcontroller-based digital version.

PIC with ADC input can be used to perform signal filtering.
Here's few examples

pbergeronronronron (author)2011-07-03

could i replace the whole pic circuit with three of this circuit?

neat.. don't have any PICs lying around, but think i may whip up a manual PWM w/ this circuit for shiiiiizles

About This Instructable




More by AP Digital light:DIY digital piano standWooden LED clockHow to mount and balance mirrors for spirograph project
Add instructable to: