Solana Badge v1 · rev lcd
Solana Badge v1, back face
77.6 × 116.3 mm · back face (mirrored) · 6 parts highlighted

to move between modules

06 / 09 · Security

SE050 secure element

An NXP EdgeLock SE050C2 on the I²C bus for key storage and crypto.

Part
SE050C2HQ1_Z01SDZ
Address
0x48 (fixed)
Protocol
T=1 over I²C
Enable
GPIO8

U5 is an NXP EdgeLock SE050C2 — a certified secure element that generates and stores private keys in hardware and never exposes them. On a badge that wants to hold a Solana keypair, this is the part that makes that meaningful.

It shares GPIO9/GPIO10 with the button expander, at the fixed address 0x48 that cannot be changed. Before any transaction, GPIO8 (SE_EN) has to be driven HIGH — the enable line is a hard gate, not a suggestion.

The transport is T=1 over I²C, the smart-card protocol rather than plain register reads. The bring-up firmware proves the link by issuing a soft reset and reading back the 35-byte ATR.

Pins

PinNetRoleFunction
GPIO8SE_ENENABLEEnable line to U5 pin 14. Drive HIGH before any I²C transaction.
GPIO9SCLI²C CLKShared with the TCA9534. 2K2 pull-up R10.
GPIO10SDAI²C DATAShared with the TCA9534. 2K2 pull-up R8.

Parts

  • U5 SE050C2HQ1_Z01SDZ Secure element — key storage, crypto accelerator

Firmware

firmware/testkit/testkit.ino
constexpr int     PIN_SE050_ISO_RST      = 8;
constexpr uint8_t SE050_ADDR             = 0x48;
constexpr uint8_t SE050_ATR_LENGTH       = 35;
constexpr bool    SE050_ENABLE_ACTIVE_HIGH = true;

Notes

  • A healthy board answers at 0x20 (TCA9534) and 0x48 (SE050) on an I²C scan — serial command “s”.
Solana Badge · DEF CON Generated from pcb/v1, pinout/ and firmware/testkit/testkit.ino