Build Your Own DIY Laser Show: Easy Steps & Amazing Results!

Поделиться
HTML-код
  • Опубликовано: 23 июл 2024
  • I've created a very basic laser show driver that will play the standard ILDA files on the ESP32.
    We're using a DAC (Digital to Analog Converter) - the MCP4822 over an SPI interface.
    For the laser, I've got 5mw red laser diode which we're switching on and off using a MOSFET.
    Works really well and gives a pretty impressive show.
    There's a great teardown of galvos here: • Inside the Closed Loop...
    The schematic is here:
    oshwlab.com/chris_9044/laser-...
    You can build this on a breadboard, or you can get it built as a custom PCB.
    Code is all here:
    github.com/atomic14/esp32-las...
    ---
    Want to help support the channel? I'm accepting coffee on ko-fi.com/atomic14
  • НаукаНаука

Комментарии • 73

  • @atomic14
    @atomic14  3 года назад

    Interested in ESP32 Audio: ruclips.net/p/PL5vDt5AALlRfGVUv2x7riDMIOX34udtKD
    Looking for all my ESP32 projects: ruclips.net/p/PL5vDt5AALlRdN2KyL30l8j7kLCxhDUrNw

  • @jasonthomashorn4794
    @jasonthomashorn4794 3 года назад +7

    Saw a shout-out for your channel from the @unexpected maker. Well done. I had done a low end galvo show 25 years ago when heads were 2 to $3000 a set. Used 3 speakers with paper clips glued to the cones and 2 glued to x,y mirrors. The third was glued to a shutter. Drove those with 2 tape recorders running at the same time. The 4th track was music. It was a bit tricky designing anything but geometric or random shapes. But it was fun.

    • @atomic14
      @atomic14  3 года назад +1

      That sounds brilliant! Proper maker stuff.

    • @TheOleHermit
      @TheOleHermit 3 года назад

      Hi, Guys! I'm here after Unexpected Maker's shout out, too.

    • @atomic14
      @atomic14  3 года назад +1

      @@TheOleHermit Thanks for coming :)

  • @mewmew32
    @mewmew32 Год назад +2

    Great project, much more impressive results than the stepper motor based ones. Would be nice to see what all the hardware looks like wired up in the final product.

  • @gearscodeandfire
    @gearscodeandfire 10 месяцев назад

    Wow you get a lot of mileage out these esp32's, bravo as always!

  • @tttuberc
    @tttuberc Год назад

    Looks great. I'm thinking of copying and building this project.

  • @metamorzon
    @metamorzon 2 года назад

    Hi. Thank you so much for sharing your brilliant project. could I ask you to please let me know is there any way I could replace mcp4822 with MCP4922-E/P or MCP4725? here in my country there is no any mcp4822 and I cant order it from abroad. I thank you in advance.

  • @hanklloydright
    @hanklloydright 2 года назад

    Well, thank you for your inspiration anyway. Sorry if I broke some rule. I've been working on this project since June. Love your channel and your projects.

    • @atomic14
      @atomic14  2 года назад

      There's no rules to break! If you've lost some comments, RUclips occasionally likes to just delete them randomly...

    • @hanklloydright
      @hanklloydright 2 года назад

      @atomic14 I used your project (and others) as inspiration to create my own ESP-32 based DAC that drives ILDA projectors, has SD card, OLED, BLE and Wifi. Thank you for your channel! I can't post a URL, so I can't show you what I've done. My comments keep getting deleted!! Please see my YT channel for a few videos that show off my ILDA DAC! Thanks.

    • @atomic14
      @atomic14  2 года назад +2

      That's brilliant stuff - ruclips.net/channel/UCCO8eYbONP1j0-S5WTt81Fgvideos

    • @hanklloydright
      @hanklloydright 2 года назад

      @@atomic14 Thank you. I've learned so much from your channel.

  • @originalmianos
    @originalmianos 3 года назад +1

    I got one of these exact galvos a few years ago and did the same with an esp32 and a spi ti 8562 16 bit dac with internal reference. I used op amps at first then went to DRV135 audio differential drivers due to I had a problem with imbalance probably due to my hand calculated resistor values and the DRV135 makes for a very low part count. I never did more than wire it up on a breadboad and with the modules.

    • @atomic14
      @atomic14  3 года назад

      I was a bit surprised that my op-amp solution just worked - I was expecting to have to add trim pots everywhere to fine tune it, but it seemed to work fine so I went with that for the PCB as I knew it worked. I did have a brief look at line drivers but couldn't find a good part assembled by JLCPCB - but I might take a another look at that chip would really simplify things.

    • @originalmianos
      @originalmianos 3 года назад

      @@atomic14 The drv138 is a DIP, I'd just solder it on. The Ti8562 is another matter. It is tiny. That said, if you got a couple of op-amps working well that is better for the BOM cost. Now I think about it, I must have been pretty hopeless not getting things balanced when there is no gain in anything. LOL. (Having a 16bit DAC also means you can not care. I used a home brew pre compressed delta/RLE stream via TCP and some super simple local code to decompress it on the device that reached full speed. I never got the common image format working, I can't remember seeing the low level format documented. I was using Inkscape and exporting files. You got *way* further than me.

  • @ashwin372
    @ashwin372 2 года назад

    Damn this is gold

  • @qbitsday3438
    @qbitsday3438 Год назад

    Definitely Subscribed !

  • @stevejin9459
    @stevejin9459 2 года назад

    ESP32 i2s come with multiple pin channels which effectively a serial to parallel converter. You can mix the x y and ledon into one 3bit array stream, through i2s, with dma. CPU load would be lighter. May be add 4th pin channel as music. The pin channel count is limited by pin count, let say, up to 16, all the spare pins. Then, if you mix two( or 3) streams, you can control multiple devices, with may be different color, or point to far way direction. All synchronized. Since dma is used, a lot of spare cpu time for prepare multi device i2s data stream.

  • @dave4882
    @dave4882 4 месяца назад

    I was curious if the head actuators off oh hard drives would make good cheap galvos.

  • @DamienCorpataux
    @DamienCorpataux Год назад +1

    Thank you so much for these valuable explainations! I have a question: we don't use a built-in DAC pin of the ESP32 because it is too noisy ? Thus a MCP4822 because it is less noisy ?

  • @DanielSMatthews
    @DanielSMatthews 3 года назад +4

    That is an awesome project! Is it possible to use one of those 3 color dichroic reflector cubes to feed R,G and B lasers into it or is the data/computational bandwidth not going to cope with full colour vectors?

    • @atomic14
      @atomic14  3 года назад +3

      I think you could yes, one thing that I was wondering about was using PWM to control the brightness of the laser. I think having three channels would be pretty easy. I've seen a few RGB laser modules that have three lasers shining at 3 partial mirrors to produce a single beam. They are quite a bit more expensive than the single diode I'm using though!

  • @tektronix475
    @tektronix475 3 года назад +4

    atomic 2 the moon.

  • @Sovvyy
    @Sovvyy 3 года назад +2

    Thanks for sharing - I wonder how the RP2040 would perform with the "PGIO's"...

    • @atomic14
      @atomic14  3 года назад +1

      The Pi was my fallback for if I couldn't get the ESP32 to work. The main difficulty is getting everything synchronised - sending out the samples and controlling the laser at the same time. A lot of the ways for efficiently streaming samples out use DMA which makes it hard to synchronise things with other outputs.

  • @Bianchi77
    @Bianchi77 3 года назад

    Cool, nice video, thanks:)

  • @solutionstate
    @solutionstate Месяц назад

    where can I find the STL files for the 3d casing? @atomic14

  • @markingle8980
    @markingle8980 3 года назад +3

    Thanks for sharing your project! What were you displaying the laser images on and what is the approximate size of the image?

    • @atomic14
      @atomic14  3 года назад +2

      Hi there - the image is just being projected onto a white all, size of the image is around 1m x 1m. The projector is about 3-4 meters from the wall.

  • @AndrewRozh
    @AndrewRozh Год назад

    A significant project, very useful. Is it supposed to develop at least in terms of convenient loading of ILDA files? Or lost interest?

  • @philippecoquette8723
    @philippecoquette8723 3 года назад +1

    I did an identical project last year and I choose the ESP32 especially to use the two internal available DAC. External SPI DAC are not needed.

    • @atomic14
      @atomic14  3 года назад +1

      That's really interesting. I read on some of the laser show forums that 8 bits weren't considered high enough resolution - did you notice any problems when rendering? I thought that since I was getting a custom PCB made anyway I might as well add the DAC as it didn't add much to BOM cost. Would be interesting to try it with the built-in DAC on my next project.

    • @philippecoquette8723
      @philippecoquette8723 3 года назад

      @@atomic14 I plot vectors and big circles with same quality (8 bit ESP DAC) than a previous project with 12 bit DAC. Due to PID on galvo drivers, all vectors are smooth even with 8 bit DAC. Regards.

    • @atomic14
      @atomic14  3 года назад

      @@philippecoquette8723 I think it might be more noticeable with what I'm doing. I have some quite small animations with rotations and objects moving very slowly across the screen. You can definitely see some jerkiness when only using 8 bits instead of 12 bits. You wouldn't notice if you didn't have the 12-bit version to compare against. And you definitely would notice on fast-moving animations. It would not be a show stopper - completely acceptable with 8-bits, just nicer with 12 :) - you can see the animations here - ruclips.net/video/wvr3OeVMwp4/видео.html I'll do a recording of it in 8-bit mode as well later for comparison.

  • @g137hampton
    @g137hampton 3 года назад +1

    This is fantastic. I've been wanting to get started with laser projection and this is a perfect platform for me since I have been working with the ESP32 for several years now. Do you by any chance have boards available? I know that I can have boards built from your design for not a lot of money but if you have one or two you could sell to me this would be a lot easier. Also I'd like to have a chat with you based on your interest in digital audio. I'm starting to work with Faust, which supports the ESP32 directly.

    • @atomic14
      @atomic14  3 года назад +2

      Hi George, I don't currently have any boards for sale - but you can build it on breadboard very easily. For a very basic display you could just use the built-in DACs on the ESP32 and connect them directly to the positive input of the galvo driver (just tie the negative line to GND). You won't get the full range of movement, but it will still work. You can contact me directly via the channel page. On the About screen there's a button that will give you my email address.

  • @ericfraxinous7049
    @ericfraxinous7049 Год назад

    I'm unable to compile the project :( Is there any information available to achieve the compliation ? I'm using Espressif IDf and plateformIo on top of VsCode but nothing works :(

  • @hondaman900f
    @hondaman900f 3 года назад

    Awesome project - thank you! I'm already setup with Arduino IDE for programming ESP32's. Do you know if I can just import your .cpp and .h files and add the Gzip library to my sketchbook>libraries folder, and from there compile and upload, or should I start over with the Espressif IDE and Platform.io? What do you recommend? Thanks again :)

    • @hondaman900f
      @hondaman900f 3 года назад

      Thanks for your reply. It came in e-mail but for some reason it's not showing here. I also wanted to know if using the ESP32's two native DAC channels for x and Y and using amplifiers (such as the TLD82) to stretch the range to -15V -> +15V would be an option and/or preferrable to using the MCP4822? Wondering why the external DAC is better than the built in DAC's. Thanks again for your sage advice.

  • @aks817
    @aks817 4 месяца назад

    I want to buy one of them boards already built

  • @jacksonzhang2479
    @jacksonzhang2479 2 года назад

    hi atomic, i'm curious about if this laser control board can generate a sin waveform with ±10V voltage if i change the LM324's mplifying coefficient, could you tell me please?And the related program to it

    • @atomic14
      @atomic14  2 года назад

      Yes, you can change the resistors on the amplifiers to do this. You'd need to calculate the gain to take +-2.048 volts to +-10volts. You would just use the library for the DAC to send the right values.

  • @nayimabdullah4813
    @nayimabdullah4813 Год назад +1

    I make a circuit with mcp4822 and Tl082 opamp…
    Bt the problem is esp32-wrover is not available in our country… i buy a esp32-wroom -dev kit 1 …
    The code is working …
    Please help me

  • @Fantonrko
    @Fantonrko 7 месяцев назад

    Hello! I don't know if you can help. But I want to use this project on esp32-s3, but it doesn’t have HSPI_HOST, and I also don’t want to use psram, and without this, on a regular esp32-wroom-32 module the microcontroller goes into an endless reboot

    • @atomic14
      @atomic14  7 месяцев назад

      No PSRAM is going to be pretty difficult without some major rework. The ILDA files can be quite big and need to be decompressed. Getting the SPI to work on the S3 should be straightforward though.

  • @nickhubbard3671
    @nickhubbard3671 3 года назад

    Well described project, very informative! (shout-out from the @unexpected maker)
    Thanks

    • @atomic14
      @atomic14  3 года назад

      Thank you! It was a really nice surprise to wake up the unexpected shout out.

  • @raffyturc
    @raffyturc 3 года назад +2

    nice 👍

  • @andymouse
    @andymouse 3 года назад +1

    An Unexpected channel ! Hi ...cheers.

    • @electronash
      @electronash 3 года назад +1

      An Unexpected mouse.
      (I just bought a new 3 Watt RGB laser module and 30K galvos, so brushing up on some opamp theory again.)

  • @alexeybelodvortsev5298
    @alexeybelodvortsev5298 2 месяца назад

    Hello. The project is built in VC and Platformio, but shows an error:
    "Ignore unknown configuration option `c_build_flags` in section [env:esp32doit-devkit-v1]"
    There is probably a problem with the line "[env:esp32doit-devkit-v1]" in the platformio.ini file.
    After the firmware is installed, information is displayed in the terminal that ends with the lines:
    E (3306) SPIFFS: mount failed, -10025
    E (3306) main: Failed to mount or format filesystem
    As far as I understand, the file system is not initialized and files cannot be loaded. I still don’t know ESP32 very well, please help. I use ESP32 WROVER with PSRAM.

  • @murraymadness4674
    @murraymadness4674 3 месяца назад

    Looks like you bought the $150 galvo parts to do this. I am reminded of all the people posting videos on diy liquid nitrogen that did a) buy a cryo cooler b) hook up power supply.

  • @lazarusmagellan2367
    @lazarusmagellan2367 Год назад

    I’ve been working on one of these as an engineering project, I understand all but the code 😥 may need to grab one of my coen or comp SCI friends

    • @lazarusmagellan2367
      @lazarusmagellan2367 Год назад

      I have a bipolar circuit setup. Ive been trying to use math to make light shows, but I know ILDA files are much better way to do it. Do you know of any way to have a laptop send live instructions to the arduino via serial port?

  • @markingle8980
    @markingle8980 3 года назад

    What are the wiring connections from the PCB to the Galvo?

    • @markingle8980
      @markingle8980 3 года назад

      Nevermind...I see it in the schematic. Theres not much information on the laser galvos about pins 1 - 16 though.

    • @atomic14
      @atomic14  3 года назад +1

      @@markingle8980 Hi Mark - these are just general GPIO pins that I've broken out from the ESP32 - I'm using them for driving an amplifier and connecting buttons. But they could be used for anything. The galvo boards just need 3 wires each - 2 for the signal (positive and negative) and a ground connection.

  • @nin1ten1do
    @nin1ten1do 2 года назад

    I am wondering if this will be usible to laser machining..

    • @atomic14
      @atomic14  2 года назад

      You can add a gcode frontend to it and I've seen projects with people using laser galvos for resin printing and laser cutting/engraving. Some commercial resin printers use the same galvos as the one I'm using.

    • @antoniohernandez8367
      @antoniohernandez8367 2 года назад

      Sorry if it's a dumb question. How can be translated the gcode instructions or the pulses generated by some cnc board to be understood by the galvo controller ?. Thanks in advance...

    • @atomic14
      @atomic14  2 года назад

      @@antoniohernandez8367 Not a dumb question at all, there's a few projects that are already doing this kind of thing - this one might be of interest to you: github.com/opengalvo/OPAL

    • @antoniohernandez8367
      @antoniohernandez8367 2 года назад

      @@atomic14 Interesting. I saw it. I'm new about this. Thanks for sharing the info. Are there available other solutions to achieve that or this one is that you recommend yo getting started ?. Thanks in advance...

    • @atomic14
      @atomic14  2 года назад

      @@antoniohernandez8367 I think there are others. There’s also LinuxCNC but I don’t know much about it.

  • @ianchan2624
    @ianchan2624 Год назад

    slcik!

  • @KSITREVS
    @KSITREVS 3 года назад

    I made something very similar! Let me know if your interested in seeing my implementation%

    • @atomic14
      @atomic14  3 года назад +1

      If you're willing to share it I think lots of people would be interested.