Об этом проекте
JarvisNano — это прошивка, которая превращает Waveshare ESP32-S3-Touch-AMOLED-1.75C в небольшого всегда доступного настольного ассистента. В автономном режиме ESP32-S3 передаёт поток с микрофонов в Gemini Live, воспроизводит ответы через тракт динамика ES8311 на нативных 24 кГц и управляет круглым AMOLED-экраном 466x466 через единый композитор; телефон или хаб не требуются. Явно сопряжённый телефон ZeroChat вместо этого может запросить отображаемый шестизначный код сопряжения, удерживать приватную аренду оператора Wi-Fi, принимать микрофонный PCM 16 кГц, выполнять собственную логику и возвращать речевой PCM 24 кГц на динамик устройства. 1.75C является продуктом и единственной поддерживаемой целью сборки; исходные ветки Waveshare 1.75 и Seeed XIAO сохранены как аппаратные ориентиры.
Взаимодействие построено вокруг голоса: скажите «Jarvis» или нажмите PWR, затем говорите; ответ можно прервать, заговорив поверх него. Проведение по центру перемещает по кольцу экранов JARVIS, WATCH, WEATHER, STATUS, ACTIVITY и DESK, пока компаньон активен; каждый показывает живые показания, а не страницу настроек. Нажатие на открытую карточку заставляет Jarvis озвучить содержимое экрана. STATUS сообщает уровень заряда, состояние зарядки, уровень Wi-Fi в dBm, индикаторы сессии и инструментов, адрес, температуру чипа, режим CPU, режим радио и время работы. Конфиденциальность обеспечивается физически: удержание стекла, переворот устройства экраном вниз или нажатие центрального элемента управления отключает микрофон, на что указывают золотое кольцо и закрытая золотая щель. Бездействуя на батарее, устройство отдыхает, затемняет экран и переходит в глубокий сон, просыпаясь при подъёме или касании.
Аппаратная конфигурация включает двухъядерный SoC ESP32-S3R8 на 240 МГц, QSPI AMOLED CO5300, сенсор CST9217, аудиотракт ES7210 и ES8311, IMU QMI8658 с Wake-on-Motion, PMIC AXP2101, 8 МБ восьмиканальной PSRAM и 32 МБ флеш-памяти с двумя 4 МБ слотами OTA. Ревизия C не имеет TCA9554, RTC и слота microSD; время поддерживается через SNTP.
Возможности Live включают прямой дуплексный сеанс Gemini Live с словом пробуждения WakeNet, серверными VAD и AEC; адаптивный джиттер-буфер за динамиком; три сторожевых таймера сессии: keepalive, no-reply и unanswered-utterance; голосовые инструменты веб-поиска и новостей, погоды, Wikipedia, цен, обменных курсов, часовых поясов, перевода, научных статей и уровней устройства, доступные только через применяемый на устройстве список разрешений только для чтения; необязательный режим компаньона ZeroChat; ступенчатый переход в покой с глубоким сном; физический приоритет, который синтетический ввод не может переопределить; и двухслотовую OTA с предполётной проверкой, испытательным периодом и откатом. Тестируемая на хосте отрисовка охватывает 556 проверок кольца, карточек и HUD.
Репозиторий организован вокруг main/ как корня композиции и органа маршрутов HTTP, с компонентами jr_core, чистыми состояниями сессии и ступеней покоя, jr_transport, фреймингом Gemini и WebSocket, jr_audio, jr_display, jr_tools, jr_imu, jr_power и jr_net, а также определением платы, скриптами сборки, прошивки, OTA и QA и обширной документацией. Сборки выполняются в Docker с закреплённым образом espressif/idf:v5.5.4 через scripts/build-v5.sh и scripts/flash-v5.sh; работающее устройство обновляется по Wi-Fi командой scripts/jarvisctl.py ota, а не через USB-JTAG.
Замечания по безопасности сформулированы явно: секреты хранятся в NVS устройства или в связке ключей хоста, но NVS сегодня не зашифрован, поэтому физический доступ к флеш-памяти раскрывает учётные данные Wi-Fi, Gemini и JarvisMCP. Инструменты обращаются к JarvisMCP через устаревший маршрут /act с bearer-токеном, обладающим полными полномочиями шлюза, поэтому устройство применяет список разрешений только для чтения; типизированный маршрут /device/v1/invoke с серверной политикой возможностей предусмотрен, но не развёрнут. Перед релизом JR_DEV_OPEN_DIAGNOSTICS должен быть равен 0; подписанные образы, аутентифицированная зашифрованная загрузка и шифрование NVS/флеш-памяти остаются релизными барьерами. Проект распространяется под лицензией Apache-2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.