embedded-systems-skill/SKILL.md
Expert in RTOS, bare-metal programming, and embedded Linux. Specializes in Rust for Embedded and high-reliability firmware.
npx skillsauth add 404kidwiz/claude-supercode-skills embedded-systemsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Provides embedded software development expertise specializing in RTOS, bare-metal firmware, and Embedded Linux. Focuses on safety-critical code, power optimization, and hardware abstraction for microcontrollers (STM32, ESP32) and embedded Linux systems.
What is the hardware capability?
│
├─ **Microcontroller (MCU) - < 1MB RAM**
│ ├─ Hard Real-Time? → **Zephyr / FreeRTOS** (Preemptive scheduler)
│ ├─ Safety Critical? → **SafeRTOS / Rust (Bare Metal)**
│ └─ Simple Loop? → **Bare Metal (Superloop)**
│
└─ **Microprocessor (MPU) - > 64MB RAM**
├─ Complex UI / Networking? → **Embedded Linux (Yocto/Buildroot)**
└─ Hard Real-Time? → **RT-Linux (PREEMPT_RT)** or **Dual Core (Linux + MCU)**
| Language | Use Case | Recommendation |
|----------|----------|----------------|
| C (C11/C17) | Legacy / HALs | Still dominant. Use strict static analysis (MISRA). |
| C++ (C++20) | Complex Logic | Use noexcept, no-rtti for embedded. Zero-cost abstractions. |
| Rust | New Projects | Highly Recommended. Memory safety without GC. embedded-hal. |
| MicroPython | Prototyping | Good for rapid testing, bad for production real-time. |
Red Flags → Escalate to security-engineer:
strcpy or unbounded buffers in C codeGoal: Read sensor via I2C and print to console.
Steps:
Device Tree (app.overlay)
&i2c1 {
status = "okay";
bme280@76 {
compatible = "bosch,bme280";
reg = <0x76>;
label = "BME280";
};
};
Configuration (prj.conf)
CONFIG_I2C=y
CONFIG_SENSOR=y
CONFIG_CBPRINTF_FP_SUPPORT=y
Code (main.c)
#include <zephyr/kernel.h>
#include <zephyr/device.h>
#include <zephyr/drivers/sensor.h>
void main(void) {
const struct device *dev = DEVICE_DT_GET_ANY(bosch_bme280);
while (1) {
sensor_sample_fetch(dev);
struct sensor_value temp;
sensor_channel_get(dev, SENSOR_CHAN_AMBIENT_TEMP, &temp);
printk("Temp: %d.%06d C\n", temp.val1, temp.val2);
k_sleep(K_SECONDS(1));
}
}
Use case: Handling complex device logic without an OS.
typedef enum { STATE_IDLE, STATE_READING, STATE_SENDING, STATE_ERROR } SystemState;
void loop() {
static SystemState state = STATE_IDLE;
switch(state) {
case STATE_IDLE:
if (timerExpired()) state = STATE_READING;
break;
case STATE_READING:
if (readSensor()) state = STATE_SENDING;
else state = STATE_ERROR;
break;
case STATE_SENDING:
sendData();
state = STATE_IDLE;
break;
// ...
}
}
Use case: Keeping ISRs (Interrupt Service Routines) short.
Use case: Auto-reset if the system freezes.
void watchdog_task(void *pvParameters) {
while(1) {
// Only kick if critical flags are set
if (check_system_health()) {
wdt_feed();
}
vTaskDelay(1000);
}
}
development
Expert in automating Excel workflows using Node.js (ExcelJS, SheetJS) and Python (pandas, openpyxl).
content-media
Expert in designing durable, scalable workflow systems using Temporal, Camunda, and Event-Driven Architectures.
tools
Use when user needs WordPress development, theme or plugin creation, site optimization, security hardening, multisite management, or scaling WordPress from small sites to enterprise platforms.
tools
Expert in Windows Server, Active Directory (AD DS), Hybrid Identity (Entra ID), and PowerShell automation.