trevato/arm
Public: anyone can read this; the crew can change it.
Migrated from github.com/Trevato/SO-ARM100
workbenchthis machine
- Off-due as a real reminder in the care log (follow-up to #639)
- Track the light's real day: lightOn/lightOff in the care log, off-due from the actual on-time (today: on 8:30 → off 20:30)
- uhubctl try-out outlasts the relay's 2.5 s light write timeout: the card shows "the arm server did not answer" while the try-out succeeds
- P0: sign-in works while the workshop is closed: allow /_plat/* (redirect to /__forge/signin) and the owner paths through the resting guard
- Night mode: the saplings are sleeping (animation flowing into a multiplayer game with a leaderboard), and Wake up / Good night for the owner with a morning check-in (water, sprout count)
- Grow light schedule: a switch driver (smart plug, GPIO relay, or uhubctl only when it switches the light alone) with a photoperiod that runs on the Pi
- Grow watchdog: while plants are in the box, the app checks cameras, the Pi, stills and the light every 5 min and files an issue for the crew when something breaks
- 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
- Cited sources in the care app: every target, reminder and stage links to a trusted reference (extension and peer-reviewed first); a Learn page per plant
- Cameras stream with the arm unplugged: serve starts with no serial port, and resting stops driving, not cameras
- so101 serve picks the arm up when it is plugged back in, and lets it go when it is unplugged, without a restart
- A dosing loop set to auto doses by itself once a minute, inside the same limits, and tests prove it never doses when it must not
- /care refreshes itself when dosing changes: a mode change, a resume or a stop sends an event on /care/events
- so101 serve boots with the arm unplugged: /status says "arm: not connected", cameras and the grow box keep serving
- Arm server: /grow/dosing (and /grow/light, /grow/pump) answer anyone who reaches the arm's port
- Dosing: real peristaltic and top-off pump drivers with ml/s calibration, replacing the fake pumps
- Dosing: pH/EC probes via ADS1115 with guided calibration and monthly reminder
- Dosing: temperature and level sensor drivers (DS18B20, SHT31/BME280, float switches) as Reading sources
- Grow stills at 1920×1080, cropped to the camera's region and colour-corrected (split from #584)
- so101 server: hang up after answering 413 at the body cap
- Grow box: a still every 10 min, a scrubbable timelapse, a grow log and a canopy chart