SE050 Secure Element
NXP EdgeLock SE050C2 on the shared I²C bus at 0x48, host-reset from GPIO8. Keys are generated and used inside the element — they never reach the application processor.
SUPERTEAM INDONESIA // HACKER HOUSE BALI
A handheld console
you wear to the hackathon.
Shaped like a game console and built like a dev board — a 2.8" touch display, a full D-pad and four action buttons, an NXP secure element, PDM microphone and Li-Po power, all on a two-layer board you can hang around your neck.
THE CORE
An ESP32-S3-WROOM-1-N16R8 sits at the bottom-right of the back face, its PCB antenna aimed at the board edge with both copper pours cut back around it. 16 MB of flash and 8 MB of octal PSRAM give you enough headroom for framebuffers, audio buffers and a real UI.
The octal PSRAM claims GPIO35–37 internally, so those three are off the table. Everything else is either wired to a peripheral or broken out to the expansion header along the top edge.
DISPLAY & TOUCH
The 2.8" panel is bonded to the front face, but its 18-pin FPC tail threads through a 3.56 × 16.26 mm slot cut in the middle of the board to reach connector J5 on the reverse — so the front stays clean and every wire lives behind the badge.
Touch is four-wire resistive, read by a TSC2007 on the shared I²C bus with its PENIRQ on GPIO5. Backlight is transistor-driven from GPIO7, so drive it off an LEDC channel for dimming.
CONTROLS
A D-pad on the left, four action buttons on the right — 6 × 6 mm tactiles placed at 45° and 135° so each cluster forms a diamond on the front face. None of them are wired to the MCU directly.
All eight run through a TCA9534 I²C expander at 0x20. Each pin has a 10 kΩ pull-up, so pressed reads as 0, and a single open-drain interrupt on GPIO4 tells you when anything changed. That frees eight GPIOs and turns the whole control surface into one register read.
Change interrupt on GPIO4 — open-drain, no external pull-up, so enable the internal one.
ONBOARD PERIPHERALS
Ninety-four parts across two layers — everything the badge needs to see, hear, glow, beep and prove who it is, with no daughterboards.
NXP EdgeLock SE050C2 on the shared I²C bus at 0x48, host-reset from GPIO8. Keys are generated and used inside the element — they never reach the application processor.
Knowles SPH0641LM4H-1 on the front edge. Bottom-port, so a 0.6 mm acoustic hole is drilled clean through the board — sound enters from behind. Clock GPIO47, data GPIO48.
HTU21D in the top-left corner beside the buzzer, fixed at I²C address 0x40. Ambient sensing for the badge to log, display, or sign and push on-chain.
A single WS2812-compatible LED on the right edge, driven from GPIO2 over RMT. DOUT is left unconnected — it is a chain of one, addressable like any NeoPixel.
Low-side driven by an SS8050 from GPIO6, fed from VSYS through a 22 Ω series resistor. Passive transducer — feed it a square wave off LEDC and it sings.
A 1×10 2.54 mm header along the top edge — the only through-hole part on the board. Eight free GPIOs plus VSYS and GND, each pin labelled on the silkscreen.
ONE BUS, FOUR DEVICES
Buttons, touch, environment and cryptography all hang off the same two wires — GPIO9 and GPIO10, pulled up with 2.2 kΩ. Four fixed addresses, no conflicts, no bit-banging.
The two interrupt lines that go with them — button change on GPIO4 and pen-down on GPIO5 — are both open-drain with no external pull-ups. Enable the internal ones in firmware and they behave.
UART / HID
The USB-C data lines land on a DPDT slide switch on the back, silkscreened UART and HID. Flip it one way and the pair goes to a CH340C bridge — the host sees a serial port and esptool's auto-reset circuit works normally.
Flip it the other way and the pair goes straight to the ESP32-S3's native USB peripheral through 22 Ω series resistors: USB-Serial/JTAG, TinyUSB CDC, HID or MSC. No firmware flag, no reboot — just a switch you can feel.
POWER
Two back-to-back P-channel MOSFETs sit between the battery and the system rail. The slide switch on the right edge gates the battery; a second FET drops it out entirely the moment USB is plugged in, so the badge runs off VBUS through a Schottky instead.
Two consequences worth knowing: the badge always powers up on USB regardless of the switch, and because the charger hangs off VBUS ahead of the switch, it still charges with the badge switched off. A red LED means charging, blue means done.
WHAT ATTENDEES BUILD
Screen, controls, radio, secure element and a battery — the same ingredients as a handheld console, handed to a room full of builders for a weekend.
Hold a Solana keypair inside the SE050 and confirm transactions on the 2.8" screen with the A button. The private key never leaves the element, and the badge never needs a host.
A D-pad, four action buttons, a 320 × 240 panel and 8 MB of PSRAM. Write a game jam entry on Friday and hand it around the room on Saturday.
Wi-Fi and BLE are already on the module. Trade signed messages, collect proof-of-meeting attestations, or run a room-wide leaderboard over ESP-NOW.
The PDM microphone feeds an I²S peripheral in PDM-RX mode. Run wake-word detection on the S3 and trigger an on-chain action without touching a button.
Log humidity and temperature from the HTU21D, sign each reading with the secure element, and push tamper-evident environmental data to a Solana program.
Eight unused GPIOs on the top header, plus VSYS and GND. Solder on a sensor, a radio, a servo — the badge becomes whatever the weekend needs.
OPEN HARDWARE
Schematic, PCB layout and a hardware README that walks every rail, every I²C address and every GPIO on the module — including the three the PSRAM eats. Fabrication bundles are checked in alongside the design, so the badge can be re-ordered as-is.
github.com/SkyRizzAI/hackerday-superteam →BADGES FOR YOUR EVENT
SkyRizz designs and manufactures custom conference badges — from schematic to assembled boards in attendees' hands.