HELP · LOCAL-FIRST

Help and limitations

The workbench keeps project ownership with the learner and rejects ambiguous electrical plans.

QUICK HELP

Start with the task in front of you

Short answer: finish validated wiring before Build; save a downloaded project copy for durable storage; and treat the simulator as a bounded teaching tool, not physical-board or safety evidence.

Where is my project saved?

On all four profiles, Download copy requests one deterministic .intent-mcu.json download. Your browser or operating system chooses whether and where it is stored; the workbench cannot confirm a durable disk write. Open project reads a file you choose through the reliable browser file input. A supported secure desktop browser also shows optional Open & connect, Save connected file and Save copy actions. Their file handle exists only in the current browser session, and the workbench reports success only after write and close complete. Browser recovery is separate, local to that browser and not a cloud backup.

How does optional local version history work?

It is off by default and does not open its browser database or capture source until you explicitly enable it and choose Save local version. It keeps at most 3 or 10 canonical project files across all four profiles at this exact site, with a strict 1 MiB limit for each version. Replacing an oldest version, reducing retention or deleting records always requires confirmation. Turning history off preserves retained versions and the selected limit but stops opening the database. Open validates the exact project, profile, hash and model-library identity, uses the normal unsaved-change decision and clears file, build, runtime and result authority. Invalid local data can never be opened; when its original project bytes remain recoverable, they may only be downloaded as an inert raw copy. This browser-only convenience is not uploaded, encrypted by the Lab or a backup, and browser clearing, eviction, private mode or device loss can remove it.

Why is Build blocked?

The circuit and firmware pin use must agree. Check diagnostics for missing ground, reversed polarity, absent current limiting, reused pins, output conflicts, an unsupported topology, or a cable endpoint that is still being chosen. Finish the cable or press Escape, then Build fresh.

What leaves the browser when I choose Build?

Your saved project stays in your chosen local file or local browser recovery. Build is different: the bounded source for the active profile is submitted to this Lab's same-origin isolated compiler service for one temporary build job. The service accepts no project-selected command, package, hook or network download; temporary source and job output follow the bounded cleanup lifecycle. Successful user firmware is returned only through that short-lived private job and is not kept in a shared artifact cache, so an identical later Build compiles again and may take the same time. Pinned tool images and curated public examples remain reusable and separate. The service does not create a cloud project, account or durable project store, and Open never restores executable authority.

Fair access: AVR/Pico allow one global build, one per visitor, four queued jobs, six submissions per minute and 24 temporary jobs. ESP32-C3 allows eight temporary sessions, one per visitor, one build and one run at a time. STM32 allows one build, one run and 12 requests per visitor per minute. When a limit is reached, the existing status message gives an advisory wait in whole seconds. Waiting does not reserve capacity and a retry needs a fresh request; the browser never retries automatically.

Optional experiment-session budget: Manual, Quick and bounded actions use the same profile-owned gate, but the current-tab budget ledger is separate from the service limits above. It has fixed aggregate Build, Run, scenario-attempt and worker wall-clock ceilings. AVR, Pico, ESP32-C3 and STM32 have reviewed owner-bound completion evidence. STM32's runtime evidence is final PB0 and USART3 from Renode instruction order; it is not physical timing, and the external LED remains an ideal teaching rendering. Exhaustion returns unresolved items and never retries automatically.

What electrical faults are checked?

The Lab rejects faults its selected teaching profile can represent: a direct named supply-to-ground short, known opposing digital outputs, a declared supply-role mismatch, missing ground, reversed LED polarity, missing series resistance and ideal-model LED overcurrent. Diagnostics name a corrective action. These bounded checks are not a general circuit solver, physical-damage prediction or safety certification; arbitrary cross-controller voltage wiring remains unavailable.

How do compiler diagnostics open the right line?

Each controller keeps diagnostics bound to the exact profile, source revision and filename that produced them. A diagnostic with a trustworthy current line is a keyboard-operable Go to button that focuses and selects that location without editing the source. Missing, empty, out-of-range, internal-path, stale-source and cross-profile locations remain plain text and cannot navigate. After fixing the source, use a fresh Build. See the exact language, API, header and library limits.

