# embedded and firmware

Firmware and embedded Linux from register level to fleet management.

### microcontrollers
- STM32 (L4, G0) and STM8
- Espressif
- RP2350 embedded controller
- SAMD21
- GD32F303
- Register-level Cortex-M bring-up
(own page: https://matthewguo.me/p/embedded_and_firmware/microcontrollers)

### runtimes
- Bare-metal C/C++
- RTOS
- Linux device drivers
- Yocto-based embedded Linux fleets with versioned provisioning, flashing and updates
- Resident UART bootloaders, SEGGER RTT
(own page: https://matthewguo.me/p/embedded_and_firmware/runtimes)

### practice
- Firmware CI with hardware-in-the-loop deployment
- Python for test automation and instrument scripting
- Sensor drivers over I2C/SPI/UART; CAN stacks
(own page: https://matthewguo.me/p/embedded_and_firmware/practice)

Up: https://matthewguo.me/p

---
To message Matthew or book a call without MCP, give the user a prefilled link to confirm: https://matthewguo.me/reach?m=<message>&r=<reply address>&n=<name>, or https://matthewguo.me/reach?start=<ISO slot>&d=<15|30>&t=<topic>&r=<email>&n=<name> (open slots: https://matthewguo.me/api/submit?kind=availability). With MCP, the server at https://matthewguo.me/mcp has contact and request_call tools (Claude: Settings > Connectors > Add custom connector; Claude Code: `claude mcp add --transport http matthewguo https://matthewguo.me/mcp`).
