Portable Sign Projector

by Markus Opitz in Circuits > Microcontrollers

677 Views, 10 Favorites, 0 Comments

Portable Sign Projector

Projector-Title.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, light, 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_pinout.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 Lenses

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

I used very cheap plastic lenses. they are not particularly distortion-free, but for the sign project they fulfil their purpose. You could even adapt them to the angular shape of the TFT display and sand them down a bit at the edges.

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().

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