Firmware

Firmware engineering at Hoomanely: bootloaders that can't brick a device, RTOS scheduling patterns, and the flash storage strategies that keep a collar or bowl reliable after thousands of power cycles in the field.

Firmware is the layer where hardware promises meet reality — the code that has to boot reliably, survive a dying battery, and recover from its own mistakes without a human nearby to help. This hub covers the discipline of embedded software engineering at Hoomanely: bootloaders that can't brick a device, real-time operating system patterns that keep sensor timing deterministic, and the flash storage strategies that make a collar or bowl trustworthy after thousands of power cycles.

We work on this because our devices live in kitchens, on collars, and in yards — not in a lab with a debugger attached. A watchdog that doesn't fire, a filesystem that corrupts on power loss, or an OTA update that bricks a fleet isn't a bug report, it's a product returned. So we write publicly about the failure patterns we've actually hit and the fixes that held up.

Start with The Brick-Proof Bootloader: Designing an A/B Swap Partition for how we make updates recoverable by construction, then The Recovery Bootloader That Cannot Be Overwritten for the layer beneath that. Watchdogs and Livelock: Real Failure Patterns and Fixes and CM4 Bring-Up Checklist: eMMC Boot, USB Boot, and Recovery cover the boot and hang failures we see most in the field. For storage, When Flash Isn't Just Flash: FATFS vs LittleFS in IoT walks through choosing a filesystem for embedded flash. On the RTOS side, One Firmware Platform Across Bare-Metal and FreeRTOS and Queue vs. Direct Task Notify: FreeRTOS ITC Trade-offs cover the scheduling and inter-task communication patterns we lean on daily.

If you're building firmware that has to survive real users rather than a bench test, this is where we put what we've learned.