harness labsThe AI Buff

Harness Labs / Learn & Build

Start curious.
Build something.

Learn the code. Understand the circuit. Make an idea tangible, one small build at a time.

No hardware?
You can start here.

Follow the stages in order, or jump to the skill you need. Each pairs a lesson with a small build. Papers and deeper reading are there when you want them.

Browser / simulator first · Optional USB-powered hardware · Self-paced

Time, access & safety

About 60–95 hours for selected core lessons and builds, self-paced. Estimates exclude full optional courses, physical fabrication, and advanced on-device ML.

Time estimates are editorial planning estimates for selected lessons and builds. They are not course lengths or a promise of proficiency.

Start with virtual circuits. Keep optional physical builds to USB-powered, low-voltage development boards. No mains wiring or battery fabrication.

Full access & safety notes ↓

8 stages / one connected project

A little theory.
A working next step.

Start with the first lesson, then try the build. Open any stage to explore.

01

Code the basicsTurn a small idea into a working decision rule.

  • Beginner
  • Estimated 12–18 hours · self-paced
What you’ll learn

Start: Run a tiny Python example in your browser.

  • Use variables, functions, conditions, and loops.
  • Keep sample data separate from decisions.
  • Save a recoverable revision and explain a change.

No prior experience needed.

Idea → requirements

Use AI as a study partner: Ask AI to explain one error and propose a smaller example. Run the example and explain the fix yourself.

Start with this lesson

  • VideoBeginner

    Your first Python lesson (opens in a new tab)

    Learn functions and variables with Harvard’s video and notes.

    Harvard CS50 · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    CS50P: Week 0, Functions and Variables
    Start here
    Watch the opening lesson and run each small example yourself.
    Account
    No login needed to watch/read. Official submission and cs50.dev workflow uses a GitHub account and authorization; course feedback instructions also call for an edX account. First-session practice can stay in Pyodide.
    Hardware
    Computer/browser only.
    Plan for
    Estimated 3–5 hours for Week 0 and practice; 40–80 hours for the full course and projects is a separate optional commitment. Learning estimate, not a verified video runtime.
    Before this
    None; the course explicitly welcomes learners without prior programming experience.
    Good to know
    The entire ten-week course is not a prerequisite for the first circuit. Follow course academic-honesty rules for submitted assignments.
    Checked
    2026-10-20
More ways to learn 4 resources
  • ToolBeginner

    Try Python in your browser (opens in a new tab)

    Run your first lines of Python without installing anything.

    Pyodide project · Free learning access · No account · Browser only

    Access & lesson details
    Full title
    Pyodide browser Python console
    Start here
    Type 2 + 2, then try a variable and print its value.
    Account
    No account or login was requested in the live browser check.
    Hardware
    Computer/browser only; no electronics.
    Plan for
    Estimated 20–45 minutes for arithmetic, strings, variables, and one small function. Learning estimate, not a verified video runtime.
    Before this
    A modern browser; no programming experience required for the first arithmetic and variable exercises.
    Good to know
    Treat this as a scratch console, not durable project storage. Browser Python has compatibility limits; it is not a full replacement for desktop Python or a hardware-programming IDE.
    Checked
    2026-10-20
  • CourseBeginner

    Save a version with GitHub (opens in a new tab)

    Practice commits and branches on harmless sample files.

    GitHub Skills · Free learning access · Account for exercise · Browser only

    Access & lesson details
    Full title
    GitHub Skills: Introduction to GitHub
    Start here
    Read the exercise, then decide whether to use a free practice account.
    Account
    GitHub account required to copy and run the exercise; reading instructions is public.
    Hardware
    Computer/browser only.
    Plan for
    Estimated 45–90 minutes including writing a useful project README. Provider states its basic exercise takes less than one hour. Learning estimate, not a verified video runtime.
    Before this
    None beyond basic browser use.
    Good to know
    Use harmless practice content in a public repository. Never commit Wi-Fi passwords, API keys, personal recordings, or private lab data.
    Checked
    2026-10-20
  • GuideBeginner

    Understand Git (opens in a new tab)

    Learn what a commit, branch, and repository actually mean.

    Git project / Scott Chacon and Ben Straub · Free learning access · No account to read · Terminal for practice

    Access & lesson details
    Full title
    Pro Git: Getting Started and Git Basics
    Start here
    Read Getting Started and the first Git Basics sections.
    Account
    None to read or use Git locally.
    Hardware
    Browser for reading; Git-capable local or existing cloud terminal for hands-on command-line practice later.
    Plan for
    Estimated 3–5 hours for selected early chapters with practice. Learning estimate, not a verified video runtime.
    Before this
    Basic files/folders; terminal basics helpful for doing the command-line exercises.
    Good to know
    Do not make Git installation or a cloud account a day-one blocker.
    Checked
    2026-10-20
  • DocumentationIntermediate

    Look up a Python concept (opens in a new tab)

    Use the official reference after the first lessons.

    Python Software Foundation · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    The Python Tutorial
    Start here
    Find the section for a concept your program needs.
    Account
    None.
    Hardware
    Browser only for reading; Pyodide can run many elementary examples.
    Plan for
    Estimated 2–4 hours of selected sections; use as-needed rather than cover-to-cover. Learning estimate, not a verified video runtime.
    Before this
    Basic programming concepts, gained from the introductory lessons.
    Good to know
    The tutorial explicitly assumes general programming knowledge. It should not be the only first resource for a complete beginner.
    Checked
    2026-10-20

