Making a mini retro small TV with ESP32

Construction ideas

  1. CRT attributes

This retro TV has a cathode ray tube (CRT) display. It is a large vacuum glass tube that emits an electron beam onto a phosphor screen to display images.

Therefore, it gives this retro TV some special attributes: the aspect ratio is like a square (but actually a circle), a rounded-corner display screen and a thick and bulky casing.

Finally, I chose a 7:6 rounded-corner LCD to build this mini retro TV.
  1. Standard of analog TV format

There are many standards of analog TV videos in reality. I chose a well-known digital format (VCD) standard as a reference. The VCD NTSC format is 240p (240 horizontal lines), about 30 frames per second (fps). So this project plays 240p videos at 30 fps.

The broadcast audio sampling rate is 44.1 or 48 KHz mono. Since most of the video sources on the Internet are 44.1 KHz, I chose 44.1 KHz to avoid unnecessary sampling rate conversion distortion.
Design enclosure
As shown in the figure, the gray rounded-corner screen frame on the LCD makes it look more like a CRT screen.

On the right side of the front panel is the MicroSD card slot, which simulates the video tape slot. There is no space on the front panel to install a speaker, so I put the full-frequency audio speaker at the bottom.

The ESP32 development board is installed at the top, leaving space for the LCD breakout on the left side, and there is a USB port and a power switch on the back panel.

For the iconic bottom support of the retro TV, three built-in legs are designed in the project to support the TV. Due to being limited by the 45-degree rule of 3D printing, it cannot be too long.
MicroSD card processing
1. MicroSD card description

Previous posts have tested the speed of SD cards running on the ESP32, and the ESP32 can only read SD cards at about 2 megabits per second. MicroSD is rated in four levels to meet the requirements. Faster cards do not help improve performance.
2. Connect the SD card
Previously, I found the ESP32 SD_MMC 4-bit mode to read SD card data the fastest. However, using the latest Arduino-ESP32 version of the SD_MMC library becomes very unstable and is not compatible with most SD cards. So this project is back to standard Arduino can be compatible with SD libraries.

Adjust the audio gain level set (optional)

 

The 24 mm full frequency audio speaker is rated at 2-4W, and the MAX98357 audio board can support output up to 3.2W, so the speaker is able to output the maximum gain setting of the audio board. But we have to set the volume of the TV reasonably, and I think a 3dB gain level would be better.

Power distributor

 

 

 

The TTGO T7 development board can be powered by USB, or it can be connected to a lithium battery as an unplugged power supply, so other components can get power from the development board.

 

 

But the development board only has a 3v3 row of pins, so it needs a small pin separator to make power pins.

 

Battery powered (optional)


The TTGO T7 development board has a built-in lithium battery holder to charge Lipo. So you can add a Lipo to the TV that can be installed under the development board. In theory, a 600mAh Lipo can be used for about 1-2 hours. The video above shows that the battery can play for 44 minutes without any problems.

MicroSD card insertion switch (optional)


Adding a MicroSD card insert switch requires some welding skills.

 

 

 

Most microSD card slot splints cannot be disconnected from the insertion detection switch, so you will need to disconnect manually. Then connect it to the TTGO T7 power switch. In this way, once the micro SD card is removed, the TV will automatically turn on or off when you remove the card.

In the last century, when we put a rented disc into a video recorder/player (VCR), we could watch a movie on the sofa. So I designed this optional Micro SD card insertion switch.

 

Connection method

 

 

 

If you want to try using SD_MMC, SD card MISO needs to be connected to GPIO2, but remember to disconnect GPIO2 when uploading the program.

If the audio output is too noisy, it may be that the 3v3 power supply is not enough for the MAX98357, you can consider changing the MAX98357 power supply to 5v.