How do I repair a bounded controller cable?

For Pico, ESP32-C3 or STM32, delete a cable and activate two compatible free named pins to recreate it. To move one end, select the cable, choose Reconnect endpoint, choose the connected endpoint, then its compatible free target. Save/Open retains the authored topology but never restores executable authority.

How do branches and whole nets differ?

On an AVR graph with an explicit junction, select the exact branch section before choosing Reconnect selected branch or Delete selected branch. Other endpoints and the junction stay attached. Delete whole net is separate and removes every branch in that net. Each accepted operation is one complete Undo/Redo transaction; a rejected or stale operation changes nothing. A crossing without a junction dot is never a connection.

Can I edit every connection without using the canvas?

Yes. Open Connections in Inspector to read every net, named pin and endpoint as text. Keyboard users can select a connection, delete it, explicitly reconnect one endpoint, or choose compatible free pins with From and To. The same strict revision, pin and electrical checks used by the canvas validate each change; rejected or stale actions change nothing. Escape or Cancel exits connection mode, accepted edits retain focus, and Save/Open stores only the authored topology—not accessibility state or executable authority.

What does Detailed change review mean?

After the existing X05 parser accepts a proposal against the exact current project, Detailed change review shows two different kinds of evidence. The summary reports deterministic typed authored facts owned by the validated project schema: component properties with catalogue units, positions, exact net endpoints, source-file counts and saved test or expectation changes. The source section is a complete literal source-file difference, including whitespace and final-newline state. It deliberately does not infer what source code means or what firmware will do. The detail view cannot Apply, Build, Run or decide a verdict; only the existing separately labelled X05 Apply action can install the revalidated authored candidate, after which a fresh Build is required. If the proposal text or current project changes, the review clears or rejects instead of showing stale rows.

How do I visibly select one exact branch?

In Inspector, choose the shared net from Selected net. Under Route sections, activate the entry named for the target pin, such as ground-reference-branch.REF · automatic route. The exact canvas section gains a bright cyan highlight, Inspector says Selected branch, and the member list repeats the named endpoint. You can also click the cable beside that pin or Tab to its labelled section. Only then use Reconnect selected branch or Delete selected branch; Delete whole net remains separate.

How do I arrange or recolour a cable?

On Pico, ESP32-C3 or STM32, select the cable, choose an editable section, then use Add bend, Nudge − or Nudge +. Choose one of the six fixed colours from Cable colour. Escape cancels section selection; Undo/Redo restores one accepted layout edit at a time. A crossing stays electrically separate, while only a declared junction dot means connected. Distinct nets never share a positive-length parallel or collinear run. Unsafe diagonals, component-body intersections and unresolved overlapping lanes reject without changing the project. These controls arrange existing cables only; they do not add branch or junction authoring.

How do I restore a missing resistor or LED after Open?

Open keeps an intentionally incomplete circuit but starts with no Undo history. In Supported parts, choose Add missing part. The original stable ID returns in a safe position and no cable is inferred. Reconnect the exact named-pin series path, resolve any COMPONENT_PROPERTY_ELECTRICAL_LIMIT by selecting a safe resistance/LED-colour pair, then Build fresh. Unsupported parts and wrong-controller files reject without replacing the current project.

What is stored in a project file?

All four workbenches save the same versioned intent-mcu-project-envelope@8 format. It identifies one exact tested profile and an immutable, project-owned component/model-library manifest, then retains project name, bounded source, stable parts and pins, supported properties and controls, layout, rotation, cable colour, accepted route geometry, authored named-pin wiring and one inert project brief. Older recognized files map to the finite retained pre-X56 model resolver only after complete validation. Moving to the current library is an explicit preview-and-download action that creates a new data-only copy and never overwrites the open original. The AVR thermostat subset may also retain a strictly validated data-only scenario timeline with ordered timed inputs and an explicit observation window. Stable acceptance IDs may include project-local code references and stable test IDs. Open voltage, pin, timing and other questions are saved explicitly as unresolved; they never grant support. Explicit required peripherals and components are saved without a status, then recomputed against current project-owned authorities as available, unsupported, unknown or unresolved. Current-result links, verdicts and runtime evidence are never saved; after Open every requirement is visibly Untested. A valid common file routes to its declared installed profile only after complete validation; a conflicting or unknown profile/schema or model-library hash rejects atomically. Reviewable patches are transient: the Lab shows proposed source, component and wire changes, then rechecks the exact base before Apply. A comparison is also transient and accepts only current/proposed designs with the exact same normalized requirements; it repeats documented model limits without choosing a winner. This is not a claim that source code is portable between controller families. Firmware, UF2, flash, ELF, runtime sessions, verdicts, capabilities, downloaded model code, packages and secrets are excluded.

