عن المشروع

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 أثناء وجود رفيق متصل)، ويعرض كل منها قراءة حية بدلاً من صفحة إعدادات. يضغط النقر على ورقة مفتوحة لجارڤيس ليقول ما تعرضه الشاشة. يبلغ STATUS عن البطارية والشاحن وعصي Wi-Fi بالديسيبل ومقطع الأدوات والمصابيح والعنوان ودرجة حرارة الشريحة وتردد CPU ووضع الراديو ومدة التشغيل. الخصوصية مادية: الضغط على الزجاج، أو قلب الجهاز، أو الضغط على زر التحكم المركزي يقطع الميكروفون، ويُشير إلى ذلك حلقة ذهبية وشق ذهبي مغلق. عند تركه على البطارية، يرتاح الجهاز ويخفت ضوءه ويدخل في سكون عميق، ويستيقظ عند الرفع أو اللمس. يشمل العتاد شريحة ESP32-S3R8 ثنائية النواة بتردد 240 ميجاهرتز، وشاشة CO5300 QSPI AMOLED، ولمسة CST9217، وصوت ES7210 مع ES8311، ومقاييس تسارع IMU من نوع QMI8658 مع تنبيه بالحركة، ومنظم طاقة AXP2101، وذاكرة PSRAM ثمانية القنوات بسعة 8 ميجابايت، وذاكرة فلاش بسعة 32 ميجابايت مع شريحتي OTA بحجم 4 ميجابايت لكل منهما. لا تحتوي النسخة C على TCA9554 أو RTC أو فتحة microSD؛ والوقت يعتمد على SNTP. تشمل القدرات الحية جلسة Gemini Live مزدوجة الاتجاه مع كلمة استيقاظ WakeNet، وكشف صوتي VAD ومعالجة صدى AEC على الخادم؛ ومؤقت ارتعاش تكيفي خلف مكبر الصوت؛ وثلاثة مراقبي جلسات (keepalive، لا رد، نطق غير مجاب)؛ وأدوات صوتية للبحث في الويب والأخبار والطقس وويكيبيديا والأسعار وأسعار الصرف والمنطقة الزمنية والترجمة وأوراق البحث ومستويات الجهاز، خلف قائمة سماح مقروءة فقط مفروضة على الجهاز؛ ووضع رفيق 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/التدقيق، وتوثيق موسع. تستخدم البناءات 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 قديم بحامل يحمل سلطة بوابة كاملة، لذا يفرض الجهاز قائمة سماح مقروءة فقط؛ ومسار /device/v1/invoke منوّع مع سياسة قدرات جانب الخادم مقصود لكنه غير مهيّأ. يجب أن يكون JR_DEV_OPEN_DIAGNOSTICS مساوياً للصفر قبل النشر، وتظل الصور الموقعة والرفع المشفر المصادق عليه وتشفير NVS/الفلاش كعوائق نشر. المشروع مرخص بـ Apache-2.0.