LEARN BY CHANGING A WORKING CIRCUIT

Starter examples

Each starter enters through the same project, pin, and electrical validation as a local file.

QUICK START

Choose here, load safely in the workbench

Open the workbench, choose Project & files, then Choose example. The workbench keeps its existing unsaved-change check; this page never replaces a draft automatically.

Thermostat boundary test

Build the exact A1 temperature, D2 active-low enable and current-limited D13 indicator circuit. Run four reset-isolated virtual-time scenarios—below, equal, above and disabled—then load the known-bad <= firmware to prove the equality defect is caught from executed D13 and matching UART evidence.

Open workbench → Project & files → Choose example

Ground reference input

Learn: why a declared 0 V reference makes input levels meaningful. Try: build, run and press the button. Observe: D2, D13 and Serial. Limits: the symbol is topology authority, not an executable peripheral.

Open workbench → Project & files → Choose example

Ground and 5 V references

Learn: why 0 V common and a fixed source are distinct. Try: build, run and press the D2 button while the source holds D3 HIGH. Observe: both states independently in compiled Serial output. Limits: AVR-only topology projection, not a bench supply or current/fault model.

Open workbench → Project & files → Choose example

DHT11 temperature and humidity

Learn: decode a timed five-byte digital sensor response. Try: move temperature and humidity independently. Observe: D4 timing and checksum-validated TEMP_C/HUMIDITY_RH Serial output. Limits: integer AVR-only protocol model without physical accuracy, noise, cable or latency effects.

Open workbench → Project & files → Choose example

DS18B20 OneWire temperature

Learn: use reset/presence, command and read slots on one bidirectional line. Try: move temperature through positive and negative values. Observe: D3 and CRC-validated signed TEMP_C Serial output. Limits: one externally powered AVR-only device without parasite power, multidrop addressing, conversion latency or physical thermal effects.

Open workbench → Project & files → Choose example

Four-digit multiplex

Learn: eight shared current-limited segments and four active-low digit selects. Try: run the deliberately slowed 1-2-3-4 scan. Observe: the retained visible digits and Serial DISPLAY 1234. Limits: ideal sampled AVR multiplex state without driver, package-current or refresh-rate fidelity.

Open workbench → Project & files → Choose example

Traffic light sequence

Learn: coordinate three independent current-limited outputs. Try: run red, red+amber, green and amber. Observe: D3, D5, D6 and Serial phase labels. Limits: ideal AVR indicator without physical optics, load, fault or road-signal timing compliance.

Open workbench → Project & files → Choose example
See the full learning path

Every working example names one small, supported next step. The same guidance appears in the searchable chooser cards.

  1. Blink LEDNext: Load Button input to add a user-controlled digital input.
  2. Button inputNext: Load ADC dial to compare a digital input with a measured analogue value.
  3. ADC dialNext: Load Trimmer calibration to compare a set-and-retain adjustment with a rotary control.
  4. Trimmer calibrationNext: Load PWM fade to turn a measured range into a variable output.
  5. PWM fadeNext: Load PWM pulse to compare exact duty-cycle boundaries.
  6. PWM pulseNext: Load Temperature display to combine analogue input with several outputs.
  7. Temperature displayNext: Load Thermostat boundary test to turn the threshold into saved scenarios and requirements.
  8. Thermostat boundary testNext: Open Scenario timeline to change one timed input and rerun its requirement after a fresh Build.
  9. Ground reference inputNext: Load SPST toggle input to keep an input state without holding a button.
  10. Ground and 5 V referencesNext: Load SPST toggle input to replace a momentary ground path with a maintained contact.
  11. SPST toggle inputNext: Load SPDT input selector to choose between two explicit sources.
  12. SPDT input selectorNext: Load Quadrature encoder to observe ordered changes across two inputs.
  13. Analogue light levelNext: Load Digital light threshold to compare continuous and thresholded sensing.
  14. Digital light thresholdNext: Load Thermostat boundary test to express a threshold as an executable requirement.
  15. DHT11 temperature and humidityNext: Load DS18B20 OneWire temperature to compare a fixed timed payload with command and read slots.
  16. DS18B20 OneWire temperatureNext: Load DHT11 to compare OneWire scratchpad access with a timed climate payload.
  17. Logical active buzzerNext: Load Traffic light sequence to coordinate three current-limited outputs.
  18. Traffic light sequenceNext: Load Seven-segment digits to coordinate a larger group of outputs.
  19. Seven-segment digitsNext: Load Four-digit multiplex to coordinate shared segments and digit selection.
  20. Four-digit multiplexNext: Load PWM pulse to compare switched outputs with duty-cycle output.
  21. Quadrature encoderNext: Load Thermostat boundary test, then open Scenario timeline to author inputs within the supported thermostat subset.
  22. GPIO0 on + UARTNext: Load GPIO0 off + UART to test the opposite output boundary.
  23. GPIO0 off + UARTNext: Use Download copy and Open local project to verify data-only recovery before changing source.
  24. GPIO2 on + SerialNext: Load GPIO2 off + Serial to test the opposite model-output boundary.
  25. GPIO2 off + SerialNext: Use Download copy and Open local project to verify data-only recovery before changing source.
  26. PB0 on + USART3Next: Load PB0 off + USART3 to test the opposite observed-output boundary.
  27. PB0 off + USART3Next: Use Download copy and Open local project to verify data-only recovery before changing source.

