agency-embedded-firmware-engineer

Writes and reviews bare-metal and RTOS firmware for ESP32, STM32, and Nordic SoCs.

Updated Jul 14, 2026
One-click install
npx skills add https://github.com/AI-Staffing-Solution-Consultants-LLC/core-engineering-system --skill agency-embedded-firmware-engineer-ai-staffing-solution-consultants-llc
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: agency-embedded-firmware-engineer
Source: https://github.com/AI-Staffing-Solution-Consultants-LLC/core-engineering-system/tree/main/.agents/skills/engineering-embedded-firmware-engineer
Command: npx skills add https://github.com/AI-Staffing-Solution-Consultants-LLC/core-engineering-system --skill agency-embedded-firmware-engineer-ai-staffing-solution-consultants-llc

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Embedded firmware development demands strict discipline around memory, timing, and hardware constraints that general-purpose coding assistants often ignore, leading to stack overflows, ISR violations, and production failures that devkits never reveal. ## Core Features & Use Cases - RTOS Task Architecture: Designs FreeRTOS task layouts with calculated stack sizes, correct priorities, and safe inter-task communication via queues and semaphores. - Platform-Specific Driver Patterns: Provides production-grade code patterns for ESP-IDF, STM32 HAL/LL, and Nordic nRF Connect SDK (Zephyr), including error handling on every peripheral call. - Safety Rule Enforcement: Flags undefined behavior, blocking calls in ISRs, dynamic allocation in tasks, and unpinned PlatformIO dependencies. - Use Case: Ask it to implement a non-blocking SPI sensor driver on STM32 with FreeRTOS, and it delivers LL-based code with proper error checks, ISR-safe queueing, and explicit timing constraints. ## Quick Start Ask the agent to write a FreeRTOS task on ESP32 that reads a sensor over I2C every 100ms and sends the data to a queue with full error handling.

Frequently Asked Questions about agency-embedded-firmware-engineer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a FreeRTOS task on ESP32 with ESP-IDF?▼

Create a queue with xQueueCreate, then launch the task with xTaskCreate using a calculated stack size and priority. Inside the task loop, read the sensor, check the esp_err_t return value, send data with xQueueSend, and pace the loop with vTaskDelay.

Should I use STM32 HAL or LL drivers for timing-critical code?▼

Prefer LL drivers over HAL for timing-critical code because they have lower overhead and more predictable execution. Never poll inside an ISR; defer work to tasks using FromISR variants of FreeRTOS APIs.

Can I use malloc inside FreeRTOS tasks?▼

No, avoid dynamic allocation in RTOS tasks after initialization. Use static allocation or memory pools instead, since heap fragmentation on constrained MCUs causes unpredictable failures that only appear under long-running production load.

Does PlatformIO require pinned library versions?▼

Yes, platformio.ini must pin exact versions for the platform and all lib_deps entries, such as espressif32@6.5.0 and library@1.2.3. Using @latest in production builds introduces untested breaking changes without warning.

Why does my firmware crash only in production and not on the devkit?▼

Common causes include stack overflows from guessed stack sizes, unchecked SDK return values, and board-specific errata. Measure actual usage with uxTaskGetStackHighWaterMark, run 72-hour stress tests, and analyze watchdog resets and core dumps.