Page 1 of 2 12 LastLast
Results 1 to 10 of 18

Thread: Using ILDA DACs with CRTs (Oscilloscopes, etc.)

  1. #1
    Join Date
    Oct 2024
    Posts
    8

    Default Using ILDA DACs with CRTs (Oscilloscopes, etc.)

    Hi there!

    I've been working on a 3D rendering engine for video games that outputs a stream of samples to be displayed on an analog oscilloscope or similar CRT XY display. These types of displays are most similar to laser projectors. In fact, I suspect it would be very easy to control an oscilloscope's display using an ILDA analog output.

    Up until now, I've been using a DC-coupled audio DAC, the PreSonus 26c. This gives me 192 kpps for the three channels that I need (X, Y, and blanking). Unfortunately, likely because this DAC is built for audio and not XY video, there are some nuisances with the electrical signal that it generates, even though it is DC-coupled. So I figured... Maybe I should give a laser DAC a try, as this DAC is purpose-built for the XY video signal that I want to generate.

    After looking into it, I'm having a hard time finding an ILDA DAC that would be able to make full use of the high-speed CRT of an oscilloscope. I can probably get value out of going even higher than 192 kpps, so I don't think something like the Helios Laser DAC would be a good fit, since it only goes up to 65.5 kpps.

    I found the RayComposer USB might be a great DAC for this purpose, as it goes up to 200 kpps, but I'm not sure if it is sold anymore (I've sent an email to them, so we'll see if I hear back...).

    Does anyone have any thoughts on this? Or have experience using a laser DAC with a CRT?

    Cheers,
    Allen

  2. #2
    Join Date
    Jul 2008
    Posts
    783

    Default

    Welcome to the Forum, Allen! I'm interested in learning more about your project, and I'm looking for a better DAC as well.

    I recently acquired a vintage Tektronix 100Mhz scope in mint condition and I'm sending laser graphics to it using a cheap DC modified 8ch USB audio adapter, but it's limited to 48Khz. I have a SoundBlaster X4 8ch connected to my audio rig that's capable of 192Khz, but I'm a bit reluctant to hack into it for DC modification. I might invest in a second one and hack away in the name of science down the road.

    With a laser projector, the lasers react instantly to a change in signal, but the scanners have mass and take time to react, so you have to delay the blanking or modulation signals by a controlled amount to compensate. With the scope it's just opposite- the electron beam is instant, but the phosphor has a slight delay. I've also found that obtaining good 'greenscale' rendering of complex color is a bit tricky especially when considering the fact that phosphor has persistence not found with lasers, and that affects the dynamics of things. Clocking at oddball sample rates can produce slight gain fluctuations in the X-Y. It's been a good learning experience.

    Dean
    Last edited by dchammonds; 10-09-2024 at 20:53.

  3. #3
    Join Date
    Oct 2024
    Posts
    8

    Default

    Quote Originally Posted by dchammonds View Post
    Welcome to the Forum, Allen! I'm interested in learning more about your project, and I'm looking for a better DAC as well.
    Hi Dean, it's great to e-meet you and exciting to find someone else who is working with the same technology! Here's a bunch of info about my project(s):

    I took inspiration from Ocilloscope Music and old vector display arcade cabinets. The idea is to use modern computing and DACs to create smooth curves and shapes that were very expensive to create with hardware vector generators used in 1970s and 1980s arcade cabinets. That said, much of the aesthetic of a monochrome CRT can be simulated on a high resolution OLED display, except for one thing: brightness. If you tried to make an OLED go that bright, you'd burn it out. For an example of what I'm talking about, remember what the laser shots in the Asteroids arcade cabinet looked like. This effect is produced by letting the electron beam sit at one point on the screen to really saturate the phosphors. This spectacle makes the XY CRT display most interesting to me and is also the reason I would like to experiment with laser projectors on a non-reflective screen in the future, in whatever way I can do this safely.

    I initially wrote my own game engine and editor. The focus was on the rendering engine, so the game engine and editor were almost unusable garbage. Here are some old demos from when I started this project. Recently, I've done a proof-of-concept port of the rendering engine to the Godot game engine. This allows me to render both raster and vector images simultaneously, but the synchronization code with the Godot engine is currently quite hacky and might need some improvement. Related to the Oscilloscope Music roots, I've had fun using my engine as a make-shift and silly audio synth.

    Quote Originally Posted by dchammonds View Post
    I recently acquired a vintage Tektronix 100Mhz scope in mint condition and I'm sending laser graphics to it using a cheap DC modified 8ch USB audio adapter, but it's limited to 48Khz. I have a SoundBlaster X4 8ch connected to my audio rig that's capable of 192Khz, but I'm a bit reluctant to hack into it for DC modification. I might invest in a second one and hack away in the name of science down the road.
    One thing about pro audio DACs is that the ASIO SDK is really really nice to work with. Here's a list of DC coupled audio DACs, most of which probably have ASIO drivers. Honestly, even though I'm posting here to see if I can find something better, I think there is still a lot of value in the plug-and-play nature of a DC-coupled 192 kHz ASIO DAC.

    Sometime in the next week or so I plan to do an electrical analysis of the PreSonus Studio 26c, which I can post on this thread. This is the only DAC I've ever worked with and it's served me well, but has some quirks that I've needed to work around. I feel like I can do better, but I'm not sure what that solution will look like yet, hence me asking about ILDA DACs in this thread.

    Quote Originally Posted by dchammonds View Post
    With a laser projector, the lasers react instantly to a change in signal, but the scanners have mass and take time to react, so you have to delay the blanking or modulation signals by a controlled amount to compensate. With the scope it's just opposite- the electron beam is instant, but the phosphor has a slight delay. I've also found that obtaining good 'greenscale' rendering of complex color is a bit tricky especially when considering the fact that phosphor has persistence not found with lasers, and that affects the dynamics of things. Clocking at oddball sample rates can produce slight gain fluctuations in the X-Y. It's been a good learning experience.
    I've recently realized that this subject is one that I need to get a better understanding of. Specifically, I'm not sure what is the behaviour of my oscilloscope, what is the behaviour of my DAC, and what is the behaviour of electricity over a wire. In my rendering engine, I've written some code to make the beam move nicer when transitioning between two distance points on the screen, because the beam will overshoot and oscillate for a while if I don't do this. I don't know if this is because of my oscilloscope, DAC, the nature of electricity on a wire, or a combination of all three. Experimenting with some different DACs will probably give me a better understanding of this...

  4. #4
    Join Date
    Jul 2008
    Posts
    783

    Default

    Hey Allen!


    Thanks for sharing your info. I was amazed by the Oscilloscope Music site- the idea of hearing and seeing the XY is something I have always enjoyed and I incorporate it in my own apps. Most laser shows are choreographed around real music, but if you are generating abstracts with sines and cosines, hearing the stereo XY itself can be engaging. The video I saw at the site was just stereo, yet it appeared to create some intensity modulation based on beam speed toward the end.

    I liked your gaming demo with all the different shapes on the screen at the same time. There's an old Asteroids laser game out there if I can only find a link to it.

    Quote Originally Posted by allenwp View Post
    I've recently realized that this subject is one that I need to get a better understanding of. Specifically, I'm not sure what is the behaviour of my oscilloscope, what is the behaviour of my DAC, and what is the behaviour of electricity over a wire. In my rendering engine, I've written some code to make the beam move nicer when transitioning between two distance points on the screen, because the beam will overshoot and oscillate for a while if I don't do this. I don't know if this is because of my oscilloscope, DAC, the nature of electricity on a wire, or a combination of all three. Experimenting with some different DACs will probably give me a better understanding of this...
    The oscillation you are referring to is an artifact of the quantization process itself. When you make large step changes at the quantum level, you get considerable ringing at a frequency of half the sample rate- this is also known as the Nyquist frequency; it's like the speed of light in a vacuum at the given sample rate. I use a simple velocity limiting algorithm that might be similar to what you're doing when I need to do big step changes.

    Things get a lot more complicated when you're dealing with laser scanners with their mass and limited velocity, acceleration and deceleration capabilities.

    Dean
    Last edited by dchammonds; 10-10-2024 at 21:39.

  5. #5
    Join Date
    Oct 2024
    Posts
    8

    Default

    Quote Originally Posted by dchammonds View Post
    There's an old Asteroids laser game out there if I can only find a link to it.
    Is this the one you were thinking about?

    I actually used some of Seb Lee-Delisle's thoughts about sorting objects to reduce the travel time between shapes in my oscilloscope rendering engine, but found out this was a bad idea in practice. I'll describe why:

    Let's say you draw four objects in this order: A B C D. The next frame they haven't moved much so you draw them again in the same order, A B C D. This means there was around 15 ms between each refresh of the object, depending on the frame rate you're targeting.

    Later on, the objects move around and now it makes sense to draw the objects in the order D B C A. This means that between the previous frame and this frame, object D will have almost no time at all between refreshes and object A will have up to 30 ms between refreshes. This causes two issues: object D's movement will stutter and object A will appear to flicker.

    So especially with an oscilloscope beam that moves quite quickly, it's most important to always draw objects in the same order to ensure that none flicker or and no moving objects stutter.

  6. #6
    Join Date
    Jul 2008
    Posts
    783

    Default

    Quote Originally Posted by allenwp View Post
    Is this the one you were thinking about?
    Nope. What I was looking for was an app called Laseriods posted by Zoof on this forum back in 2008. Laseriods was written for use with the EasyLase laser DAC which is now obsolete, but you can swap out a dll file and fake it into running on a DC modified multi-ch soundcard.

    https://photonlexicon.com/forums/sho...ight=laseroids

    Up until now, I've been using a DC-coupled audio DAC, the PreSonus 26c. This gives me 192 kpps for the three channels that I need (X, Y, and blanking). Unfortunately, likely because this DAC is built for audio and not XY video, there are some nuisances with the electrical signal that it generates, even though it is DC-coupled. So I figured... Maybe I should give a laser DAC a try, as this DAC is purpose-built for the XY video signal that I want to generate.
    I'm still wondering about those nuisances with the signal. Do you have more info? There's a chance that the signals you are sending are undergoing a sample rate change that you're not aware of- if so, it might be fixable. I'm unfamiliar with the PreSonus 26c, does it appear to Windows like just another sound card?

  7. #7
    Join Date
    Oct 2024
    Posts
    8

    Default

    Quote Originally Posted by dchammonds View Post
    I'm still wondering about those nuisances with the signal. Do you have more info? There's a chance that the signals you are sending are undergoing a sample rate change that you're not aware of- if so, it might be fixable. I'm unfamiliar with the PreSonus 26c, does it appear to Windows like just another sound card
    Nuisances I’m talking about are purely hardware; the software works great and it’s clear that the hardware is operating at a full 192 kHz. It’s not a generic USB audio device, it has its own drivers, including ASIO drivers, and there’s not any difference between WASAPI Exclusive Mode and ASIO in therms of the resulting electrical output. ASIO is just nicer to program for, especially for 3+ channel, as I believe the first two and second two channels appear as different audio endpoints in WASAPI (they do in the windows control panel anyway).

    In terms of the details: don’t worry, I’ll post back here with lots of pictures in the next week or so when I’ve done my electrical analysis

    I get the feeling that I really just want more points per second when controlling a CRT. Here’s an example where more than a million points per seconds were used: https://trmm.net/Vectrex/

    It seems the other ILDA DAC you mentioned was only 110,000 PPS, so I don’t think there is anything out there that has pushed passed around 200,000 PPS for ILDA. It makes sense if the most high end laser projectors are physically only able to handle around 60 or 70 PPS, depending on the size of the arc. Also, there are a LOT of channels with an ILDA connection, so I’m not surprised that it would become costly and tricky to try and jam that much data down a simple USB connection, especially if you wanted to support USB 2.

  8. #8
    Join Date
    Jul 2008
    Posts
    783

    Default

    Quote Originally Posted by allenwp View Post

    I get the feeling that I really just want more points per second when controlling a CRT. Here’s an example where more than a million points per seconds were used: https://trmm.net/Vectrex/

    It seems the other ILDA DAC you mentioned was only 110,000 PPS, so I don’t think there is anything out there that has pushed passed around 200,000 PPS for ILDA. It makes sense if the most high end laser projectors are physically only able to handle around 60 or 70 PPS, depending on the size of the arc. Also, there are a LOT of channels with an ILDA connection, so I’m not surprised that it would become costly and tricky to try and jam that much data down a simple USB connection, especially if you wanted to support USB 2.
    I think I see what you mean. For laser scanners, a ridiculously high sample rate has no value, but laser diodes are instantaneous so you can modulate colors into the RF range. Think of how an analog TV works- the scan rates are not all that high, but it takes several MHz of BW to get a sharp image.

  9. #9
    Join Date
    Mar 2010
    Posts
    679

    Default

    Is a page found searching for high speed DAC of any relevance?

    Example:
    https://www.digikey.ca/en/product-hi...igh-speed-dacs

  10. #10
    Join Date
    Oct 2024
    Posts
    8

    Default

    So here's the sort of output I get from my PreSonus Studio 26c on output line 2 and 3:

    Click image for larger version. 