Make it yours

Open a starter from the workbench, move parts without detaching wires, edit firmware, rebuild, and save the canonical project file on your computer. There is no account or cloud project store.

First projects for the narrow controllers

Choose Architecture / family, then the exact Tested controller / board. Each group currently has one tested profile: ATmega328P, RP2040 Pico, ESP32-C3 development module or STM32F429ZI. Keep its complete source template and edit only the values named below; these are bounded lessons, not broad family, board or SDK support.

RP2040 Pico · GPIO0 light

Goal: drive an external LED and print one UART0 marker.

Wire: GP0 physical pin 1 → series resistor → LED anode; LED cathode → GND physical pin 3.

Edit: change only GPIO0 level 0/1 and the 1–24 character uppercase UART text in the fixed main.c.

Expect: the rp2040js worker reports GPIO0, the ideal LED follows the accepted circuit, and UART0 shows your marker.

Save/Open: the download ends in .intent-mcu.json. Open restores source, parts, properties, layout and wires, but requires a fresh Build.

ESP32-C3 · GPIO2 model and QEMU UART

Goal: boot compiled flash in actual QEMU and compare its UART with the separately labelled GPIO2 LED model.

Wire: GPIO2 J1 pin 4 → series resistor → LED anode; LED cathode → GND J1 pin 6.

Edit: change only GPIO2 OUTPUT/INPUT, HIGH/LOW and the uppercase marker in the fixed sketch.

Expect: QEMU supplies CPU/UART/reset evidence. The LED comes from executed register writes in the project model; QEMU pin state is not claimed.

Save/Open: the local .intent-mcu.json common envelope contains project data only. Open retires flash/runtime authority until Build and Run succeed again.

STM32F429ZI · PB0 and USART3

Goal: compile the strict C11 source and observe PB0 plus USART3 in actual Renode.

Wire: PB0 CN11 pin 34 → series resistor → LED anode; LED cathode → GND CN11 pin 19.

Edit: change only PB0 HIGH/LOW and the uppercase USART3 marker in the fixed main.c.

Expect: Renode reports PB0 and USART3 twice across reset replay; the external LED path remains an ideal teaching rendering.

Save/Open: the local .intent-mcu.json common envelope excludes ELF and runtime state. Open requires a fresh Build before Run or Reset.

Paired working examples

Each narrow-controller workbench now offers two visible authored-data cards: output HIGH with one UART marker, and output LOW with a different marker. Loading a card never restores firmware or runtime state. Build and Run must succeed again before the LED or terminal result is authoritative. Button, ADC and PWM remain explicitly unavailable on these three narrow public profiles.

Repair after deleting a part

  1. Save the incomplete project and Open it again if you want to prove history-free recovery.
  2. In Supported parts, add the one missing resistor or LED. The fixed stable ID returns, with no cable.
  3. Activate two compatible free named pins for each missing connection. Unsafe resistance/colour pairs reject without changing the accepted draft.
  4. When the circuit state says accepted, Build fresh and Run. Old executable authority never returns from the file.