Freertos

  • Published on
    Concurrency pada ESP32 bukan fitur tambahan, tetapi kondisi default karena Arduino core berjalan di atas FreeRTOS. Banyak engineer memahami task dan interrupt secara terpisah, namun belum memiliki mental model utuh tentang scheduler, preemption, race condition, dan shared state. Artikel ini membangun pemahaman dari dasar - apa itu task, bagaimana scheduler bekerja, bagaimana ISR memengaruhi task aktif, serta bagaimana queue dan mutex berperan dalam menjaga integritas data. Fokusnya bukan pada API detail, tetapi pada model eksekusi yang memengaruhi desain firmware sensor–relay yang deterministik dan stabil.
  • Published on
    Artikel ini mengunci batas concurrency dalam firmware ESP32 berbasis Arduino yang berjalan di atas FreeRTOS internal. Setelah layering dan memory discipline dikendalikan, risiko berikutnya adalah eksekusi paralel tanpa boundary yang jelas. ISR, WiFi stack, MQTT callback, dan control loop berjalan dalam konteks berbeda yang dapat memicu race condition dan jitter. Artikel ini menetapkan aturan - task-per-domain, ISR hanya sebagai notifier, komunikasi antar task menggunakan queue fixed-size, serta larangan blocking di ControlTask. Dengan batas eksekusi eksplisit dan alur satu arah, firmware tetap deterministik meskipun berjalan pada sistem multitasking.