Name:	line3--1-1-1.png 
Views:	4 
Size:	16.9 KB 
ID:	61408


    The input samples were as follows:

    1 // High
    1
    1
    1
    1
    1
    1
    1
    1
    1
    -1 // Low
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    1 // Triangle * 2
    -1
    1
    -1
    0 // Settle
    0
    0
    0
    0
    0
    0
    0
    0
    0
    1 // Square * 2
    1
    1
    1
    -1
    -1
    -1
    -1
    1
    1
    1
    1
    -1
    -1
    -1
    -1
    0 // Settle
    0
    0
    0
    0
    0
    0
    0
    0
    0
    1 // Sawtooth * 2
    0.5
    0
    -0.5
    -1
    1
    0.5
    0
    -0.5
    -1
    0 // Settle
    0
    0
    0
    0
    0
    0
    0
    0
    -1 // Inverse Sawtooth * 2
    -0.5
    0
    0.5
    1
    -1
    -0.5
    0
    0.5
    1
    0 // Settle
    0
    0
    0
    0
    0
    0
    0
    0
    0


    Here's a zoom-in on the "triangle" part of that, showing that the high and the low are 192 kHz apart, matching the expected 192,000 samples per second that the DAC is supposed to take.

    Click image for larger version. 

Name:	192-kHz.png 
Views:	3 
Size:	14.1 KB 
ID:	61409

    I get something a bit different with output line 1 and 2:

    Click image for larger version. 

Name:	line1--1-1-1.png 
Views:	3 
Size:	16.0 KB 
ID:	61410

    You can see the triangle section near the beginning is highly attenuated. My guess is maybe there's a too-aggressive low pass filter on this output.

    There's also an offset of about 93 μs between the line out 1/2 and 3/4. Maybe due to a different order of filtering, who knows. This one is relatively easy to fix in software, especially because I just use the offset channel for blanking.

    Click image for larger version. 

Name:	offset.png 
Views:	4 
Size:	21.8 KB 
ID:	61411

    The worst part is the noise that seems to happen in line out 1 and 2. I managed to capture it in a screenshot here. Now that I look at it... maybe this is actually some sort of a glitch/bug in the DAC :/

    Click image for larger version. 

Name:	noise.png 
Views:	4 
Size:	34.4 KB 
ID:	61412

    All that to say, this is the sort of hardware behaviour I fight against with my current DAC. At first I thought it might be some other piece of equipment or combination in the chain that was causing difficulty, but... I think I just need a DAC that isn't designed for audio...

Posting Permissions

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