Azuch's Blog
  • About
Navigation bar avatar
  • From Demo to Production Firmware – Step 9.1: How to train your OTA

    Posted on January 6, 2026

    Step 9.1 is just add more info to MCUBoot and OTA. MCUboot và Zephyr: Bí kíp luyện Failsafe OTA Updates cho hệ thống Embedded [Read More]
  • From Demo to Production Firmware – Step 11: Future Features and Optional (Or not to) Evolutions

    Posted on December 30, 2025

    Step 11 is not about adding more code. It is about learning when not to add code — and how to evolve safely when you must. [Read More]
  • From Demo to Production Firmware – Step 10: Watchdog and Last-Resort Recovery

    Posted on December 29, 2025

    Step 10 is about humility. Assume everything above can fail. [Read More]
  • From Demo to Production Firmware – Step 9: OTA Is Controlled Self-Modification

    Posted on December 28, 2025

    OTA is not a feature. It is the most dangerous thing your firmware can do. Step 9 – OTA Updates with MCUboot (Controlled Self-Modification) [Read More]
  • From Demo to Production Firmware – Step 8: Buffering, Batching, and Data Integrity

    Posted on December 27, 2025

    Step 8 is about admitting the network will fail. Data must survive longer than connectivity. [Read More]
  • From Demo to Production Firmware – Step 7: Power Is a First-Class Constraint

    Posted on December 26, 2025

    Step 7 – Power Management (Make WAIT Meaningful) [Read More]
  • From Demo to Production Firmware – Step 6: Retry and Backoff as Policy

    Posted on December 25, 2025

    Step 6 answers a deceptively simple question: When things fail repeatedly, how should a device behave over time? [Read More]
  • From Demo to Production Firmware – Step 5: Logging That Explains Behavior

    Posted on December 24, 2025

    Step 5 does not change behavior. It changes whether humans can understand that behavior. [Read More]
  • From Demo to Production Firmware – Step 4: Networking Without Losing Control

    Posted on December 23, 2025

    Step 4 introduces the most dangerous subsystem in embedded firmware: networking. Not because it is complex, but because it pretends to be helpful. [Read More]
  • From Demo to Production Firmware – Step 3: Sensor Integration Without Breaking Architecture

    Posted on December 22, 2025

    Step 3 is the first time real hardware enters the system. This is also the step where many firmware architectures silently collapse. [Read More]
  • From Demo to Production Firmware – Step 2: The State Machine Skeleton

    Posted on December 21, 2025

    Step 2 is where architecture becomes visible. We introduce the simplest possible structure that can survive failure: a single, explicit state machine owned by the application. [Read More]
  • From Demo to Production Firmware – Step 1: Thinking Like a Device, Not a Script

    Posted on December 20, 2025

    Step 1 is about mindset, not code. Before architecture, before APIs, before Zephyr — we must change how we think about software that runs on a device. [Read More]
  • From Demo to Production Firmware – Step 0: Why This Series Exists

    Posted on December 19, 2025

    This is Step 0 of a long-form series about building production-grade firmware with Zephyr. Step 0 exists to align expectations, mindset, and goals before we write a single line of code. [Read More]
  • Từ Zephyr Sample đến Subsystem Thinking

    Posted on December 15, 2025

    Từ Zephyr Sample đến Subsystem Thinking Một hành trình “đỡ xấu hổ” khi viết firmware [Read More]
    Tags:
    • zephyr
    • firmware
    • subsystem
    • mcuboot
    • esp32
  • Biên Niên Sử Tái Cấu Trúc HTTP Client: Từ Blocking đến Bất Đồng Bộ

    Posted on December 15, 2025

    Biên Niên Sử Tái Cấu Trúc HTTP Client: Từ Blocking đến Bất Đồng Bộ [Read More]
  • Biên Niên Sử HTTP Client: Cuộc 'Đại Phẫu' Từ Gã 'Đần' Blocking Sang 'Cao Thủ' Bất Đồng Bộ

    Posted on December 15, 2025

    Tài liệu này ghi lại chi tiết cuộc hội thoại và quá trình hướng dẫn tái cấu trúc một HTTP client đơn giản trong Zephyr RTOS, chuyển đổi từ một kiến trúc blocking tuần tự sang một kiến trúc non-blocking, bất đồng bộ dựa trên máy trạng thái. [Read More]
  • Biên Niên Sử HTTP Client: Cuộc 'Đại Phẫu' Từ Gã 'Đần' Blocking Sang 'Cao Thủ' Bất Đồng Bộ

    Posted on December 12, 2025

    Tài liệu này ghi lại chi tiết cuộc hội thoại và quá trình hướng dẫn tái cấu trúc một HTTP client đơn giản trong Zephyr RTOS, chuyển đổi từ một kiến trúc blocking tuần tự sang một kiến trúc non-blocking, bất đồng bộ dựa trên máy trạng thái. [Read More]
  • Bài 5: Nâng Cấp 'Vũ Khí' - Biến Cổng USB Thành Dao Đa Năng và Giải Mã Ma Thuật 'Endpoint'

    Posted on December 11, 2025

    Ở bài trước, chúng ta đã “múa” thành công những đường GDB cơ bản. Nhưng một cao thủ thực thụ không chỉ biết dùng vũ khí, mà còn phải biết cách “độ” vũ khí của mình. Trong bài cuối cùng của series này, chúng ta sẽ thực hiện một nâng... [Read More]
  • Bài 4: Gươm Báu Đã Sẵn, Giờ Là Lúc 'Múa'! - Thực Hành GDB Với Dự Án Blinky

    Posted on December 10, 2025

    Ở các phần trước, chúng ta đã tốn không ít mồ hôi công sức để rèn nên một thanh “Ỷ Thiên Kiếm” (cài đặt thành công OpenOCD) và học được bộ “Cửu Âm Chân Kinh” (hiểu rõ bản chất JTAG). Giờ là lúc thanh gươm báu được tuốt ra khỏi... [Read More]
  • OpenOCD & Espressif: Mối Tình 'Tay Ba' và Tại Sao Bạn Bị Buộc Phải Chọn 'Con Riêng'

    Posted on December 9, 2025

    Ở bài trước, chúng ta đã tung hô JTAG tích hợp trên ESP32-S3 như một vị thần. Nhưng để nói chuyện được với vị thần đó, chúng ta cần một thông dịch viên. Và tên của người đó là OpenOCD - một người phiên dịch vừa giỏi giang, vừa khó... [Read More]
  • ESP32-S3: USB-JTAG Tích Hợp - Giải Cứu Lập Trình Viên Nhúng Khỏi 'Địa Ngục Printf'!

    Posted on December 8, 2025

    (Dòng giới thiệu ngắn, hài hước) Anh em có bao giờ rơi vào cảnh code chạy sai lè, và vũ khí duy nhất trong tay là chèn một tràng printf("VAO DAY 1"), printf("GIA TRI X = %d"), printf("RA KHOI DAY") vào code không? Chúc mừng, anh em đã sa vào... [Read More]
  • Song Hùng Kỳ Hiệp: Đại Chiến Threading và Cú Tát 'Sấp Mặt' Của Lập Trình Nhúng

    Posted on December 5, 2025

    Chào các chú em, lại là đại ca của các chú đây. Hôm nay, tôi sẽ không giảng lý thuyết suông nữa. Thay vào đó, tôi sẽ kể lại một câu chuyện “bi hài” có thật về hành trình của một chú “lính mới” (tôi sẽ giấu tên để giữ... [Read More]
  • Chào Zephyr, Tạm Biệt Thế Giới!

    Posted on December 4, 2025

    Hello, World? Xưa rồi Diễm! Dân nhúng chúng tôi chào thế giới bằng cách… nháy một cái đèn LED. Và hôm nay, chúng ta sẽ làm điều đó với một “tay to” trong làng RTOS: Zephyr! [Read More]
  • Xe độ vs. Xe đua F1: 3 Bài học 'đắt giá' từ Driver DHT chính thức của Zephyr

    Posted on December 4, 2025

    Xe độ vs. Xe đua F1: 3 Bài học “đắt giá” từ Driver DHT chính thức của Zephyr [Read More]
  • Chuyến Phiêu Lưu vào Lãnh địa Thời gian: Tự Tay Chế Driver DHT11 và (Hy vọng) không làm nổ gì cả

    Posted on December 3, 2025

    Vậy là bạn đã có trong tay một con ESP32, một môi trường Zephyr RTOS mới coóng và một túi cảm biến DHT11 “ngon, bổ, rẻ” mua từ cửa hàng điện tử gần nhà. Bạn đã làm chủ được printk, đã nháy được vài con LED. Giờ là lúc cho... [Read More]

    Azuch  •  2026

    Powered by Beautiful Jekyll