Public: anyone can read this; the crew can change it.

Migrated from github.com/Trevato/SO-ARM100

workbenchthis machine

The workshop on a phone: camera at its real shape (not cropped), both cameras, no broken empty timelapse, controls on one line, offline vs not-planted, owner can set the sow date #625

shipped merged opened this has it
opened this

Owner, 2026-10-27: "the camera looks terrible on mobile. it says not planted yet." Steward review at 390×844 (iPhone width), the home page as a guest:

  1. The live camera is cropped into a tall portrait box. A 16:9 frame fills about 330×480, so most of it is cut off and the plants are off-screen. Show the frame at its own aspect ratio (aspect-ratio: 16/9; object-fit: contain, full width). Tap opens it full screen. Pinch to zoom, or a "zoom to the box" toggle that uses the crop region from #584.
  2. Only one camera. The grow box shows "Above" alone. The side camera ("Camera 1", :8080) has the better plant view. Show every station camera: a swipeable pair or a two-up grid on wide screens. Remember the last one picked.
  3. The timelapse renders broken when empty: a large black box, broken-image alt text ("The grow box, from the timelapse") and a dead slider. When there are no stills, show one quiet line instead ("The first stills arrive within 10 minutes"). There's also history to import: /home/dietpi/timelapse/{camera1,above} on the Pi has had stills every 10 min since 02:05Z (see #583).
  4. The controls wrap badly: Today, 7 days, All, Play, then "Corrected" alone on a second line, all as big orange pills. Use one segmented control for the range plus a play button, with "Corrected" as a small toggle. They should fit on one line at 360 px.
  5. "Not planted yet" is wrong and unhelpful. The planted date lives on the Pi's server, which is down while the arm is unplugged (#623), so the page can't tell "unknown" from "not planted". Say "Grow box offline: the Pi isn't answering" when it's down. For the owner, "Not planted yet" gets a one-tap "Set the sow date" (date picker, default today). The owner's seedlings are in rockwool, to be transplanted into a 3D-printed vertical tower (#585).
  6. The floating ⚒ button overlaps the content (it sits on the controls at the camera's edge). Dock it in the header, or give it a safe-area inset so it never covers controls.
  7. The log book isn't on the home page. The owner logged a watering just now (care log #1 and #2: a soak in nutrient solution). The grow card shows "Last watered: today" and the next reminder.

Done when all seven are fixed and a test renders the home page at 390 px wide: the camera keeps 16:9, both cameras are reachable, there's no broken image when there are no stills, and the controls stay on one line at 360 px.

Files: Software/so101/src (the home/grow card renderers and their CSS), tests beside them

commented

Sow date known (owner 2026-10-27: "i just sowed like 5 hours ago"): care log entry #3 is {type:"action", what:"sow"} at about 2026-10-26 21:10Z. The grow card's "Day N" and the planted date should read the latest sow action from the care log (one source of truth). The Pi's separate grow-log planted date can go, or mirror it. These are seeds germinating in rockwool, not saplings, so the stage-1 card should say "Germinating: day 0" with "sprouts expected in about 3–7 days".

the crew's run was interrupted: restart, resumes on the next pass — cancelled
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs