Inspector and part settings
The inspector is the right-hand panel. It shows whatever is selected on the canvas: a part, a wire, a multi-selection, or nothing at all.
Selecting what to inspect
Click a part to inspect it. Clicking a wire shows its two endpoints (from → to), the colour swatches, and a Delete wire button. Select several parts and the panel becomes the selection inspector, with Group, Ungroup, Rotate each, Delete and Save module (see editing). With nothing selected it shows a short list of tips: press Space to run, click a part, drag parts in from the left, and where the instruments live.
A part's two tabs
A selected part shows its name, its id (the same id warnings and recordings use) and its category, over two tabs:
- Settings — properties, datafeed, pin control for the board, and the Rotate/Delete buttons.
- Datasheet — the part's datasheet, rendered from its data.
While the simulation is stopped, everything in Settings can be changed. While it runs, fields are disabled and a hint reminds you to stop first.
Properties
Properties is the schema-driven form for the part's fixed settings: an LED's colour, a resistor's value, a relay's trigger, a display's I²C address, and so on. These are the physical choices you make when buying the part; the numbers that vary while it runs belong to the datafeed instead.
The board's GPIO panel
Select a Raspberry Pi and you get a GPIO table instead of ordinary properties. Once the simulation is running it shows every header pin with:
- Mode — switch a pin between in and out;
- Pull — none, up or down;
- Out — the level a pin drives when it is an output;
- Reads — the level the pin currently sees.
It is a stand-in for your program: use it to poke an input while debugging, or to drive an output before main.py is written.
Datafeed and response model
Parts that read a physical value (sensors) or react to one (actuators) get a Datafeed section; output parts whose behaviour varies get a Response model section under the same heading. Both are described in data feeds: sources, presets, per-field knobs, a shaper stack and a preview chart. A sensor's section also has:
- Zone — which room of the world this part reads. The default,
(part zone), follows the zone set on the part's fields; pickindoor,outdoor,greenhouse,fridgeorserver-rackto pin it somewhere specific. - Ideal sensor — tick it to remove noise, calibration offset and lag, so a reading is the true value. Without it the part applies its datasheet model, shown in the badge beside the field name.
Warnings
The bar along the bottom of the window lists live electrical warnings. Each one names the part and says what is wrong — an LED over its current limit, a rail over budget, a reversed supply. Click a warning to select the part in question; the same parts carry a warning badge on the canvas itself. Warnings clear by themselves when the condition goes away, and the bar falls back to a status line ("Running — no electrical problems", "Paused", "Stopped — edit freely").
Warnings are also what the judge's no damage check looks at: any warning whose code starts with overcurrent, overvoltage, overpower, short- or budget- counts as damage. A few parts are allowed a small, declared overload, so a buzzer that draws a little over a pin's 16 mA does not fail an objective.
The World: zones and environment
Sensors do not invent their own weather. Every one of them reads the shared world in its zone, so sun on the outdoor sensor also dries the soil and warms the greenhouse. The World button in the top bar opens the settings:
- Place and time — latitude, longitude and UTC offset (with Use my location for the browser's position), and optionally the date and time the run should start at. Left blank, the run starts the moment you press Run.
- Outdoor weather — procedural, built from the night low, day high and cloud cover you set, or live, fetched from the server for this location (which needs a backend; see data feeds).
- Indoor — a thermostat holding a setpoint (21 °C by default), or off, so the room follows the outdoors and any heaters you switch on.
The zones have defaults of their own: the greenhouse swings between 18 and 34 °C, the fridge sits near 4 °C, and the server rack idles around 33 °C. Loads couple back into their zone — a heater warms it, a lamp lights it, a fan moves its air — so a relay, a feed and a sensor can form a loop without any code.
The Datasheet tab
The Datasheet tab renders the component's own data, so it can never disagree with how the part behaves:
- the interfaces it speaks (I²C, SPI, 1-Wire, GPIO, analog …);
- an electrical table — forward voltages, supply range, currents, timings;
- every pin with its label and type;
- Good to know quirks, such as "always use a series resistor";
- links to the manufacturer's reference documents.
The same datasheet is what the datafeed's sensor model uses.