Research Snapshot / v0.3.3-dev
What are we trying to learn right now?
Current Hypothesis
AI can reduce the cognitive load of plant care more effectively through prediction than through monitoring.
Current Focus
- Running a private local PlantForge model through Ollama
- Exposing PlantOS through recommendation-only tools
- Evaluating eight deterministic care and failure states
- Testing local research search with inspectable citations
- Routing model language through a deterministic TypeScript response boundary
- Evaluating qwen3.5:9b without changing the promoted profile
- Stabilizing the first wet-reference position after the quality gate rejected excessive sample spread
Active Questions
- Which evidence should a local model explain but never reinterpret?
- How should calibration confidence expire?
- Which sensor interval preserves signal without creating noise?
- When is a visual observation worth more than another reading?
Success Criteria
- Invalid evidence always fails closed.
- Every recommendation exposes provenance and missing context.
- The model cannot authorize or execute watering.
- Raw sensor data rarely needs inspection.
01 / Vision
Plant care should not depend on perfect memory.
Plant care today is reactive. People are asked to monitor soil moisture, weather, watering schedules, fertilizer timing, and visible signs of stress, then combine those signals into a correct decision.
PlantForge explores an AI-first approach that predicts needs before plants become stressed. The goal is not a denser dashboard. It is a quieter relationship with plant care, where the system converts context into a small number of timely, trustworthy actions.
02 / Friction Inversion
Move the burden from memory into the system.
PlantForge treats plant care as an experience-design problem. Instead of adding reminders to a workflow that already demands too much interpretation, it asks what the software can remove.
Default question
How can users remember to water plants?
Inverted question
How can software eliminate the need to remember?
PlantForge continuously reduces cognitive load through prediction, context, and recommendation. Monitoring is an input to the system, not a responsibility passed back to the user.
Observe
Collect a durable signal from soil and local conditions without asking the person to inspect it.
Interpret
Read the signal against plant identity, environment, and previous care rather than a fixed threshold.
Predict
Estimate the likely need before stress becomes a visible event.
Recommend
Offer one timely action, with enough evidence to earn trust.
Learn
Use the outcome and any human override to improve the next recommendation.
03 / Core Principles
Quiet intelligence over constant attention.
Predict instead of react.
Surface needs early enough that stress never becomes the interface.
Explain instead of expose data.
Translate readings into reasoning people can understand and trust.
Context over metrics.
Interpret moisture alongside weather, species, container, light, and history.
Reduce decisions.
Offer the smallest useful action rather than another dashboard to inspect.
Quiet intelligence.
Remain present in the system without demanding daily attention.
Every notification eliminates work.
If a message does not clarify the next action, it should not be sent.
04 / Architecture
Signals become evidence, then a bounded decision.
The current architecture separates observations, deterministic policy, conversational explanation, and human authority. Hardware can evolve without weakening the trust boundary.
Current research architecture. The first Raspberry Pi 5 node is running Raspberry Pi OS, both I2C sensors are detected, and the read-only hardware boundary returns raw soil and environmental observations. Calibration and the physical observation study remain pending, so raw moisture is not yet plant-care evidence. The API remains disabled and no actuation route exists.
05 / System Components
A platform, not a sensor.
PlantOS Working
Validates observations, calibration, care history, recommendations, provenance, authority, and deterministic system rules.
Plant Nodes Planned
Collect environmental signals near each plant and transmit durable, calibrated observations.
Plant Hub Research
Provides local orchestration, device management, resilience, camera support, and future inference.
Plant Vision Future
Uses image history to identify growth, discoloration, wilting, pests, and visible stress patterns.
Plant AI Guarded Local Prototype
Runs locally through Ollama and Open WebUI. A deterministic TypeScript layer fixes the recommendation, evidence, next signal, and authority before model language is accepted.
Plant Cloud Future
Supports remote access, model updates, shared plant knowledge, backup, and public API capabilities.
06 / Prototype Build
Build the smallest system that can test the hypothesis.
The v0.1 build is an observation rig, not an automated watering product. Its job is to collect a trustworthy moisture signal, pair it with environmental context, and create enough history to test whether prediction can remove decisions.
Why this build stays digital
Both selected sensors report through I2C. The initial build avoids an analog converter, reduces wiring, and gives PlantOS one shared, inspectable sensor bus.
Prototype boundary
Sense and observe first. Pumps, relays, and unattended watering remain outside v0.1 until the recommendations prove trustworthy.
Runs the Plant Hub, local data services, dashboard, and future inference experiments.
View part ↗Provides the stable 5V/5A power profile specified for Raspberry Pi 5.
View part ↗Protects the hub board and provides temperature-controlled airflow. Install it in a dry, elevated location away from irrigation.
View part ↗Holds the operating system, prototype services, logs, and early observation history.
View part ↗Provides a capacitive moisture signal through I2C for the first bounded calibration and observation study.
View part ↗Adds temperature, humidity, and pressure so moisture changes can be interpreted in context.
View part ↗Connects the Raspberry Pi GPIO header to the shared I2C sensor chain.
View part ↗Adapts the soil sensor connector to the BME280's remaining STEMMA QT port.
View part ↗Orders placed July 30, 2026, and received by August 4. The consolidated Adafruit hardware order totaled $269.17. The PiShop.us microSD order totaled $39.46 including shipping and tax. Initial hardware investment: $308.63. Order identifiers are intentionally omitted. These are not affiliate links.
Arrival status
Eight core components received and inventoried. The Pi 5, heatsink, case, and fan are assembled.
Official 64GB A2/V30 microSD card is imaged with Raspberry Pi OS and operating as the node's boot storage.
Commissioning path
Inventory, wiring, boot, I2C, calibration, and recovery steps are defined.
The full commissioning path can run against simulated I2C sensors.
An atomic checkpoint and systemd recovery make observation collection restart-safe.
Sample count, stability, reference span, and failure reasons are explicit.
The touch preview can show calibration, collection progress, health, and the disabled actuation boundary.
A single ZIP preserves commissioning records with an integrity manifest and file hashes.
Build sequence
- Image Raspberry Pi OS, complete the first boot, enable I2C, and update the system.
- Verify the assembled Pi, case fan, power supply, storage, and thermal behavior.
- Connect the BME280 to the Pi GPIO header, then connect the soil sensor through the adapter cable.
- Confirm both I2C addresses and capture raw moisture plus environmental readings.
- Complete dry and wet reference calibration against the same substrate, insertion depth, and packing used in the study.
- Log observations before adding recommendations, alerts, or automation.
v0.1 wiring map
Electrical constraint: Run the Qwiic sensor chain at 3.3V. Keep the Pi, BME280, connectors, and power supply dry. The initial soil sensor is a research probe, not a weatherproof permanent installation.
Ideal Research Platform
The Jason-level build.
This is the durable PlantForge system I would build for long-term research. It replaces fragile analog wiring with industrial sensing, adds repeatable vision, and reserves enough local compute for the intelligence layer to mature.
Plant Hub
Provides headroom for PlantOS, containers, databases, dashboards, image processing, and development services.
View part ↗Adds 40 TOPS and 8GB of dedicated memory for future local vision, VLM, and constrained language-model experiments.
View part ↗Keeps the Pi thermally stable beneath the AI HAT during sustained local workloads.
View part ↗Protects the hub in a dry, elevated location. Its removable top supports future HAT clearance with the correct spacers.
View part ↗Provides the stable power budget required by the Pi, AI accelerator, camera, and USB devices.
View part ↗Stores PlantOS, sensor history, images, models, and backups over USB 3 while the AI HAT occupies PCIe.
View part ↗Provides bootable recovery media while the external SSD serves as primary working storage.
View part ↗Durable Sensing
Measures moisture, soil temperature, and electrical conductivity in an IP68 body designed for long-term burial.
View part ↗Connects the MODBUS sensor bus to the Plant Hub with galvanic isolation and line protection.
View part ↗Powers the field bus and keeps fusing, terminals, strain relief, and cable transitions protected and serviceable.
Browse power ↗Environmental Context and Vision
Adds CO₂, temperature, and humidity context for understanding indoor environmental change.
View part ↗Creates a dependable ambient-light history before the research justifies a dedicated PAR sensor.
View part ↗Provides autofocus, a wide field of view, and native camera-stack integration for repeatable plant imaging.
View part ↗Controls framing and illumination so image differences are more likely to represent the plant rather than the room.
Browse mounts ↗Bare-minimum durable observation system
Start with one professional signal path and the final hub platform. This avoids buying an interim computer or disposable analog sensing hardware.
- Raspberry Pi 5, 16GB ↗
- Official 27W power supply ↗Active Cooler ↗
- Official Raspberry Pi 5 Case + Fan ↗
- 64GB microSD recovery and initial working storage ↗
- One SEN0601 RS485 soil sensor ↗
- Isolated USB to RS485 converter ↗
- Regulated 12V supply ↗Weatherproof field box ↗
PlantForge records stable moisture, soil temperature, and conductivity readings for at least two weeks and preserves them through restarts without manual intervention.
Reliable storage and environmental context
Move the working system off microSD and add enough context to distinguish plant behavior from room behavior.
- Samsung T7 Shield, 1TB ↗
- Sensirion SCD-41 for CO₂, temperature, and humidity ↗
- VEML7700 ambient light sensor ↗
- STEMMA QT cables ↗Protected sensor enclosure ↗
The system correlates soil changes with light and room conditions, retains a useful observation history, and produces dependable daily summaries.
Repeatable Plant Vision
Add images only after the signal pipeline is trustworthy. Controlled framing and lighting matter more than collecting a large number of inconsistent photos.
- Camera Module 3 Wide ↗Pi 5 camera cable ↗
- Rigid, repeatable camera mount ↗
- Diffuse high-CRI reference light ↗
- Neutral gray or color reference target ↗
PlantForge captures consistently framed and color-normalized images that can reveal growth or visible stress without room-lighting artifacts.
Local intelligence
The accelerator is intentionally late. It becomes useful when PlantForge has real observations, images, and defined inference tasks.
- Raspberry Pi AI HAT+ 2 ↗
- AI HAT heatsink and supplied mounting hardware
- Task-specific local vision, VLM, or language models
A local model performs one defined PlantForge task more privately, quickly, or economically than the existing rules or cloud workflow.
Scale to multiple plants
Expand only after one plant produces useful evidence. Additional sensors should improve the model, not multiply maintenance.
- Additional addressed RS485 soil sensors ↗
- Weatherproof field enclosure ↗Cable glands ↗
- Optional ESP32-S3 wireless nodes where wiring is impractical ↗
- Plant-specific calibration and installation records
New plants can be commissioned predictably without changing the hub architecture or degrading the quality of existing observations.
Prices checked July 25, 2026. This is the target research architecture, not the minimum viable purchase. Purchase links use Adafruit when the exact part is available there and otherwise go to the manufacturer. These are non-affiliate references. Confirm regional compatibility, current specifications, availability, and price before ordering.
07 / PlantOS Code
Code first. Commission hardware deliberately.
PlantOS began as a simulation-first software core. With the first physical node assembled, the same contracts and safety boundaries now govern a staged commissioning path without treating unverified hardware as evidence.
What the model may do
Use the guarded PlantOS explanation tool for every care decision, search local research, cite sources, explain uncertainty, and identify the smallest useful next signal. Raw decision and observation routes are not exposed as chat tools.
What the model may not do
Override deterministic policy, invent missing evidence, reinterpret invalid signals, claim unsupported actions, or authorize and execute watering.
The hardware seam
// Virtual today. Physical later.
const scenario = {
...DEFAULT_SIMULATOR_SCENARIO,
seed: 42,
durationHours: 72
};
const run = simulate(scenario);
for (const observation of run.observations) {
process.stdout.write(`${JSON.stringify(observation)}\n`);
}
Research guardrail: PlantOS may recommend that a person review watering. It does not issue an actuator command. Automation comes only after the observations and policy earn trust.
Current source map
- plantos/
- packages/contracts/
- packages/simulator/
- packages/policy/
- packages/audit/
- packages/providers/
- apps/api/ OpenAPI + cited search
- tests/ 55 passing checks
- plantos/ Python baseline
Run without parts
cd plantos
npm.cmd install
npm.cmd run simulate -- --hours 72 --seed 42
npm.cmd run api
npm.cmd run typecheck
npm.cmd test
Language direction: TypeScript is the default for new services, APIs, shared contracts, dashboard logic, and automation. Python remains available for hardware integration, scientific tooling, and model experiments when it provides a clear advantage.
07A / Interface Design
Design the calm before the hardware arrives.
PlantOS Touch UI v0.1 turns the coded display preview into a reusable Figma component system. The purpose is to validate the experience, touch targets, and decision hierarchy while the system still runs on deterministic research data.
Eight truthful states
Healthy, review watering, stale, missing, conflicting, uncalibrated, recent watering, and visual conflict states must match the PlantOS fixtures exactly.
Decision first
The recommended next step appears before raw measurements, with evidence close enough to inspect.
Component-ready
Status chips, recommendation cards, metrics, and the decision trail become reusable variants rather than one-off screens.
Accessible touch
Essential controls use at least 44 by 44 pixel targets. Color never carries status alone.
The Friction Inversion Design Loop keeps the product brief, component choices, rendered interface, and review evidence in agreement. It is the working method for material PlantOS interface changes.
07B / Figma Handoff
One vocabulary from design to PlantOS.
This space defines the Figma file structure and import boundary for PlantOS Touch UI v0.1. Variables can enter Figma through the existing token-import pattern. Components and editable screens remain a deliberate design-library build.
Screen naming
Use Touch / Healthy Signal and Touch / Review Watering. Name the experience, not the visual treatment.
Component naming
Use singular components such as Status Chip, Recommendation Card, and Evidence Row.
Contract-native variants
Use values such as state=review_watering and signal=stale so Figma, fixtures, and code agree.
Semantic layers
Use roles such as header, label, metric-value, and evidence-list, never visual descriptions.
Recommended variable namespaces: color/base, color/surface, color/text, color/status, space, radius, and size/touch/min. The minimum touch-size value is 44.
07C / Pre-hardware Sprint
Prove the product before the parts arrive.
The first PlantForge sprint builds software evidence, design decisions, and installation discipline before sensor noise can obscure the work.
Touch UI
Figma-ready specification and state-aware preview.
Simulation
Weather, calibration, and fault context in deterministic runs.
Dashboard
Profile, history, decision trail, and human correction context.
Data model
Plant profiles, care events, and overrides use validated contracts.
Calibration
Commissioning turns installation into bounded evidence.
Evaluation
Five safety states pass before policy changes can advance.
Cultivation Log
Research decisions and lessons stay visible as the system evolves.
Physical install
Placement, recovery, and setup are designed before first use.
07D / Display Emulator
Rehearse the decision before it reaches a person.
This interactive prototype turns deterministic PlantOS scenarios into the calm, explainable display we are building toward. It is a research model, not a connected plant dashboard.
PlantOS care display
Monstera deliciosa
Moisture is stable and the sensor is current. PlantOS will keep observing without adding a task.
Why this recommendation 3 recorded events
Healthy signal selected. No action right now.
Prototype states and decision trails are generated from versioned PlantOS contracts, policy fixtures, and append-only local audit events. Add ?plantos-api=local during local development to load the same status and audit shape from the read-only API.
08 / Friction Inversion Cycle
PlantForge is the first live methodology test.
The FI Cycle tracks more than what PlantForge removes. It records where the work moves, who carries it, which signals reveal new pressure, and when the system must be rebalanced.
A trustworthy care decision before stress.
The user receives a timely recommendation without monitoring raw readings or reconstructing environmental context.
The problem is interpretation, not memory.
- Signals are fragmented.
- Care thresholds depend on context.
- Feedback arrives after stress.
- Recommendations must earn trust.
Move observation into PlantOS.
PlantOS collects and interprets conditions continuously. The person reviews a recommendation only when the evidence supports attention.
Recommendation before actuation.
- No automatic watering in the research phase.
- Reasons remain visible.
- Invalid readings fail closed.
- Human overrides remain part of the evidence.
Watch pressure before failure.
- Sensor disagreement
- Recommendation overrides
- Unnecessary notifications
- Repeated manual corrections
- Time from recommendation to action
Memory becomes system maintenance.
The burden moves from daily user attention into calibration, model review, sensor health, and explanation quality. That relocation is acceptable only while it remains visible and serviceable.
What this teaches us now
Prediction is useful only when it reduces decisions without hiding uncertainty. Simulation removes the dependency on physical parts, but it does not remove the future need for calibration. Quiet intelligence must measure notification burden as carefully as plant outcomes.
09 / Research Timeline
Evidence before automation.
Initial research phase
- Defined PlantForge and its relationship to Friction Inversion.
- Selected Raspberry Pi as the initial platform direction.
- Began premium hardware and waterproof capacitive sensor research.
- Established the Living Whitepaper as the canonical project record.
Prototype the signal layer
Compare wireless node approaches, calibrate sensors, establish sampling behavior, and observe how environmental readings change across real care events.
Move from readings to prediction
Evaluate predictive watering, AI recommendations, plant vision, and the trust model required before any care action becomes automated.
10 / Architecture Decision Records
Decisions remain visible and revisable.
ADR-001Use Raspberry Pi 5 as the central hubAccepted
Reasoning: Raspberry Pi 5 leaves room for local services, Home Assistant integration, dashboards, cameras, and future local inference without prematurely constraining the research.
ADR-002Use capacitive moisture sensorsAccepted
Reasoning: Capacitive sensing avoids exposed resistive probes and offers a more credible path toward long-term stability. Waterproof construction and calibration quality remain active selection criteria.
ADR-003Use a hybrid recommendation modelProposed
Reasoning: Deterministic rules can protect safety boundaries while AI interprets context and explains why an action is recommended. This requires validation before acceptance.
ADR-004Prefer TypeScript for application and service codeProposed
Reasoning: TypeScript provides shared contracts across services, APIs, automation, and the dashboard. Python remains appropriate at hardware, scientific, and model-experiment boundaries. Versioned data contracts keep those boundaries explicit.
11 / Roadmap
From first principles to quiet automation.
12 / The Cultivation Log
The engineering notebook inside the whitepaper.
The Living Whitepaper explains what PlantForge is. The Cultivation Log documents how PlantForge became what it is.
The first physical sensor boundary returns real observations
v0.3.3-devSummary
The Raspberry Pi 5 now boots from its 64GB microSD card, joins the local network, and passes its power and thermal checks. The soil sensor appears at I2C address 0x36, the BME280 appears at 0x77, and the restricted hardware process returns raw readings from both devices.
Physical Evidence
- Power health reports
throttled=0x0after correcting the power connection. - The case fan is connected correctly and governed by the Pi cooling interface.
- The first bounded read returned soil capacitance
364, temperature25.50 C, relative humidity57.27%, and pressure1021.40 hPa. - Five dry screening readings held between
334and338. The recorded dry references are337,335, and335, with a median of335. - The first wet-reference set had a median of
886and a range of24. PlantOS rejected it because the permitted range is12. - A later screening window ranged from
850to922, so no replacement wet reference was recorded. - The PlantOS authority envelope remains recommendation-only with
canActuate: falseand human confirmation required.
Software State
- The Pi now runs PlantOS
0.2.0-rc.2. - The quality gate reads the authoritative installed state from
/var/lib/plantos. - All
99PlantOS tests pass and type checking is clean. - Every calibration path rejects unstable dry or wet references above the same bounded range.
Commissioning Boundary
- A successful raw read proves connectivity, not calibration or care accuracy.
- The soil reading must not influence a watering recommendation until dry and wet reference sessions pass.
- The API and collector remain disabled during calibration.
- No automatic watering hardware or actuation route is present.
Next Steps
- Inspect and secure the probe position, insertion depth, substrate contact, and cable strain.
- Screen the settled position again without moving the probe between readings.
- Replace the rejected wet-reference samples only after the screening range is
12or less. - Validate calibrated observations against a manual soil inspection before beginning the 24-hour study.
The first physical node reaches the commissioning gate
v0.3.2-devSummary
The Raspberry Pi 5, heatsink, official case fan, power supply, environmental sensor, soil sensor, connection cables, and blank 64GB microSD card have been received and inspected. The Pi is assembled, the fan is connected, and the storage card awaits imaging through the ordered USB reader.
Commissioning Boundary
- Hardware possession is not physical proof.
- The API remains disabled until preflight, installation, and verification pass.
- Sensors remain disconnected until the Pi is powered down and ready for the first bounded I2C session.
- Fan operation and thermal response still require verification after boot.
Software Verification
- A fail-closed Raspberry Pi preflight, bootstrap, service unit, and installation verifier are complete.
- All 95 PlantOS tests, type-checking, linting, Bash syntax, and Linux validation pass.
- The installer refuses unsupported operating systems, non-loopback hosts, missing runtime files, simulated evidence, and incomplete installations.
- Software review does not claim that physical hardware has passed.
Next Steps
- Image Raspberry Pi OS on the blank microSD card.
- Complete the first boot, network setup, updates, and SSH access.
- Run preflight, bootstrap, and installation verification before enabling the API.
- Power down, connect the sensors, scan I2C, and capture the first physical observations.
Independent review hardens the physical evidence boundary
v0.2.0-rc.2Summary
A second-model review found no actuation risk and identified two commissioning blockers plus four operational defects. The reviewed release candidate closes all six before hardware arrives.
Corrections
- Collector slots now keep stable identifiers across power loss.
- Simulation data cannot enter physical stores or pass physical gates.
- Evidence export requires every commissioning artifact.
- Physical acceptance rechecks mode, files, safe paths, and hashes.
- Pi services resolve npm safely and stop repeated failure loops.
Verification
- All 87 automated tests pass.
- Linux validation rejects incorrect line endings instead of repairing them.
- An accelerated simulated flow leaves physical paths empty and remains blocked.
- The recommendation-only boundary remains unchanged.
Independent Sign-Off
The reviewer re-checked the release candidate against the reported fixes and confirmed all six findings closed. Both commissioning blockers were reproduced and retested by execution: the restart path no longer duplicates a reading, and a simulated bundle is refused as physical evidence. The read-only, recommendation-only, and human-confirmation boundaries hold. This sign-off covers the software review only. It is not proof that physical hardware has passed.
Release Boundary
The final v0.2.0 release still requires accepted physical calibration, a healthy 24-hour physical window, and a verified physical evidence bundle.
The pre-hardware software baseline is frozen
v0.2.0-rc.1Summary
PlantOS is packaged for arrival day with a Linux-validated service boundary, a single guided gate check, a visible completion checklist, and a reviewable sample evidence bundle.
Verification
- The Pi bootstrap passes Bash syntax validation inside a Linux container.
- Both systemd units retain restricted write paths and non-root application authority.
- The guided arrival check reports inventory, I2C, calibration, collection, and evidence gates in sequence.
- The sample ZIP is explicitly marked simulated and cannot be mistaken for physical proof.
Release Boundary
- Software readiness is frozen at v0.2.0-rc.1.
- Automatic watering remains outside the system boundary.
- The final v0.2.0 release remains blocked on physical calibration and a healthy 24-hour observation window.
Next Steps
- Inventory the delivered parts.
- Flash and boot the Raspberry Pi.
- Run the guided arrival check after each gate.
- Replace simulated evidence with the first physical evidence bundle.
Commissioning operations become restart-safe and visible
v0.2.0-devSummary
The arrival-day workflow now has an operational layer around the existing calibration and observation contracts.
System Work
- Added atomic collector checkpoints and systemd restart recovery.
- Added a read-only commissioning API status route.
- Added a commissioning view to the touch interface preview.
- Added a ZIP evidence exporter with SHA-256 file hashes.
Safety
- The API remains GET-only.
- The interface displays actuation as disabled.
- The evidence bundle excludes credentials.
- Physical proof remains pending until the ordered hardware arrives.
Next Steps
- Install the Pi service files.
- Complete dry and wet calibration.
- Run the 24-hour physical collection.
- Export and preserve the first physical evidence bundle.
Arrival-day commissioning becomes rehearsable
v0.2.0-devSummary
The physical commissioning workflow can now be exercised before delivery using simulated I2C sensors and an accelerated 24-hour observation window.
System Work
- Added an arrival-day runbook with explicit stop gates and recovery paths.
- Added simulated dry, wet, and normal sensor states behind the physical transport interface.
- Added a persistent collector and health report for completeness, gaps, and freshness.
- Added calibration stability and reference-span reporting.
Acceptance
- All 83 automated PlantOS tests pass.
- 289 readings represent a complete five-minute, 24-hour window.
- Observation completeness must be at least 95 percent.
- No observation gap or latest-reading age may exceed ten minutes.
- Calibration references must remain within a 12-unit range.
Next Steps
- Run the rehearsal before unboxing.
- Replace simulated readings with physical evidence without changing interfaces.
- Preserve all commissioning artifacts as the first node evidence bundle.
- Keep actuation outside the system boundary.
The first physical node moves from plan to procurement
v0.2.0-devSummary
The initial Raspberry Pi hub, environmental sensor, capacitive soil sensor, case, power supply, connection cables, and boot storage have been ordered. The main Adafruit shipment is expected August 4.
Decisions and Lessons
- Keep the Raspberry Pi in the consolidated Adafruit order because splitting the purchase saved only $10 after shipping.
- Use the official 64GB A2/V30 microSD card as the first boot and recovery medium.
- Start with a fully digital I2C sensor chain and no analog converter.
- Record delivered cost separately from component-list prices.
Investment
- Adafruit hardware order: $269.17.
- PiShop.us microSD order: $39.46 including shipping and tax.
- Total initial hardware investment: $308.63.
Next Steps
- Image Raspberry Pi OS and run the prepared bootstrap script.
- Inventory every component on arrival.
- Assemble the dry bench system before placing a sensor in substrate.
- Begin the bounded dry and wet calibration session only after raw I2C readings are stable.
PlantOS prepares for the first physical node
v0.2.0-devSummary
PlantOS now persists validated observations, guides dry and wet moisture calibration, and accepts hardware-shaped input from BME280 and Adafruit STEMMA soil adapters. A read-only Linux I2C bridge and commissioning CLI are ready before delivery. Sensor access remains behind an injected transport, so it cannot bypass deterministic policy.
Decisions and Lessons
- Use the same observation contract for simulation and hardware.
- Require an explicit calibration span before normalizing moisture.
- Keep raw history out of the conversational tool schema.
- Preserve the read-only authority boundary during commissioning.
- Keep the 35-of-38 qwen3.5 candidate unpromoted until every raw-model gate passes.
Verification
- Type checking, linting, formatting, and all 77 automated tests pass.
- All eight policy outcomes remain unchanged with physical-provider-shaped observations.
- The local observation store validates records on append and read.
- The calibration workflow rejects incomplete sampling and weak reference spans.
- The release record distinguishes software readiness from physical proof.
Next Steps
- Run the I2C scan and raw-read checks after the hardware arrives.
- Capture real dry and wet reference medians.
- Record 24 hours of physical observations and verify restart persistence.
- Create the v0.2.0 tag only after commissioning passes.
PlantOS gains a local intelligence boundary
v0.3.1-devSummary
PlantOS now models calibration, provenance, missing context, next signals, and action authorization as strict TypeScript contracts. Eight deterministic scenarios flow through a read-only OpenAPI service. Open WebUI is offered only the guarded care-explanation route, which renders a fixed five-part decision envelope before model language can affect the response.
Decisions and Lessons
- Make unsafe authorization states invalid at the contract boundary.
- Keep deterministic PlantOS policy authoritative over model language.
- Let Ollama explain validated facts, never determine care state or authority.
- Reject changed numbers, action language, questions, and overlong model output.
- Fall back silently to deterministic language when the model is offline or rejected.
Verification
- PlantOS type checking is clean and the guarded software baseline passes its automated suite.
- The live eight-scenario guarded-renderer gate passes, including exact stale, visual-conflict, and recent-watering checks.
- Six authenticated Open WebUI acceptance scenarios preserve
canActuate: false. - The stable
plantforge:v0.1.11profile remains the default. - The qwen3.5:9b candidate remains unpromoted after scoring 35 of 38 raw-model cases.
Next Steps
- Commission the first physical node without changing the software contracts.
- Compare real observations with all eight deterministic scenarios.
- Capture calibration references and validate provenance against physical readings.
- Continue refining the three remaining local-model evaluation failures before promotion.
Pre-hardware product sprint closes the gap between idea and evidence
v0.2.0-devSummary
PlantOS now includes a Figma-ready touch UI specification, weather and calibration-aware simulation, validated plant-profile and care-history contracts, a dashboard history surface, and a five-state evaluation harness. The work is intentionally useful before a sensor is purchased.
Decisions and Lessons
- Hardware should enter a defined system, not define it.
- Human care history and overrides are first-class product evidence.
- Calibration is a commissioning process, not a one-time threshold.
- Every safety state needs a visible experience and an automated check.
Next Steps
- Build PlantOS Touch UI v0.1 in Figma from the shared specification.
- Choose the first plant and complete its profile before installation.
- Commission the first node against the calibration plan.
- Compare real observations with the simulation baseline.
TypeScript simulator establishes a traceable baseline
v0.2.0-devSummary
PlantOS now has strict TypeScript contracts, deterministic baseline and fault scenarios, an explainable safety-first policy, append-only local decision trails, and a local read-only API. The Living Whitepaper display emulator loads the generated fixture and shows the evidence path that produced each recommendation.
Decisions and Lessons
- Keep the Python simulator as a research baseline.
- Use TypeScript for shared contracts and new application code.
- Model healthy, watering-review, stale, missing-data, and conflicting-signal states before dashboard implementation.
- Never permit degraded evidence to become a watering recommendation.
- Record the evidence path in append-only order before exposing the recommendation.
Next Steps
- Build a dedicated research dashboard from the same API.
- Add accessibility evidence and narrow-view testing.
- Compare fixture behavior with the first physical sensor node.
- Prepare the v0.2.0 release record.
The methodology becomes measurable
v0.1.1Summary
PlantOS gained a simulation-first code scaffold. The FI Cycle was applied to define the correct result, determinants, guardrails, leading indicators, and expected friction relocation.
Decisions and Lessons
- Develop the software before hardware arrives.
- Recommend before actuating.
- Treat overrides and notification burden as evidence.
- Keep relocated maintenance work visible.
Next Steps
- Define a persistent observation store.
- Add sensor-health states.
- Record simulated recommendation outcomes in the Friction Ledger.
Project foundation
v0.1.0Summary
PlantForge officially started. The vision, product philosophy, architecture direction, and Living Whitepaper structure were established.
Decisions and Lessons
- Use Friction Inversion as the core philosophy.
- Begin with Raspberry Pi.
- The project is about cognitive load, not soil moisture.
Next Steps
- Research premium moisture sensors.
- Prototype the first hardware stack.
- Define the initial data model.
Future Hooks