Portable Sign Projector

by Markus Opitz in Circuits > Microcontrollers

3749 Views, 39 Favorites, 0 Comments

Portable Sign Projector

Projector-Title2.jpg
Portable Sign Projector

You need a sign?

But please without painting, printing, mounting, without dirt and without costs. Here it is, my projector with a XIAO ESP32. Simple, cheap, portable. And with a microwave sensor even interactive, it only turns on as long as living beings are present.

An ESP32, a hacked TFT display, a sensor, a bright LED, two lenses and a 3D printed case.

Supplies

Supply.jpg
vlcsnap-2025-07-19-11h40m16s824.jpg
vlcsnap-2025-07-19-11h40m37s047.jpg
vlcsnap-2025-07-19-11h40m48s069.jpg

XIAO ESP32

2x lenses (plastic, 40mm)

strong LED or LED array from a torch light

1.44'' TFT display

microwave sensor

3D printed parts

The XIAO ESP32 & Pinout

Projector-Circuit.jpg

The XIAO ESP32 is a tiny but mighty tool. I've been using it for a lot of my projects lately. You can now choose from ten different models in the XIAO series, depending on whether you need WiFi or BLE, a camera, microphone or acceleration sensors. Most models also have a charging chip for LiPo batteries on board.

The Software & Upload

For a correct upload of the script please have a look at my project Getting Started With ESP32-C3 XIAO

and the instructions of SeeedStudio.

The LED

A projector requires a powerful light source. Unfortunately, I was unable to find any extra-bright LEDs in online shops. However, I did find a flashlight with 5000 lumens according to the manufacturer's specifications for around 12 euros. When removing the LED, I was also able to secure a nice lens. And just like that, the lighting system was perfect.

The flashlight works with a 3.7V LiPo battery, so our 3.3V connection on the ESP32 is suitable.

The lighting cannot be operated via a simple pin like a normal LED, as the current is too weak. Instead, the powerful LED runs via the 3.3V connection and GND, but can be switched on and off via an NPN transistor and pin D5.

The Lenses

vlcsnap-2025-07-19-11h37m47s593.jpg
vlcsnap-2025-07-19-11h38m02s044.jpg

In the first version, I used very inexpensive 50 mm plastic lenses. They weren't particularly distortion-free, but they serve their purpose for the sign project. You could even adapt them to the angular shape of the TFT display and sand down the edges a little.

To make the device smaller and improve the image quality, I used a 30mm glass lens. It is only slightly more expensive, but the image quality improved enormously.

The Graphics / Signs

Simple graphics and texts can be displayed on the screen, also as scrolling text. If you have experience with this, you can also convert and display bitmaps.

I have packed each graphic into a sub-programme (‘void ...()’) so that I can call it up quickly and easily in my loop().

Currently, I have the subroutines

NewSign(), Instr() and seeedLogo()

in the demo file

TFT Display

vlcsnap-2025-07-19-11h33m31s119.jpg
vlcsnap-2025-07-19-11h33m38s300.jpg
vlcsnap-2025-07-19-11h34m10s743.jpg
vlcsnap-2025-07-19-11h34m21s541.jpg
vlcsnap-2025-07-19-11h34m33s730.jpg
vlcsnap-2025-07-19-11h34m42s960.jpg
vlcsnap-2025-07-19-11h35m04s907.jpg
vlcsnap-2025-07-19-11h35m36s570.jpg

Preparing the TFT display is the most important part of the project.

The display is normally not transparent and has an LED backlight. To make it transparent like an old-fashioned slide, we first have to remove it slightly from the frame, but not completely. You can already see the individual foils (white and silver), which we carefully remove until we can see through the display. Then we press the screen back into the frame and secure the whole thing with superglue.

Microwave Sensor

vlcsnap-2025-07-19-11h42m05s380.jpg

The microwave sensor is easy to install. You need connections VCC (to 3.3V), GND and Data, which we solder to D3 on the ESP32.

The sensor later ensures that our display only runs when people are actually in the area, otherwise our device just consumes energy pointlessly. After a certain time without viewers, the device switches to deep sleep.

The 3D Printed Case

If you use the specified display type and two 40mm lenses, you are welcome to use my file for printing a case. If you design a device yourself, test the focal lengths of the lenses beforehand and make sure that the second lens can be adjusted to focus the image.

Assembling

vlcsnap-2025-07-19-11h36m32s655.jpg
vlcsnap-2025-07-19-11h36m44s850.jpg
vlcsnap-2025-07-19-11h36m15s773.jpg
vlcsnap-2025-07-19-11h36m57s102.jpg
vlcsnap-2025-07-19-11h38m16s571.jpg
vlcsnap-2025-07-19-11h35m52s681.jpg
vlcsnap-2025-07-19-11h35m45s257.jpg
vlcsnap-2025-07-19-11h37m18s795.jpg

I proceeded as follows:

  1. Insert TFT display, lay wires
  2. Insert LED
  3. Insert lens
  4. Insert focussing lens and secure with plastic adhesive, do not use superglue (lens can become blind)
  5. Solder XIAO ESP32 to the wires.
  6. Insert XIAO ESP32
  7. connect USB cable to ESP32
  8. close the case

Ready

vlcsnap-2025-07-19-11h37m28s072.jpg
vlcsnap-2025-07-19-11h43m24s611.jpg
vlcsnap-2025-07-19-11h43m44s657.jpg