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.
Menu structure
Navigating the menu
| Gesture | Action |
|---|---|
| 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 |
π Backup
| Item | Action |
|---|---|
| Import | Receives credentials from the host via USB serial (CDC). Device shows βWaiting for data from the web app.β |
| Export | Sends all 62 credential slots as plaintext CSV over USB serial. Requires long-press Center authorization. |
βοΈ Settings
| Item | Action |
|---|---|
| Rotate Screen | Flips the display 180Β° for left/right-handed use. Also inverts touch controls. Saved in EEPROM. |
| Keyboard: XX-XX | Cycles 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. |
| About | Shows 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
REQTIMEover 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:| Item | Effect | Reversible? |
|---|---|---|
| Reset PIN | Enters the PIN change screen (EDITPIN). New PIN + re-provisioning. | Partial β old credentials remain if same AES key |
| Delete Credentials | Calls eraseAll(): 3-second countdown, then writes encrypted blanks to all 62 slots + clears TOTP metadata. | β No |
| Factory Reset | Resets config flag to 0x00 + erases all credentials. Next boot starts the setup wizard. | β No |
| Bootloader Mode | Sets 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.
Itβs recognized as a standard USB keyboard on any operating system.