Arduino-core

  • Published on
    Banyak engineer menggunakan ESP32 dengan Arduino core seolah-olah sistem berjalan secara single-thread melalui `setup()` dan `loop()`. Kenyataannya, ESP32 berjalan di atas FreeRTOS dengan beberapa task internal seperti WiFi, TCP/IP stack, dan idle task. Tanpa memahami execution model ini, firmware mudah menjadi blocking, race-prone, dan tidak deterministik. Artikel ini membongkar bagaimana `loop()` sebenarnya adalah task FreeRTOS, bagaimana ISR mem-preempt eksekusi, dan bagaimana aktivitas jaringan memengaruhi kontrol hardware. Tujuannya membentuk mental model eksekusi sistem sebelum masuk ke disiplin arsitektur produksi.
  • Published on
    README memposisikan seri C++ for Production Firmware on ESP32 sebagai panduan arsitektur firmware produksi, bukan kursus sintaks atau teori OOP umum. Dokumen ini menjelaskan filosofi inti (determinism, memory discipline, boundary control), struktur waterfall 8 artikel, serta model arsitektur yang dikunci - no global mutable, static-first allocation, 3-layer DAG, CommManager sebagai gateway komunikasi, dan fail-safe reliability model. README juga menegaskan constraint Arduino (flat structure, IndustrialNode.ino sebagai entry point) serta success criteria produksi jangka panjang. Tujuannya adalah menyatukan visi tim dan memastikan disiplin arsitektur sebelum firmware berkembang menjadi kompleks.