02

Simulate a circuitMake an input change an indicator.

  • Beginner
  • Estimated 6–10 hours · self-paced
What you’ll learn

Start: Build a virtual LED circuit, then add a button.

  • Identify power, ground, signal, and current limiting.
  • Read a simulated analog input.
  • Distinguish a raw sensor value from a measured physical quantity.

Before this: foundations

Requirements → circuit sketch

Use AI as a study partner: Ask AI to review your labeled circuit and list assumptions. Check every pin, voltage, and resistor calculation against the source documentation.

Start with this lesson

  • ToolBeginner

    Build a virtual circuit (opens in a new tab)

    Try an LED, button, and sensor input without buying parts.

    Autodesk Tinkercad · Free learning access · Account to create · Browser only

    Access & lesson details
    Full title
    Tinkercad: Learn Circuits
    Start here
    Open an introductory LED circuit lesson.
    Account
    Sign-in required to create and save work; private-by-default designs according to Autodesk's guide.
    Hardware
    Browser/internet only; no board or components needed.
    Plan for
    Estimated 3–5 hours for an LED, resistor, pushbutton, and sensor-input lesson. Learning estimate, not a verified video runtime.
    Before this
    Basic voltage/current and breadboard ideas; coding can start with blocks.
    Good to know
    Simulation covers supported parts and libraries, not every Arduino shield or real-world electrical behavior.
    Checked
    2026-10-20
More ways to learn 3 resources
  • GuideBeginner

    Voltage, current, resistance (opens in a new tab)

    Understand the relationships before wiring a circuit.

    SparkFun · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    SparkFun: Voltage, Current, Resistance, and Ohm's Law
    Start here
    Read the LED example and calculate a suitable current-limiting resistance.
    Account
    None for reading.
    Hardware
    No hardware for reading/calculations; reproduce the example in simulation instead of buying its listed parts.
    Plan for
    Estimated 60–90 minutes including a few resistor/current calculations. Learning estimate, not a verified video runtime.
    Before this
    Basic arithmetic and rearranging a simple equation.
    Good to know
    The article's physical experiment uses a battery and meter. Keep this curriculum simulator-first, then manufacturer-supported USB low-voltage hardware only.
    Checked
    2026-10-20
  • GuideBeginner

    Read a breadboard (opens in a new tab)

    See which holes connect and trace the current path.

    SparkFun · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    SparkFun: How to Use a Breadboard
    Start here
    Trace one complete circuit through the virtual breadboard rows.
    Account
    None for reading.
    Hardware
    No purchase required; use a virtual breadboard.
    Plan for
    Estimated 45–75 minutes including tracing a simple virtual circuit. Learning estimate, not a verified video runtime.
    Before this
    Understand a closed circuit and power/ground.
    Good to know
    Check rail connectivity on the actual breadboard later; do not assume rail labels or both sides imply electrical connections.
    Checked
    2026-10-20
  • GuideBeginner

    Understand sensor errors (opens in a new tab)

    Learn why raw readings and accurate measurements differ.

    Adafruit · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    Adafruit: Calibrating Sensors
    Start here
    Compare an offset error with a scale error using invented readings.
    Account
    None to read; account only for optional favorites.
    Hardware
    No hardware to learn the concepts or use synthetic readings. Real calibration later needs an appropriate reference.
    Plan for
    Estimated 1–2 hours with a synthetic offset/scale correction exercise. Learning estimate, not a verified video runtime.
    Before this
    Know what a sensor reading represents; basic arithmetic.
    Good to know
    Simulation and synthetic data do not prove real sensor accuracy. Skip hot/cold or hazardous physical experiments in this beginner path.
    Checked
    2026-10-20

03

Write the firmwareMake your virtual gadget respond predictably.

  • Beginner
  • Estimated 8–12 hours · self-paced
What you’ll learn

Start: Run an ESP32 MicroPython example in Wokwi.

  • Read inputs and drive an indicator with MicroPython.
  • Use named states and a non-blocking loop.
  • Handle reset and missing input deliberately.

Before this: circuits

Circuit sketch → firmware

Use AI as a study partner: Ask AI to suggest missing state transitions and failure cases. Compile/run the code and replay those cases; generated behavior is not evidence.

