Electronics - Lasershark - Intro (Friggin sharks with lasers)

I've wanted to play with a laser projector since I was a kid. When I saw Héctor Martín Cantero's excellent OpenLase efforts, I decided now was the time to make that projector and set to work. Initially I built a laser DAC (aka Showcard) using a soundcard as made popular by the folks on a few different laser forums.
While this soundcard DAC worked, it was a pain to setup. First I had to find the right sound card. Next I had to build a dac amplifier board and tune it to generate semi-ILDA standard voltages. Finally, EVERY TIME I plugged the card in I would have to do an elaborate interpretive dance to ensure linux found and configured the proper drivers, that the audio levels were correct, that OpenLase wasn't trying to use the built-in soundcard, and the list goes on... Yuck!
To make this whole setup easier, I decided to make a dedicated USB laser DAC. The first fruits of this effort are the LaserShark (Now at version 2.0!):

This board is intended to be a low cost open-source USB Showcard for folks who want to make their own 1 or 2 analog/ttl laser projector. To use it, you will need to make or obtain:
  • Lasers capable of TTL or (ideally) 0-5v analog modulation and power supplies for the lasers. The Lasershark has two 12-bit analog/ttl channels and one ttl-only channel for you to use.
  • Galvos, galvo amplifiers, galvo amplifier heatsinks, and a power supply for these components. For a cheap source of galvos, ebay is a good spot to check. I would suggest getting as high Kpps units as you can afford (at least 20).
  • Computer with usb port.
If you're looking for a more advanced board, check out the bottom of this page, one is in the works...


Lasershark v2.0 Specifications:

  • ILDA-standard differential +/-10V 12-bit X and Y output. Adjustable to get as close to the spec as possible.
  • 2 0-5V single-ended 12-bit analog/ttl laser channels (Channel A and B)
  • 1 5V single-ended ttl laser channel. (Channel C)*
  • Interlock connector (INTL)*
  • Without transfer optimizations the unit is able to drive all channels at full resolution up to 64Kpps. This rate could be increased by general optimizations to the transfer protocol or by reducing the number of output channels/resolution for custom applications.
  • Dimensions: 50mmx80mm
  • LPC1343 Microcontroller running at 72Mhz.
  • 2 User LEDs
  • Reset (RST) and Program (PGM) buttons
  • User-programmable/upgradeable without a programmer! (Mounts as a USB mass storage device that you can drag/drop files into).
  • SWD connector for debugging/programming.
  • UART, I2C, SPI, and power lines are broken out into 0.1" headers. the UART connector is compatible with 3.3v FTDI cables.
  • Jumper and Connector spot to enable use of an external 5v power supply.
  • 4 4-40 Mounting Holes (eat your heart out Raspberry Pi devs They finally saw the light!)


Host Application:
The Lasershark host application falls under the GPL V2 license. In order to run it you will need to install libusb-1.0 and JACK2 (plus the dev files if you want to compile). The Lasershark host application can be downloaded via github:
Note: Information on how to compile and run this application can be found on the usage page.


The Lasershark firmware code falls under the GPL V2 license. Due to it's relative ease of setup, cross-platform nature, and commercial support (if you need it), I choose to develop the Lasershark firmware using Code Red Technologies LPCXpresso IDE setup. The Lasershark firmware can be downloaded via github:

If you just need a firmware to flash your lasershark, you can download it here:

Note: Flashing instructions can be found on the usage page.


Lasershark Hardware:
The Lasershark schematic/pcb layout and schematic/footprint libraries fall under the GPL V2 license. They were made with KiCad. The board files can be obtained via github:

Note: Do not use the KiCad that comes from the Ubuntu Repos! It is generally quite dated. Instead, use Adam Wolf's daily testing repo.


Lasershark Trademarks:
All rights are retained to the Lasershark and related trademarks.


Obtaining a Lasershark:
Available now! Please see the buy page!


What's next?:
Based on initial response from Lasershark 1.0, I'm going to tweak the board and add a few more features (such as RGB ttl output). I'm well under way in this effort. Once this is done, I am going to have 10 more boards made and distribute them to lasershow software devs (email me if interested). Once it meets their approval I'll look into doing a group-order. If you are interested in hearing developments, please join the mailing list:

When I'm done with these Lasershark tweaks, I will next focus on building a full-color laser projector. To do this I will need to build a new USB Showcard with additional analog output channels. I have started the design of this already (it will be called the Lasershark Pro). This new model will at the very least feature:

  • One or more additional laser channels
  • ILDA standard DB25 connector + electrical signals in addition to individual polarized connectors (for local laser/galvo amp connections).
  • Whatever other features I can stuff in without breaking the bank. Have one you want to see? Let me know!


If you found this project interesting or helpful and have the means feel free to donate!