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.

ZeroKeyUSB usa un módulo OLED de 0,91” basado en SSD1306 para mostrar menús, credenciales e iconos de estado. La pantalla es brillante, de bajo consumo y legible desde múltiples ángulos — ideal para echar un vistazo rápido durante un login.

Características eléctricas

ParámetroValor
Resolución128 × 32 píxeles
InterfazI²C (dirección 0x3C)
Voltaje de alimentación3,3 V
Corriente típica10–12 mA a brillo máximo
ControladorSolomon Systech SSD1306
El módulo se conecta directamente al bus I²C SERCOM3 del SAMD21, compartido con la EEPROM externa. Las resistencias pull-up (4,7 kΩ) están en el PCB, así que las resistencias del módulo breakout deberían desactivarse al ensamblar.

Asignación de pines

Pin OLEDSeñalNotas
VCC3V3Alimentado desde el regulador del MCU
GNDGNDTierra común
SCLPA23Reloj I²C compartido
SDAPA22Datos I²C compartidos
RESPA14Controlado por firmware durante init
DCA nivel bajoComando/datos gestionado automáticamente en modo I²C
CSA nivel bajoNo se usa en modo I²C
El firmware togglea la línea RES al arrancar para garantizar una secuencia de boot limpia incluso si la alimentación es inestable.

Estrategia de frame buffer

  • El SSD1306 espera datos en páginas de 8 píxeles verticales.
  • El firmware mantiene un buffer de 512 bytes en SRAM (128 × 32 / 8).
  • Las actualizaciones usan escrituras parciales para minimizar el tráfico I²C cuando solo cambian unos pocos caracteres.
  • Un diff simple de double-buffer rastrea las regiones sucias para que el refresco quede por debajo de 5 ms.
Las animaciones como el scroll suave para contraseñas largas se basan en interrupciones de timer que desplazan el buffer entre refrescos.

Control de brillo

  • Valor de contraste por defecto: 0x7F (50%).
  • Una opción del menú permite atenuar hasta 0x20 para entornos oscuros.
  • Tras 60 segundos de inactividad el firmware envía DISPLAY OFF manteniendo los datos en RAM.
  • Cualquier entrada táctil o actividad USB enciende la pantalla al instante.
Este enfoque equilibra legibilidad y vida útil del OLED.

Resolución de problemas

SíntomaCausa posibleSolución
Sin imagen, backlight apagadaPin RES a nivel bajoComprueba la soldadura o asegúrate de que el logo de arranque ha terminado.
La pantalla parpadea o muestra ruidoConflicto I²C con la EEPROMInspecciona resistencias pull-up y longitud de cable.
Ghosting / quemadoContenido estático a máximo brilloReduce el contraste o activa el auto-dim en ajustes.
Si el OLED necesita reemplazo, cualquier módulo SSD1306 I²C con el mismo orden de pines se puede sustituir sin cambios en el firmware.