يتحدث الفيديو عن التحديات البرمجية التي واجهته أثناء بناء شواية ذكية باستخدام الأردوينو. بدأ بفصل برمجة كل جزء على حدة، حيث قام ببرمجة محرك السيرفو، والشاشة، ومستشعر الحرارة بشكل منفصل، وكانت الأمور تسير على ما يرام.
المشكلة بدأت عندما حاول دمج هذه الأجزاء معًا. أبرز المقدم تحديين رئيسيين:
استنزاف البنات وتداخل البروتوكولات: كل البنات الرقمية المتاحة على لوحة الأردوينو كانت مستخدمة تقريبًا. بالإضافة إلى ذلك، كانت الأجهزة المختلفة تستخدم بروتوكولات اتصال مختلفة (I2C للشاشة، SPI لمستشعر الحرارة، وبروتوكولات مخصصة للمحرك والأزرار). التحدي كان في أن كل جزء يستخدم مكتبة برمجية خاصة به، وقد يحدث تداخل بين هذه المكتبات، خاصة أن الأردوينو يختلف عن أنظمة التشغيل التقليدية في عدم وجود نظام تشغيل خلفي يقوم بمراقبة المشاكل. كان يتعين على المبرمج اكتشاف هذه التداخلات بنفسه، بما في ذلك احتمال استخدام مكتبات مختلفة لنفس البن دون علم المستخدم.
نقص الذاكرة والمشكلات الغامضة: واجه مشكلة غامضة تتعلق بعرض بيانات غريبة على الشاشة. بعد البحث، اكتشف أن المشكلة تكمن في محدودية ذاكرة الأردوينو (2 كيلوبايت). كانت مكتبة الشاشة من شركة Adafruit، والتي تتضمن عرض شعار الشركة عند التشغيل، تستهلك جزءًا كبيرًا من هذه الذاكرة المحدودة. عندما تم دمج جميع المكونات، تجاوز إجمالي استهلاك الذاكرة المتاح، مما أدى إلى ظهور المشكلة. الحل كان بالدخول إلى مكتبة الشاشة وإزالة كود عرض الشعار، بالإضافة إلى تحسين (optimization) باقي الكود، مما أدى في النهاية إلى عمل النظام بشكل سليم.