Where do runtime traces come from?

The shared trace viewer binds every row to the current project generation and exact built artifact. AVR rows are actual avr8js worker cycles; Pico GPIO0 rows are actual rp2040js worker cycles with producer-supplied virtual nanoseconds. ESP32-C3 GPIO2 rows are separately labelled project-model adapter epochs and are never presented as QEMU CPU GPIO or pin timing. STM32 exposes Renode's actual final PB0 observation with instruction-order-only provenance, not a fabricated timed waveform. Source, wiring, Open, profile changes and runtime retirement clear stale traces.

Control values are data, not replay

The AVR project file retains validated button, potentiometer, SPST, SPDT, light, temperature, threshold and encoder control values exactly as authored. The digital-threshold output keeps the state accepted by its hysteresis validator; opening the file does not invent a new threshold transition. A saved momentary value or encoder detent is data only: prior button edges, encoder phase events, Undo/Redo history, Serial text, GPIO observations, worker sessions and compiled artifacts are never replayed. Open always requires a fresh Build before Run. The current Pico, ESP32-C3 and STM32 component sets have no interactive control values to retain.

How should I open an older project?

  1. Preserve the original file unchanged.
  2. Open it, then check the selected profile, source and every wire.
  3. Save a new common .intent-mcu.json copy and reopen that copy to verify it.
  4. Use Legacy copy only when rc.16 compatibility is needed.
  5. Build fresh: opening never restores old firmware, runtime authority or experiment results.

How does the thermostat verdict work?

Each scenario resets to virtual cycle 0, applies the ideal A1 temperature and D2 button inputs, and observes between 160 and 350 virtual milliseconds. A pass requires the executed D13 pin, matching UART text and complete ordered input evidence. Missing, late or contradictory evidence never passes. The saved compatibility reference contains hashes and sizes only; it is not executable authority. Open always requires a fresh source-bound Build.

How does Prompt Bridge work?

It creates portable text for a tool you choose; the site has no live AI connection. Pasted results have no drawing authority until strict schema, pin, and electrical checks accept them.

Can it upload to a physical board?

No. This release runs tested educational AVR, Pico, ESP32-C3, and STM32F429ZI subsets in virtual hardware. It does not access USB or Serial devices and is not electrical-safety certification. The separate physical verification checklist is an inert current-tab manual record: it does not read a device, validate a measurement or decide pass, safety, compliance or certification.

What does STM32 support?

One bounded STM32F429ZI C11 grammar compiles in the fixed ARM toolchain and executes in actual Renode 1.17.0. Only PB0 output, USART3 uppercase text, strict ELF admission and reset replay are claimed. The named PB0/resistor/LED/GND teaching path is editable and validated, but remains an ideal circuit rather than physical or analogue equivalence.

Where can I report a problem?

Use the public repository issue templates for ordinary bugs. For a suspected vulnerability, follow the repository's private security-reporting instructions.

X86 · CURRENT NETWORK BOUNDARY

What works after the network disconnects?

This exact per-profile matrix fulfills X86 by reporting current offline behavior; it does not add a cold offline application, compiler or Run.

Strict offline support matrix JSON

