王达业

ESP32 projection

 
Overview

 

Introduction:

The video playback firmware uses the Arduino_GFX library (version 1.1.1) to drive the screen https://github.com/moononournation/Arduino_GFX

The video playback code comes from https://github.com/moononournation/RGB565_video

The clock firmware is based on a modified version of the SD² desktop clock (original address: https://oshwhub.com/MisakaBanBan/small_desktop_display )

IDE using ArduinoIDE: arduino.cc

ESP32 library version: 1.0.6

 

The main control uses the ESP32-WROOM-32D module

The screen uses an ST7789 LCD screen, and then the backlight is removed, leaving only the liquid crystal layer and polarizing film layer.

The buck IC uses two AMS1117-3.3, one supplies power to the main control and screen, and one supplies power to the LED light.

The LED cross-flow IC uses two AMC7135s in parallel. One outputs 350mah current, and two in parallel are 700mah.

The 10W 5050 white light T6 lamp beads used for LED are only turned on to 2W. Any higher power will burn out the LCD screen.

The LED lens uses a 60-degree lens

The front and rear Fresnel lenses use two Fresnel lenses, one with a 40mm focal length and one with a 35mm focal length.

 

The effect of a distance of 50CM:

It may actually be a little darker than the photo

 

 

 

 

Known issues and fixes:

Since LDO is used to reduce the voltage (cheap), the LDO (number U3) responsible for the voltage reduction of the LED will be seriously heated (75℃+). If there is time later (cuckoo), it will be replaced by a DCDC circuit to reduce the voltage.

There is no sound when the video is played. If I have time later, I will add a power amplifier circuit and a small speaker.

The screen will be heated by the lamp beads. I only continued the test for 3 hours. The screen was normal except for the high temperature. It is not ruled out that the screen will be burned out after long-term use. If it is burned out, please reduce the input voltage of the LED.

 

Light path diagram:

Theoretically, according to this light path diagram, projections using other screens can be produced.

It should be noted that if the screen is placed upright, the projected image will be an inverted and upside-down image (discussed in junior high school physics)

 

Burn:

There are two firmwares, one is the clock firmware and the other is the video playback firmware.

Please make sure the J1 pad on the PCB is disconnected when programming.

There is no serial IC on the board, please use the USB to TTL module for programming.

 

TTLRXD corresponds to T on PCB

TTLTXD corresponds to R on the PCB

TTL3.3V corresponds to 3 on the PCB (be sure to use 3.3v voltage, 5V voltage will damage the screen and ESP32 module)

TTLGND corresponds to G on the PCB

When burning, press and hold BOOT and then press EN to enter download mode.

 

firmware:

clock firmware

Please use ArduinoIDE to compile and burn (required libraries have been provided)

Compile time tool - Partition Scheme here changed to Huqe APP (3MB No OTA / 1MB SPIFFS) otherwise an error will be reported. Not enough memory. 

 

Video playback firmware:

Please make sure that the J1 pad on the PCB is disconnected when programming. After the programming is completed, please short-circuit the J1 pad with a piece of tin.

The video playback firmware provides ArduinoIDE source code and compilation-free firmware.

 

The library version required for ArduinoIDE compilation:

Arduino_GFX library version 1.1.1

ESP32 library version 1.0.6

 

Compile-free firmware burning:

 

Then press and hold BOOT and press EN to enter download mode.

 

 

Video conversion:

Since the video being played uses mjpeg picture frames, it needs to be converted using FFmpeg.

FFmpeg download address https://ffmpeg.org  or download directly from Github: https://github.com/BtbN/FFmpeg-Builds/releases

Instructions for use: When exporting the editing software, modify the resolution to 240x240 pixels and export to .mp4 format.
Download FFmpeg and unzip it. Hold down the shift key and right-click the mouse in the FFmpeg.exe directory - open the PowerShell window here.

Execute the following command to convert mp4 files to mjpeg format

./ffmpeg -i [你的mp4文件路径] -vf "fps=30,scale=-1:240:flags=lanczos,crop=240:in_h:(in_w-240)/2:0" -q:v 9 [输出路径]

for example:

./ffmpeg -i D:video1.mp4 -vf "fps=30,scale=-1:240:flags=lanczos,crop=240:in_h:(in_w-240)/2:0" -q:v 9 D:videovideo.mjpeg

After the conversion is completed, put the video.mjpeg file into the root directory of the TF card.

The TF card must support SPI mode and be formatted into the FAT32 file system

 

 

 

Screen processing:

 

Note: Only the optical components on the back of the screen need to be removed. Do not tear off anything on the front except the protective film, and do not tear off the polarizing film! ! !

 

Normal screen:

 

 

Remove the backlight assembly:

 

 

Cut off the backlight power supply:

 

 

After cutting:

 

 

Assembly:

PCB and frame are connected using M2*4 screws

Apply silicone grease as much as possible between the T6 lamp bead copper substrate and the heat sink.

 

detail:

 

 

The purchase links for components and lenses are in the attachment.

 

 

 

 

 

 

参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2025-06-23 08:50:31
  • STM32VirtualCOMPortissue
  • Is it correct to use AO3407 as a switch?
  • Crystal oscillator does not oscillate
  • embedded system and real time operating system
  • Methods to solve the four major technical problems of LED display screen
  • Digital CMOS Camera OV6620+OV7620 Data

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号