demo mode — nothing is saved
Substrate sweep · v58
Interrupted sweep
Pick a room
Side of row
Where you start
Room setup
Which tables
Mode
Capture
Depth
Sweep tag
A bag at field capacity reads straight through the normal ceiling on flush day.
Options
Operator
Auto capture
1  Stab the bag
2  Hold about 2 seconds
3  Beep means it logged
4  Pull the probe to re-arm
What the beeps mean
1 beep   in range
2 beeps  near the floor
3 beeps  below the floor
high-low  outlier — worth a re-stab
Route
The first table of an aisle runs front to header, the second header to front. Which tables share an aisle depends on the side of the row.
Reference depth is the Bio365 sensor-jig line — about two inches off the bottom of the bag. Stab to the jig, not by eye.
A 2-gallon reference below 25% asks for a mid-bag stab at the same spot.
Long-press the big button for CAL mode. Long-press the version for settings.
--%
--EC
-- °F

Sweep complete

stab v58
Checks · read here, never pasted
Row notes · one line per table
Room notes · exceptions only
nothing needs a note cell — the notes column is yours
Raw CSV
debug
Log
note
Room access
Blocks the whole room. Tapping Start commits it — the sweep still runs, since a few rows can usually be reached anyway. One table you cannot get to is a skip, not this.
Skip table
Why this table went unmeasured. One tap skips the rest of it and moves you to the next table. It is recorded against the table, kept out of the CHECK rules and out of the room's counts, and written to the CSV — a table you could not reach is not a table fault.
CAL
Where are you?
Tap the table, then the position — this becomes the next target.
Schedule
Paste the weekly schedule blob — every room and every table at once — or one room's screen if that is all you have. Nothing is saved until you have looked at what was read.
Strain rename
Old name to new, effective a date — every room carrying the old name reads the new one from that date on. A row already logged is untouched; it keeps the name that was live when it was read.
Renames on file
Re-room this sweep
Every reading keeps its table, position and depth. Strain, floor, bag, drippers and hours since shot recompute for the room you pick — including the copy already sitting in history.
Confirm room
This is what gets written on every row from here. A sweep filed under the wrong room does not announce itself until someone reads the CSV.
Today
Not backed up today
Tank readings · today
Feed EC by room comes from here now, through each room's tank assignment in room setup — never a guessed constant. Clears at midnight; enter it once a day, when it changes.
Room setup
What the room is, as opposed to what it is doing this week. Set at move-in. Anything left blank falls back to the weekly file, and the screen says which is which.
State
Room
Tables
Plants and drippers in bold have been counted. An unbolded dripper count is the wing's usual number and a guess until somebody walks the room; an empty plant count is not known at all. Both are per table — A3 T1–T4 hold 40 where T5–T12 hold 60, and C3 differs the same way, so neither is a property of the room.
Zones (Weekend Plan 3.5)
Paste Growlink's own zone list for this room — one device per line, #20003605 B1 Table 4 B-1 — to tie a table to the device id the overnight sensor pull will eventually read. Alongside the schedule paste's own Sensor column, not instead of it.
Settings
Long-press the version string to get back here. Nothing on this screen is needed to run a sweep.
Saved data
Growlink (Weekend Plan 3.1)
Read-only. Nothing in the app calls this yet except the test below — no valve ever fires from this screen or any other. The key lives here, never in source: it is typed in on this device and kept in its storage only.
Full backup · sweeps + room config (Weekend Plan 1.6)
Storage is per device, and a second phone is coming. One file — every stored sweep (CSV and workbook text included) and the room config sheet — that a lost or wiped phone does not take with it.
Strain rename (Weekend Plan 2.3, §6.5)
Old name to new, effective a given date, across every room at once — a row already logged keeps whatever name was live when it was read; nothing is rewritten after the fact.
Position history · for the other phone
Battery capture
Sends get -batt over the DECA UART — the command found in the SOLUS 1.2.6 binary — using the same framing and write as sdicmd, and records every notification raw. Nothing is parsed: the parser gets written from the packet, not from a guess. Connects on its own; wake the probe first.

  

  
Probe scan
Asks the bridge directly whether it carries the standard Battery Service. It connects on its own — wake the probe first, then tap. The answer settles whether the Batt column can ever come back.

  

  
Practice room
A four-table fixture for learning the probe. It is not a real room and never counts towards coverage.
Destructive
These cannot be undone. Type the word to confirm. Calibration pairs are never removed.