Skip to content
MCU Atlas
ESP32ESP32-C3

Cyber Badge: an ESP32-C3 name badge that plays a video of you

A simple perfboard name badge: a 1.69in colour screen loops a short clip of you while a small OLED shows your name, running on an ESP32-C3 Super Mini and a LiPo.

Difficulty:Intermediate

What it is

A homemade name badge with a tiny colour screen that loops a video of you and an OLED name tag, soldered onto one perfboard.

What you need

How hard

Intermediate. A simple perfboard build, but you hand-wire both screens and the power path, and the LiPo wiring has to be right.

Photos

Cyber Badge: an ESP32-C3 name badge that plays a video of you photo 1
Cyber Badge: an ESP32-C3 name badge that plays a video of you photo 2
Cyber Badge: an ESP32-C3 name badge that plays a video of you photo 3
Cyber Badge: an ESP32-C3 name badge that plays a video of you photo 4
Cyber Badge: an ESP32-C3 name badge that plays a video of you photo 5
Cyber Badge: an ESP32-C3 name badge that plays a video of you photo 6

Photos: engineerdiaa/cyber-badge

Key Facts

  • MCU: ESP32-C3 Super Mini; everything on one 60 × 80 mm perfboard
  • Screens: 1.69in ST7789 TFT 240 × 280 (video) and 0.96in SSD1306 OLED 128 × 64 (name tag)
  • Plays the clip at 16 fps (measured); about 15 s of video fits
  • Power: 3.7 V LiPo (author uses 600 mAh), TP4056 with protection, slide switch
  • Python tools turn a phone video into the firmware, with labels and effects
  • Caution: TP4056 charges at 1 A by default; check it for small LiPos
  • Licences: MIT firmware, CERN-OHL-P v2 hardware, CC BY 4.0 docs

About This Project

Cyber Badge, by Diaa (engineerdiaa on GitHub, @diaawastaken on Instagram), is a simple soldered build on one 60 × 80 mm perfboard. A 1.69in ST7789 TFT (240 × 280) loops a short video clip of you at a steady 16 fps (measured), and a 0.96in SSD1306 OLED shows your name and title with your email or handle scrolling along the top. The clip is stored in the ESP32-C3 Super Mini's flash as JPEG frames and sent to the screen with DMA. Power comes from a 3.7 V LiPo (the author's is a 600 mAh pouch behind the TFT) through a TP4056 charger with protection and a slide switch into the C3's 5V pin. Charging is over the TP4056's USB-C. The BOOT button switches between clips if you add more than one, and the badge remembers your choice. On your PC, two Python scripts turn a phone video into the firmware header: they crop and retime it, add scene labels that type themselves in (like 01 // TRAIN) and optional effects, a word that orbits around you or a sticker outline, which need a cut-out of you, made once with make_masks.py. About 15 seconds of video fits in total. You program it from the Arduino IDE with a few libraries (Adafruit GFX, SSD1306 and ST7789, JPEGDEC and bb_spi_lcd). The README walks through the wiring tables, header soldering, a multimeter check of the TFT's CS pin and a short check before first power-up. Two cautions from the author: TP4056 modules charge at 1 A by default, which is more than most small LiPos are rated for, so check and lower it for a small cell; never connect the battery to the C3's 3.3 V pin; take power from the TP4056's OUT+/OUT−, never B+/B−, which bypasses the battery protection; and switch the badge off before plugging USB into the C3, because with the switch on the USB 5V and the battery meet at the 5V pin. Licences: firmware and tools MIT, hardware CERN-OHL-P v2, docs and images CC BY 4.0, with credit to @diaawastaken.

Source & Attribution

Source: GitHub
License: MIT AND CERN-OHL-P-2.0 AND CC-BY-4.0
Last verified: 10/30/2026
Cyber Badge: an ESP32-C3 name badge that plays a video of you
How to Build It
Solder an ESP32-C3 Super Mini, a 1.69in TFT, an OLED and a LiPo power path onto one perfboard, then load your own clip.

Parts Needed

  • ESP32-C3 Super Mini
  • 1.69in ST7789 TFT 240×280
  • 0.96in SSD1306 OLED
  • TP4056 charger with protection (6 pads)
  • 3.7 V LiPo
  • SPDT slide switch
  • 60 × 80 mm perfboard and wire

Steps

  1. 1

    Check parts

    Check the LiPo's polarity and the TP4056's charge resistor (R3, 1 A by default); lower it for a small battery. Mark the C3's 5V pin on the chip side.

  2. 2

    Headers and layout

    Solder headers using the perfboard as a jig. TFT on the left, OLED top right, C3 below it with USB-C at the edge.

  3. 3

    TFT first

    Measure TFT CS to GND. Wire the 8 TFT lines, upload the sketch from the Arduino IDE (Huge APP partition, USB CDC On Boot enabled) and check the clip plays.

  4. 4

    OLED, then power

    Add the 4 OLED wires and press RESET. With USB unplugged, wire LiPo to B+/B−, OUT+ through the switch to the C3's 5V, OUT− to G. Never wire the battery to 3.3, and never take power from B+/B−, which bypasses the protection. Put Kapton or electrical tape over the solder joints under the battery so they can't puncture the pouch.

  5. 5

    Check and personalise

    With the switch off, check 5V, G and 3.3 aren't shorted. Then set your name in the sketch and make your clip with tools/make_video.py. Switch the badge off every time before you plug USB into the C3: with the switch on, the USB 5V and the battery meet at the 5V pin.

Bill of Materials

Parts list

7 parts · 1 linked

Heads up: some Buy links are affiliate links. If you buy through one, MCU Atlas may earn a small commission at no extra cost to you. It never changes which parts we list. How this works

No verified link — check the original project

1× ST7789 SPI display

Get the 1.69in 240 × 280 version with the 8-pin header

No verified link — check the original project

1× TP4056 LiPo charger module

Get the 6-pad version with battery protection

No verified link — check the original project
No verified link — check the original project
No verified link — check the original project
No verified link — check the original project

Not included: Pin headers (usually included with the screens and the C3), Soldering iron, multimeter, flush cutters, tweezers, Kapton and foam tape, A PC with Python 3.10+, ffmpeg and the Arduino IDE

Download CSV

Related Projects

Watchy: open-source ESP32 e-ink smartwatch
Illustration
ESP32
An open-source smartwatch with a 1.54in e-paper screen and ESP32, hackable watch faces in Arduino.
Beginner·Code
2 parts listed
My-TTGO-Watch: full smartwatch OS for LilyGO T-Watch
Illustration
ESP32
An LVGL-based smartwatch firmware for the ESP32 LilyGO T-Watch with apps, BLE notifications and Wi-Fi.
Intermediate·Code
1 part listed
Meshtastic: off-grid LoRa mesh messaging on ESP32 and nRF52
Illustration
ESP32
Open firmware that makes cheap LoRa boards into an off-grid encrypted text mesh, paired with your phone.
Beginner·Code
4 parts listed