Page 2 of 6 FirstFirst 123456 LastLast
Results 11 to 20 of 53

Thread: Lasershark, a completely open-source low cost dual-laser 12bit USB laser DAC

  1. #11
    Join Date
    Apr 2012
    Location
    Baltimore, MD
    Posts
    69

    Default

    Quote Originally Posted by jeejeedr View Post
    Any reason why you only have two channels apart from x and y?
    If you had three, you could use it for rgb projectors.
    As said with the objectives in the first post, I was attempting to make something low cost for folks who only wanted to use ONE laser. High resolution dacs with multiple channels get expensive quick!

    After a lengthy analysis of DACs that would support 3 channels (two for the galvos and one for a laser) I found the optimal one for the objective had 4 channels so I broke that bonus channel too.

    As said here and on the website I do intend to make a RG[B/V] showcard.

    Quote Originally Posted by ArcDevilz View Post
    Looking at the photos on your site the blanking seems to be off slightly. Almost as if the laser isn't completely shutting off. Check your PM. Would definitely like to see this project get off the ground. Many years ago we had an 8 bit DAC we called ghettolaze. We had this silly notion that laser DAC's can be had for 20-30 bucks. Your Lasershark DAC can become just that especially since it's an open source project. I'm going to email Josh J he was in charge of PCB design. I want to see if he wants to incorporate some of his software to this project.

    Ivan
    I really doubt the blanking is an issue with the dac:
    -The photos on my website are time-lapse photos which is going to accentuate tails.
    -I'm using OpenLase which is still quite new and potentially buggy. Furthermore I didn't do any OpenLase offset calibration/laser delay tuning.. I had to take those pictures and the video very quickly for an upcoming event where this will be demoed.
    -I'm using analog laser drivers that were not really tuned because I don't intend to use them too much longer. I only purchased these for the event. I have been working on my own open-source p-channel drivers for lower wattage lasers, but these aren't quite done yet.

    edit: Confirmed. I was playing with a smoke machine tonight and saw that I had bumped the laser delay in OpenLase up to 6ms. That means the laser stays on 6ms longer than it should. Honestly I'm surprised I don't see even longer tails.... I probably have the offset set too low on the analog driver.

    So all in all, I'm quite confident the blanking issue is software/laser driver related vs DAC related. You did bring up something I should think of.. I was just trying to demo something working, but it would probably good to later make some "performance"-demonstrating pictures.

    Quote Originally Posted by mixedgas View Post
    Can this be made to work with the Open API?

    http://www.fab-favreau.com/index.php...ShowController

    If so, it opens it to use with LSX and LFI player.

    Steve
    I would have to investigate further but I don't immeditely see a show-stopper reason why this couldn't get done. Good to know about
    Last edited by macpod; 11-16-2012 at 17:40.

  2. #12
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    1,281

    Default

    Quote Originally Posted by macpod View Post
    There's no reason it couldn't work with other software (e.g. laserboy)
    Just out of curiosity, have you tried LaserBoy in Linux (ubuntu)?

    LaserBoy was born in Linux!

    There's a guy in Germany who is going to get LaserBoy registered as part of the ubuntu distribution!

    I'm a Fedora guy, myself, but Linux is Linux!

    Can LaserShark play standard multichannel (16-bit, 48KHz) wave files?

    Another question: If multi-channel DACs are expensive, why didn't you just use a sound card DAC and add some extra smarts to it to make it look like something else, so that Linux would not assume anything about it being a generic sound card?

    James.
    Creator of LaserBoy!
    LaserBoy is free and runs in Windows, MacOSX and Linux.
    http://laserboy.org/code/LaserBoy_Current.zip
    http://theamerikans.org/LaserBoy

    Ask me about my LaserBoy Correction Amp Kit for sale!

    Either do or do not do. There is no undo!

  3. #13
    Join Date
    Apr 2012
    Location
    Baltimore, MD
    Posts
    69

    Default

    I downloaded it, but my interests do not completely lay in making laser shows so OpenLase was a better fit for my needs.

    On the technical side, the LaserShark is talked to via two USB endpoints:
    Bulk: Used to pull parameters and set parameters (such as update rate).. this will fit very nicely with the Open API configuration
    ISO: Used to spit out data in 512Byte chunks. As-is, each channel (X, Y, A, B) is a 16 bit unsigned sample so that means each chunk consists of 64 sample sets. These are transmitted 1000 times per second = 64kpps UNOPTIMIZED. Optimizing would just require better bit stuffing since it's a 12-bit system and as-is I'm not taking advantage of the 4 unused bits per channel sample. It's about 75% efficient as-is now.

    Playing wav files should be trivial. You should only have to shift some bits and potentially convert from twos compliment to unsigned (I forget what format the WAV samples are in). Under linux and basing the program off the current lasershark_hostapp, that should be less than a few hours coding time.

    Edit: Do you have a quad channel (X, Y, laser1, laser2) sample wav file I could grab?

    Quote Originally Posted by james View Post
    Another question: If multi-channel DACs are expensive, why didn't you just use a sound card DAC and add some extra smarts to it to make it look like something else, so that Linux would not assume anything about it being a generic sound card?
    The audio usb class for soundcard chips is burned in and cannot be modified. The result of using something like a TI soundcard dac in a design would basically be a combo soundcard/amplifier pcb. You would still have the potential to get into unknown laser states and also run into audio configuration annoyances under the OS. You could make a kernel driver to immediately grab the card and properly talk to it, but that is not an ideal solution since no distinction could be made between a real usb soundcard and a laserdac.

    All in all, the lasershark is a much cleaner solution with greater flexibility.

  4. #14
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    1,281

    Default

    You could choose a special palette of just the colors between red and green (already part of LaserBoy) and make your art and waves using that palette. Then you could split that 6 channel wave into stereo pairs of X Y and R G. That's all in LaserBoy's current capabilities. You can also reduce the bit resolution of the galvo channels (and the currently loaded vector art) to 12 bits. The colors are already in 8 bit (bit shifted up 7 bits). Just lop off the least significant 4 bits.

    You might also make all of your art in true color mode and choose your colors from the shades of red or green and make your own palette of yellows or whatever...

    You can write your own program to output text tables of vectors with colors made of only reds and greens, etc... and import that into LaserBoy to be converted to ILDA or wave.

    This idea would work with any two color system, TTL, analog or a combination of both. You might have to make your own special palette, but LaserBoy can do that.

    Does LaserShark read ILDA formats 0, 1, 2, 4 & 5?

    The kind of waves LaserBoy makes are 16-bit signed short int.

    I have already successfully built LaserBoy in ubuntu. All you need to do is navigate to the src directory and run make!
    Last edited by james; 11-16-2012 at 12:11.
    Creator of LaserBoy!
    LaserBoy is free and runs in Windows, MacOSX and Linux.
    http://laserboy.org/code/LaserBoy_Current.zip
    http://theamerikans.org/LaserBoy

    Ask me about my LaserBoy Correction Amp Kit for sale!

    Either do or do not do. There is no undo!

  5. #15
    mixedgas's Avatar
    mixedgas is online now Creaky Old Award Winning Bastard Technologist
    Infinitus Excellentia Ion Laser Dominatus
    Join Date
    May 2007
    Location
    A lab with some dripping water on the floor.
    Posts
    9,108

    Default

    Do you have enough IO left to add a few more TTL lines for RGB ?

    Clipping laser art to ttl can be pretty subjective.,..

    Steve

  6. #16
    Join Date
    Apr 2012
    Location
    Baltimore, MD
    Posts
    69

    Default

    Quote Originally Posted by james View Post
    Does LaserShark read ILDA formats 0, 1, 2, 4 & 5?
    The Lasershark board is just a DAC, not an ILDA interpreter so the pcb you see in the picture doesn't support reading ilda formats. If you had a computer application that could read the ilda format and spit out the proper samples over USB to the device then this would be possible.

    Theoretically you could reprogram it and make it an ILDA interpreter if you wanted

    I'm not sure if I understood your question.

    Quote Originally Posted by mixedgas View Post
    Do you have enough IO left to add a few more TTL lines for RGB ?

    Clipping laser art to ttl can be pretty subjective.,..

    Steve
    I only broke out the SPI and UART pins (6 pins total). These all operate at 3.3v. These could be used for TTL laser setups to support 6 more channels.

  7. #17
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    1,281

    Default

    Quote Originally Posted by macpod View Post
    The Lasershark board is just a DAC, not an ILDA interpreter so the pcb you see in the picture doesn't support reading ilda formats. If you had a computer application that could read the ilda format and spit out the proper samples over USB to the device then this would be possible.

    Theoretically you could reprogram it and make it an ILDA interpreter if you wanted

    I'm not sure if I understood your question.
    Oh. I guess I over-thought it a bit. I thought you had a way to feed it.

    It would be trivial to make a new format output in LaserBoy to be 12-bit 4 channel interleaved data.

    James.
    Creator of LaserBoy!
    LaserBoy is free and runs in Windows, MacOSX and Linux.
    http://laserboy.org/code/LaserBoy_Current.zip
    http://theamerikans.org/LaserBoy

    Ask me about my LaserBoy Correction Amp Kit for sale!

    Either do or do not do. There is no undo!

  8. #18
    Join Date
    Apr 2012
    Location
    Baltimore, MD
    Posts
    69

    Default

    Quote Originally Posted by james View Post
    Oh. I guess I over-thought it a bit. I thought you had a way to feed it.

    It would be trivial to make a new format output in LaserBoy to be 12-bit 4 channel interleaved data.

    James.

    The lasershark_hostapp is the "feed" and setting configuration program for the lasershark hardware. It connects to the JACK audio server (what OpenLase uses to transfer data between different applications) and pulls sample packets to stuff into a ringbuffer. This ringbuffer is then read at a later time by a function which packetizes the data and sends it as ISO packets to the device using libusb. This allows real-time processing and display with OpenLase

    If your application only makes files for later processing/projection (i.e. it makes a WAV file which can be played over and over), then the JACK portion of the lasershark_hostapp would need to be removed and replaced with a file parser. Reading WAV file is pretty easy which is why I said it would be trival. You could do the exact same thing with ILDA files too if you wanted to too.

  9. #19
    Join Date
    Mar 2012
    Location
    Akron, Ohio USA
    Posts
    1,281

    Default

    I bet there is at least one app already out there than uses Jack to play multi-channel waves.

    Audacity uses Jack. I really like that app! I wish it could play more than just mixed down stereo.
    Creator of LaserBoy!
    LaserBoy is free and runs in Windows, MacOSX and Linux.
    http://laserboy.org/code/LaserBoy_Current.zip
    http://theamerikans.org/LaserBoy

    Ask me about my LaserBoy Correction Amp Kit for sale!

    Either do or do not do. There is no undo!

  10. #20
    Join Date
    Apr 2012
    Location
    Baltimore, MD
    Posts
    69

    Default

    All, I'm re-working this board to add TTL RGB support. I believe it will only increase costs by about $0.40 to 0.60$ so might as well

    The specs will be:
    - 12bit X and Y outputs using 3-pin polarized headers often found on chinese galvos. These outputs follow the ILDA standard (I.e. differential, X+ swings from 5v to -5v and X- swings from -5v to 5v)
    - 2 12bit single-sided 0-5v outputs.
    - 1 0v/5v TTL output.

    To have access to up to 2 analog 12bit channels:
    -Use the 2 12bit channels.

    To have access to 3 TTL channels:
    -Use the 2 12bit analog channels as TTL outputs
    -Use NEW ttl-only output


    What else should I contemplate adding on this board?
    Last edited by macpod; 11-23-2012 at 22:22.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •