Crunch Labs · Tier IISub-brand · Wire24 weeks · semesterGPL-3.0

Crunch Wire.

Twenty-four weeks of production-grade embedded engineering. From a blank linker script on a Cortex-M to a signed, OTA-updatable fleet talking MQTT-over-TLS, with a TinyML classifier at the edge and a logic analyzer on the bench proving every byte. Open-source-first. Free, forever.

24weeks
Program length
864hrs
Total workload
24+1
Labs + capstone
$0
Tuition · always

§ I · The Program

Firmware that ships.

Crunch Wire is the embedded systems and IoT engineering specialization of the Code Crunch academy — a redesign of the original C7 course, reauthored in 2026 for the Crunch Labs tier. It is built for engineers who want to ship connected products: not Arduino-hobbyist sketches, but firmware that boots from a custom linker script, talks MQTT-over-TLS, survives OTA mid-power-loss, and runs a TinyML classifier in 200 KB of flash.

You write firmware in C, modern C++20, Rust (embassy, embedded-hal), and MicroPython. You boot FreeRTOS and Zephyr. You design and order a small KiCad board. You debug with GDB, OpenOCD, SWO/ITM, and a Saleae logic analyzer. By Week 24 you have built a fleet, signed its firmware, rotated its certificates, survived its first chaos drill, and written the on-call runbook a future maintainer can read at three in the morning.

"This is not a hobbyist Arduino course. It is the curriculum we wish existed when we first shipped a connected product."— Crunch Wire, course README

§ II · Who It's For

Four engineers, one bench.

Wire is opinionated about its audience. C1 (Code Crunch Convos) is the floor — you should be able to read a C function and a datasheet without panic.

No. 01

The Industry Engineer

Writes firmware today against vendor SDKs. Wants the layers below — linker scripts, ISR latency, RTOS internals — and the layers above — OTA, attestation.

No. 02

The Python-First New Grad

Finished C1. Targets hardware-heavy companies (Apple Silicon, Tesla, SpaceX, Anduril, Nest). Needs C fluency, hardware intuition, and a portfolio that proves both.

No. 03

The Hardware Founder

Has a product. Needs to ship a fleet, not a prototype. Needs firmware lifecycle, OTA, attestation, compliance, and the manufacturing handoff.

No. 04

The Security Researcher

Reverse-engineers firmware. Now wants to build it: bootloader chains, signing infrastructure, secure elements, TLS on a 256 KB MCU.

§ III · Four Phases

From first byte to fleet operations.

The arc of the program is composed in four phases — six weeks each — each building on the last like floors of a building.

Phase I · Wk. 01—06

Foundations

C and C++20 discipline. Datasheets and reference manuals. Toolchains, linker scripts, startup files, vector tables. Bare-metal blink without a single line of vendor HAL.

Phase II · Wk. 07—12

Bare-Metal & RTOS

The peripheral menagerie — GPIO, UART, SPI, I2C, CAN, USB, ADC, DMA, timers. FreeRTOS and Zephyr in earnest. Debugging with GDB, OpenOCD, SWO/ITM, and a Saleae logic analyzer.

Phase III · Wk. 13—18

IoT Fleet & Edge

Wireless: BLE 5, Wi-Fi, LoRaWAN, Thread, Matter. MQTT, MQTT-SN, CoAP. Edge inference with TFLite-Micro. Fleet shadows, provisioning, telemetry pipelines.

Phase IV · Wk. 19—24

Production & Capstone

Dual-bank bootloaders. Secure boot, code signing, delta-encoded OTA. TLS on a constrained MCU. Embedded Linux with Yocto and Buildroot. Capstone, chaos drill, on-call runbook.

§ IV · The Curriculum

Twenty-four weeks, week by week.

Each entry corresponds to a folder in the GitHub repository with lecture notes, exercises, challenges, a quiz, homework, and a mini-project. Detailed acceptance criteria live in the syllabus.

01

Embedded Engineering, From First Principles

MCU vs MPU · ARM Cortex-M0/M4/M7/M33 · Xtensa LX7 · RISC-V · AVR · toolchains · hosted vs freestanding C · reading reference manuals.

Lab 01

Toolchain bring-up + semihosting “hello”

02

Embedded C, Properly

Storage classes · volatile · bitfields · packed structs · fixed-width integers · UB on small targets · MISRA-C-aligned style.

Lab 02

SPSC ring buffer with host tests

03

Bare-Metal Bring-Up: Linker Scripts & Startup

Memory map · .text/.data/.bss/.stack · vector table · reset handler · what arm-none-eabi-ld actually does.

Lab 03

Blink without HAL — your own linker + startup

04

Modern C++ on Bare Metal

C++20 on freestanding · constexpr, concepts, std::span · no RTTI, no exceptions · CRTP peripheral drivers · ETL.

Lab 04

CRTP Gpio<Port,Pin> template

05

Rust on Embedded

embedded-hal · embassy async executor · defmt · when Rust beats C, when it does not.

Lab 05

UART echo in embassy on the RP2040

06

MicroPython & Hardware Literacy

MicroPython on the ESP32-S3 and RP2040 · when scripting earns its keep · scope basics · logic analyzer basics.

Lab 06

First scope shot — measure your blink

07

FreeRTOS Foundations

Tasks, queues, semaphores, mutexes · priority inversion · stack sizing · the idle hook.

Lab 07

Two-task producer/consumer with queues

08

Zephyr Project

Device tree · west · the build system · Zephyr drivers · power management.

Lab 08

Port your Lab 03 blink to Zephyr

09

Serial Peripherals — UART, SPI, I2C

Wire protocols · driver patterns · polled vs interrupt vs DMA · arbitration on I2C.

Lab 09

BME280 driver over I2C with DMA

10

CAN, USB-CDC, ADC, DAC, PWM, Timers

CAN as a bus discipline · USB-CDC for log-everywhere · ADC sampling · PWM for motor control · DMA-driven sample buffers.

Lab 10

CAN echo node + USB-CDC log

11

Sensors & Actuators

IMU calibration · ToF basics · environmental sensor fusion · brushed DC motors · hobby servo control · fault handling.

Lab 11

IMU + ToF sensor hub publishing over UART

12

Debugging Like a Professional

GDB over J-Link · OpenOCD · SWO/ITM tracing · Saleae captures · scope shots · runbooks that survive 3 AM.

Lab 12

Diagnose a priority inversion with SWO + scope

13

BLE 5 & the Nordic Ecosystem

GAP, GATT, advertising, connection, security · Nordic softdevice · NimBLE on Zephyr · BLE-Mesh basics.

Lab 13

BLE occupancy beacon (custom GATT service)

14

Wi-Fi on the ESP32 & MQTT

ESP-IDF Wi-Fi state machine · MQTT v3.1.1 vs v5 · QoS · last-will · retained messages · MQTT-SN.

Lab 14

ESP32 sensor node publishing to Mosquitto

15

LoRaWAN & Sub-GHz

LoRaWAN classes A/B/C · The Things Network · duty cycles · over-the-air activation.

Lab 15

LoRaWAN soil-moisture node, OTAA-joined

16

Thread & Matter

802.15.4 · Thread mesh · OpenThread · Matter clusters · commissioning via QR code.

Lab 16

Matter-commissionable smart-plug node

17

TinyML at the Edge

TFLite-Micro · model quantization · MAC budgets · on-device inference under 200 KB.

Lab 17

Wake-word classifier on the nRF52840

18

Fleet Telemetry & Device Shadows

Open fleet brokers · device shadows · telemetry schemas · provisioning at scale.

Lab 18

3-node fleet streaming to a Mosquitto + InfluxDB stack

19

Bootloaders & Secure Boot

MCUboot · dual-bank vs swap · image signing · rollback · trust anchors in ROM.

Lab 19

MCUboot dual-bank install on the STM32F446

20

OTA That Survives Power Loss

Delta updates · resumable downloads · A/B rollback · the manifest signing chain.

Lab 20

Power-pull chaos test against your OTA flow

21

TLS & Secure Elements

mbedTLS / wolfSSL on MCU · ATECC608 / OPTIGA Trust M · device attestation · cert rotation.

Lab 21

mTLS to the fleet broker with a secure element

22

Embedded Linux Bring-Up

Yocto · Buildroot · device tree · BSP · kernel modules (intro) · u-boot.

Lab 22

Custom Yocto image for a Raspberry Pi CM4

23

Compliance, Power & PCB

FCC Part 15, CE RED briefing · battery design · low-power modes · two-layer KiCad board.

Lab 23

KiCad layout review of your sensor node

24

Capstone & Chaos Drill

Capstone polish · chaos drill (battery depletion / network partition / cert rotation) · postmortem · on-call runbook · interview prep.

Capstone

Fleet-scale IoT gateway + edge-ML sensor node

§ V · The Toolchain

Open-source first, vendor-aware.

Every primary tool below is open-source. Vendor SDKs (STM32Cube, ESP-IDF, Nordic Connect) are taught as the production scale path — never as the only path.

Compiler
arm-none-eabi-gcc · clang
free · cross-platform
RTOS
Zephyr · FreeRTOS
Apache-2.0 · MIT
Rust
embassy · embedded-hal
async on embedded
Debugger
OpenOCD · GDB · J-Link
SWO + ITM tracing
Analyzer
Saleae · sigrok
scope & logic analyzer
Boards
STM32 · ESP32-S3 · RP2040
multi-vendor by design
Bootloader
MCUboot
secure boot + OTA
Wireless
BLE · LoRaWAN · Thread · Matter
open standards
IoT
Mosquitto · MQTT · CoAP
open broker stack
Edge ML
TFLite-Micro
on-MCU inference
Linux
Yocto · Buildroot
custom BSPs
PCB
KiCad
open EDA

§ VI · Skills You Will Carry

What you walk away with.

