Test Pattern

A project log for Laser Galvo Clock

Clock projected onto the wall with cheap laser galvos

Alan GreenAlan Green 07/01/2019 at 11:495 Comments

Progress! Here's a pattern generated by the PIC32, sent to the DAC, turned into twin differential signals by the op-amp and sent to the galvo:

Pattern projected onto the window blind

It is a cross inside a square. However, I have not yet hooked up the FET to control the laser, so the laser doesn't turn off while moving between the ends of the cross and the bottom left of the square.

Apart from that, there are several noteworthy artifacts in this image:

  1. At three of the square corners, there is a spike where the mirror has - despite the closed loop control - overshot its destination and then walked back. It looks as though the Y galvo might have more problems than the X galvo.
  2. The end points of motion are very bright because the laser dwells on them for some time.  
  3. The path traced to and from the cross is quite curved.  I'm not entirely sure why.

I plan to address all of these problems later in the build, after I have a basic clock showing.

What's Happening With the Electrons

Here's a scope screenshot showing SPI data being sent to the DAC. The DAC output we're following is channel 3, the magenta line.  The SPI command 0xBFFF causes to the output to transition from 0x000 to 0xFFF. The transition from min to max value takes about 6uS

Channel 2 (light blue) is the signal inverted and amplified, then channel 1 (yellow) inverts the signal again.

Over a longer period, we can see the differential output on channels 1 and 2 following the DAC output on channel 3:

Notice that the op-amp output tends to drift toward 0V over the course of a few milliseconds. That's interesting.


One thing I learned: the output pattern is reasonably stable despite not having a separate 3.3V supply for the analog circuitry. 

Things to do next:

  1. Start sending patterns from the RPi to the PIC32.
  2. Solder up the laser fet to a laser so the dot can be turned on and off.

Questions to answer some day:

  1. Measure the +/- 8 V and +/-15V rails while the galvos are operating. Is it noisy? Could the op-amps work directly with the 15V?
  2. How much of the overshoot is due to the settling of the op-amp output?
  3. Is the Y-galvo's overshoot problem specific to (a) the galvo, (b) the driver/amplifier board or (c) the output from the Frame Driver?


manta103g wrote 07/01/2019 at 23:56 point

"where the mirror has - despite the closed loop control - overshot its destination and then walked back.

You can easily implement PID controller's emulator into your closed loop control to avoid overshots.

Just test either of your galvos, drawing the same pattern in parallel to see if they match or should be fine controlled seperately.

In my holographic laser projector, one mirror is fixed with more glue mass to the galvo's rotating axis, making a slight difference if drawing preset 2D patterns on the wall

  Are you sure? yes | no

Alan Green wrote 07/02/2019 at 20:18 point

I'd love to see a picture of your setup!

  Are you sure? yes | no

manta103g wrote 07/02/2019 at 21:25 point

My setup is factory made product, called Holographic Laser Projector, coming with 2 galvos, purchased to verify the proof-of-concept of forward looking laser lidar car radar. The problem is my lidar works fine indoors but CMOS sensor fails to detect reflected laser beam in outdoor on sunny days. This is related to laser class (power of laser) and some other factors

  Are you sure? yes | no

Richard Hogben wrote 07/01/2019 at 14:41 point

Nice update. The corner stuff looks a lot like what laser cutters have to deal with (speed/power through corners, etc)

  Are you sure? yes | no

Alan Green wrote 07/01/2019 at 21:18 point

Yes! The mass being moved is smaller than in a laser cutter, but the power used to control it is also lower. It's easy to imagine that momentum is an issue.

Thank you for your encouragement.

  Are you sure? yes | no