Sat. Jun 25th, 2022

Cuando piensa en las pequeñas máquinas que imprimen las etiquetas adhesivas en los paquetes, es posible que no espere encontrar una impresora compleja con su propio lenguaje de programación (ZPL). Sin embargo, [Dan Pastusek] estaba buscando en línea y encontró una pequeña impresora de etiquetas en el almacén en línea favorito de todos por un excelente precio que sugería que era compatible con ZPL. Desafortunadamente, [Dan] tenía grandes sueños para crear una estación de impresión basada en Raspberry Pi y descubrió que los controladores empaquetados para esta impresora en particular no eran compatibles con ARM. No del todo contento con dejarlo ahí, comenzó a desmenuce las capas hasta que tenga un controlador que funcione. ZPL, en esencia, es solo un lenguaje que describe comandos ASCII transmitidos a través de una conexión en serie. Entonces, aunque la impresora apareció como un punto final, no estaba funcionando ya que los filtros (la parte del controlador que sabe cómo convertir de PNG a ZPL) eran solo x86. En Linux, los controladores de impresora también tienen un archivo PPD que describe lo que una impresora puede manejar en cuanto al tamaño del papel y otras configuraciones. El archivo PPD de la pequeña impresora dio la primera pista. En el campo ShortNickName, se identifica como HPRT N41, que es una impresora HP popular. Entonces esta pequeña impresora debe ser un clon de una impresora en esa familia. En particular, no son compatibles con ZPL. En cambio, la serie HPRT es compatible con TSPL, otro lenguaje de impresora desarrollado por TSC. Esto presentaba un problema ya que el servicio de envío que proporcionaba las etiquetas que [Dan] estaba usando etiquetas ofrecidas en tres formatos: PNG, PDF y ZPL. Actualmente, parece que hay un convertidor de TSPL a ZPL disponible, así que en lugar de escribir el suyo, tomó un atajo y escribió un rasterizador. Inicialmente, trató de usar un código de muestra que encontró y, aunque logró que algo saliera de la impresora, estaba en blanco. Entonces, la siguiente prueba fue guardar la salida TSPL sin procesar de un archivador y cat directamente en el puerto serie. Esto funcionó asombrosamente. Próximo, escribió un convertidor para tomar un PNG y convertirlo al formato de mapa de bits que tiene el TSPL. El convertidor está en Javascript ya que se ejecuta como parte del servidor web que administra la estación de impresión. ¿Podría ser más rápido en otro idioma? Por supuesto. Pero un idioma diferente no haría que la impresora fuera más rápida. Con la adición de un escáner de código de barras inalámbrico, es satisfactorio ver la estación de impresión en funcionamiento. Aquí en Hackaday, no somos ajenos a ver a la gente desarmar impresoras para retire el software y las capas físicas que los componen.

By Erica Flores

Enamorada de la tecnología. Apasionada de la velocidad que la información puede adquirir en este mundo cambiante. Actualmente residiendo en Barcelona.