Skip to main content
ZeroKeyUSB connects through a USB-C receptacle but behaves as a classic USB 2.0 full-speed device. The board keeps the wiring simple so that any USB-A or USB-C host can power and communicate with the key.

Connector wiring

PinFunctionNotes
A1/B12GNDTied together for symmetrical cables
A4/B9VBUS5 V input (up to 500 mA)
A5CC15.1 kΩ pull-down (Rd) advertises device mode
B5CC25.1 kΩ pull-down (Rd) for flipping cables
A6/B6D+Routed to SAMD21 USB pins
A7/B7D−Routed to SAMD21 USB pins
No high-speed pairs or USB 3.x pins are used. Shield is connected to ground through a 1 MΩ resistor and 10 nF capacitor for ESD suppression.

Power path

  • VBUS feeds a 3.3 V LDO regulator (TPS73533) that powers the SAMD21, OLED, touch controller, and EEPROM.
  • Total current stays under 120 mA during OLED animations, well within USB 2.0 limits.
  • Reverse current protection prevents powering the host when the device is off.
  • A PTC resettable fuse (250 mA) adds short-circuit protection.
Because ZeroKeyUSB has no battery, unplugging the cable immediately cuts power and clears volatile RAM.

USB descriptors

InterfaceClassPurpose
Interface 0HID Keyboard (0x03)Auto-types usernames and passwords
Interface 1CDC ACM (0x02)Serial console for backups, diagnostics, and time sync
Each interface has its own endpoint pair, allowing simultaneous keyboard and serial communication without re-enumeration.

Security considerations

  • The firmware ignores vendor-specific control requests and only responds to standard USB descriptors.
  • HID reports are generated solely from user-confirmed actions; there is no host-triggered typing.
  • CDC commands require the device to be unlocked and, for destructive actions, a long-press confirmation.
  • USB suspend triggers an immediate lock after 30 seconds of inactivity.
These safeguards ensure that plugging the key into an unknown host does not expose stored secrets.

Troubleshooting enumeration

SymptomCauseSolution
Device powers but not detectedCC resistors missing or incorrectVerify 5.1 kΩ pull-downs on CC1/CC2.
Enumerates as “Unknown Device”Firmware not running or bootloader modeReflash via UF2 or check for double-tap reset.
Serial port not appearingCDC driver blockedOn Windows install the provided .inf from the firmware repo.
If USB data lines are damaged, the device can still power up, but no credentials will be typed. Inspect the connector for debris or mechanical stress.
I