Une nouvelle version du firmware open source ESP-KVM 0.83.0 a été publiée, transformant la carte basée sur le microcontrôleur ESP32-P4 en IP-KVM avec accès à l'écran, au clavier et à la souris d'un ordinateur distant via un navigateur. L'appareil se connecte devant le port HDMI de la machine cible et se fait passer pour un clavier et une souris USB, tout en transmettant l'image et le contrôle dans le navigateur. Il n'est pas nécessaire d'installer quoi que ce soit sur la machine cible; cela fonctionne dès le niveau BIOS. Le code est écrit en C et est distribué sous la licence Apache 2.0.
La nouvelle version inclut le firmware pour l'appareil JetKVM Mini avec un design prêt à l'emploi, KVM, mesurant 42x42x23 mm. Le JetKVM Mini est équipé d'une carte ESP32-P4X, de 32 Mo de PSRAM, d'un pont HDMI TC358743, d'Ethernet 100 Mbps, d'un slot microSD et d'un écran carré de 240×240 sur ST7789. Après reflashage, toutes les fonctionnalités vérifiées fonctionnent, telles que la diffusion dans une qualité de 1080p50, Ethernet, mises à jour via le réseau, clavier, souris, écran, boutons sur le côté, microSD.
Le firmware par défaut du JetKVM accepte uniquement les mises à jour signées et pour le reflashage, il faut activer le mode « USB Debugging » dans ses paramètres, sinon le port de flashage se déconnecte quelques secondes après le démarrage, et connecter le JetKVM Mini à un ordinateur via le port EXT. Avant d'écrire, il est conseillé de faire une sauvegarde de la Flash – il y a un bouton sur la page du programme de flashage qui lit les 16 Mo directement depuis le navigateur via esptool-js. On peut revenir à la version d'origine à partir de la copie créée ou d'une image de récupération, que JetKVM publie pour chaque modèle. Ensuite, les mises à jour sont chargées via le réseau, et l'ancienne version reste dans la seconde moitié de la Flash en cas de retour en arrière.
Malheureusement, le JetKVM Mini ne peut pas gérer le son via HDMI (le TC358743 peut sortir du son via I2S sur trois sorties, mais sur cette carte, elles ne sont connectées nulle part). Pour contourner cette limitation, le firmware présente l'appareil à la machine cible comme un haut-parleur USB. Après activation, la machine cible détecte l'appareil « ESP-KVM Speaker » – c'est UAC2, 48 kHz, 16 bits, stéréo, avec un point de terminaison isochrone OUT. La fréquence est synchronisée avec les images SOF, donc un point de terminaison de retour n'est pas nécessaire. L'interruption compte les octets reçus et active toutes les 5 ms une tâche qui découpe le flux dans les mêmes blocs que ceux reçus via I2S.

La version ESP-KVM 0.83.0 offre également la possibilité de choisir quelles pages l'écran affiche sur l'appareil (si toutes sont supprimées, il reste seulement le logo). Une option pour désactiver l'écran après un certain temps a été ajoutée. Le programme pour la machine cible espkvm-agent a été renommé en ESP-KVM Tools, afin de ne pas le confondre avec les agents AI. Parmi les changements dans les versions après 0.65 :
- 0.66 : L'image H.264 est envoyée au navigateur via WebRTC (UDP, DTLS-SRTP), si possible, et par WebSocket, sinon. La mise en œuvre est spécifique, sans serveurs STUN et TURN, ça fonctionne aussi via Tailscale. Si un paquet est perdu, un cadre disparaît, le flux ne s'arrête pas.
- 0.67-0.68 : Le son HDMI sur les cartes avec TC358743 : trois fils I2S du pont aux broches P4. Il s'entend sur la console et est enregistré en Opus. Des touches multimédia ont été ajoutées, le zoom par deux doigts sur le téléphone, un stick virtuel pour le pointeur et une manette d'ordinateur comme souris.
- 0.69-0.70 : La PSRAM sur les puces révision 3.x fonctionne à 250 MHz, et H.264 en 1080p est passé de 22 à 27 images par seconde. Par défaut, l'appareil demande 1080p50 au lieu de 1080p30. L'encodeur commence le cadre pendant qu'il arrive encore, et les mouvements de la souris passent par le canal de données WebRTC sans renvois.
- 0.71-0.73 : Profils pour différentes machines cibles. L'appareil sélectionne lui-même le profil en fonction de la manière dont la source s'appelle par HDMI-CEC ou USB, donc le Switch et le Steam Deck en dock obtiennent leurs paramètres. Il est possible de dessiner jusqu'à huit rectangles sur l'image, et l'appareil les suivra lui-même : a changé, a gelé, un texte est apparu.
- 0.74 : Port série via le même câble USB, sans fil. Il permet le fonctionnement d'un programme pour la machine cible : nom et adresses de la machine, presse-papiers partagé et extinction propre.
- 0.75 : Mise à jour d'essai pour les appareils éloignés. Après la mise à jour, la console doit de nouveau établir une connexion et confirmer la version. Si cela n'est pas fait dans les 10 minutes, l'appareil revient à la version précédente.
- 0.76-0.77 : Accès en lecture seule et raccourcis dans la console. Tailscale sans clé d'autorisation : l'appareil affiche un lien, qui doit être confirmé sur la page Tailscale. Liste des nœuds tailnet avec des chemins (directement ou via un relais) et un mode où la console ne répond qu'aux adresses tailnet.
- 0.78-0.79 : Paramètres retravaillés et palette de commandes via Ctrl+K : plusieurs lettres permettent de trouver le bon panneau, combinaison de touches, macro ou script.
- 0.80 : Pilote d'écran ST7789 et jusqu'à quatre boutons sur l'appareil, chacun ayant ses propres actions.
- 0.81-0.82 : Les enregistrements et captures d'écran sont téléchargés dans le répertoire WebDAV, par exemple dans Nextcloud ou sur NAS. Le tableau dans les paramètres détermine quel événement va à quel canal de notification. Un nouveau canal a été ajouté : ntfy, et l'appareil signale la sortie d'une nouvelle version. Il est maintenant possible de définir trois réseaux Wi-Fi (celui avec le meilleur niveau de signal est sélectionné).
Source : opennet.ru
