All Posts

  • Published on
    Memory pada ESP32 bukan sekadar “heap vs stack”. Setiap task FreeRTOS memiliki stack sendiri, sementara heap bersifat global dan digunakan oleh WiFi, TLS, dan library internal. Banyak kegagalan firmware produksi bukan karena logika salah, tetapi karena fragmentasi heap, stack overflow, atau lifetime object yang tidak selaras dengan lifecycle sistem. Artikel ini membedah struktur memori ESP32, perbedaan stack task dan heap global, risiko hidden allocation pada C++, serta konsekuensi destructor dan dynamic allocation terhadap stabilitas jangka panjang firmware sensor–relay.
  • Published on
    OOP pada embedded bukan tentang membuat kode “modern”, tetapi tentang mengontrol ownership, lifetime, dan dependency secara eksplisit. Banyak engineer yang memahami class, constructor, dan inheritance, namun belum memetakan konsep tersebut ke realitas firmware - stack terbatas, heap global, ISR preemption, dan sistem yang tidak pernah exit. Artikel ini membahas OOP dari perspektif embedded - encapsulation sebagai boundary hardware, constructor sebagai lifecycle binding, composition sebagai struktur aman, serta risiko inheritance, virtual table, dan hidden allocation. Tujuannya membentuk pola pikir struktural sebelum masuk ke disiplin dependency freeze pada tahap produksi.
  • Published on
    Layering dalam firmware embedded bukan sekadar pemisahan file, tetapi cara mengendalikan dependency dan kompleksitas sistem. Tanpa struktur yang jelas, callback komunikasi, ISR, dan logic kontrol dapat saling terhubung secara liar sehingga firmware sulit dipelihara. Artikel ini membangun model 3-layer yang digunakan dalam seluruh seri - Application, Service, dan Driver, dengan dukungan modul System. Kita membahas arah dependency, alasan pemisahan domain, serta bagaimana struktur ini diterapkan dalam project flat-folder Arduino ESP32. Tujuannya adalah membentuk mental model arsitektur sebelum masuk ke disiplin freeze pada tahap produksi.
  • Published on
    Komunikasi (WiFi, MQTT, OTA) sering menjadi sumber coupling dan ketidakstabilan pada firmware ESP32. Callback yang langsung mengubah relay, reconnect logic yang tersebar, serta state implisit yang tidak terdokumentasi membuat sistem sulit diprediksi. Artikel ini membahas komunikasi sebagai domain terpisah yang memiliki state machine eksplisit. Kita membangun mental model event-driven, memisahkan transport dari business logic, dan memahami bagaimana reconnect serta network latency dapat memengaruhi kontrol sensor–relay. Tujuannya adalah membentuk pola pikir stateful sebelum masuk ke disiplin komunikasi yang lebih ketat pada tahap produksi.
  • Published on
    Firmware yang berjalan dengan benar di meja uji belum tentu andal di lapangan. Reliability bukan hanya tentang tidak crash, tetapi tentang bagaimana sistem merespons error, bagaimana state dipertahankan saat gangguan terjadi, serta bagaimana kegagalan dapat diamati dan dianalisis. Artikel ini menyatukan seluruh mental model Foundation—execution, memory, OOP, layering, dan communication—ke dalam perspektif reliability sistem. Kita membahas fail-safe thinking, observability, error visibility, serta batas antara pemahaman konseptual dan disiplin produksi. Artikel ini menjadi transisi resmi menuju seri Production yang mengunci aturan dan boundary secara eksplisit.