La propia pantalla consta de ocho módulos idénticos con LEDs de RGB de 8 x 8 cada uno, resultando en una pantalla a todo color (24 bits por piel) con 32 x 16 píxeles (casi HD: P). los PCB son casero y les soldadura me llevó bastante tiempo... pero creo que valió la pena :)
Cada módulo es controlado por un Atmel ATmega48 con tres canales de PWM de 8 bits - uno para cada color. Por lo tanto multiplexación masiva es necesaria para conducir todos los 64 LEDs. Al principio tenía dudas de si esta configuración sería bastante brillante, pero como se puede ver, el brillo es ok (aunque hoy elegiría un controlador con más canales PWM pero esta cosa es realmente tres años de edad y no encuentro uno bueno en aquel entonces).
El controlador se registra con 8 MHz, por el reloj del pixel 256 ciclos son necesarios para PWM y algunos más para cambiar el pixel activo. Sin embargo esto resulta en una tasa de refresco de ronda unos 400 Hz, lo que es absolutamente libre parpadeo.
Todos los módulos están conectados a un Bus SPI, que es responsable de transferir los datos de imagen. Desde un PC estándar no una interfaz SPI tomé un USB al convertidor serial y utiliza otro microcontrolador como serial convertidor SPI. El puerto serie se ejecuta en el 460kbaud dando por resultado una velocidad máxima de 37,5 fps. Esto está bien pero hoy me gustaría tener un controlador con USB incorporado... :)
En el PC un pequeño programa genera los datos de vídeo para la pantalla. En las imágenes se puede ver un espectro de audio. Tengo algunas otras visualizaciones (texto de scolling, un juego de pong simple, incluso vídeos son posibles pero escala 32 x 16 píxeles más videos pierden sus detalles ;)) pero el espectro de audio es mi favorito.
Aquí está un video que lo muestra en acción: