Arduino-firmware

  • Published on
    Artikel ini membedah kenapa firmware ESP32 berbasis Arduino yang awalnya sederhana sering berubah menjadi spaghetti setelah 6 bulan deployment. Masalah bukan pada bahasa C atau library, melainkan pada pertumbuhan fitur tanpa boundary arsitektur. Global mutable tanpa owner, callback komunikasi yang langsung mengontrol hardware, ISR yang memanggil logic berat, serta reconnect logic tersebar menjadi sumber coupling tak terlihat. Dampaknya bukan hanya kompleksitas kode, tetapi juga fragmentasi heap, jitter control, relay chatter, hingga kegagalan OTA. Artikel ini mengunci diagnosis bahwa firmware adalah sistem multi-domain internal yang membutuhkan struktur sadar sebelum kompleksitas meningkat secara eksponensial.
  • Published on
    Artikel ini mengunci fondasi pengendalian dependency dalam firmware ESP32 berbasis Arduino. Masalah utama spaghetti firmware bukan pada bahasa, melainkan global mutable state tanpa owner dan dependency implicit lintas domain. OOP digunakan bukan untuk gaya, tetapi untuk mengenkapsulasi state, menetapkan ownership yang jelas, dan memaksa dependency eksplisit melalui constructor injection. Setiap peripheral dan domain logic harus dibungkus dalam class dengan state private. Singleton dan inheritance berlebihan dilarang; composition menjadi pendekatan default. Dengan struktur ini, dependency menjadi terarah, blast radius perubahan mengecil, dan race condition lebih mudah dianalisis sebelum sistem berkembang semakin kompleks.