- El monitor E Ink de 13.3 pulgadas se actualiza 60 veces por segundo a 300 ppi, y se convirtió en un producto real tras 4 años de desarrollar su propio controlador, hardware y firmware
- Los controladores E Ink tradicionales intercambian velocidad por contraste debido a una espera de alrededor de 100 ms por actualización global, pero un enfoque de actualización por píxel refresca de inmediato los píxeles que cambiaron
- La actualización por píxel aumenta el ancho de banda requerido en una pantalla monocroma de 13 pulgadas de 20 MB/s a 540 MB/s, lo que hace necesarios DDR3 y DisplayPort
- Para la escala de grises no es posible un método sin parpadeo, así que se combinan Bayer dithering, blue noise, error diffusion y un modo de visualización híbrido
- El resultado final es un monitor E Ink de alta tasa de refresco con pantalla táctil, luz frontal, opción de color, varios modos de visualización y hardware, gateware FPGA y firmware de código abierto
Punto de partida: de una laptop E Ink a un controlador propio
- El monitor E Ink de 60 fps funciona a 300 ppi y se actualiza 60 veces por segundo, aunque E Ink no es precisamente una pantalla conocida por su velocidad
- El proyecto comenzó como una laptop E Ink, y en ese momento los SoC compatibles con E Ink estaban diseñados para lectores electrónicos, atados a bajo consumo, procesadores lentos e interfaces limitadas
- Para hacer una laptop había que separar el SoC y la pantalla, y entre ambos insertar un chip controlador basado en FPGA para crear un controlador E Ink propio
- El diseño inicial de la laptop incluía una pantalla LCD en forma de barra que funcionaba como una gran touch bar, bajo la idea de que algunas tareas necesitaban una pantalla rápida y que E Ink podía seguir siendo lenta
- Los 60 fps no eran el objetivo principal al inicio; bastaba con que fuera lo suficientemente rápida para una laptop, e incluso 15 fps habría sido una meta aceptable si no se podía llegar a 60 fps
La velocidad y calidad que trajo la actualización por píxel
- Los controladores E Ink tradicionales usan un temporizador de actualización global y, al refrescar la pantalla, esperan a que termine la actualización anterior
- Una actualización tradicional tarda unos 100 ms, así que en el peor caso una imagen nueva debe esperar 100 ms antes siquiera de empezar a procesarse
- Si se acelera el temporizador, aumenta la tasa de cuadros, pero las partículas de E Ink no tienen tiempo suficiente para responder y la imagen se ve como si estuviera lavada
- El enfoque tradicional crea un compromiso entre tasa de refresco y contraste, y algunos controladores lo alivian actualizando de forma independiente entre 4 y 16 regiones
- Ese método basado en regiones obliga al software a gestionar directamente esas áreas y aun así mantiene limitaciones
- El enfoque de actualización por píxel trata cada píxel como si fuera una región de actualización independiente, de modo que cualquier píxel que cambie empieza a refrescarse de inmediato sin esperar
- Este método permite obtener al mismo tiempo alta tasa de cuadros y alto contraste, eliminando el compromiso tradicional entre velocidad y calidad
- La desventaja es el ancho de banda de memoria: en un panel de 13 pulgadas mostrando una imagen monocroma, un controlador tradicional necesita 20 MB por segundo, mientras que este método requiere 540 MB por segundo
- Por esa exigencia de ancho de banda se necesita DDR3 en lugar de SDRAM básica, y DisplayPort en lugar de USB, lo que aumenta el costo
- Para leer libros esta configuración sería innecesaria, pero como monitor marca una gran diferencia
Calidad de imagen: dithering y escala de grises híbrida
- El proyecto cambió de rumbo para construir primero un buen monitor antes que una laptop, y luego continuó durante varios años en el tiempo libre
- E Ink no puede implementar una escala de grises sin parpadeo, así que el dithering era indispensable
- Los algoritmos de dithering implementados fueron tres: Bayer dithering, blue noise y error diffusion
- Bayer dithering es rápido pero genera patrones visibles; blue noise ofrece una apariencia mejor, y error diffusion da la mejor calidad, aunque es difícil de escalar a alta resolución
- El dithering funciona, pero no supera a una escala de grises real; la excepción era la escala de grises con parpadeo
- Los monitores existentes implementaban un modo lento con parpadeo o directamente se saltaban por completo la escala de grises
- El método híbrido cambia a un modo binario rápido cuando la imagen se está moviendo y, cuando se estabiliza un poco, la vuelve a renderizar en escala de grises
- Este método funciona bien para lectura, pero es menos adecuado para otros usos; gracias al controlador propio fue posible optimizarlo según cada caso de uso, sin quedar atado a modos predefinidos
Iteraciones de hardware y camino al producto
- El primer prototipo usaba DisplayPort de tamaño completo, y luego se cambió a USB Type-C con DisplayPort
- Cuando el IC integrado de gestión de energía fue descontinuado, hubo que reemplazarlo por convertidores DC-DC individuales
- Para proteger la pantalla de eventos inesperados de latch-up, se añadió a la placa monitoreo completo de voltaje y corriente
- Cada cambio exigió una nueva revisión del PCB, y cada revisión llevó a nuevos aprendizajes
- Cuando regresó el primer diseño de carcasa hecho por un proveedor externo, dejó de parecer un PCB expuesto sobre el escritorio y empezó a verse como un producto real
- Se hicieron demostraciones en Hackaday Supercon, LatchUp y el evento Teardown de Supply, y la gente quería que este producto realmente saliera
- Como la tecnología funcionaba, había demanda y también un diseño, se dejó el trabajo para dar el último empujón
- El plan era dedicar unos meses de enfoque total a pulir el diseño, fabricar y hacer los envíos
Rediseño completo, problemas con proveedores y funciones finales
- Poco después de pasar a tiempo completo, E Ink anunció un nuevo panel con mayor resolución, mejores especificaciones y menor precio
- Ese nuevo panel podía llevar a un mejor producto, pero por su mayor resolución hacía falta un IC decodificador de alto ancho de banda, memoria DDR de alto ancho de banda, un nuevo FPGA y una fuente de alimentación de mayor corriente
- Este cambio implicó rehacer casi toda la placa y provocó un retraso de al menos medio año
- En el producto final se abandonó el método de diseñar primero la placa y luego adaptar la carcasa; en su lugar, primero se definieron el chasis, las dimensiones exactas, los puntos de montaje y el form factor, y después se ajustó la placa
- Este nuevo enfoque hizo que todo el diseño fuera más optimizado y coherente, pero también exigió otra gran revisión
- Un prototipo completamente ensamblado se mostró en Design Shenzhen, pero era demasiado inestable para enviarlo por fallas aleatorias, cortes de video y errores de inicialización
- El proveedor del chip decodificador de video se negó a ayudar pese a que había NDA y contrato de servicio, y desde el principio no entregó el código del driver
- Hubo que pagar un costo adicional para obtener el código fuente necesario para usar el chip, pero ese código no funcionaba, y por el código que sí funcionaba pedían todavía más dinero
- Más adelante se cambió a otro proveedor, que fue mucho mejor para trabajar en conjunto, aunque ese chip no estaba disponible cuando comenzó el proyecto
- Después se añadió soporte para pantalla táctil, lo que requirió integrar un nuevo controlador táctil, escribir drivers y procesar la calibración
- También se añadieron una luz frontal sin parpadeo, un limitador de tasa de cuadros útil para la nitidez, un modo de bajo consumo para ahorrar energía cuando no hay alimentación conectada y una visualización en pantalla para controlar estas funciones
- Cada función puede sonar simple en una sola frase, pero implementarla bien tomó semanas, y la fecha límite seguía moviéndose
- Desde que se trabajó de tiempo completo, se invirtieron más horas que cuando todavía había empleo; la separación entre noches y fines de semana se volvió borrosa, y disminuyeron los juegos y el tiempo libre
- Al tomar decisiones directamente, se podían ejecutar de inmediato; al resolver problemas, quedaban realmente resueltos; y para implementar funciones ya no había que convencer a otras personas
- Cuatro años después, el resultado fue un monitor de 13.3 pulgadas, hasta 60 fps, latencia muy baja, varios modos de visualización, pantalla táctil, luz frontal y opción de color
- El diseño de hardware, el gateware FPGA y el firmware están publicados como código abierto, así que también se puede construir por cuenta propia
1 comentarios
Opiniones en Lobste.rs
Vi esta demo cuando conocí a Alex en FOSDEM este año, y se veía bastante bien
Todavía es un prototipo y la carcasa aún no está terminada, así que no quedé completamente convencido, pero parecía tener mucho potencial, y probablemente mi próxima compra de tinta electrónica sea un producto de modos
Tengo el kit de desarrollo que recibí en la campaña de Crowd Supply de hace tiempo, así que si tienen curiosidad por algo, pueden preguntar
También me pregunto cómo es el contraste bajo luz solar intensa y si han tenido problemas del lado del software
Es una pantalla realmente genial. Estaría bien en una laptop o una tablet, pero no estoy seguro de cuánto usaría una pantalla externa pequeña por sí sola
La explicación de que “en movimiento, puedes hacer funcionar Flow hasta a 40 Hz con un solo cable USB Type-C, y en el escritorio puedes conectar alimentación adicional para aprovechar toda la tasa de refresco de 60 Hz” suena un poco rara
No pude encontrar cifras de consumo de energía, pero con un solo cable USB-C se puede alimentar una laptop completa de gama alta, así que cuesta creer que una sola pantalla consuma más que eso
Los monitores de escritorio con entrada AC/DC pueden entregar PD de 60 W o 100 W, pero mi laptop no entrega PD
Tengo una cámara que solo se carga por PD; se conecta bien por USB-C a la laptop, pero no la puede cargar porque necesita algo como 25 W o 30 W
Aun así, los otros monitores portátiles que tengo en casa sí funcionan solo con el USB-C de la laptop. La tinta electrónica necesita voltajes más altos que 5 V para borrar las celdas, así que a 60 Hz parece posible que ese aumento de voltaje haga que el consumo sea demasiado alto
Esto cuesta un poco creerlo. Según entiendo, la baja tasa de cuadros parece ser básicamente una limitación de software, no de hardware, así que ¿por qué no se ha difundido más hasta ahora?
Tampoco hay mucha razón para poner controladores más caros que los clientes no necesitan, y si haces trabajar la tinta electrónica más agresivamente, su vida útil se reduce y cambia la propuesta de valor
Las pantallas de tinta electrónica ya son caras de por sí por los costos de patentes y el diseño mecánico complicado. Es como si pudieras hacer que un Toyota Corolla corra a 150 millas por hora, pero tendrías que cambiar elementos internos pensados para la comodidad, quitar algunos dispositivos de seguridad, y las partes móviles podrían romperse después de una sola vuelta
Al final, sí es cierto eso de que “todo hardware es un algoritmo, así que empieza en el software”, pero en el caso de la tinta electrónica, el mercado de controladores no ha tenido décadas para madurar como sí pasó con los controladores DVI o VGA
El trabajo de Alex es de código abierto, así que creo que no tardará mucho en que esto pueda reproducirse a gran escala en algún momento
Claramente parece haber demanda de pantallas reflectivas con alta tasa de refresco y alto contraste. Pero me pregunto por qué la mayoría de los enfoques son del tipo “usemos papel electrónico normal como sea o modifiquémoslo”
¿Por qué los fabricantes no hacen paneles LCD reflectivos de más de 6 pulgadas, al estilo de la línea Memory Display de Sharp?
Y ya de paso, ojalá la industria también fabricara pantallas de electrohumectación que se pudieran comprar