Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.zerokeyusb.com/llms.txt

Use this file to discover all available pages before exploring further.

Simple control, powerful features

ZeroKeyUSB has no buttons, no apps, and no hidden menus β€” only five golden touch points that control everything.
The menu becomes accessible after entering your Master PIN by scrolling past the last credential slot.


GestureAction
Up ↑Move selection up (wraps to bottom)
Down ↓Move selection down (wraps to top)
Center ●Select / Execute the highlighted item
Left ←Go back to parent menu or exit to credentials
Right β†’Exit menu, jump to credential slot 0
When a menu has more items than fit on the 4-row display, a scrollbar with thumb appears on the right edge. The selection stays visible as you scroll.

πŸ” Backup

ItemAction
ImportReceives credentials from the host via USB serial (CDC). Device shows β€œWaiting for data from the web app.”
ExportSends all 62 credential slots as plaintext CSV over USB serial. Requires long-press Center authorization.
The export/import flow shows an authorization prompt before transferring any data:
Export sends plaintext credentials over USB serial. Only perform this on a trusted computer.

βš™οΈ Settings

ItemAction
Rotate ScreenFlips the display 180Β° for left/right-handed use. Also inverts touch controls. Saved in EEPROM.
Keyboard: XX-XXCycles through 9 keyboard layouts (EN-US β†’ DA-DK β†’ DE-DE β†’ ES-ES β†’ FR-FR β†’ HU-HU β†’ IT-IT β†’ PT-PT β†’ SV-SE β†’ EN-US). Saved in EEPROM.
AboutShows device info: SW version, serial number, and zerokeyusb.com.

⏱️ TOTP

TOTP is accessed from the credential view, not the main menu. When viewing a credential, scroll Down past Password to the 2FA field:
  • If no TOTP secret exists for that slot β†’ shows β€œNo TOTP secret” for 2 seconds.
  • If time is not synced β†’ shows β€œTime not set β€” Request host time” and sends REQTIME over serial.
  • If ready β†’ displays a 6-digit code with a 30-second countdown timer. Refreshes automatically each period. Touch any pad to return.

⚠️ Danger Zone

Every action in this section shows a confirmation page that requires pressing Center to proceed or Left to cancel:
ItemEffectReversible?
Reset PINEnters the PIN change screen (EDITPIN). New PIN + re-provisioning.Partial β€” old credentials remain if same AES key
Delete CredentialsCalls eraseAll(): 3-second countdown, then writes encrypted blanks to all 62 slots + clears TOTP metadata.❌ No
Factory ResetResets config flag to 0x00 + erases all credentials. Next boot starts the setup wizard.❌ No
Bootloader ModeSets double-reset magic word (0xF01669EF at 0x20007FFC), then issues NVIC_SystemReset(). Device reboots into USB DFU bootloader for firmware flashing.βœ… Yes (reflash)

ℹ️ Info

Read-only submenu showing:
  • SW: x.x.x β€” firmware version from zerokeyInfo::getSoftwareVersion()
  • SN: XXXXXXXX β€” hardware serial from the SAMD21 unique ID registers

Setup wizard

The setup wizard runs on first boot (or after factory reset). It consists of 10 internal pages across 9 visible steps: Pages with more than 4 lines of text are vertically scrollable using Up/Down. A scrollbar with thumb appears on the right edge. Each wizard page supports:
  • Right β†’ advance to next page
  • Left β†’ go back to previous page
  • Center β†’ action (toggle orientation, change layout, start PIN entry)
  • Up/Down β†’ scroll content

Design philosophy

The menu system is intentionally minimalist:
  • No deep submenus β€” every option is two taps away from the main menu.
  • All destructive actions require explicit Center confirmation on a dedicated page.
  • Layout and gestures remain consistent across firmware versions.
  • Menu items dynamically update their labels (e.g., keyboard layout shows current selection).
ZeroKeyUSB requires no drivers or software installation.
It’s recognized as a standard USB keyboard on any operating system.