Practica con PineCube: una cámara IP abierta que pide una mejor compatibilidad con el kernel

Cuando PineCube fue anunciado por el proyecto Pine64 en 2020, creó bastante interés. La mayor parte de esto se debió al atractivo de una computadora de placa única (SBC) en un factor de forma de cámara basada en red (IP) con módulo de cámara integrado, por solo $ 29.99. Agregue una carcasa y tendrá un paquete pequeño y elegante que combina un módulo de cámara de 5MP con Ethernet y WiFi de 100Mbit. Como beneficio adicional, el sistema podría alimentarse a través de una batería opcional y PoE pasivo, así como MicroUSB.

Hace unas pocas semanas Compré dos de estas tarjetas, como parte de un proyecto de cliente y decidió utilizarlo para la implementación de una cámara IP personalizada. Con la experiencia de la cámara Linux-on-SBC y MIPI (CSI) existente de mi lado, desde las placas Raspberry Pi hasta las placas Odroid, Orange Pi y Banana Pi, estaba bastante seguro de que podría hacer que funcionara con un mínimo de problemas.

Desafortunadamente, mis experiencias han sido todo menos positivas. Después de pasar muchas horas con PineCube, no puedo recomendarlo a nadie que busque una cámara IP. Hay muchas razones para esto, que intentaré explicar en este artículo.