Start with this lesson

  • DocumentationBeginner

    Simulate an ESP32 (opens in a new tab)

    Run MicroPython on a virtual microcontroller.

    Wokwi · Free personal projects · No account to read · No hardware purchase

    Free projects are public. Keep code and data non-sensitive.

    Access & lesson details
    Full title
    Wokwi: ESP32 Simulation
    Start here
    Open the linked MicroPython template and change Blink.
    Account
    Documentation/examples are public. An account is useful for keeping a continuing project; exact anonymous-save limits were not live-tested.
    Hardware
    No physical ESP32 required.
    Plan for
    Estimated 2–4 hours for Blink, a button, serial output, and one modification. Learning estimate, not a verified video runtime.
    Before this
    Basic variables, loops, functions, and circuit connections.
    Good to know
    Bluetooth is not simulated. Timing/peripherals are incomplete approximations; successful simulation is not a hardware pass.
    Checked
    2026-10-20
More ways to learn 4 resources
  • DocumentationBeginner

    Try Arduino later (opens in a new tab)

    Explore the optional C++ route for timing and buttons.

    Arduino · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    Arduino: Built-in Examples
    Start here
    Read Blink Without Delay; keep its board assumptions separate.
    Account
    None to read. Use the simulator's own account rules if saving a virtual build.
    Hardware
    Use a simulated Arduino Uno for these beginner examples; no purchase needed.
    Plan for
    Estimated 3–5 hours for the selected examples and one combined sensor monitor. Learning estimate, not a verified video runtime.
    Before this
    Basic programming and simple circuits; Arduino examples use C++ syntax.
    Good to know
    Board pins and voltage assumptions differ from ESP32. Do not copy Arduino Uno wiring onto ESP32 without checking the board documentation.
    Checked
    2026-10-20
  • DocumentationBeginner

    Add a virtual sensor (opens in a new tab)

    Extend your gadget with simulated temperature and humidity.

    Wokwi · Free personal projects · No account to read · No hardware purchase

    Free projects are public. Keep code and data non-sensitive.

    Access & lesson details
    Full title
    Wokwi: DHT22 Temperature and Humidity Sensor
    Start here
    Change one simulated reading and inspect the logged value.
    Account
    Public read access; account useful for ongoing saved projects.
    Hardware
    No hardware required.
    Plan for
    Estimated 1–2 hours to read values and add a threshold indicator. Learning estimate, not a verified video runtime.
    Before this
    Basic digital input/output and serial printing.
    Good to know
    For the Arduino-on-ESP32 example, Wokwi specifically recommends the DHT sensor library for ESPx. Its SDA label denotes this sensor's data pin; do not assume the device uses I2C.
    Checked
    2026-10-20
  • DocumentationIntermediate

    Control pins with Python (opens in a new tab)

    Use digital inputs, outputs, and analog readings.

    MicroPython · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    MicroPython: Quick Reference for ESP32
    Start here
    Read the Pin and ADC examples that match your runtime.
    Account
    None to read.
    Hardware
    Use Wokwi for supported virtual peripherals first; physical flashing requires a compatible board later.
    Plan for
    Estimated 2–4 hours for selected GPIO, timing, and ADC examples. Learning estimate, not a verified video runtime.
    Before this
    Python functions/loops and the Wokwi ESP32 MicroPython template.
    Good to know
    The latest URL is the development branch. Match docs to stable firmware/runtime; not all peripherals are simulated. ESP32 uses 3.3 V logic: do not feed GPIO with Uno 5 V wiring; physical hardware must follow the exact board’s pin/voltage limits.
    Checked
    2026-10-20
  • DocumentationIntermediate

    Keep the loop responsive (opens in a new tab)

    Measure elapsed time without freezing the button input.

    MicroPython · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    MicroPython: time, ticks_ms and ticks_diff
    Start here
    Replace one long sleep with ticks_ms and ticks_diff.
    Account
    None to read.
    Hardware
    Wokwi simulation only; no board needed.
    Plan for
    Estimated 1–2 hours to replace a long blocking delay with a responsive scheduling loop. Learning estimate, not a verified video runtime.
    Before this
    Python loops, conditionals, and variables; a running Wokwi MicroPython example.
    Good to know
    Use ticks_diff rather than plain subtraction on tick counters. Keep each loop iteration short; a long sensor call can still block. Select docs matching the runtime version.
    Checked
    2026-10-20

04

Shape the enclosureCreate a box that fits the parts and can be opened.

  • Beginner
  • Estimated 6–10 hours · self-paced
What you’ll learn

Start: Sketch the board, connector, and lid before opening CAD.

  • Create a dimensioned sketch and a solid model.
  • Leave access for connectors, wires, and a removable lid.
  • Record assumed dimensions and what still needs a real fit check.

Before this: embedded

Sketch → CAD → preliminary BOM

Use AI as a study partner: Ask AI to turn your dimensions into a design checklist. Check dimensions in CAD and mark physical fit as unverified until tested.

Start with this lesson

  • CourseBeginner

    Make your first enclosure (opens in a new tab)

    Combine simple shapes into a removable-lid box.

    Autodesk Tinkercad · Free learning access · Account to create · Browser only

    Access & lesson details
    Full title
    Tinkercad: Learn 3D Design
    Start here
    Practice aligning a solid box and a hole.
    Account
    Account/sign-in for creating and saving designs; private by default according to official guide.
    Hardware
    Browser only; no 3D printer required for the design milestone.
    Plan for
    Estimated 2–4 hours for basics and a rough two-part box. Learning estimate, not a verified video runtime.
    Before this
    Basic mouse/trackpad navigation; no CAD experience.
    Good to know
    Simple geometry is a good first step, but more complex dimension-driven revisions are easier in parametric CAD. Commercial licensing is not asserted here.
    Checked
    2026-10-20
More ways to learn 3 resources
  • CourseBeginner

    Explore parametric CAD (opens in a new tab)

    Make dimension-driven designs that are easier to revise.

    Onshape · Free non-commercial plan · Account; public designs · Browser only

    Free-plan designs are public and non-commercial. Do not use confidential designs.

    Access & lesson details
    Full title
    Onshape: CAD Basics Learning Pathway
    Start here
    Read the public-design warning before choosing this optional route.
    Account
    Onshape sign-in required for hands-on documents and Learning Center access/progress.
    Hardware
    Browser/internet only; no printer required.
    Plan for
    Estimated 5–8 hours with practice; work through the beginning rather than rushing every lesson. Learning estimate, not a verified video runtime.
    Before this
    None; intended for new CAD learners.
    Good to know
    Warning: Free-plan models are PUBLIC and can be viewed and copied. Do not upload confidential, client, employer, or commercially sensitive designs. Education eligibility must be checked separately.
    Checked
    2026-10-20
  • DocumentationIntermediate

    Hollow out a solid (opens in a new tab)

    Create an enclosure cavity with the Shell feature.

    Onshape · Free learning access · Public-design practice account · No hardware purchase

    Free-plan designs are public and non-commercial. Do not use confidential designs.

    Access & lesson details
    Full title
    Onshape Help: Shell
    Start here
    Try Shell on a simple box before adding cutouts.
    Account
    None to read; an Onshape account to practice.
    Hardware
    Browser only.
    Plan for
    Estimated 45–90 minutes including making and inspecting a box cavity. Learning estimate, not a verified video runtime.
    Before this
    Can sketch and extrude a solid part in Onshape.
    Good to know
    Shell is one modeling operation, not a complete enclosure engineering course. Free-plan practice models are public; wall and fit choices still need physical validation.
    Checked
    2026-10-20
  • GuideBeginner

    Design for a real print (opens in a new tab)

    Consider walls, clearances, overhangs, and orientation.

    Prusa Research · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    Prusa: Modeling with 3D Printing in Mind
    Start here
    Annotate your enclosure with the fit assumptions that need testing.
    Account
    None to read.
    Hardware
    No hardware required for reading/design review; later fit testing requires a real print or dimensional mock-up.
    Plan for
    Estimated 1–2 hours to read and annotate an enclosure design checklist. Learning estimate, not a verified video runtime.
    Before this
    Can make a basic 3D shape; no printer ownership needed.
    Good to know
    There is no universal fit tolerance. Treat printer/material-specific values as examples, then verify the actual process. Buying a printer is unnecessary for this stage.
    Checked
    2026-10-20

05

Add useful AITrain a simple classifier and test where it fails.

  • Intermediate
  • Estimated 8–14 hours · self-paced
What you’ll learn

Start: Train a two-object classifier in your browser.

  • Separate training examples from held-out tests.
  • Measure per-class mistakes and test unfamiliar inputs.
  • Use an unknown state and record model limitations.

Before this: foundations; embedded

Inputs → model → decision contract

Use AI as a study partner: Ask AI to challenge your dataset split and model-card claims. Preserve actual test counts and inspect errors; never invent performance results.

Start with this lesson

  • ToolBeginner

    Train a tiny classifier (opens in a new tab)

    Teach the browser to recognize your own everyday objects.

    Google Creative Lab · Free learning access · No account for basics · Browser; own image files

    Access & lesson details
    Full title
    Teachable Machine
    Start here
    Use two harmless object classes and a separate other/background class.
    Account
    Basic local train/test is presented without a required sign-in. Optional Google Drive saving uses a Google account. No account was created or tested during verification.
    Hardware
    Existing computer and modern desktop browser. Use your own non-sensitive image files; a webcam is optional, not necessary. No development board.
    Plan for
    Estimated 60–90 minutes for the first classifier Learning estimate, not a verified video runtime.
    Before this
    Use a desktop browser and organize a few image files; no coding or ML background required.
    Good to know
    Google says examples and training stay on-device unless the learner chooses Google Drive saving. Local processing does not by itself mean the site and exported project will load without internet; test that separately. Browser training is not microcontroller deployment.
    Checked
    2026-10-20
