Main

OLSD Rev 3

Back to OLSD Main Page

OLSD V3 Arduino Shields
OLSD V3 Arduino Shields


The Open Laser Show DAC is an Open Source Hardware/Software project.

It implements a Laser Show DAC (Digital to Analog Converter) that uses the ILDA standard laser projector connector. The one exception that it uses singled ended color signals.

If you would like a history of this project and how it got to this point please go to the DAC History Page. The history page details the origin of the idea and its progression over the years.

Specifications:

  • Scan Rates: 1 kpps to 30 kpps
  • XY Resolution: 12 Bits
  • Color Resolution: 3 bits (for a total of 512 colors)
  • Colors: Red, Green, Blue outputs
  • TTL Shutter Output
  • Built in test patterns accessible by button.

This board is built as an Arduino Shield. It requires a Arduino 2009 (Duemilanove) or compatible Arduino micro-controller board. The important thing that is needed for compatibility is the FTDI USB to Serial converter chip. The newer UNO boards are not supported yet. In order for the software/hardware to work properly a jumper wire needs to be added between the CTS pin on the Arduino/FTDI chip and digital pin 8. This is used to control the stream of serial data being sent to the Arduino. Some boards make this easy and include a pad for the CTS pin (Arduino and Seeduino brands). The Freeduino will work however it does not break out a pad for the CTS pin (this makes it a bit more difficult to modify).

Ordering Boards:

I have uploaded the Eagle .BRD file to OSHPark.com board service for the convenience of ordering the boards. The service provides 3 boards for around $26. If you would like less expensive boards (less quality) then try Dirty PCBS. They also take Eagle .BRD files directly. For any other services use the Gerber files provided in the Hardware release below. Most services take Gerber files zipped up in a zip file.

Downloads:

USB Drivers Zip or Self Installing -> latest drivers can also be found here on FTDI's web site.

Interface DLL V3.2

Test Program V3.2

MLD File V1.1

OLSD Software - OLSD_V3_Software_Release_10112011.zip

OLSD Hardware - OLSD_V3_Hardware_Release_10112011.zip

OLSD_V3_Arduino_Library_V1.zip To install the Arduino library, unzip and copy the OLSD folder into the Libraries folder of your Arduino Application. Then close and restart the IDE. There will be 4 examples available as well accessible from the File->Examples->OLSD sub menu.

Arduino/AVR Port Map

JmpArduino PinAVR PinDirectionOLSD Function
J3Digital 10PB2(SS)Output#CS DAC
J3Digital 11PB3(MOSI)OutputSPI Data to DAC
J3Digital 13PB5(SCK)OutputSPI Clock to DAC
J3Digital 9PB1Output#LDAC DAC
J3Digital 8PB0Output#CTS to FTDI Chip (not on shield)
J1Digital 7PD7OutputRed R2R Bit 2
J1Digital 6PD6OutputRed R2R Bit 1
J1Digital 5PD5OutputRed R2R Bit 0
J1Digital 4PD4OutputGreen R2R Bit 2
J1Digital 3PD3OutputGreen R2R Bit 1
J1Digital 2PD2OutputGreen R2R Bit 0
J2Analog 0PC0OutputBlue R2R Bit 0
J2Analog 1PC1OutputBlue R2R Bit 1
J2Analog 2PC2OutputBlue R2R Bit 2
J2Analog 3PC3OutputILDA Shutter
J2Analog 4PC4OutputStatus LED (1 = On)
J2Analog 5PC5InputUser Switch (0 = Pressed)

ILDA 25 Pin D-Sub MAP

PinFunction
1X+
2Y+
3NC
4Interlock (Connected to Pin 17)
5R+
6G+
7B+
8NC
9NC
10NC
11NC
12NC
13Shutter
14X-
15Y-
16NC
17Interlock (Connected to Pin 4)
18-20Ground (for color outputs)
21NC
22NC
23NC
24NC
25Ground

The following components are part of the OLSD (Open Laser Show DAC) project:

OLSDTest

This program is written in Microsoft Visual C++ using MFC (Visual Studio 2005). Use this program to test the OLSD hardware. This software includes several built in test patterns inlcuding the ILDA12k, ILDA30k, Quadrature, Laser Media, and a few other test frames that I devised.

OLSD DLL

This is a DLL library that uses the Open Laser Show Controller interface. It can be used by other applications to interface with the OLSD hardware in a standard way. This DLL project is written in Microsoft Visual C++ (using Visual Studio 2005).

The source code for the DLL test application is included as well.

You can find more information about the OLSC here.

Spaghetti Laser Show Software

To install the OLSD.DLL driver on your computer so it works with Spaghetti laser show software:

1) Rename the OLSD.DLL to FSX2.DLL 2) Copy FSX2.DLL to the C:\Program Files\The Hinged Newt\Spaghetti\Drivers\ folder.

LSX Laser Show Software

TODO - for now see the excellent tutorial thread that DrLava wrote on the Photon Lexicon forum here http://www.photonlexicon.com/forums/showthread.php/18351-Using-the-Open-Laser-Show-DAC-(OLSD)-with-LSX-laser-show-software

OR

Just simply copy the OLSD.DLL into the driver folder (TODO add the driver folder path). This should overwrite the OSLD.DLL that is in there already (which is the non-public version).

OLSD Firmware

This is the Arduino firmware. It was tested using a Arduino Duemilanove with ATMega328, Freeduino and Seeeduino.

It will fit in a smaller amount of flash however you may need to remove some of the built in test frames.

This firmware supports point output rates up to 30kpps. It also has built in test patterns. These are activated by pressed the button near the ILDA connector.

The firmware was developed using WinAVR. There are 2 development environments to choose from. A make file is included. Project files are included for MS Visual Studio 2005 and AVR Studio 4. You can also compile and upload to the Arduino from the command line too. Programming is done through the Arduino Boot Loader using the included AVR Dude programming tool. Alternatively AVR Studio can be used to program the Arduino through ISP.

OLSD Laser Shield Hardware - OLSD_V3_Hardware_Release_10112011.zip

Schematic, Board Layout, Gerbers, and Bill Of Materials (with Digi-Key stock numbers). The schematic and board were done in the free version of Eagle CAD. A PDF version of the schematic has been included. All parts except for PCB and Arduino can be purchased from Digi-Key using the included Digi-Key part numbers.

Writing Your Own Programs:

It is possible to write your own programs that communicate with the OLSD device. You can use either the interface DLL, the CLaserOutput class object or you can roll your own. For more information see the OLSC documentation and the OLSDTest program.

You can also write your own programs for the Arduino micro-controller that hosts the OLSD board. There is a library to install in your Arduino IDE that allows you to output points at specific rates. There is an example for a point, line, and circle included with the library. See the downloads above for more information.