Current network-disconnect behavior for the four exact controller profiles
ControllerFresh offline pageLoaded tabOffline navigation / reloadLocal Download/OpenCompile offlineRuntime ownerOffline Run
ATmega328PUnavailableCurrent loaded document onlyUnavailableAvailable in the loaded tabUnavailable · same-origin server requiredavr8js browser workerNot supported or verified
RP2040 PicoUnavailableCurrent loaded document onlyUnavailableAvailable in the loaded tabUnavailable · same-origin server requiredrp2040js browser workerNot supported or verified
ESP32-C3UnavailableCurrent loaded document onlyUnavailableAvailable in the loaded tabUnavailable · same-origin server requiredEspressif QEMU · server runtimeUnavailable · server runtime
STM32F429ZIUnavailableCurrent loaded document onlyUnavailableAvailable in the loaded tabUnavailable · same-origin server requiredRenode · server runtimeUnavailable · server runtime

Exact 1.1.0-rc.145 matrix · loaded-tab file use does not provide an offline compiler or executable authority.

Honest experiment outcomes

The supported thermostat experiment keeps academic outcome separate from job execution. Passed and failed require complete producer evidence; missing, dropped or out-of-window evidence is indeterminate, and unavailable experiment support is unsupported. A cancelled, timed-out or infrastructure-failed job can never become an academic pass or failed assertion. Actual observation time and source/artifact identity remain attached to completed evidence.

Compare two retained experiment packages

The local Compare experiment packages disclosure accepts one canonical strict-v3 Before file and one After file. It reparses both original files, requires matching profile, experiment, requirements, scenarios, model/tool context and complete evidence-row identities, then shows only literal identity, source, authored-circuit and retained measured-result differences. Files stay in the current tab and are not uploaded or saved by the Lab. Replacing, cancelling or clearing either file removes the accepted view. Comparison cannot Build, Run, replay firmware, apply a project, infer a cause, choose a winner or create a new verdict.

What does the retained AVR assessment prove?

The local assessment disclosure reopens one reviewed, release-owned evidence envelope for one fixed AVR fixture and recomputes whether two already-recorded workers had the same observable behaviour during their first 512 paused instructions. The accepted observation is limited to the recorded ideal CPU, GPIO and UART projection; both UART streams were empty. It does not run firmware, rebuild source, grant project or runtime authority, or upload the file. Independent rebuild-byte equality remains not checked, and the result is not evidence of physical-board equivalence. Altered, duplicate-key or unregistered evidence rejects without replacing the last accepted view.

How does armed edge capture work?

On the documented AVR profile, open Instruments and explicitly arm one current digital channel for a future rising or falling edge. A completed capture freezes exactly 16 earlier transitions, the trigger transition and 16 later transitions on the native worker cycle axis. Historical rows cannot trigger. Capture is transient and fails closed on dropped data, ambiguous overlap, source changes, Build, Reset, New, Open or lifecycle replacement. RP2040, ESP32-C3 and STM32 do not currently expose the required retained authoritative transition source. Open never restores capture or runtime authority. See the exact X42 contract and limits.

What does the Runtime profile interval measure?

For one already-current AVR worker, open Instruments and choose Start observation, then Capture now. The read-only panel reports native emulator cycle and executed-instruction deltas on the same exact source, artifact, model and worker binding, plus exact 16 MHz virtual time. Browser wall throughput is diagnostic only, not semantic time or a hardware benchmark. Rc.98 additionally reports bounded current, interval and since-reset stack address depth directly from avr8js CPU.SP. Accepted native evidence observed minimum SP 0x08e0, 31 bytes maximum depth and 400,001 captured interval samples; Pause froze the capture and same-worker Reset cleared it. This is address distance from 0x08ff, not live bytes, memory high-water, free SRAM or heap use. X43 is complete against its original bounded precision criterion; generic heap was never required. Heap use, free SRAM, stack contents, live occupancy and RP2040, ESP32-C3 or STM32 profiling remain unavailable. See the exact X43 contract and limits.

What does the UART TX byte-event panel prove?

For one current identity-bound paused AVR worker, open Instruments. The read-only X46 panel accepts only complete retained USART0 TX byte records and shows their order, cycle and delta, byte value/text, integer avr8js model baud and exact frame duration. Wrong baud/frame quantization, missing records, retention loss, stale identity, other profiles and non-paused workers fail closed.

