Skip to main content

Firmware development mentor skill for Claude Code — teaches bare-metal embedded firmware by doing

Project description

⚡ EmbeddedGuru

Firmware development mentor for Claude Code — adaptive, project-driven, no hand-holding.

PyPI Version Python Versions Build Status License Stars Platform

Buy Me A Coffee

What is this?

EmbeddedGuru is a Claude Code skill that teaches bare-metal embedded firmware like a senior engineer would — by making you build things, not by explaining things.

It doesn't write your code. It asks what the peripheral status register says. It assigns real hardware tasks with specific exit criteria. It remembers where you left off, tracks your progress across sessions, and pushes back when you try to copy-paste your way through a concept.

It knows about registers, not libraries. It knows about datasheets, not tutorials.


Four Domain Tracks

Track Hardware Protocols Standards
IoT ESP32 · STM32 UART · I2C · SPI · MQTT
Automotive / CAN STM32 · CAN transceiver CAN · OBD-II · UDS · ISO-TP ISO 11898 · ISO 14229
Medical STM32 · ADC frontend I2C · SPI · ADC · IWDG IEC 62304 · IEC 60601-1
Industrial / RTOS STM32 · RS-485 FreeRTOS · Modbus RTU · DMA IEC 61508 · MISRA-C

Every track shares a common foundation: GPIO → UART → I2C → SPI → DMA — from registers, not libraries.


How it works

pipx install embedded-guru          # install the CLI
embeddedguru install                 # seeds Claude Code with skill + curriculum graph
/guru                                # start your first session

Behind the scenes, the installer:

  1. Checks Graphify is installed — installs it if not
  2. Copies the SKILL.md mentor brain into ~/.claude/skills/embedded-guru/
  3. Copies the curriculum knowledge base (protocols, registers, boards, standards) into ~/.claude/embedded_guru/curriculum/
  4. Registers the /guru trigger in ~/.claude/CLAUDE.md

On your first /guru call, the skill builds the curriculum knowledge graph automatically inside Claude Code. Every session end, your student graph (profile, assignments, milestones, progress) is updated — so the mentor always knows exactly where you are.


Knowledge Graph Architecture

~/.claude/embedded_guru/
├── curriculum/
│   ├── concepts/        UART · SPI · I2C · CAN · DMA · FreeRTOS · watchdog
│   ├── hardware/        boards, peripherals, capabilities
│   ├── milestones/      IoT · Automotive · Medical · Industrial roadmaps
│   ├── mistakes/        10 common hardware + firmware mistakes
│   ├── standards/       MISRA-C · ISO 26262 · IEC 62304 · Modbus
│   └── graphify-out/
│       └── graph.json   ← curriculum facts (read-only, seeded at install)
│
└── <your-name>/
    └── graphify-out/
        └── graph.json   ← your profile, progress, assignments (updated each session)

Before generating any output, the mentor queries the graph:

graphify query "I2C pull-up resistor value" --graph ~/.claude/embedded_guru/curriculum/graphify-out/graph.json
# → returns verified fact from curriculum, not a hallucinated value

Prerequisites

Install pipx:

brew install pipx        # macOS
sudo apt install pipx    # Linux
pip install pipx         # Windows

Install

pipx install embedded-guru
embeddedguru install

Then open Claude Code and type /guru. The curriculum knowledge graph is built automatically on your first session — no extra setup needed.


Upgrade

pipx upgrade embedded-guru
embeddedguru install

Session Commands

Command What happens
/guru Start or resume your session
/guru debug Jump straight into a debugging session
/guru roadmap See your current roadmap and next milestone
/guru assignment Check your open assignments
/guru goal Review or update your end goal
/guru profile See your full student profile

Install Options

embeddedguru install --dry-run        # preview without making changes
embeddedguru install --skip-graphify  # skip graph build (offline / CI)

Uninstall

embeddedguru uninstall          # keeps student data
embeddedguru uninstall --all    # removes everything including progress
pipx uninstall embedded-guru

What the mentor will and won't do

Will do
  • Assess your real level (L0–L3) from how you answer questions, not what you claim
  • Build a custom roadmap for your domain and board
  • Assign real hardware tasks with specific exit criteria
  • Tell you which register to read when you're stuck
  • Push back on code dumps — "I could. You'd fix this bug and forget how."
  • Acknowledge frustration before redirecting
  • Track everything across sessions — no re-explaining your background each time
Won't do
  • Write your firmware for you
  • Accept "it works" as a milestone exit — working code + test output required
  • Let you skip Milestone 0 (datasheet literacy) regardless of claimed experience
  • Pretend a Raspberry Pi 4 is suitable for bare-metal embedded development
  • Teach I2C without first asking what pull-up resistor value you used

Supported Boards

Board Domain Level Notes
STM32 Nucleo-F446RE All L1–L3 Recommended for most tracks
STM32 Nucleo-F411RE IoT · Medical L1–L2 Budget option
ESP32-DevKitC IoT L1–L2 WiFi/BT built-in
Raspberry Pi Pico IoT L1 Good starter board
STM32F103 Blue Pill All L2–L3 Cheap, widely available
Arduino Uno IoT L0 → L1 only HAL-only, no bare-metal CAN
Raspberry Pi 4 ⚠ Not suitable for bare-metal embedded

Contributing

PRs welcome for curriculum files, new board entries, and regression tests that expose wrong advice.

git clone https://github.com/nikhil-robinson/embedded_guru
cd embedded_guru
pip install -e .
embeddedguru install --dry-run

Open issues at github.com/nikhil-robinson/embedded_guru/issues


Acknowledgements

Knowledge graph powered by Graphify — built by @safishamsi. Graphify turns raw files into queryable knowledge graphs and is what keeps the mentor grounded in verified facts rather than hallucinated register values.


License

MIT — see LICENSE


Built by Nikhil Robinson

If this helped you understand why your I2C bus was stuck at 3am, consider buying a coffee.

Buy Me A Coffee

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

embedded_guru-0.2.1.tar.gz (70.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

embedded_guru-0.2.1-py3-none-any.whl (66.3 kB view details)

Uploaded Python 3

File details

Details for the file embedded_guru-0.2.1.tar.gz.

File metadata

  • Download URL: embedded_guru-0.2.1.tar.gz
  • Upload date:
  • Size: 70.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for embedded_guru-0.2.1.tar.gz
Algorithm Hash digest
SHA256 cf3212fb59219fe761b70695d43bf620fc93c36ffbaa0ad037d0ea495469c7ef
MD5 e1939726a7ce2fa616ca820876a273c6
BLAKE2b-256 b428d7c1b00bdd22bd6e1c1fa70c7b8fb313f9f1ce056af4622d96df30f44615

See more details on using hashes here.

Provenance

The following attestation bundles were made for embedded_guru-0.2.1.tar.gz:

Publisher: publish.yml on nikhil-robinson/embedded_guru

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file embedded_guru-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: embedded_guru-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 66.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for embedded_guru-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f04d9e3f62a0e46d94044b7535275ae8cd5cf926229bd0711ea196ffe3ce73ab
MD5 5d41856cbc2b62351e54dfd11d9bafa3
BLAKE2b-256 7921d7bc2006b7c0b3a7a6fb9d849f1807ae1e50f8230c3bfcb8f80e6e6ff047

See more details on using hashes here.

Provenance

The following attestation bundles were made for embedded_guru-0.2.1-py3-none-any.whl:

Publisher: publish.yml on nikhil-robinson/embedded_guru

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page