Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
404kidwiz avatar

Embedded Systems Skill

  • 169 installs
  • 404kidwiz/claude-supercode-skills

Develop firmware, real-time systems, and hardware-software integration for IoT and embedded devices.

About

Build robust embedded systems and IoT applications. Teaches firmware architecture, real-time constraints, hardware-software integration patterns, device communication protocols, and strategies for resource-constrained environments.

  • Firmware development
  • Real-time systems
  • Hardware integration
  • Device drivers
  • IoT protocols

Embedded Systems by the numbers

  • 169 all-time installs (skills.sh)
  • Ranked #2,374 of 4,492 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 11, 2026 (Skillselion catalog sync)
npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill embedded-systems

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs169
Repository404kidwiz/claude-supercode-skills

What it does

Develop firmware, real-time systems, and hardware-software integration for IoT and embedded devices.

Files

SKILL.mdMarkdownGitHub ↗

Embedded Systems Engineer

Purpose

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.

When to Use

  • Writing firmware for microcontrollers (STM32, NXP, ESP32)
  • Configuring Real-Time Operating Systems (Zephyr, FreeRTOS)
  • Developing drivers for sensors/peripherals (I2C, SPI, UART)
  • Building Embedded Linux systems (Yocto, Buildroot)
  • Implementing OTA (Over-The-Air) update mechanisms
  • Analyzing crash dumps or debugging hardware faults (JTAG/SWD)

--- ---

2. Decision Framework

OS Selection

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 Choice (2026 Standards)

LanguageUse CaseRecommendation
C (C11/C17)Legacy / HALsStill dominant. Use strict static analysis (MISRA).
C++ (C++20)Complex LogicUse noexcept, no-rtti for embedded. Zero-cost abstractions.
RustNew ProjectsHighly Recommended. Memory safety without GC. embedded-hal.
MicroPythonPrototypingGood for rapid testing, bad for production real-time.

Update Strategy (OTA)

1. Dual Bank (A/B): Safe but requires 2x Flash. 2. Compressed Image: Saves Flash, requires RAM for decompression. 3. Delta Updates: Minimal bandwidth, complex patching logic.

Red Flags → Escalate to `security-engineer`:

  • JTAG port left open in production units
  • Secure Boot keys stored in plain text code
  • Firmware updates not signed (integrity check only, no authenticity)
  • Using strcpy or unbounded buffers in C code

--- ---

Workflow 2: Zephyr RTOS Application

Goal: Read sensor via I2C and print to console.

Steps:

1. Device Tree (`app.overlay`)

    &i2c1 {
        status = "okay";
        bme280@76 {
            compatible = "bosch,bme280";
            reg = <0x76>;
            label = "BME280";
        };
    };

2. Configuration (`prj.conf`)

    CONFIG_I2C=y
    CONFIG_SENSOR=y
    CONFIG_CBPRINTF_FP_SUPPORT=y

3. 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));
        }
    }

--- ---

4. Patterns & Templates

Pattern 1: State Machine (Bare Metal)

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;
        // ...
    }
}

Pattern 2: Interrupt Deferred Processing

Use case: Keeping ISRs (Interrupt Service Routines) short.

  • ISR: Set a flag or push data to a ring buffer. Return immediately.
  • Main Loop / Task: Check buffer/flag and process data (e.g., parse GPS NMEA string).
  • Why? Long ISRs block other interrupts and crash the system.

Pattern 3: Watchdog Feeder

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);
    }
}

--- ---

6. Integration Patterns

iot-engineer:

  • Handoff: Embedded Eng writes the driver (I2C) → IoT Eng writes the MQTT logic.
  • Collaboration: Power budget (how often to wake up radio).
  • Tools: Power Profiler.

mobile-app-developer:

  • Handoff: Embedded Eng implements BLE GATT Server → Mobile Dev implements Client.
  • Collaboration: Defining the GATT Service/Characteristic UUIDs.
  • Tools: nRF Connect.

cloud-architect:

  • Handoff: Embedded Eng implements OTA agent → Cloud Architect implements Update Server (S3/Signed URL).
  • Collaboration: Security token format (JWT/X.509).
  • Tools: AWS IoT Jobs.

---

Related skills

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.