More ways to learn 4 resources
  • CourseBeginner

    Understand model mistakes (opens in a new tab)

    Learn train/test separation, thresholds, and confusion matrices.

    Google for Developers · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    Machine Learning Crash Course
    Start here
    Start with Classification and the visual examples.
    Account
    No account needed for public lessons. Optional Colab notebook work may require Google sign-in; no paid Colab plan is needed for the conceptual path.
    Hardware
    Existing computer and browser; no board or separate GPU. The course uses browser-based Colab for optional programming exercises.
    Plan for
    Estimated 3–4 hours for the selected concepts and exercises; not the entire course Learning estimate, not a verified video runtime.
    Before this
    For the full course: variables, graphs, algebra, basic statistics and programming, ideally Python. NumPy/pandas prework is recommended for coding exercises. A new coder can start with the selected visual lessons and defer notebooks.
    Good to know
    Do not require the complete course or calculus before building the first toy classifier.
    Checked
    2026-10-20
  • DocumentationIntermediate

    What changes on a tiny device? (opens in a new tab)

    Learn why a browser model may not fit a microcontroller.

    Google AI Edge · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    LiteRT for Microcontrollers
    Start here
    Read Workflow and Limitations; do not start by buying a board.
    Account
    None for reading.
    Hardware
    None for this reading. The hardware examples are deferred; executing them requires an appropriate target and toolchain.
    Plan for
    Estimated 30–45 minutes Learning estimate, not a verified video runtime.
    Before this
    Know what a model, training and inference are. C++ and embedded basics are needed only if implementing the examples later.
    Good to know
    The official overview says the runtime targets 32-bit platforms, uses a low-level C++ API and does not support on-device training. It is not a turnkey Teachable Machine-to-board tutorial.
    Checked
    2026-10-20
  • PaperDeep dive

    Paper: smaller vision models (opens in a new tab)

    Explore an early accuracy-versus-compute design tradeoff.

    Howard et al., author paper on arXiv (2017) · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
    Start here
    Read the abstract and inspect one accuracy-versus-compute figure.
    Account
    None.
    Hardware
    None; no paper reproduction required.
    Plan for
    Estimated 20–30 minutes for a guided skim Learning estimate, not a verified video runtime.
    Before this
    Basic idea of a neural network and tradeoffs between model size, latency and accuracy. Convolution math is optional for this skim.
    Good to know
    Historical foundational paper, not a claim that this architecture is the best current choice or that it fits any given microcontroller.
    Checked
    2026-10-20
  • PaperDeep dive

    Paper: report model limits (opens in a new tab)

    Document what your model is for and where it fails.

    Mitchell et al., FAT* 2019; author paper on arXiv · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    Model Cards for Model Reporting
    Start here
    Borrow a few model-card headings for your own experiment.
    Account
    None.
    Hardware
    None.
    Plan for
    Estimated 20–30 minutes for reading, plus 30–45 minutes for your card Learning estimate, not a verified video runtime.
    Before this
    Have trained or inspected one classifier. No advanced mathematics needed for the reporting idea.
    Good to know
    The curriculum adds offline behavior and manual fallback fields for the physical-product context; these are exercise design choices, not a claim that the paper prescribes those exact fields.
    Checked
    2026-10-20

06

Connect the behaviorsDefine what every event means before networking.

  • Intermediate
  • Estimated 5–8 hours · self-paced
What you’ll learn

Start: Write down the three events your indicator understands.

  • Define event names, fields, units, and versions.
  • Replay lost, stale, duplicated, and invalid messages.
  • Explain MQTT publish/subscribe without depending on a public broker.

Before this: embedded; ai

Modules → event contract → integration

Use AI as a study partner: Ask AI to identify ambiguities in your event contract. Replay malformed, stale, and duplicate messages to check the fixes.

Start with this lesson

  • DocumentationBeginner

    Draw the device behavior (opens in a new tab)

    Define states and transitions before connecting modules.

    Stately · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    What are state machines and statecharts?
    Start here
    Draw idle, active, and unknown, then add reset and timeout events.
    Account
    None for docs or the basic Sketch flow described by Stately. Saving/sharing a permanent Sketch URL requires sign-in; do not use it for this exercise.
    Hardware
    Existing computer or browser; paper tracing is a fully acceptable fallback. No physical device.
    Plan for
    Estimated 45–60 minutes Learning estimate, not a verified video runtime.
    Before this
    Basic if/else logic helps; no library installation is required for reading or sketching states.
    Good to know
    Use the language-independent concepts and a simple diagram; the docs currently expose evolving XState versions. No dependency installation or commitment to a particular XState version is required. Simulation checks the modeled behavior only.
    Checked
    2026-10-20
