Creación de un firmware a medida para una camara ISP Hisilicon Hi3518

https://www.wifi-libre.com/img/members/189/Camara_Front_20210129-1515.jpeg

Actualmente hay un amplio mercado de este tipo de cámaras, destinadas principalmente a la video vigilancia,que vienen de serie con conectividad IP, ya sea mediante wireless o cable de ethernet y un servidor web embebido para tomar el control y visualiar la imagen.

Aunque en el mercado existen multitud de modelos con procesadores y sensores de distinto tipo, la que nos ocupa, cuenta con un procesador de imagen de Hisilicon denominado Hi3518, así como un sensor de imagen IMX225 de la série Exmor de Sony, expecialmente diseñados para condiciones de baja iluminación. Aunque el proceso que describiré es de aplicación a este modelo en concreto, con toda seguridad es tambien aplicable a otros adaptandolo, eso si, a cada caso.

Aunque la calidad de imagen y el desempeño no es malo, y de hecho cumple sobradamente su objetivo, la imagen, dependiendo para que cosas, está demasiado procesada y “sobre comprimida” debido a la función de streaming para lo que está concebida.

El objetivo que persigo y que se sale de la tonica habitual del foro, es tener un mayor control sobre la exposición y optener la matriz de pixels que se generan en el sensor sin ningún tipo de procesado ni compresión, lo cual se conoce como imagenes RAW. Lo que pretendo es tener una imagen limpia, sin alterar, para propósitos de fotografía de larga exposición y de aplicación a la astronomía.

Aunque el proyecto ya está bastante avanzado, iré poco a poco describiendo los detalles, para el cambio del firmware original por otro hecho a medida.

Empezamos…

Acceso al firmware original:

La placa, porque basicamente lo que compramos es una placa, con el sensor y sus conectores, cuenta con varios puertos para la alimentación, conexión ethernet, filtro de infrarojos, etc.

https://www.wifi-libre.com/img/members/189/Camara.jpeg

Pero, además el fabricante ha dejado un puerto serie de diagnóstico o JTAG, este sin conector, por el que podemos establecer una conexión SSH con la cámara e interacturar con el cargador de arranque. Así que el primer paso va a consistir en conectar un conversor de puerto USB a serie en el conector de diagnóstico. Este conector Tiene tres pines Rx, Tx y GND que funcionan a 3,3Vdc (Cuidado con esto) que debemos identificar con la ayuda de un multímetro, no me voy a extender en ello para no alargar el post y porque en la web hay mutitud de información sobre como hacerlo.

https://www.wifi-libre.com/img/members/189/Camara_Jtag.png https://www.wifi-libre.com/img/members/189/Camara_232.jpeg

Lo importante ahora es la información que sale en la consola y que revela, como no podia ser de otra forma, que en el interior de nuestra cámara se ejecuta una versión embebida de Linux:

sudo screen /dev/ttyUSB0 115200

[code]U-Boot 2010.06-svn (Oct 14 2015 - 15:07:23)

DRAM: 256 MiB
Check spi flash controller v350… Found
Spi(cs1) ID: 0xC2 0x20 0x17 0xC2 0x20 0x17
Spi(cs1): Block:64KB Chip:8MB Name:“MX25L6406E”
envcrc 0xcbc05d41
ENV_SIZE = 0xfffc
In: serial
Out: serial
Err: serial
Press Ctrl+C to stop autoboot
CFG_BOOT_ADDR:0x58040000
8192 KiB hi_sfc at 0:0 is now current device

boot load complete: 1968652 bytes loaded to 0x82000000

SAVE TO 80008000 !

Booting kernel from Legacy Image at 82000000 …

Image Name: linux
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1968588 Bytes = 1.9 MiB
Load Address: 80008000
Entry Point: 80008000

load=0x80008000,_bss_end=80829828,image_end=801e89cc,boot_sp=807c7168
Loading Kernel Image … OK
OK

Starting kernel …

Uncompressing Linux… done, booting the kernel.[/code]

Antes de contiuar, he de mencionar que para la realización de este proyecto me he inspirado principalmente en el contenido del blog que cito a continuación, así como en otros que se citan en ese mismo artículo. Desde aquí mi reconocimiento y agradecimiento a todos ellos.

http://mark4h.blogspot.com/2017/07/hi3518-camera-module-part-1-replacing.html

Este tema huele muy bien… Le pongo una chincheta :slight_smile:

hola Patcher muy bueno tu informacion pero cuentame como quedo pudiste crear la uImage de la cámara?