LED Hologram
Project your 3D model... Or make a lightshow
Michael Wang, Karl Skeel
Project your 3D model... Or make a lightshow
Michael Wang, Karl Skeel
Overview:
A custom-built 8x8x8 LED cube displays any 3D object uploaded to the computer and allows users to interact with it.
Description:
The LED controller board drives the 8x8x8 LED cube using 8-bit shifters and MOSFETs. The board receives the coordinates of a 3D object and constantly flashes new coordinates onto the cube. Users will translate and rotate the object from the LabView front panel via UART serial port. A real-time embedded software is implemented using freeRTOS to communicate with LabView, process the coordinates, and flash onto the physical LED cube.
Features:
8-bit serial-in-parallel-out shifters to drive 8 LEDs by one pin
Multiplexing circuits to control 512 LEDs by 11 digital pins
Modular plug-and-use compatibility to ESP32 WROOM 32E and ESP32-S2 microcontrollers
Compact electrical design with dual-channel NMOS ICs and passive components with small footprints
Decoupling capacitors for power integrity design
High refresh rate of LED layers empowered by high-switching MOSFETs
Software scaling capability of flashing to variable-sized LED cubes
Interactive user front panel with LabVIEW
Real-time LED flashing powered by freeRTOS
Completed Schematic with PMIC, header sockets for the Huzzah32 board, layer select logic, row select logic, and LED connector ports.
Completed Layout (Both sides, silkscreen included)
Completed Layout (Front)
Completed Layout (Back)
Bill of Materials
Progress:
To confirm that our logic worked, we first built a 3x3x3 led with a breadboard.
There were some errors with our dual mosfet configuration so we made the corresponding fixes to our schematic.
We then sent our PCB design to JLCPCB
PCBs arrived from JLCPCB
After using the stencil to apply solder paste, we mounted and reflowed the SMD components then proceeded to hand solder the pin connectors connected to the 8x8x8 led cube.
Unfortunately after debugging the hardware, some connections were not wired to the correct place in the PCB so we hotwired the pins and used jumper cables to fix it.
We used an oscilloscope and multimeter to debug the finished PCB and ensure that the shifting signals were what we expected. The yellow signal is the clk signal to the shift registers, and the green signal is one of the output data of the shift registers.
We then built a simple housing for the pcb and LEDs and tested our pcb by flashing data to the LEDs and connecting the 5V power supply.
After confirming that the pcb worked, we flashed our driver and data processing software to the esp and connected it to a LabView GUI to give user control over the LEDs.