Se ha lanzado una nueva versión del firmware abierto ESP-KVM 0.83.0, que convierte la placa del microcontrolador ESP32-P4 en un IP-KVM con acceso a la pantalla, teclado y ratón de un ordenador remoto a través del navegador. El dispositivo se conecta antes del HDMI de la máquina objetivo y se presenta como un teclado y ratón USB, mientras que la imagen y el control se transmiten al navegador. No es necesario instalar nada en la máquina objetivo, funciona desde el nivel BIOS. El código está escrito en C y se distribuye bajo la licencia Apache 2.0.
La nueva versión incluye el firmware para el dispositivo JetKVM Mini con un diseño listo, KVM, con dimensiones de 42x42x23 mm. El JetKVM Mini está equipado con una placa ESP32-P4X, 32 MB de PSRAM, un puente HDMI TC358743, Ethernet de 100 megabits, una ranura microSD y una pantalla cuadrada de 240×240 en ST7789. Después de la reprogramación, todas las funciones comprobadas, como la transmisión a 1080p50, Ethernet, actualizaciones de red, teclado, ratón, pantalla, botones laterales y microSD, funcionan correctamente.
El firmware por defecto del JetKVM solo acepta actualizaciones firmadas y, para reprogramar, se debe activar el modo 'USB Debugging' en su configuración; de lo contrario, el puerto de programación se desactiva después de unos segundos tras el inicio, y se debe conectar el JetKVM Mini a la computadora mediante el conector EXT. Antes de grabar, se recomienda hacer una copia de seguridad del Flash; en la página del programador hay un botón para esto, que lee los 16 MB directamente desde el navegador a través de esptool-js. Se puede restaurar el firmware de fábrica desde la copia creada o desde una imagen de recuperación que JetKVM publica para cada modelo. Posteriormente, las actualizaciones se descargan por red, y la versión anterior se mantiene en la segunda mitad del Flash por si se necesita un retroceso.
Lamentablemente, el JetKVM Mini no tiene salida de audio a través de HDMI (el TC358743 puede emitir audio por I2S en tres salidas, pero en esta placa no están conectadas a ningún lado). Para sortear esta limitación, el firmware presenta el dispositivo a la máquina objetivo como un altavoz USB. Al encenderlo, la máquina objetivo ve el dispositivo 'ESP-KVM Speaker' — se trata de UAC2, 48 kHz, 16 bits, estéreo, con un solo endpoint isócrono OUT. La frecuencia está vinculada a los cuadros SOF, por lo que no es necesario un endpoint de retroalimentación. La interrupción cuenta los bytes recibidos y cada 5 ms activa una tarea que corta el flujo en los mismos bloques que llegan de I2S.

En la versión ESP-KVM 0.83.0 también se ofrece la opción de elegir qué páginas muestra la pantalla en el dispositivo (si se quitan todas, queda el logotipo). Se ha añadido la posibilidad de desactivar la pantalla después de un tiempo determinado. El programa para la máquina objetivo espkvm-agent ha sido renombrado como ESP-KVM Tools, para no confundirlo con los agentes de IA. Entre los cambios en las versiones posteriores a 0.65:
- 0.66: La imagen H.264 se envía al navegador a través de WebRTC (UDP, DTLS-SRTP) si es posible, y a través de WebSocket si no. La implementación es propia, sin servidores STUN y TURN, también funciona a través de Tailscale. Si se pierde un paquete, se pierde un cuadro, pero el flujo no se detiene.
- 0.67-0.68: Sonido por HDMI en placas con TC358743: tres cables I2S del puente a los pines P4. Suena en la consola y se graba en Opus. Se han añadido teclas multimedia, el zoom con dos dedos en el teléfono, un stick virtual para el puntero y el gamepad del ordenador desempeñando el papel de ratón.
- 0.69-0.70: PSRAM en chips de revisión 3.x funciona a 250 MHz, y H.264 en 1080p ha aumentado de 22 a 27 cuadros por segundo. Por defecto, el dispositivo solicita al origen 1080p50 en lugar de 1080p30. El codificador comienza un cuadro mientras este aún llega, y los movimientos del ratón se envían a través del canal de datos WebRTC sin reenvíos.
- 0.71-0.73: Perfiles para diferentes máquinas objetivo. El dispositivo selecciona automáticamente el perfil según cómo se identifica el origen a través de HDMI-CEC o USB, de modo que Switch y Steam Deck en la base obtienen su configuración. Se pueden dibujar hasta ocho rectángulos en la imagen, y el dispositivo los monitoriza por sí mismo: si cambian, se congelan, o aparece texto.
- 0.74: Puerto serie a través del mismo cable USB, sin cables adicionales. A través de este funciona el programa para la máquina objetivo: nombre y direcciones de la máquina, portapapeles compartido y apagado limpio.
- 0.75: Actualización de prueba para dispositivos a los que es difícil acceder. Después de la actualización, la consola debe volver a contactarlo y confirmar la versión. Si nadie lo hace en 10 minutos, el dispositivo regresa automáticamente a la versión anterior.
- 0.76-0.77: Entrada solo para visualización y teclas de acceso rápido en la consola. Tailscale sin clave de autorización: el dispositivo muestra un enlace que se confirma en la página de Tailscale. Lista de nodos tailnet con rutas (directamente o a través de un retransmisor) y el modo en que la consola responde solo a las direcciones tailnet.
- 0.78-0.79: Ajustes y paleta de comandos revisados a través de Ctrl+K: se encuentra el panel necesario, combinación de teclas, macro o script en base a varias letras.
- 0.80: Controlador de pantalla ST7789 y hasta cuatro botones en el dispositivo, cada uno con sus propias acciones.
- 0.81-0.82: Las grabaciones y capturas de pantalla se exportan al directorio WebDAV, por ejemplo, a Nextcloud o en NAS. La tabla en la configuración determina qué evento va a qué canal de notificaciones. Un nuevo canal es ntfy, y el dispositivo informa sobre el lanzamiento de una nueva versión. Ahora se pueden configurar tres redes Wi-Fi (se elige la que tenga el mejor nivel de señal).
Fuente: opennet.ru