Exact limit: byte events do not independently prove UART framing bits, RX traffic, a physical voltage waveform, noise, I2C or SPI. The panel cannot Apply, Build, Run or decide a verdict. X46 remains partial beyond this bounded USART0 TX increment.

How do I use bounded AVR inputs?

Use the exact AVR thermostat graph for finite A1 ramp, seeded-noise or recorded temperature schedules, or the exact momentary-button-to-ground graph for a D2 pulse. Open Instruments, create a strict finite preview, then Build fresh, Run and explicitly Pause the same current worker. A1 Apply queues the schedule and never resumes execution. D2 Apply requires Resume explicitly; after completion, another explicit Pause may rebind only that same worker at a fresh cycle. Source, graph, artifact, model, runtime generation or worker changes revoke authority.

Evidence limits: accepted native emulator evidence covers A1 ramp, repeated same-seed noise and recorded points through actual ADC/D13 response, plus the pressed-LOW D2 pulse, fresh re-pause, future pending A1 events and one Reset to cycle zero with empty queues. This is complete only for the bounded AVR A1 temperature and D2 button models with declared units and seeds. Arbitrary signals, CSV/network import, persistence/replay, non-AVR profiles, physical equivalence and verdict authority remain unavailable. See the exact X47 contract and limits.

How do I compare the tested AVR thermostat sensor deviation?

Open the exact unedited AVR thermostat starter, then open Instruments. The control can calculate ideal previews for bounded integer offsets. The public native case is intentionally narrower: Build and run verified +1 comparison compares baseline 0 with candidate +1 °C using one temporary same-origin isolated build and two fresh dedicated browser workers.

Exact supported boundary: the reviewed native comparison reports ADC 409/414, firmware 29/30 °C, D13 HIGH/LOW, 160 ms, five retained writes and zero drops. This completes X49's original criterion for one specified sensor-deviation model only. It is not physical calibration, a durable device offset, drift, a generic component-tolerance model, an accuracy class, a probability distribution or a factory guarantee. The result is transient and bound to exact source, graph, revision, artifact, model, workers and inputs; any binding change retires it. Other offsets remain calculated-only, and other sensors, profiles, saved evidence, automatic replay and general experiment authoring remain unavailable. See the exact X49 contract and limits.

How are inert contributions reviewed?

X57 hashes a strict declared contribution against the current checkout, then requires explicit trusted maintainer confirmation and the fixed project-owned model-library, component-support and contribution-review test owners. Candidate modules and submitted commands are never executed. Admission is evidence for a later normal reviewed change; it grants no registry, release, runtime, network or execution authority. See the exact contribution review guide.

What does local worker readiness mean?

X89 reads exact local Compose, package recipe, trusted broker-policy and image-lock configuration and reports missing or mismatched prerequisites without starting Docker. Configuration assessed does not mean a service is healthy, a compiler runtime is ready, firmware executed or physical hardware was tested. See the exact local readiness guide.

Machine-readable release changes

Release changes JSON is one strict, static, same-origin description of the immediately previous and current release. Stable X IDs bind each bounded additive, changed or breaking row to the project longlist. It reports reviewed release metadata only: it cannot Apply, Build, Run, replay firmware, decide a verdict or prove runtime behaviour.

Local external client adapter

An optional separate local stdio process can discover the four exact profiles, named pins, API boundaries, supported parts, quotas and versions without screen scraping, then call exactly the seven existing bounded actions through an ephemeral browser at this fixed Lab origin. Discovery is read-only and adds no action authority. Action results distinguish validation failure, unsupported, temporary busy, timeout, cancellation and producer-backed test failure while retaining the authoritative source result. Experiment responses separately expose academic outcome and job status. The adapter opens no listener or public API, stores no account or credential, and cannot Apply a patch. Proposals remain data only; Apply is a separate explicit browser-user action. See the source guide.

Follow a complete first project

The Pico, ESP32-C3 and STM32 guides each list the exact goal, named-pin wiring, permitted source edit, expected result and Save/Open boundary.