By the end of Week 24, you are able to do each of the following — credibly, on a real bench, in front of a real reviewer.

  • Bring up a new Cortex-M target from scratch — linker, startup, vector table, GPIO.
  • Read a 1,200-page reference manual without flinching.
  • Write production embedded C that passes MISRA-aligned review.
  • Write modern C++20 on freestanding targets without RTTI or exceptions.
  • Write embedded Rust with embassy and the embedded-hal ecosystem.
  • Architect a FreeRTOS or Zephyr application and diagnose priority inversion.
  • Drive UART, SPI, I2C, CAN, USB-CDC, ADC, DAC, PWM, DMA, timers.
  • Calibrate an IMU, fuse sensor data, drive motors and servos.
  • Build BLE 5, Wi-Fi, LoRaWAN, Thread, and Matter connectivity.
  • Train and deploy a TinyML model inside 200 KB of flash.
  • Design a dual-bank secure-boot bootloader with delta-encoded OTA.
  • Bring up a custom Yocto image for a Raspberry Pi CM4.
  • Debug with GDB, OpenOCD, SWO/ITM, Saleae captures, and the scope.
  • Lay out a two-layer KiCad PCB and read a layout review.
  • Write a runbook on-call engineers can read at 3 AM.
  • Pass a senior firmware interview.

§ VII · The Capstone

One fleet. Shipped, signed, monitored.

Week 24 is reserved for a single substantial system — the kind a real product team would scope across a quarter. Architecture diagram, live deploy, video walkthrough, chaos-drill postmortem.

Capstone Brief

Fleet-Scale IoT Gateway + Edge-ML Sensor Node

Build a three-tier system: an ESP32-S3 sensor node running a TFLite-Micro classifier, a Linux gateway (Raspberry Pi CM4 with a custom Yocto image) aggregating telemetry, and a Mosquitto + InfluxDB + Grafana cloud back-end receiving signed MQTT-over-TLS traffic. All three tiers come from your code.

  • Custom linker scripts, startup, and a MCUboot-signed dual-bank firmware on the sensor node.
  • An on-device TFLite-Micro model running under a 200 KB flash budget.
  • mTLS to the broker using an ATECC608 secure element on the node.
  • OTA delta updates with rollback, exercised under a chaos drill (battery brown-out, network partition, cert rotation).
  • An on-call runbook another engineer can read at 3 AM.
  • A 5-minute video walkthrough and a written postmortem of one intentional incident.

§ VIII · Getting Started

Three commands. Then begin.

The setup is intentionally lightweight. If you have a Linux laptop and can run a terminal command, you can begin Week 1 today. The hardware kit ships separately.

# 1. Clone the curriculum repository
git clone https://github.com/CODE-CRUNCH-WORLDWIDE/C7-WIRE-CRUNCH-EMBEDDED-SYSTEMS.git
cd C7-WIRE-CRUNCH-EMBEDDED-SYSTEMS

# 2. Install the toolchain (Linux / macOS / WSL2)
sudo apt install gcc-arm-none-eabi gdb-multiarch openocd # Debian / Ubuntu
brew install arm-none-eabi-gcc openocd # macOS

# 3. Open Week 1 README and begin
$EDITOR curriculum/week-01-foundations/README.md

Need the hardware kit list, or a budget alternative? See the README.

§ IX · Frequently Asked

Questions, anticipated.

Do I need the hardware kit to start?

Not for Weeks 1–2. Toolchain setup, C discipline, and ring-buffer host-tests can be done on any laptop. From Week 3 onward you need at least the STM32 Nucleo-F446 board and an ST-Link or J-Link debugger. Full kit is ~$240 with open-source alternatives listed in the syllabus.

Is this really free?

Yes. GPL-3.0, like everything in Code Crunch. The only thing it costs you is time, effort, and the hardware kit.

Why 24 weeks and not 12?

Because firmware that ships requires depth you cannot fake. Bare-metal alone is 6 weeks. RTOS is 6 more. Wireless and edge ML are another 6. And production — bootloaders, OTA, secure boot, Linux/Yocto, capstone — is the last 6. See the charter for the full rationale.

What if I only know Python?

Take C1 (Code Crunch Convos) first. We assume Python fluency and a willingness to read a C function. If you cannot yet read a C function, also do the C primer in C14 (Linux) before starting.

How does this differ from C24 (Robotics)?

C7 owns the single device, the firmware, and the IoT fleet. C24 owns multi-actuator autonomous systems with ROS2, motion planning, and SLAM. Take C7 first if you want to ship a connected product; take C24 first if you want to build a robot. Many engineers do both.

Will this prepare me for an interview?

Yes — for senior firmware roles. The course closes with a discipline-specific interview prep pack: system-design with hardware constraints, embedded-C code-review drills, RTOS internals questions, and the production runbook as a portfolio artifact.

§ X · Begin

Twenty-four weeks from now,
you will have shipped a fleet.

Open the repository. Read Week 1. The bench is yours.