Maker Pro

POV Display using ESP32

April 18, 2024 by jobitjoseph1

Imagine creating a display that makes images and animations look like they’re floating in the air. That’s what we’re going to build.

In this guide, we'll learn how to create a cool POV display using an ESP32 module. It's all about using something called Persistence of Vision to make pictures and animations appear in the air. We're going to make our display show not just simple shapes, but also detailed images and animations. This project is perfect for anyone interested in electronics and cool visual effects. Let's dive in!

Features of our POV Display

  • 128 Pixel resolution.
  • Frame rate of 20 FPS.
  • Easy to build.
  • Easy to control.
  • ESP32 based.
  • Fully open source.
  • Companion web app to easily convert images.

Components Required:

  • To embark on this POV Display project, you'll need the following components:
  • ESP32 WROOM Module x1
  • 74HC595D shift register x16
  • CH340K USB - UART controller x1
  • TP4056 Li-ion charger IC x1
  • AMS1117 3.3v LDO x1
  • AO3401 P - MOSFET x1
  • 2N7002DW dual N - MOSFET x1
  • Hall effect sensors x2
  • SS34 Diode x1
  • Type C USB Connector 16Pin x1
  • SMD LED Blue 0603 x128
  • 775 Motor x1
  • DC Motor Speed Controller x1
  • SMD resistors and capacitors
  • SMD LEDs
  • SMD Tactile switches
  • SDM Slide Switch
  • Connectors
  • Custom PCB
  • 3D printed parts and mounting screws
  • Other tools and consumables

Circuit Diagram

The POV Display circuit diagram integrates various components to facilitate smooth operation. A Type C USB port serves dual purposes of charging and programming, with a power path controller circuit managed by a P-Channel MOSFET and diode. Voltage regulation is ensured by an AMS1117 3.3V LDO, while a TP4056 charge controller handles battery charging. The programming circuit employs a CH340K chip and a dual MOSFET for auto reset. An ESP32-WROOM module serves as the brain, coordinating LED displays via 74HC595D shift registers and hall effect sensors for RPM measurement and position sensing.

PCB for POV Display

For this project, we have decided to make a custom PCB using KiCad. This will ensure that the final product is as compact as possible as well as easy to assemble and use. The PCB has a dimension of approximately 210mm x 60mm. Here are the top and bottom layers of the PCB. 

The PCB accommodates all components, ensuring efficient utilization of space. Once assembled, the PCB seamlessly integrates with 3D-printed parts and mounting screws to form the complete POV Display unit.

Working Principle

The POV Display harnesses the Persistence of Vision to create seamless visual experiences. By dividing images into radial segments and employing trigonometric calculations, the display manipulates LEDs to generate images and animations. Precomputed values optimize image processing, enhancing refresh rates while minimizing response times. Additionally, image storage optimization reduces memory usage, enabling efficient utilization of code space.

Image Conversion and Code Implementation

Content goes here

Converting images to polar coordinates ensures compatibility with the POV Display. Our web app simplifies this process, generating optimized data arrays for easy integration into the Arduino code. The Arduino code orchestrates LED displays, animating images and sequences with precision. By adjusting parameters like animation speed and repetition, users can customize visual experiences to their liking.

With components assembled and code uploaded, it's time to build and test the POV Display. Ensure proper connections and power supply before initiating display operations. Test different images and animations to verify functionality and fine-tune parameters for optimal performance.

Exploring Further Possibilities

Once the POV Display is up and running, we can explore further possibilities for customization and enhancement. Experiment with different images, animations, and code modifications to unleash creativity and maximize visual impact. Additionally, consider incorporating additional features or functionalities to expand the capabilities of your POV Display.

To learn more detailed information about the project please check out Building a High-Resolution POV Display using ESP32.

Related Content


You May Also Like