El firmware personalizado enseña nuevos trucos a la placa de relés USB
HogarHogar > Noticias > El firmware personalizado enseña nuevos trucos a la placa de relés USB

El firmware personalizado enseña nuevos trucos a la placa de relés USB

Dec 14, 2023

Si está buscando una manera rápida y fácil de controlar algunos dispositivos desde su computadora, una placa de relé USB económica podría ser la solución ideal. Estos son dispositivos bastante simples, que consisten en poco más que un microcontrolador y un puñado de relés. Pero eso no significa que no haya margen de mejora, y como [Michał Słomkowski] demostró recientemente, actualizar estas placas con un firmware personalizado permite al usuario modificar su funcionalidad predeterminada.

En su caso, [Michał] quería construir una regleta de enchufes que cortara la energía de cualquier dispositivo enchufado una vez que su computadora entrara en suspensión. Desafortunadamente, no pudo simplemente verificar si había 5 V en la línea ya que su placa base mantuvo los puertos USB encendidos todo el tiempo. Pero con algunas modificaciones en el firmware de la placa de relés, pensó que debería poder detectar si había alguna actividad USB observando el paquete de inicio de cuadro que sale cada milisegundo cuando el bus está activo.

Ahora [Michał] no afirma ser la primera persona en crear un firmware personalizado para una de estas placas, de hecho, atribuye un proyecto de firmware de código abierto existente como inspiración para su trabajo. Pero creó un firmware GPLv3 completamente nuevo para estos dispositivos alimentados por ATtiny45, que incluye, entre otras mejoras, la última versión de V-USB. Da la casualidad de que V-USB incluye detección de paquetes de inicio de cuadro lista para usar, lo que facilitó mucho la implementación de su código de detección de actividad.

Con el nuevo firmware instalado en el chip de la placa de relés, [Michał] lo colocó en un recinto y conectó los enchufes. Pero todavía faltaba una pieza del rompecabezas. Parece que Linux en realidad no enviará los paquetes de inicio de cuadro a menos que se esté comunicando activamente con un dispositivo USB, como parte de la llamada función de ahorro de energía de "suspensión selectiva". Afortunadamente, hay soporte para deshabilitar esta función para dispositivos específicos en función de su par de ID de proveedor/producto, por lo que después de un poco de manipulación de udev, todo funcionó como se esperaba.

Nos encantan los proyectos de firmware personalizados aquí en Hackaday. No solo mantienen el software propietario fuera de nuestros dispositivos, sino que a menudo desbloquean capacidades nuevas y ampliadas que, de lo contrario, estarían ocultas detrás de muros de pago artificiales.