Índice

    Primeras impresiones

    La parte frontal del PineCube, sin la tapa del objetivo.

    Pedir estas dos tarjetas PineCube (¿PineCubes?) Fue una experiencia bastante curiosa, incluso si está acostumbrado a pedir hardware en línea. Después de hacer clic en los cuadros de diálogo de la tienda Pine64 y pagar el pedido (seleccionando envío estándar), recibí un correo electrónico de confirmación. No había una fecha de envío estimada, pero después de esperar unas semanas y preguntarme si alguna vez recibiría una actualización, recibí una notificación de que mi pedido se había enviado, junto con un enlace de seguimiento.

    Este rastreo terminó en algún lugar de la oficina de aduanas, así que de repente un día me entregaron el paquete con los PineCubes. Dentro de la caja de cartón simple estaban las dos pequeñas cajas blancas, cada una con un tablero PineCube en una pequeña bolsa. Mientras desempaquetaba, me preocupaba romper algunos cables o cables flexibles mientras sacaba el artilugio de la bolsa blanda.

    El recinto PineCube que no se puede obtener. Aún.

    El módulo de altavoz cuelga en el extremo de sus dos cables bastante largos, y me pareció necesario verificar el flex plano que conecta las dos placas que componen el sistema (¿sigue siendo un término de computadora de placa dual?), En caso de que se había movido. No parece el tipo de placa que quieras manejar con demasiada frecuencia, como lo harías con una Raspberry Pi o similar. Parece endeble y querrá colocarlo en un gabinete de inmediato para mantenerlo seguro, sin una orientación verdaderamente estable para apoyarlo en un escritorio.

    Desde el Wiki PineCube La página contiene un enlace a lo que debería ser un archivo STL del caso que luego se pondría a la venta, según una publicación de blog reciente - Pensé en imprimir una copia en la impresora 3D que tengo por aquí antes de que llegaran los tablones de anuncios. Desafortunadamente, como la gente señaló en los comentarios a esa publicación del blog, no se publicaron archivos STL, sino archivos CAD patentados de SolidWorks. Tres meses después, todavía no hay archivos STL disponibles (Actualizar: se agregó una "conversión STL rápida y sucia" entre la escritura y la publicación de esta revisión). Aún no hay contenedores disponibles para la venta.

    Sensores EoL y compatibilidad con Linux

    Hay un encabezado GPIO que también proporciona UART, SPI, I2C y similares.

    Dado que la carcasa es solo un detalle "agradable de tener" en el panorama general (juego de palabras), me concentré en las partes funcionales del hardware que había recibido. Es bastante decepcionante ver que la cámara es una OV5640, un sensor de aproximadamente 9 años que ha estado fuera de servicio durante algún tiempo. Esto hace que el futuro de PineCube parezca bastante dudoso y probablemente de corta duración.

    En el lado positivo, esto también significa que la compatibilidad con Linux no es un problema, ya que Video4Linux (v4l) lo acepta felizmente como fuente de entrada al configurar un flujo RTMP usando ffmpeg. Sin embargo, esto es bastante diferente de la situación con la GPU en el S3 SoC. Como se puede ver en el 'Esfuerzo de mainlining de Linux'en Linux-sunxi, el kernel de Linux 5.11 es el primero en listar el soporte de S3 como fusionado. El soporte de S3 en el kernel 5.10 se realiza a través del soporte de SoC V3, como se puede ver al mirar el archivo de superposición de hardware en Armbian para PineCube, que usa el kernel 5.10. Los SoC S3 y Allwinner V3 son derivados, por lo que algo de compatibilidad tiene sentido.

    Una mirada al interior del PineCube. Tenga en cuenta los hilos que se dañan fácilmente.

    En este punto, la codificación de video sigue siendo WIP (trabajo en curso). Esto significa que ffmpeg, gstreamer o cualquier otro marco de gráficos que use para la codificación de video debe hacer todo esto en el software, utilizando el único núcleo de CPU Cortex-A7 y las extensiones de progresión de vector NEON. Con una simple transmisión RTMP de la cámara, esto parecía funcionar suficientemente.

    El PineCube también tiene un altavoz, como se mencionó anteriormente. Desafortunadamente, esto no se puede usar en este momento, sin ningún dispositivo de audio registrado. Sin embargo, parece que el soporte para esto puede venir con la próxima versión de Armbian, gracias a una corrección de superposición de hardware mejorada que se ha contribuido recientemente.

    Usar como cámara

    En general, PineCube es muy similar a cualquier otro SBC. Descarga la imagen de la tarjeta de destino, la escribe en una tarjeta MicroSD y la inserta en el lector de tarjetas MicroSD de la tarjeta antes de encender el sistema. Dado que PineCube no tiene salidas de video, los métodos de interacción se limitan a una conexión en serie o SSH (si está conectado a Ethernet). Después de establecer una conexión a la consola usando uno de los métodos, iniciar sesión en Armbian es tan simple como 1234 (esta es la contraseña de root predeterminada).

    Una vez que haya iniciado sesión en Armbian, llegar al punto en el que puede configurar un flujo RTMP requiere poco más que instalar media-ctl (paquete v4l-utils) y ffmpeg, antes de ejecutar los siguientes comandos para configurar un FLV con codificación de flujo de 640 × 480 a un servidor RTMP:

    $ media-ctl --set-v4l2 '"ov5640 1-003c":0[fmt:UYVY8_2X8/640x480@1/15]'
    $ ffmpeg -s 640x480 -r 15 -i /dev/video0 -vcodec flv -f flv rtmp://<rtmp_server>/live/pinecube

    Después de ejecutar este comando y conectarse al servidor RTMP con un reproductor desde un sistema de escritorio, el video de PineCube ahora se puede ver en un glorioso 640 × 480 a 15 FPS, con solo unos segundos de retraso. El FPS se puede aumentar a 30 FPS a 1080p, pero sin el soporte de la codificación de hardware, esto podría causar tartamudeo y fallas.

    Mientras configuraba el sistema, noté que fallaba de manera confiable al descargar algunos recursos a través de HTTP y solo se reanudaba nuevamente después de que se agotaba el tiempo de descarga de HTTP. Cuando sostuve top abierto en otra terminal SSH, pude ver que la carga del sistema subió a 12 y más, ya que la RAM de 111 MB del sistema (de un total de 128 MB) se llenó, junto con el intercambio.

    El mismo patrón se repitió cuando intenté configurar un flujo RTMP que agregó más procesamiento local (codificación h.264) y un nivel de seguridad personalizado (cifrado). Sin soporte para el cifrado de hardware, podía ver que la carga del sistema se disparaba hasta que el sistema dejaba de responder. El envío de Ctrl + C a través de la terminal SSH finalmente funcionó después de unos diez minutos de retraso.

    El SoC S3

    El S3 SoC se puede encontrar en lo profundo de la pila PineCube.

    Cuando comparo el PineCube con otros SBC con los que he trabajado, el S3 SoC en esta placa en particular parece ser el principal factor limitante y, en particular, la escasa cantidad de RAM y la continua falta de soporte de hardware. Parece ser principalmente un SoC dirigido a cámaras IP de bajo costo, lo que significa que tratar de superar las limitaciones que conlleva ese enfoque tendrá repercusiones.

    En este sentido, es fascinante ver que Olimex también planea lanzar una tarjeta basada en S3 este año, en forma de S3-OLinuXino. Quizás tener más tarjetas de código abierto como esta ayude a aumentar el soporte para estos SoC más oscuros. Lo que está claro para mí es que sin el soporte completo de hardware, particularmente para la codificación de video, los usos de estas plataformas serán limitados.

    Terminando

    Para el usuario más casual, podría comparar el PineCube de $ 30 con consideraciones anteriores y algo como Raspberry Pi Zero W ($ 18) o Banana Pi M2 Zero (Allwinner H2 + SoC, $ 25), junto con algo como el Cámara Raspberry Pi V2 módulo con módulo de cámara Sony IMX219 de 8MP ($ 25). Por menos de $ 50 tendrías una tarjeta con más RAM (la RPi Zero también tiene 512 MB), una mejor cámara, así como la posibilidad de comprar o imprimir estuches (incluso con un módulo de cámara).

    Tanto Allwinner H2 + como los SoC BCM2835 de Raspberry Pi Zero han tenido soporte básico de Linux durante años, incluidas cosas como la codificación de video. Todo lo cual lleva a la pregunta de cuál es exactamente el Razón de ser del PineCube es, junto con el de la presencia del SoC S3 en contextos más generales.

    En cuanto a la configuración más especializada para la que compré estas tarjetas PineCube, estoy bastante seguro de que se puede hacer que funcione, y los problemas y lagunas más persistentes en el soporte de hardware probablemente se resolverán con el tiempo. Sin embargo, después de esta experiencia, siento que no es la plataforma adecuada para cualquiera que no se sienta inclinado a dedicar una cantidad significativa de tiempo a hacer funcionar incluso las cosas básicas.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Información básica sobre protección de datos Ver más

    • Responsable Johan Alexander Salas.
    • Finalidad  Moderar los comentarios. Responder las consultas.
    • Legitimación Su consentimiento.
    • Destinatarios  Knownhost.
    • Derechos Acceder, rectificar y suprimir los datos.
    • Información Adicional Puede consultar la información detallada en la Política de Privacidad.

    Subir
    Govannom.org utiliza cookies propias y de terceros con fines publicitarios y para mejorar el funcionamiento de su sitio web.    Más información
    Privacidad