הרקע
המערכת של PlasFit בנויה מיחידת Master מבוססת ESP32, שמתחברת לשרת דרך Wi-Fi, ומעשרות יחידות Slave מבוססות STM32 שמתקשרות איתה ב-LoRa. כ-150 יחידות כבר פרוסות בשטח. כל שינוי בקושחה דרש עד עכשיו ביקור פיזי בכל יחידה.
האתגר
- ערוץ איטי ומוגבל: LoRa ב-917MHz, עם מגבלת שידור של 1% מהזמן לפי התקנות בישראל.
- חומרה קבועה: אסור לשנות אף פין, כי כרטיסים חדשים חייבים להריץ את אותה קושחה כמו הכרטיסים שכבר בשטח.
- זיכרון קטן: 128KB פלאש, בלי זיכרון חיצוני.
- אסור להשבית יחידה: עדכון שנכשל באמצע לא יכול להשאיר מכשיר מת בשטח.
מה תכננו
- מפת זיכרון: בוטלודר קטן, אזור לקושחה הפעילה ואזור נפרד לקושחה החדשה. הבוטלודר מעתיק את הגרסה החדשה רק אחרי בדיקת CRC32 מלאה.
- שידור לכולם בבת אחת: ה-Master משדר את הקושחה לכל היחידות במקביל, וכל יחידה מדווחת אילו חלקים חסרים לה. אחר כך משדרים רק את החלקים החסרים.
- עמידה במגבלת השידור: קצב שידור שנבנה מראש כך שיישאר מתחת ל-1%.
- פריסה הדרגתית: יחידה אחת למחזור עבודה מלא, אחר כך קבוצה של 5, ורק אז כל השאר.
התוצאה
תכנון מלא ומתועד שמאפשר לעדכן את כל הצי מרחוק, בלי שינוי חומרה ובלי ביקורים בשטח.