More ways to learn 3 resources
  • VideoBeginner

    Watch: how MQTT works (opens in a new tab)

    Understand publishers, subscribers, topics, and brokers.

    HiveMQ · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    MQTT Essentials Video Series
    Start here
    Watch Part 1, or use the written companion.
    Account
    No account for the public article. Embedded video availability can depend on browser/region; use the written companion if it does not play.
    Hardware
    Existing browser only.
    Plan for
    Estimated 20–30 minutes for video and a diagram Learning estimate, not a verified video runtime.
    Before this
    Understand a device can send and receive a message; no networking setup required.
    Good to know
    The official HiveMQ page links to its YouTube video; search metadata identified the uploader as HiveMQ. Direct YouTube retrieval failed, so playback was not verified. No broker or paid cloud plan is required to learn the concepts.
    Checked
    2026-10-20
  • ToolBeginner

    Try messages in two tabs (opens in a new tab)

    Explore a shared public broker with invented test data only.

    HiveMQ · Free learning access · No account; public broker · Browser and internet

    Public broker: use invented test data only. Never send credentials or personal data.

    Access & lesson details
    Full title
    Free MQTT broker
    Start here
    Read the public-data warning before opening the browser client.
    Account
    HiveMQ explicitly says its shared public broker needs no account or broker setup. Its separate private/cloud broker signup is not required.
    Hardware
    Existing modern browser and internet connection; two tabs. No board or software installation.
    Plan for
    Estimated 30–45 minutes Learning estimate, not a verified video runtime.
    Before this
    Know broker, client, topic and message. Read the public-data warning first.
    Good to know
    The broker is public and shared. Use only invented labels and numbers, never samples, images, personal identifiers, secrets, private model data or real control commands. Random topics reduce accidental collisions, not provide privacy. Availability and message delivery are not guaranteed. Leave Retain off for this introductory test.
    Checked
    2026-10-20
  • DocumentationIntermediate

    Describe an event contract (opens in a new tab)

    Agree on message fields and allowed values.

    AsyncAPI Initiative · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    Hello world
    Start here
    Write a plain-language contract before trying YAML.
    Account
    No account needed for reading. Studio is publicly accessible; save files locally rather than enabling cloud collaboration. Interactive runtime was not tested.
    Hardware
    Existing browser only; no broker required for writing or validating the description.
    Plan for
    Estimated 30–45 minutes reading and contract design; add 30 minutes for optional Studio validation Learning estimate, not a verified video runtime.
    Before this
    Know an event/message and a channel/topic; reading simple JSON or YAML helps.
    Good to know
    The current Hello world page uses AsyncAPI 3.1.0. Schema validation describes/checks the interface; it does not establish delivery, ordering, electrical safety or application-level correctness.
    Checked
    2026-10-20

07

Prove what worksKeep evidence for successes, failures, and unknowns.

  • Intermediate
  • Estimated 6–10 hours · self-paced
What you’ll learn

Start: Choose one requirement and define its pass/fail test.

  • Map every requirement to a reproducible test.
  • Automate decision-rule checks.
  • Record model errors, simulator limits, and physical checks still required.

Before this: cad; interactions

Prototype → test → revision

Use AI as a study partner: Ask AI to propose tests that could disprove your claim. Run the tests and keep the observed outputs, including failures.

Start with this lesson

  • DocumentationIntermediate

    Test your decision rule (opens in a new tab)

    Make checks repeatable instead of testing by memory.

    Python Software Foundation · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    Python: your first automated tests
    Start here
    Write valid, missing, and out-of-range input tests.
    Account
    None to read.
    Hardware
    None; Python is needed to run examples, in a browser runtime or locally.
    Plan for
    Estimated 1–2 hours for the basic example and your own tests. Learning estimate, not a verified video runtime.
    Before this
    Python functions; basic familiarity with classes.
    Good to know
    Read the Basic example first; skip the long API reference. In a browser, use an explicit test suite and TextTestRunner rather than relying on command-line discovery.
    Checked
    2026-10-20
More ways to learn 3 resources
  • GuideIntermediate

    Turn a goal into a test (opens in a new tab)

    Link each requirement to an observable result.

    NASA · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    NASA: write a testable requirement
    Start here
    Read Appendix C, then write one pass/fail requirement.
    Account
    None to read.
    Hardware
    None.
    Plan for
    Estimated 45–90 minutes for Appendices C–E. Learning estimate, not a verified video runtime.
    Before this
    A written user need and a prototype.
    Good to know
    Selected appendices of a professional systems-engineering handbook. Scale the method down to five requirements; the full handbook is optional.
    Checked
    2026-10-20
  • DocumentationIntermediate

    Inspect digital timing (opens in a new tab)

    Capture a virtual signal when logs are not enough.

    Wokwi · Free learning access · No account to read · Optional local waveform viewer

    Access & lesson details
    Full title
    See your simulated digital signals
    Start here
    Record one button-to-indicator transition.
    Account
    None to read; saving simulator projects may require a Wokwi account.
    Hardware
    No physical analyzer needed; Wokwi simulates it.
    Plan for
    Estimated 1–2 hours for one capture. Learning estimate, not a verified video runtime.
    Before this
    A working Wokwi circuit; digital pin basics.
    Good to know
    The browser simulator can export a VCD trace. Viewing detailed waveforms may require a separate local viewer such as PulseView or GTKWave. Virtual signals do not establish physical voltage or timing margins.
    Checked
    2026-10-20
  • PaperDeep dive

    White paper: check the claims (opens in a new tab)

    Read an embedded-AI performance claim critically.

    Arm / Tanuj Arora · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    How to read an embedded-AI white paper
    Start here
    List the workload and hardware behind one claimed speedup.
    Account
    None to read.
    Hardware
    None.
    Plan for
    Estimated 45–90 minutes for a guided skim. Learning estimate, not a verified video runtime.
    Before this
    Inference, memory, latency, and microcontroller basics.
    Good to know
    Vendor white paper: Accelerating Machine Learning Compute for the IoT and Embedded Market. It discusses particular Arm technologies; it is not a neutral benchmark or a required shopping list. PDF downloads directly and currently redirects to Arm’s document storage.
    Checked
    2026-10-20

