À propos du projet
JarvisNano est un firmware qui transforme la Waveshare ESP32-S3-Touch-AMOLED-1.75C en assistant de bureau compact et toujours disponible. En mode autonome, l'ESP32-S3 diffuse les microphones vers Gemini Live, joue les réponses via le chemin audio ES8311 à 24 kHz natif et pilote un écran AMOLED rond 466x466 avec un seul compositeur ; aucun téléphone ni concentrateur n'est requis. Un téléphone ZeroChat explicitement apparié peut à la place revendiquer un code d'appairage à six chiffres affiché, détenir un bail Wi-Fi privé, recevoir le PCM du microphone à 16 kHz, exécuter son propre cerveau et renvoyer le PCM vocal à 24 kHz au haut-parleur de l'appareil. Le modèle 1.75C est le produit et la seule cible de build prise en charge ; les pistes originales Waveshare 1.75 et Seeed XIAO sont conservées comme références matérielles.
L'interaction est vocale en premier : dites « Jarvis » ou appuyez sur PWR, puis parlez, et une réponse peut être interrompue en parlant par-dessus. Un balayage central parcourt un anneau d'écrans (JARVIS, WATCH, WEATHER, STATUS, ACTIVITY, plus DESK lorsqu'un compagnon est actif), chacun affichant une lecture en direct plutôt qu'une page de paramètres. Toucher une feuille ouverte fait parler Jarvis de ce que l'écran montre. STATUS rapporte la batterie, le chargeur, les barres Wi-Fi avec dBm, les lampes de session et d'outils, l'adresse, la température de la puce, le rapport CPU, le mode radio et la durée de fonctionnement. La confidentialité est physique : tenir le verre, retourner l'appareil face vers le bas ou appuyer sur le contrôle central coupe le micro, indiqué par un anneau doré et une fente dorée fermée. Laissé seul sur batterie, l'appareil se repose, s'assombrit et passe en veille profonde, se réveillant au soulèvement ou au toucher.
Le matériel comprend un SoC ESP32-S3R8 double cœur 240 MHz, un AMOLED QSPI CO5300, un tactile CST9217, un audio ES7210 plus ES8311, un IMU QMI8658 avec Wake-on-Motion, un PMIC AXP2101, 8 Mo de PSRAM octal et 32 Mo de flash avec deux emplacements OTA de 4 Mo. La révision C n'a pas de TCA9554, de RTC ni d'emplacement microSD ; le temps est soutenu par SNTP.
Les capacités en direct incluent une session duplex directe Gemini Live avec mot de réveil WakeNet, VAD et AEC serveur ; un tampon de gigue adaptatif derrière le haut-parleur ; trois chiens de garde de session (keepalive, sans réponse, énoncé sans réponse) ; des outils vocaux pour la recherche web et les actualités, la météo, Wikipédia, les prix, les taux de change, les fuseaux horaires, la traduction, les articles de recherche et les niveaux d'appareil, derrière une liste blanche en lecture seule appliquée sur l'appareil ; un mode compagnon ZeroChat optionnel ; une échelle de repos se terminant en veille profonde ; une autorité physique que l'entrée synthétique ne peut pas remplacer ; et un OTA à double emplacement avec pré-vérification, probation et retour arrière. Le rendu testé sur hôte couvre 556 vérifications sur l'anneau, les feuilles et le HUD.
Le dépôt est organisé autour de main/ comme racine de composition et autorité de route HTTP, avec components/jr_core (état pur de session et d'échelle de repos), jr_transport (cadrage Gemini et WebSocket), jr_audio, jr_display, jr_tools, jr_imu, jr_power et jr_net, plus une définition de carte, des scripts pour build/flash/OTA/QA et une documentation extensive. Les builds utilisent Docker épinglé à espressif/idf:v5.5.4 via scripts/build-v5.sh et scripts/flash-v5.sh ; un appareil en cours d'exécution est mis à jour via Wi-Fi avec scripts/jarvisctl.py ota plutôt que USB-JTAG.
Les notes de sécurité sont explicites : les secrets vivent dans le NVS de l'appareil ou le trousseau hôte, mais le NVS n'est pas chiffré aujourd'hui, donc un accès physique au flash expose les identifiants Wi-Fi, Gemini et JarvisMCP. Les outils atteignent JarvisMCP via une route /act héritée avec un porteur portant une autorité complète de passerelle, donc l'appareil applique une liste blanche en lecture seule ; une route typée /device/v1/invoke avec politique de capacité côté serveur est prévue mais non provisionnée. JR_DEV_OPEN_DIAGNOSTICS doit être 0 avant la sortie, et les images signées, le téléchargement authentifié chiffré et le chiffrement NVS/flash restent des jalons de sortie. Le projet est sous licence Apache-2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.