128×32 pixels with purpose
ZeroKeyUSB uses a white OLED panel (SSD1306 controller, I²C 400 kHz) with a 128×32 resolution.The firmware keeps the interface intentionally minimal: large typography, clear icons, and smooth transitions that remain legible even in low light.
| Menu item | Purpose |
|---|---|
| Backup | Start the guided export of encrypted credentials. |
| Settings | Configure device preferences such as brightness and PIN. |
| TOTP | View time-based codes with large, legible typography. |
| Danger Zone | Confirm destructive actions like factory reset or wipe. |
| Info | Show firmware version, serial data, and support details. |
Rendering pipeline
- Frame buffer build – the application composes the entire screen in RAM using helper functions such as
draw_text(),draw_icon(), anddraw_progress(). - Full-frame transfer – every refresh sends all 512 bytes to the OLED via I²C, ensuring consistent updates.
- Refresh pacing – a cooperative loop updates the display roughly 30 times per second, avoiding flicker while keeping CPU usage minimal.
Typography & icons
| Asset | Format | Purpose |
|---|---|---|
| Main font | Custom 6×12 bitmap | Used for menus, lists, and info screens. |
| Mono font | 8×12 bitmap | Optimized for passwords and 2FA codes. |
| Icons | 16×16 sprites | Backup, settings, clock, warning, info. |
When displaying passwords or TOTP codes, the mono font avoids confusion between similar characters (
O vs 0, I vs 1).
Scrolling & focus
- Auto-scroll – long site names (over ≈ 8 characters) scroll horizontally at a steady pace.
- Focus highlight – the currently selected option is inverted, while others remain dimmed.
- Long-press feedback – a filling progress bar confirms destructive actions (factory reset, delete all).
Secure display practices
- Sensitive fields (passwords, TOTP codes) are masked by default and only revealed briefly when confirmed by touch.
- After typing credentials, the firmware clears the frame buffer to remove residual data from RAM.
- While connected to USB, the display remains active; it does not automatically lock or power off due to inactivity.
- The OLED never displays decrypted secrets for longer than a few seconds, even if the host is unresponsive.
Diagnostics view
A hidden diagnostic mode (used only in factory testing) shows I²C status, raw touch data, and firmware version.It is compiled out of production builds through a conditional flag to prevent debug information leaks.
The OLED sits behind a sealed resin window, providing excellent contrast and resistance to scratches, dust, and moisture.