08

Make it reproducibleFinish a learning release with files, instructions, and limits.

  • Intermediate
  • Estimated 8–12 hours · self-paced
What you’ll learn

Start: Follow your own README from a clean folder.

  • Package source, editable CAD, BOM, and assembly instructions.
  • Version the model, firmware, event contract, and test evidence.
  • Explain reuse permissions and scope before publishing.

Before this: verification

Tested prototype → documented release candidate

Use AI as a study partner: Ask AI to review your README for missing steps. Follow it from a clean folder and verify every part number and third-party license.

Start with this lesson

  • DocumentationBeginner

    Write the quick start (opens in a new tab)

    Help a second builder reproduce your scoped demo.

    GitHub Docs · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    Write a README someone can follow
    Start here
    Write purpose, setup, replay steps, and known limits.
    Account
    None to read or draft locally; GitHub account needed to publish on GitHub.
    Hardware
    None.
    Plan for
    Estimated 30–60 minutes to read and draft your README. Learning estimate, not a verified video runtime.
    Before this
    A working or clearly scoped prototype.
    Good to know
    Publishing is optional. A local folder or ZIP is enough for the learning milestone.
    Checked
    2026-10-20
More ways to learn 3 resources
  • GuideIntermediate

    Package the design files (opens in a new tab)

    Keep source, parts, and assembly notes together.

    Open Source Hardware Association · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    Package an open hardware project
    Start here
    List what another builder would need to modify your project.
    Account
    None to read.
    Hardware
    None.
    Plan for
    Estimated 1–2 hours for the selected documentation sections. Learning estimate, not a verified video runtime.
    Before this
    CAD, firmware, and a preliminary bill of materials.
    Good to know
    Read Original Design Files, Bill of Materials, Software and Firmware, and Instructions. Decide licensing separately; this curriculum does not publish or license your work for you.
    Checked
    2026-10-20
  • DocumentationIntermediate

    Version the release (opens in a new tab)

    Connect the package to a specific revision.

    GitHub Docs · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    Create a versioned release
    Start here
    Draft a version name and release notes locally.
    Account
    None to read; a GitHub account and repository write permission are needed to publish.
    Hardware
    None.
    Plan for
    Estimated 30–60 minutes for a draft release. Learning estimate, not a verified video runtime.
    Before this
    Basic Git history and a complete project folder.
    Good to know
    Draft the release notes locally first. No repository, upload, or public release is required by the course.
    Checked
    2026-10-20
  • DocumentationIntermediate

    Check reuse permissions (opens in a new tab)

    Record asset origins before sharing your work.

    GitHub Docs · Free learning access · No account to read · No hardware purchase

    Access & lesson details
    Full title
    Understand repository licensing
    Start here
    List the license for each third-party file or dependency.
    Account
    None to read.
    Hardware
    None.
    Plan for
    Estimated 30–60 minutes for a first pass. Learning estimate, not a verified video runtime.
    Before this
    A list of your own files and third-party dependencies.
    Good to know
    Software, hardware designs, data, and documentation may need different licenses. This is orientation, not legal advice. Do not assume that public source code is automatically reusable.
    Checked
    2026-10-20

Bring the pieces together

Desk Signals: a modular AI-enabled indicator

A harmless desk prototype that classifies your own object images and maps results to a clear indicator state.

  • 01Input
  • 02Model
  • 03Decision
  • 04Output
  • 05Enclosure
  • 06Evidence

Browser model → saved event trace → replayed ESP32 simulator → CAD enclosure → documented release candidate.

Explore the complete build
  • Input: Personal object images, button input, and clearly labeled synthetic test events.
  • Model: Browser inference, held-out evaluation, and a documented unknown state.
  • Decision: A deterministic state machine with stale-event rejection and manual reset.
  • Output: A virtual indicator first; an optional low-voltage LED later.
  • Enclosure: Editable CAD with connector access and explicit fit assumptions.
  • Evidence: Versioned requirements, event traces, tests, and limitations.

Keep a trail from idea to release

  1. Idea: One-sentence need, intended learner, and exclusions.
  2. Requirements: Five numbered, observable acceptance criteria.
  3. Sketch / CAD: Block diagram, circuit sketch, editable enclosure, and dimension assumptions.
  4. BOM: Part identifiers, quantities, ratings, datasheet links, alternatives, and unverified prices left blank.
  5. Assembly: Simulator diagram and an optional physical assembly plan with power-off wiring checks.
  6. Test: Requirement-to-test matrix, model results, traces, failures, and unperformed physical checks.
  7. Release: Versioned source package, README, model card, licenses/attributions, and known limits.

