This project started out as my final project for MIT class 6.131 'Power Electronics Laboratory', with the idea to build a control system for a RGB laser projector based on highly efficient switchmode power converters. I had to cut back the scope of the project significantly due to the demands of the professor for the course (he was concerned I would not be able to finish my original design in time), so I ended up only building the laser scanner driver part (no laser diode driver) and did not end up doing anything interesting with the control system, just implementing a simple PID loop in software for the galvo positioning. It works fine, but due to the highly resonant nature of normal laser galvo scanners I was not able to get more than a few hundred hertz of closed loop bandwidth (corresponding a few KPPS in laser scanner vernacular). Someday I would like to revisit the project and implement some proper DSP feedback systems for the scanners and add diode drivers, but to be honest my interests have largely shifted away from pure electronics to focus more on the optics side of things so I am not sure if I will ever get back to this project. In any case its all open source so feel free to pick up where I left off!
This project was based around the Freescale Kinetis KV4x microprocessor, which is a power-electronics oriented chip with an ARM Cortex-M4 processor and some very nice A/D (dual channel 12-bit 2MS/s) and PWM generator modules (12 channels, 3GHz effective clock speed). I chose this processor for a few reasons, partially because Freescale has a very nice free/open toolchain for their chips (based on GCC and eclipse) and a nice open set of libraries that provide a decent abstraction layer for all of the peripherals. I also chose it because I found a Freescale rep who was willing to give me whatever development tools I needed for the project, which was great because while the Kinetis chips are pretty affordable (about $5 a piece) the dev boards are pretty pricey from Freescale (about $250 worth of dev tools were used for this project).
Since the Kinetis has suitable A/D and pwm generator modules, all that I needed to build were the power amplifier stages to drive the galvos and the signal conditioning circuitry to read the galvo position. For the power amplifier I decided to use a fullbridge of Fairchild FDD1600N10ALZ MOSFETs since they had a very low gate charge (~1nC) and were reasonably affordable ($0.30 each) which meant that I could easily switch them at the 1MHz switching speed I wanted to keep filter design easy. For the signal conditioning I just used a quad opamp to calculate the galvo position from the photodiode outputs from the galvo. I also added in an average current measurement shunt in series with the galvo supply, so that I could monitor the galvo power consumption to avoid overheating them. I put all of the components needed for a signal channel on a TWR form factor board, and sent them out to 3PCB for fabrication.
After the parts came in I assembled the boards, and everything more or less worked as expected. It took a bit of time to get the hardware on the Kinetis all initialized correctly, but after getting all of the registers configured to my liking everything worked out quite nicely. I took a few scope shots of the output of the H-bridge, both with and without the output filter connected. Without the output filter connected the rise time is 4.5ns with an overshoot of about 10%, and after connecting the output filter the rise time is limited by ripple current in the output filter which was about 50ns at 10v input. Not to bad for 100v MOSFET with 0.15ohm on resistance. I also did a bit of load testing, at 50v input voltage, 50% duty cycle, and 2A output current the board got warm but not worrisomely so. I can't think of any high speed galvo that can handle much more than 2A average so I think this power stage should be pretty bulletproof for laser scanning.
After the first board worked out I went ahead and built up a second galvo driver board (to allow for x-y scanning) and built up a little mini projector with a 1mw 670nm laser diode module. The signal source is a a pair of function generators to generate some simple lissajous figures for the project demo.
I also took a short video of the system running at put it on youtube.
The design is fully open source, so feel free to download the Kicad project and Freescale KDS project. I also have an open source RGB laser source that goes nicely with these scanners. No video of them working together, but I did hook everything up with a USB sound card based DAC and did some simple abstract scanning for the ProjX demo at MIT Techfair.
Everything on this site (pictures, schematics, code, etc) is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License, which essentially states that you can do whatever you want with it, so long as you
If you need a different license, contact me.
questions? comments? Want to help? email me firstname.lastname@example.org