"Después del juego es antes del juego"
Sepp Herberger

martes, 29 de enero de 2019

Downgrade de impresoras HP

Las famosas impresoras HP Officejet x476dw que nos mandaron sin mesura nos han traído muchos momentos dificultosos. El principal problema está relacionado con trabas al uso de tinta genérica.

Ya sufrimos el bloqueo de cartuchos con aquella bomba de tiempo que metió HP en muchos de sus firmwares hace un par de años. Posteriormente los sucesivos firmwares provocan de alguna manera que los inyectores fallen o al menos eso nos parece.

En este escenario puede ser útil hacer un downgrade del firmware de la impresora para volver a una versión anterior del mismo. Seguramente cuanto más antiguo sea menos bichos tiene dentro.

El problema es que el actualizador oficial que viene con los firmwares no permite hacer downgrade y cargar un firmware mas antiguo que el que tiene instalado. Originalmente las impresoras venían con el firmware LWP1CN1502AR, que luego se fue actualizando en muchas de forma automática (ya que teníamos los "Servicios Web" activados en el menú de configuración web) hasta el LWP1CN1640AR e incluso hasta LWP1CN1819AR y LWP1CN1829BR (el mas reciente a fecha de escribir esto).

Afortunadamente, mi compañero Fernando nos puso en la pista con este enlace: Downgrade de impresora a version 1640AR, en el cual se describe como realizar el downgrade a la versión 1640 si tienes un firmware superior.

Luego encontré esta página en alemán donde cuenta como trucar el actualizador original para realizar un downgrade a cualquier versión. El problema es que el enlace que dan hacia un repositorio de firmwares ha sido vaciado por HP.

Enredando un poco me bajé un el EXE con un firmware antiguo OJPX476DW_CN1502BR.zip, y descomprimiendo el ZIP y luego el EXE que hay dentro llegué hasta un interesante archivo "lemansdw_vr5_pp1_LWP1CN1502BR_apps_signed.ful". Veamos que es esto:
# file lemansdw_vr5_pp1_LWP1CN1502BR_apps_signed.ful 
lemansdw_vr5_pp1_LWP1CN1502BR_apps_signed.ful: HP Printer Job Language data
Vaya, es un fichero de PJL, el lenguaje de los trabajos de impresión de HP.
# head lemansdw_vr5_pp1_LWP1CN1502BR_apps_signed.ful 
2345X@PJL COMMENT (null)
@PJL ENTER LANGUAGE=FWUPDATE

This device does not support FWUPDATE!
t16384sA16542Y+0Y16384VSA27020202A41D5900080100A2C359378CD1AD22A482D2BB797E683379D8F9648DBF89C9EB894F9E9C
SA27658A50D5BA358FC5BE1BB1FCE651DA793BF0FBD192E4E268A649612BDA1D6EC4D71BC568ED41C9
SA27FE3DCD0D5FCA270E926F5E7E520A13353113BA080A648ADBFE9478B6D55BF2B9137A67FCFB0184
SA273B41DC3BD7E683AD450E87640EED6179C3BBC1EB1809F5284280620F992C047EFFCA02CA8F8AB5
SA274F027A82F9A563CE96EF88C33DF8F53AD95EF9898C8B7B088CEE168921903881C45C7B9FA22CAA
SA2766BB292B82D570162BACA932E8AC0614517921DA5CAF088A51A9C45B338F04DDF8D634D0A00591
SA276609554863B5739DA6C8DDB7D66350E1A09D83378D1C86D4070724258D2FF0E9CF6E6162DE4C28
Por lo que vemos contiene dentro el blob de la actualización del firmware en forma de trabajo de impresión. También he visto luego que la extensión .rfu también se usa para este tipo de ficheros.

Estos ficheros PJL pueden ser enviados directamente a la impresora para que los interprete y ejecute. La pregunta es: ¿si enviamos este fichero a pelo lo ejecutará y realizará un downgrade del firmware sin quejarse?.

Bien, en este enlace hablan un poco sobre PJL y como enviarlo tal cual a una impresora HP. En Windows se usa un programita llamado PrintFile y en Linux seguramente se pueda usar el comando "lpr".

Por no complicarme usé el Windows, el programa PrintFile, la impresora conectada por USB con sus drivers instalados y envié el fichero lemansdw_vr5_pp1_LWP1CN1502BR_apps_signed.ful. El panel táctil de la impresora parpadeó, se reinició varias veces con un contador y una barra de progreso y...¡voilá! al reiniciar el firmware había bajado del 1640AR al 1502BR.

Esto en principio no soluciona los problemas que estamos teniendo con los cartuchos genéricos, pero es interesante conocer este método por si alguna vez nos hace falta volver a un firmware antiguo.

Como colofón, paso enlace hacia los dos firmwares mas antiguos que he podido encontrar:
  • Firmware 1502. Es un ZIP con ele ejecutable para Windows. Se debe ir descomprimiendo hasta llegar al .ful.
  • Firmware 1336. Este firmware es para instalar desde OSX, así que viene en un fichero .dmg. No es complicado encontrar herramientas para extraer su contenido.


Me despido con este divertido reportaje de Rocío Vidal, aka La gata de Schrödinger, en el primer congreso terraplanista de Barcelona:



No es broma, se empieza negando el cambio climático y la llegada del Apolo XI a la Luna y se termina defendiendo que la Tierra es plana:


2 comentarios:

  1. Hola
    Me ha parecido muy interesante tu artículo.
    Yo tengo una impresora F380 con cartuchos H21 y H22.
    Normalmente imprimo en Linux con los driver genéricos, aunque son mas lentos que los privativos me funcionan bien.
    Un día se me ocurrió instalar los driver privativos de HP que vienen en Debian. Pero que casualidad, al poco tiempo empezaron a dar error en cartuchos o que estaban vacíos.
    Llegue a la conclusión que modificaban algo en la impresora para pasar por caja y comprar los originales.

    Realice un artículo sobre las impresoras, espero que te guste.
    https://seta43.blogspot.com/2017/05/las-impresoras-una-lucha-entre-usuarios_70.html

    Saludos.
    Juan

    ResponderEliminar
    Respuestas
    1. Gracias, es un post muy interesante. La lucha contra la obsolescencia programada de las impresoras es constante.

      Curiosamente tengo en el centro una HP 720C que sigue funcionando perfectamente, mientras he jubilado casi todas las de inyección posteriores.

      También recuerdo que una vez hurgando en un armario encontre una antiquísima impresora láser Oki de los 80 que aún imprimía, aunque no pude luego encontrar consumibles para ella y la mandé a reciclar. En su época debió costar una pequeña fortuna.

      Saludos.

      Eliminar