Ready to share when

  • The learner can explain the input, model, decision, and output modules.
  • The same saved event trace reproduces the same indicator states.
  • Unknown, malformed, stale, and duplicate events have defined behavior.
  • A new learner can follow the README without guessing missing steps.
  • Every result is labeled as observed in software, observed in simulation, or tested on hardware.

Optionally reproduce the indicator on a compatible USB-powered development board after reviewing its exact wiring, logic levels, and current limits. Keep the model in the browser unless a separate on-device conversion and evaluation step succeeds.

  • Educational prototype only; no safety, medical, security, or production-readiness claims.
  • No claim that a browser model automatically deploys to a microcontroller. Model size, supported operations, memory, latency, and accuracy must be checked separately.
  • No built-in live bridge between the browser model and Wokwi is assumed; manual event replay is the baseline.
  • No mains wiring, battery construction or charging circuits, heaters, motors, or other hazardous actuation.
  • A model score is not a calibrated probability; an unknown threshold reduces some errors but does not guarantee detection of unfamiliar inputs.
Try the lab’s interaction sketch

Before you start

Keep it small.
Keep it testable.

Free reading does not always mean a free tool or account-free authoring. Check each resource’s access details before you commit.

Access, safety & source notes

Access

  • The default route uses a desktop-class browser and no purchased hardware. An internet connection is needed to load tools and learning material.
  • All selected reading and videos are free to access at the checked links. Some authoring, saving, grading, or publishing features require accounts; paid certificates and upgrades are not part of this path.
  • Public/free authoring tools may expose project files. Use non-sensitive practice data and check visibility before saving.
  • Onshape Free is for non-commercial work and makes documents public. Use an appropriate private/local CAD workflow for confidential or commercial designs.
  • A local folder is an acceptable release artifact. Nothing in this curriculum requires you to publish, upload, or buy anything.

Safe experiments

  • Start in a simulator. For optional physical work, use compatible USB-powered low-voltage development boards and verify the exact pinout, logic voltage, and component ratings.
  • Disconnect power before changing wiring. A simulator cannot prove real electrical safety, current limits, thermal behavior, radio reliability, or mechanical fit.
  • Avoid mains electricity, battery fabrication or charging circuits, high-current loads, motors, heaters, and safety-critical or medical use cases.
  • Use your own non-sensitive object images. Camera use is optional; avoid recording people or private surroundings.
  • Public MQTT brokers are shared and untrusted. Use invented data only and do not connect them to consequential actuators.

Platform conditions

Wokwi

Free Community tier supports unlimited simulations and public projects. Documentation calls it free for personal use; commercial/professional work has paid plans. Free projects are visible to everyone. Unlisted projects, custom-library uploads and the private IoT gateway are paid features. Do not put credentials or confidential code in public projects; avoid networking in the first labs.

Official source 1 ↗ · Official source 2 ↗

Tinkercad

Free browser app; sign-in is used to create and keep designs. Autodesk's official guide says designs are private by default. Its current free-CAD FAQ describes Tinkercad as intended for educational and personal projects; this research does not establish a blanket commercial-use license. Review applicable terms before business use. Do not confuse Tinkercad with Fusion's separate personal-use or education licenses.

Official source 1 ↗ · Official source 2 ↗ · Official source 3 ↗

Onshape

Free plan is for non-commercial work and public, open-source designs. Other users can view and copy those documents. It cannot create private documents. Use only throwaway learning models or designs you intentionally want public. Education plans have separate eligibility and restrictions; do not assume eligibility. Free learning resources exist, but not all Learning Center content is free.

Official source 1 ↗ · Official source 2 ↗ · Official source 3 ↗

How to use this path

  • Start with the single highlighted resource and the build for each stage.
  • Open the remaining resources only when you need a concept or want more depth.
  • For a paper: read the abstract and conclusion, inspect one figure, and write down the claim, evidence, and limitation before tackling the mathematics.
  • Use AI to explain an error, suggest a test, or review a draft. Verify generated wiring, pins, dimensions, part numbers, citations, and claims against primary sources. Never treat generated text as test evidence.

Curated by Harness Labs for learners building across code, electronics, form, and AI. Sources are linked directly; videos and papers open on their own sites. No external media is embedded here.

Links and source content were checked on 2026-10-20. Pyodide arithmetic was live-tested. Course accounts, most interactive tools, video playback, networking, CAD exports, model training, and physical builds were not end-to-end tested. Source-specific checks appear with each resource. Access and pricing can change.

Links last checked 2026-10-20. Access and pricing can change. Time labels are editorial estimates. Finishing this path is a starting point for further practice, not certification or proof of expertise.

Download the full resource list (JSON)

Suggest a resource or share a build