Code and schematics for a DIY esp32-based laser projector device. This is a laser projector which uses a single laser diode to project an image on a wall or screen. It is capable of displaying 20kpps (points per second). Which is fast enough to display simple text and vector based images.
This project was mainly based on this instructables tutorial: https://www.instructables.com/Arduino-Laser-Show-With-Real-Galvos/
I did not write the majority of the laser control code! This was mainly taken from the above tutorial. Many thanks to the author but there were a number of issues that I needed to fix for it to work. Some of it was incompatible with ESP32 altogether and would cause it to hard-crash and reboot. A number of places in the code divide by zero for example, which may work on arduino but causes ESP32 to crash.
This is the finished projector.
Bill Of Materials:
- heltec esp32 oled “wifi kit 32” v3 (main logic board). https://www.amazon.com/HiLetgo-Display-Bluetooth-Internet-Development/dp/B07DKD79Y9
- 488nm cyan laser 1mw. https://www.ebay.com/itm/285647106367
- LCD Front-Panel Screen PWB51505C-COB (Optrex C-51505NFJ-SLW-AIN)
- TXS0108E Logic Level Shifter 3.3v 5v High Speed Full Duplex 8 Channel (allows interfacing 3v ESP32 with the 5v LCD)
- IRF540N transistor MOSFET (laser control switch).
- 20kpps Laser galvo X/Y + 15v power supply. https://www.ebay.com/itm/167010013113
- Mains power outlet module with fuse.
- CH375B USB disk drive module.
- 12bit DAC - MCP4822. https://www.ebay.com/itm/395490637084
- 2x TL082 opamp chips.
- 4x 10kohm potentiometer knobs.
- assortment of carbon film resistors ranging from 200ohm to 47kohm.
- electrolytic capacitors for bypass power (can also be ceramic).
- makerbeam extrusions for structure (for the laser and fan).
- automobile cable clamps (to hold laser in place without making electrical contact).
- Small 12v fan.
- 12v blue power indicator lamp.
- Electrocookie protoboards.
- Metal standoffs (M3 compatible).
- M3 screws and washers of various sizes.
- 10 inch by 8 inch by 3 inch metal enclosure.
- 3D printed 42mm x 35mm laser aperture.
- USB flash drive (for loading graphics).