Week 18: Applications and implications (Forest Fairy planning)

Fab Academy Applications and implications asks me to plan the final masterpiece: tie the course units together and answer a fixed checklist that becomes the BOM and a scope contract. The companion Project Development assignment also needs a draft summary slide and about a one-minute video, linked from the class final-presentation schedule. The individual work below is Forest Fairy (森之精灵): a conversational potted-plant robot that monitors a live chili pepper plant (辣椒), moves, and connects over WiFi. Details live on final-project.html; build evidence is spread across Weeks 2–17.

Individual assignment: project planning checklist

1) Task and why this week matters

By Week 18 most subsystems run on their own: omni base wiring is mostly done, the tree-root pot is printed, the Forest_fairy_v2 carrier is in hand, multi-MCU comms and firmware are mostly written, and the Alibaba voice → TFT loop works on the bench (Week 17). What I still do not have is one machine: pot, base, carrier, screen, and chili pepper plant bolted together and powered as a unit. This week is scope lock, not a victory lap.

I treat the checklist below as the backbone for the BOM and self-review. Line items align with order screenshots in my personal procurement log (docs/forest-fairy-procurement.md, total ¥3080.95). The same ledger is also available as a spreadsheet: 下载采购价目表 (Excel).

Forest Fairy mobile plant companion render
Target finished look (render for planning conversations). Reproducible physical evidence is on the linked week pages.

What will it do?

Why I’m building it

Plants cannot tell a person when they need water, light, or nutrients. By the time damage is visible, it is often already irreversible.

In background reading I kept running into China’s aging population. For many older adults, cats and dogs are not realistic: litter boxes, walks, and daily pet care all cost energy they may not have. The need for companionship does not go away when a pet is impractical.

Plants also adapt on purpose. They bend toward light, roots react to soil changes, growth shifts to survive. That is strategy, not a passive twitch. They are “trying to live” the way a pet is, just on a slower clock.

Compared with animals, a plant is a lower-maintenance companion: no walks, no litter, only basic care to keep it in the room. That steady, low-friction presence fits many older households better than a high-care pet.

The hard part is visibility. The plant is working; we do not see it. It reaches for light; we do not feel that reach. The gap is not missing plant agency. It is missing a channel from plant behavior to human attention.

Forest Fairy is my attempt to translate signals the plant already produces into language a person can read and hear on the TFT and speaker.

Finished-product scope and Week 20 demo

A viewer should recognize it immediately: a conversational potted-plant robot. A chili pepper plant (辣椒) sits on a 120° omni base; the screen shows measured chili status and the speaker ties sensor readings to cloud dialogue. The base has two motion modes: PS2/manual (SR09 ranging below a threshold forces a stop) and auto cruise (SR09 ultrasonic avoidance). I am not doing autonomous light seeking or auto-repositioning of the pot.

Forest Fairy (森之精灵) reads room and plant signals against a recent baseline for this plant (not human vital-sign metaphors). Unfavorable conditions show on the TFT and, when needed, on the speaker. Threshold rules are still draft; this page does not hard-code them. Environmental channels refresh at each sensor’s native rate, with no extra unified sampling period.

Week 20 demo focus: WiFi-connected conversational screen (cloud ASR/TTS + LLM → TFT/speaker). No standalone web page, MQTT broker, or phone app; Week 11 network bench work stays in that week’s report, not in the demo script.

The closed loop I am building looks like this:

  1. Read environment: DHT11 temperature/humidity, DFRobot light module, RS485 soil NPK (on XIAO), updated at each sensor’s native rate (Week 10, Week 11).
  2. Read plant: Pico reads Nanostat, UART to XIAO; electrodes on the leaf (Week 6 rev.2, final-project §4).
  3. Interpret: rules plus model-assisted summary: acute stress, environmental drift, or stable noise floor. I do not dress random jitter as “drama” (Week 16).
  4. Act and express: manual or auto cruise (both use SR09 avoidance/emergency stop), WROOM networking + TFT, WiFi Alibaba ASR/TTS voice (Week 17, required demo path).
  5. Connect: WiFi lets the hub reach cloud ASR/TTS/LLM and push dialogue to screen and speaker; no remote web page or broker (Week 11 bench capabilities on the linked page).

Closed-loop overview (flowchart)

flowchart TB
  subgraph SENSE["① Sense · sensor native rates"]
    ENV["Read environment<br/>light · temp/humidity · soil · nutrients"]
    PLANT["Read plant<br/>Pico → Nanostat<br/>electrodes on leaf"]
  end

  LOG["Leaf capture · baseline log"]
  INTERP["② Interpret<br/>rules + model summary<br/>stress / drift / noise floor"]

  subgraph ACT["③ Act & express"]
    MOVE["UNO manual / auto cruise + SR09"]
    UI["OLED / TFT UI pages"]
    VOICE["Alibaba ASR/TTS + speaker"]
  end

  WIFI["④ WiFi → cloud ASR/TTS/LLM"]

  ENV --> INTERP
  PLANT --> LOG --> INTERP
  INTERP --> MOVE
  INTERP --> UI
  INTERP --> VOICE
  WIFI --> VOICE
  WIFI --> UI
  VOICE --> UI
                
Forest Fairy closed loop: environment and plant channels update in parallel; interpretation ties baseline logs to rules/model summary; three expression paths (motion manual/cruise, UI, voice); WiFi only feeds cloud dialogue back to screen/speaker (DATA_FLOW.md matches bench wiring, Week 17).

I have to hold the implications line myself: no fabricated stress stories; mark unknown readings as unknown; no autonomous light seeking; motion bounded by SR09 so the demo does not knock over the pot or trip cables.

What has been done before?

Mobile bases, plant impedance sensing, and voice companions already exist. I split prior art into two buckets: products I opened and tried to integrate but did not ship whole-board, and papers behind the leaf EIS path (references). Forest Fairy is not another omni kit listing. The delta is the custom carrier, multi-MCU firmware, and a cloud dialogue chain I can audit. Turnkey stacks like XiaoZhi or Mimiclaw did not fold into our protocol in the time I had, so I built our own path (Week 17).

Precedents I actually touched (not adopted whole-board)

  • XiaoZhi (小智) and similar turnkey voice modules: I studied wake + streaming ASR products and bench-wired a module to the XIAO ESP32. The firmware repo was too large and too tangled with our TFT/sensor bus. I harvested only the microphone and speaker; voice runs on Alibaba ASR/TTS plus our hub (Week 17).
  • Mimiclaw (dropped): early idea as a helper layer on XIAO ESP32; integration and upkeep were too heavy. Not used in the current project; not referenced below or in the loop diagram.
  • Parrot Flower Power / similar soil sticks: 2010s BLE four-scalar + phone curves (Parrot docs). Proves home telemetry has a market, but scalars only, no dialogue, no leaf EIS. I want multi-channel + screen/voice expression.
  • 120° three-wheel omni education kit: commercial omni base (Week 12) bundles mixing, drives, PS2 remote. I did not deep-dive research platforms like TidyBot++; budget and time went to sensing and the carrier board.

Plant impedance spectroscopy (EIS): literature and rationale

Leaf/tissue impedance shifts with water content, membrane integrity, nitrogen status, and stress, but it cannot be mapped to human “heart rate” or mood stories. That is why I keep “plant grammar” and refuse to treat a leaf like an ECG trace. The nine papers below are the core reading list for this plan; two are the foundation papers I read most closely when designing the Nanostat/AD5933 bench path (see core sources).

  1. Basak, R., Wahid, K., & Dinh, A. (2020). Determination of leaf nitrogen concentrations using electrical impedance spectroscopy in multiple crops. Remote Sensing, 12(3), 566. https://doi.org/10.3390/rs12030566
  2. He, T., Wang, J., Hu, D., Yang, Y., Chae, E., & Lee, C. (2025). Ultrathin, substrate-free, and highly conductive electronic-tattoo for plant immune response monitoring. Nature Communications, 16, 3244. https://doi.org/10.1038/s41467-025-58584-x
  3. Jiang, Q., Zhao, X., Zhao, T., Li, W., Ye, J., Dong, X., Wang, X., Liu, Q., Ding, H., Ye, Z., Chen, X., & Wu, Z. (2025). A machine-learning-powered spectral-dominant multimodal soft wearable system for long-term and early-stage diagnosis of plant stresses. Science Advances, 11(26), eadw7279. https://doi.org/10.1126/sciadv.adw7279
  4. Lee, G., Hossain, O., Jamalzadegan, S., Liu, Y., Wang, H., Saville, A. C., Shymanovich, T., Paul, R., Rotenberg, D., Whitfield, A. E., Ristaino, J. B., Zhu, Y., & Wei, Q. (2023). Abaxial leaf surface-mounted multimodal wearable sensor for continuous plant physiology monitoring. Science Advances, 9(15), eade2232. https://doi.org/10.1126/sciadv.ade2232
  5. Li, M., Li, J., Wei, X., & Zhu, W. (2017). Early diagnosis and monitoring of nitrogen nutrition stress in tomato leaves using electrical impedance spectroscopy. International Journal of Agricultural and Biological Engineering, 10(3), 194–205. https://doi.org/10.3965/j.ijabe.20171003.3188
  6. Muñoz-Huerta, R. F., Ortiz-Melendez, A. J., Guevara-Gonzalez, R. G., Torres-Pacheco, I., Herrera-Ruiz, G., Contreras-Medina, L. M., Prado-Olivarez, J., & Ocampo-Velazquez, R. V. (2014). An analysis of electrical impedance measurements applied for plant N status estimation in lettuce (Lactuca sativa). Sensors, 14, 11492–11503. https://doi.org/10.3390/s140711492
  7. Van Haeverbeke, M., De Baets, B., & Stock, M. (2023). Plant impedance spectroscopy: A review of modeling approaches and applications. Frontiers in Plant Science, 14, 1187573. https://doi.org/10.3389/fpls.2023.1187573
  8. Wang, Q., Molinero-Fernandez, A., Acosta Motos, J. R., Crespo, G. A., & Cuartero, M. (2025). Microneedle sensors for ion monitoring in plants: One step closer to smart agriculture. ACS Sensors, 10, 4771–4784. https://doi.org/10.1021/acssensors.5c01215
  9. Zhou, J., Wu, S., Chen, J., Sun, B., Di, B., Shan, G., & Qian, J. (2025). Electrical impedance spectroscopy reveals physiological acclimation in apple rootstocks during recurrent water stress episodes. Plants. (manuscript in preparation; no volume/issue/pages yet)

Fab open instruments and community builds

  • NanoStat open potentiostat: Lee & Burke (Electrochimica Acta, 2022; GitHub) ESP32 + LMP91000, browser UI. I bought a standard Nanostat module for leaf bench reads; AD5933 breakout as parallel/control path (Week 6 rev.2).
  • DFRobot voice kit (retired): offline TTS/recognition modules on the procurement sheet; later replaced by Alibaba voice services, not in the Week 20 demo chain.
  • finalprojects.fabacademy.org: benchmark for documentation depth, BOM transparency, and cross-week integration narrative. Forest Fairy spreads evidence across Weeks 2–17; this page is the scope contract.

Prior-art summary: existing work vs my build

Dimension Typical prior work Forest Fairy delta
Mobility Education omni kits, consumer soil sticks (no motion) 120° education omni + custom tree-root pot interface; manual/auto cruise + SR09, no light seeking
Plant readings EIS literature (Basak 2020; Li 2017, etc.), Flower Power four scalars Multi-channel environment + Nanostat/AD5933 leaf channel + custom log format
Interpretation & expression Phone app curves, black-box voice modules Rule flags + limited LLM copy; TFT/speaker; unknowns labeled
Voice XiaoZhi-class whole-board firmware Donor mic/speaker + custom Alibaba ASR/TTS/LLM pipeline
Networking Consumer sensor app cloud curves WiFi to cloud dialogue → TFT/speaker; no standalone app or MQTT broker

What I am actually shipping is the integration story: tree-root pot on a purchased omni kit, custom KiCad carrier, multi-MCU firmware bus (DATA_FLOW.md, matching bench wiring), and final-project §1 “plant grammar” rules (final-project §1). Prior work supplied the problems and the literature. For Fab I owe one closed loop I can demo without faking readings.

What sources will you use?

  • Course and lab: Fab Academy nueval modules, Chaihuo Makerspace equipment notes, group-assignment pages (milling, molding, networking, etc., Weeks 8, 11, 12, 14).
  • Datasheets and libraries: ESP32-S3 / WROOM; Arduino UNO; Raspberry Pi Pico; DHT11; DFRobot light module; RS485 NPK; Adafruit ILI9341; Nanostat / AD5933; omni kit motor driver docs.
  • Open hardware: Nanostat docs and GitHub; KiCad Fab libraries; tree-root pot reference mesh (Week 2 acknowledgments).
  • Core papers (leaf EIS rationale): Basak et al. (2020) Determination of Leaf Nitrogen Concentrations Using Electrical Impedance Spectroscopy in Multiple Crops (Remote Sensing); Li et al. (2017) Early Diagnosis and Monitoring of Nitrogen Nutrition Stress in Tomato Leaves Using Electrical Impedance Spectroscopy (IJABE). Survey and extended reading: references 1–9 above.
  • Research and UI precedents: XiaoZhi module (not whole-board, see precedents I touched); NanoStat (Lee & Burke 2022); Week 15 HTML prototype (code/week15-individual/).
  • Cloud APIs (v2 voice): Alibaba ASR/TTS; DeepSeek (or similar) LLM over HTTPS, see Week 16 / Week 17.
  • System wiring and data flow: DATA_FLOW.md matches current bench wiring and is the authority for firmware/hardware integration.
  • Personal lab notes: week HTML pages, final-project-weekly-plan.md, code/week11-network/ and code/week15-individual/final/ firmware trees.

What will you design?

Bench status as of Week 18

Subsystem Status (one line)
Omni base Wiring and drives largely connected; manual (SR09 threshold e-stop) and auto cruise (ultrasonic avoidance) firmware testable on bench; full integration still pending.
Tree-root pot FDM print done; not yet mated to the base.
Carrier (Forest_fairy_v2) v2 is the final line; v1 fully superseded, kept only as fab history.
Multi-MCU comms & firmware XIAO / WROOM / UNO / Pico roles and UART protocol largely written; subsystems demo separately.
TFT / voice stack Screen and WiFi dialogue run on bench; missing pot + base + harness integrated as one machine.
Plant in pot Live subject is a chili pepper plant (辣椒); potting and show details decided at integration.

Multi-MCU roles (aligned with DATA_FLOW.md)

Board Role Sensors / peripherals Firmware
Seeed XIAO ESP32-S3 Sensor aggregation, UART to Pico/UNO, upstream summary DHT11 temp/humidity; DFRobot light module; RS485 soil NPK Flashed; environment channels live
ESP32-WROOM WiFi, HTTPS cloud APIs, ILI9341 TFT UI 2.8″ ILI9341 capacitive TFT; works with XIAO Flashed; networked dialogue demo works
Arduino UNO Base motion: servo/motor drive, PS2 input; manual + auto cruise SR09 ultrasonic (avoidance); omni kit drives Flashed; base and avoidance testable
Raspberry Pi Pico Nanostat front-end reads NanoStat module → UART to XIAO Flashed; leaf channel samples

Leaf electrodes: NanoStat kit electrodes on the leaf for capture; expensive platinum items on the procurement sheet are early compare/spare only, not the Week 20 demo path.

Mechanical extras: cast spirit figurines sit beside the machine for display; passive irrigation cavity exists only in CAD/concept, not in the final physical build.

Original design (2D/3D, circuits, software, integration), not bought whole:

  • Mechanical: Blender tree-root pot and omni interface, cable clips; laser-cut acrylic frame; cast spirit decor (beside the machine) (Week 2, Week 5, Week 14).
  • Electronics: KiCad Forest_fairy_v2 carrier: XIAO socket, FPC display connector, sensor and Nanostat sidecar interfaces (Week 6, Week 8). v1 carrier is iteration history only, not assembled.
  • Embedded firmware: XIAO environment aggregation, Pico→Nanostat, UNO motion/avoidance, WROOM networking and TFT pages; plant state packing and UI state machine (Week 4Week 11Week 17).
  • UI and dialogue policy: HTML prototype ported to ILI9341; prompts tied to sensor flags; unknowns labeled on TFT (Week 15).
  • Test method: leaf impedance capture with metadata logs; watering/light event baselines (final-project §4).

Bought and modified: omni kit board/motors/drives; lab Seeed XIAO and WROOM; Nanostat module; PS2 controller; 903562-2s LiPo pack; XiaoZhi donor board (mic and speaker); SR09 ultrasonic (base avoidance).

What materials and components?

The table below is a personal project machine BOM overview. Receipt-backed line items are in forest-fairy-procurement-bom.xlsx (download) and markdown + order screenshots (total ¥3080.95). Omni kit bought around March 2026; XIAO / WROOM from lab stock (no charge); chili pepper plant potted at integration.

Category Item Role
Mechanical PLA / PETG filament Tree-root shell, brackets, cable clips (Week 5)
Mechanical Three-wheel omni kit Motors, wheels, deck, drives, PS2 (Week 12; bought ~2026-03)
Mechanical Acrylic / laser stock Side panels, PCB bay (Week 3)
Mechanical Silicone / polyurethane casting resin Spirit decor (beside machine, Week 14)
Electrical Seeed XIAO ESP32-S3 DHT11, DFRobot light, RS485 NPK; aggregates Pico/UNO (lab)
Electrical ESP32-WROOM WiFi, ILI9341 TFT, Alibaba dialogue UI (lab)
Electrical Arduino UNO Base motion, SR09 ultrasonic avoidance
Electrical Raspberry Pi Pico Nanostat reads → UART → XIAO
Electrical Forest_fairy_v2 carrier PCB Final line; v1 retired (Week 6)
Electrical NanoStat module Leaf electrode attachment capture
Electrical DHT11 / DFRobot light / RS485 NPK Three environment channels (910)
Electrical SR09 ultrasonic Base avoidance (on UNO)
Electrical ILI9341 TFT + XiaoZhi donor mic/speaker Display and Alibaba voice (17)
Electrical DFRobot voice kit (on procurement sheet) Retired; replaced by Alibaba ASR/TTS
Power 903562-2s LiPo (2S2P, 1500 mAh×2) Base ~7.4 V rail (kit pouch pack, not 18650)
Biological Chili pepper plant + substrate Live experiment subject (potted at integration)
Consumables Solder, flux, wire, standoffs, FPC Assembly and rework (Week 8)

Where from? How much?

Receipt-backed purchases are mostly domestic e-commerce: JLCPCB, Taobao / Tmall, Bambu Lab official store; FR1 milling used Chaihuo Makerspace stock (Week 8). The two tables below are the personal project ledger (¥3080.95). Download the full sheet: forest-fairy-procurement-bom.xlsx (category totals, line items, notes). Every row has order screenshots under docs/forest-fairy-procurement.md and images/final-project/bom/.

Needed for the machine but not in the ledger above: three-wheel omni kit bought earlier (~March 2026, shop/amount not logged separately); Seeed XIAO and ESP32-WROOM from lab stock (no charge); voice testing on Alibaba (free tier), DeepSeek LLM tests around ¥10.

Category totals (paid, documented)

Category Main source Paid (CNY)
1 · PCB fab JLCPCB ¥445.66
2 · Electrochemical electrodes Tmall / Taobao (Gaoshi, Chenhua, LEDON, etc.) ¥807.12
3 · Electronic modules Taobao, DFRobot ¥963.17
4 · Display modules Taobao ¥136.00
5 · 3D print filament Bambu official store ¥655.26
6 · Tools and consumables Taobao ¥57.99
7 · Medical / lab consumables Tmall ¥15.75
Total ¥3080.95

Line items (procurement sheet)

Category Item Spec Qty Paid
PCB Forest_fairy_v2 single-sided 5 pcs / 1.2 mm / green / 24 h express 1 lot ¥318.85
PCB v1 single-sided 5 pcs / 1.6 mm / green / 24 h express 1 lot ¥93.81
PCB v1 double-sided 5 pcs / 1.6 mm / green / 48 h express 1 lot ¥33.00
Electrode Gaoshi platinum wire electrode PT0537 / 99.99% 1 ¥285.00
Electrode L-type Ag/AgCl reference Φ3.8×16 mm 1 ¥78.26
Electrode Chenhua CHI115 Pt counter Φ0.5×37 mm 1 ¥146.74
Electrode LEDON Pt plate 5×5×0.2 mm reinforced 1 ¥197.12
Electrode Graphite rod carbon electrode Φ2×75 mm 1 ¥100.00
Electrode Patch electrode (Ag/AgCl) Disposable ECG-patch style, field preferred 1 pack ¥13.80
Electronics AD5933 impedance module Network analyzer board (superseded by NanoStat path) 1 ¥208.00
Electronics NanoStat open board Standard kit 1 ¥276.00
Electronics ESP32 auto-programmer USB flash tool 2 ¥21.46
Electronics SR09 ultrasonic module With dupont leads 1 ¥64.00
Electronics ASRPRO 2.0 voice board 2.0 upgrade (4 M) 2 ¥77.60
Electronics RS485→TTL module Industrial grade 2 ¥12.11
Electronics DFRobot voice kit Offline TTS + recognition 1 set ¥304.00
Display 2.8″ TFT SPI adapter Generic 3 ¥24.00
Display 2.8″ ILI9341 capacitive IPS TFT Touch 2 ¥76.00
Display 2.8″ ST7789 capacitive IPS TFT Touch 1 ¥36.00
Filament Bambu PLA Metal copper Standard spool 4 ¥435.73
Filament Bambu PLA Basic cocoa brown Standard spool 2 ¥108.33
Filament Bambu PLA Metal coffee gold With spool 1 ¥111.20
Tools Long Phillips screwdriver 6×500 mm 1 ¥27.00
Tools RG174 coax 50 Ω / 1 m 2 ¥7.60
Tools 1185 shielded wire 24 AWG gray / 1 m 4 ¥9.39
Tools Conductive resin adhesive Standard 1 ¥14.00
Lab 0.9% saline 100 ml bottle 1 ¥2.95
Lab Disposable ECG electrode pads 50 pcs / pack 1 ¥12.80
Forest Fairy PCB JLCPCB order screenshots
Order example: JLCPCB PCB batches (15 screenshots total in procurement archive).

What parts and systems will you make?

Forest Fairy final assembly: 3D-printed tree-root pot on omni base with laser-cut wooden sensor panels and Forest Fairy charging dock beside the machine
Final assembly (physical): tree-root pot on the holonomic base, laser-cut wooden panels for sensors and controls, and the laser-cut 森之精灵 charging dock (build photos). Render at the top of this page is for planning only; this photo is the current integrated machine on the bench.

Physical parts I am making (not buying whole)

  • CNC-milled PCBs: (1) power-detection board inside the charging dock (charging dock); (2) a custom purple PCB for the mobile base with on-board ESP32-WROOM, pushbuttons, and LEDs (Week 6 group bench, Week 8 milling exercise at Chaihuo).
  • KiCad carrier (JLC fab): Forest_fairy_v2 with XIAO socket, FPC display connector, sensor and Nanostat sidecar interfaces (Week 68); v1 lots kept as iteration history only.
  • 3D-printed tree-root pot: FDM shell in earth-tone PLA; mounts the chili pepper plant and interfaces to the omni base (Week 2, Week 5).
  • Laser-cut charging dock: finger-joint wooden enclosure with magnetic contacts, DC input, status LEDs, wake button, mic ring, LCD1602 top panel (final-project § charging dock).
  • Laser-cut chassis woodwork: base plate and side panels on the holonomic kit to mount SR09 ultrasonics, buttons, and status LEDs (build process photos 1–3, Week 3).
  • Cast 森之精灵 spirit figure: silicone mold and polyurethane pour; decorative companion beside the machine, not part of the motion stack (Week 14).
  • Application system (software + integration): multi-MCU firmware, Alibaba ASR/TTS + LLM dialogue, TFT UI pages, sensor aggregation, motion service, and harness routing, designed and wired as one closed loop (DATA_FLOW.md, 1617).

Must finish before Week 20 (current hard task)

Full machine integration and debug: wire every subsystem, assemble pot, base, carrier, screen, voice, and chili pepper plant as one unit, power on and tune until the demo chain runs. Subsystems already pass on the bench separately; what’s left is mechanical union and harness routing, not new features from scratch.

  • Mechanical union: mount the printed pot on the omni base; route harnesses clear of wheels.
  • Electrical pass-through: connect XIAO / WROOM / UNO / Pico to sensors, Nanostat, TFT, mic/speaker per DATA_FLOW.md.
  • Demo rehearsal: WiFi Alibaba voice → TFT/speaker; manual and auto cruise + SR09 avoidance on the integrated machine.
  • Made in lab / ordered fab: CNC dock power board + WROOM base PCB; JLC Forest_fairy_v2 carrier (final batch only; v1 lots not assembled); FDM pot; laser-cut dock and chassis panels; cast spirit figure; harnesses; all firmware and UI assets in repo.
  • Integrated systems: sensor bus (environment + plant frames), interpretation layer (flags, levels, stale detection), motion service (UNO: PS2 manual + SR09 threshold e-stop; auto cruise + SR09 avoidance; no light seeking), dialogue service (Alibaba ASR/TTS + LLM), display service (WROOM + ILI9341 TFT).
  • Bought whole: omni wheel sets and motors, drive mainboard, battery holder, commercial display module, Nanostat analog front-end board, voice donor module.

Fab guidance is “make before you buy when you can.” Machining omni rollers myself is not this semester’s goal; I am wiring a kit into a plant robot.

What processes will it involve?

Course unit Process Use on Forest Fairy
2D and 3D design Blender CAD, KiCad Pot + PCB (2, 6)
Additive FDM 3D printing Tree-root shell (5)
Subtractive Laser cutting Acrylic side panels (3)
Subtractive PCB milling Not on final line: Week 8 exercise only; final carrier from JLC; assemble Forest_fairy_v2 last batch only
Electronics design & production Schematic, layout, JLC order Forest_fairy_v2 carrier (68); early JLC v1 lots not assembled
Embedded programming Arduino / ESP-IDF Multi-MCU firmware (417)
Input / output devices Sensors, OLED/TFT, motors, voice Weeks 9–10, 16–17
Networking WiFi, HTTPS cloud APIs, I²C bridge Week 11 (bench); final demo Week 17 dialogue chain
Mechanical design Kit assembly, harness routing Week 12, build process
Molding and casting Silicone mold, polyurethane pour Week 14 decor pieces
Interface programming HTML UI → embedded TFT Week 15
System integration Bench bring-up Week 16
Wildcard Cloud ASR/TTS pipeline Week 17

Fab units / parts not used this term: RP2040 (not in this project); early JLC v1 PCB lots (receipts exist, not assembled); PCB milling as course exercise only, not in the final machine.

Open questions and Week 20 commitments

Must close by Week 20

Before the show I am betting on one thing: full integration and debug. All harnesses connected, mechanical union done, power-on tune complete. Demo chain is WiFi v2 Alibaba voice → TFT/speaker as the required path; no offline fallback to v1 for the presentation.

Motion safety (chosen, pending integration test): both modes share SR09. Manual: PS2/remote drive, forward ranging below threshold forces stop. Auto cruise: cruise logic with ultrasonic avoidance. Exact centimeter thresholds set at integration; not fixed on this page.

Not for final / not promised yet

  • Minimum baseline window for “trend” (hours vs days): not quantified; not a Week 20 pass/fail item.
  • Whether Nanostat curves alone drive user-facing prompts: research channel first, no final-show gamble.
  • Passive irrigation cavity hardware, fixed LLM disclaimer copy, cross-species generalization, LiPo shipping rules, cloud data retention: next version or outside class scope.

Still open but not blocking Week 20

  • Leaf electrode attachment and vibration after potting the chili pepper plant and full assembly.
  • Long-run stability of v2 cloud voice on lab WiFi (pass if it survives the demo script length).

What counts as success?

Week 20 pass/fail for me is integrated machine + demoable stack, not “every research question solved.” I pass if all of the below are true:

  1. Integration: pot, base, carrier, screen, harness, chili pepper plant as one unit; wiring matches DATA_FLOW.md.
  2. Mechanical / motion: drives on flat indoor floor; manual mode stops when SR09 below threshold; auto cruise avoidance works (Week 12 extension).
  3. Electrical: Forest_fairy_v2 powers without shorts; XIAO / WROOM / UNO / Pico flashed and talking (Week 8).
  4. Environment sensing: DHT11, DFRobot light, RS485 NPK readable on TFT (Week 10).
  5. Plant channel: at least one leaf impedance capture with metadata (NanoStat electrodes on leaf, final-project §4).
  6. Integration demo: required WiFi Alibaba ASR/TTS/LLM → TFT/speaker once per script (17).
  7. Documentation: classmates can follow week pages + repo for major subsystems; BOM and process tables match the physical build.

Formal Fab assessment also checks integration of 2D/3D, additive/subtractive, electronics design and production, embedded, and packaging. The process table above is my self-check against that list.

Applications and implications (social and environmental)

Concrete user scenario

One scene I keep returning to: an older adult alone in a hometown apartment, an evergreen in the windowed living room. Adult children work away and video call about once a week. Cats and dogs are out; the green by the window is what she looks at after waking. Forest Fairy is sized for that room and that plant, not a generic “elderly user” persona slide.

When a left-behind elder lives alone, I want a warm presence in the home that is not a high-care pet. The green plant is already there. With plant physiology plus AI, the machine can express needs and mood the way a pet might, but grounded in real sensor data.

Background: why I’m building it. Forest Fairy tries to translate adaptations the plant already makes (light seeking, root response) into information on screen and speaker, instead of waiting for yellow leaves.

Ethical lines I will not cross

I will not ship bleak or manipulative companion content. No scare alerts like “your plant is heartbroken”; no “plant crying” stories from random sensor noise; no disaster plots from uncertain readings. Companionship should be warm and actionable, e.g. “light is low today, try moving the pot closer to the window,” not extra anxiety for someone already lonely.

The robot must not sound more human than the evidence allows. SR09 bounds the base; manual and cruise demos avoid knocking the pot or catching cables. v2 cloud voice is in use; no extra fixed disclaimer string beyond that choice.

Battery and power

Base power is a 903562-2s LiPo pouch (2S2P, 1500 mAh×2, nominal 7.4 V), not 18650 cells. Cells and protection are one soft pack with the omni kit; not user-replaceable. Prototype stage: I charge, store, and transport in the lab.

Environmental angle: longer plant life, fewer repots and repeat seedlings. Rechargeable LiPo beats disposable alkalines. Tradeoff: end-of-life LiPo and later e-waste from MCU modules. I will document battery handling and keep disposable plastic low in the prototype. I am still checking Chaihuo rules for pouch transport/charging; I will follow lab policy before the show.

Project development: slide, video, presentation schedule

The other half of this week’s Fab deliverable is draft presentation media at the repo root, linked from the class final-presentation schedule. Placeholders for now; final assets before Week 20.

Week 20 presentation format

Week 20 presentation is online. I will join the remote review slot Fab assigns and run the closed demo script on the integrated Forest Fairy.

Uploaded summary slide

Repo root: presentation.png (1920×1080 px) — name, project title, Fab Lab, hero image, short blurb, and “Fab Academy 2026”.

Forest Fairy final project summary slide — John Yu, Chaihuo Makerspace, Fab Academy 2026
John Yu · Forest Fairy · Chaihuo Makerspace · Fab Academy 2026 — exported poster at repo root.

Uploaded video clip

Repo root: presentation.mp4 — 1080p H.264, 59 s, ~20 MB (under the ~25 MB Fab limit), showing concept, fabrication, and operation.

Final one-minute reel for Week 20. Cut from integrated build and bench footage; picture and machine audio carry the story.

Video narration

No separate voiceover — Fab allows picture-led clips; machine and ambient audio from the edit.

Check link to final presentation schedule

After the instructor publishes the Week 20 roster, I will verify my row on the Chaihuo / Fab Academy central calendar. Checklist:

  • Repo URL points to this site; root has presentation.png / presentation.mp4.
  • Slide and video filenames match Fab requirements exactly.
  • Schedule links open after GitLab Pages deploy (.gitlab-ci.yml).

Status: TBD. Class final-presentation schedule URL when published; no URL on this page yet.

Plan and timing: about one week to show

Today is 4 June 2026; about one week to the Week 20 online presentation. Subsystems pass on the bench separately; left are integration, media, and script. Milestones below follow current project state (dates may shift with lab access and parts).

  1. 5–6 Jun · mechanical union: lock tree-root pot to omni base; route carrier/FPC/harness per DATA_FLOW.md; pot chili pepper plant and first leaf electrode attach.
  2. 7 Jun · power-on tune: motion (manual + SR09 e-stop / auto cruise avoidance), environment on TFT, Pico→Nanostat at least once each.
  3. 8 Jun · demo script freeze: write step-by-step WiFi v2 Alibaba ASR/TTS/LLM script; one full rehearsal on lab WiFi.
  4. 9–10 Jun · presentation media: shoot integrated machine/bench photos; export presentation.png (1920×1080); edit presentation.mp4 (render + base test + print timelapse + integrated run).
  5. ~11 Jun · Week 20 online presentation: join remote review at Fab slot; run closed demo script.

Conclusion: plan pinned to week evidence

Week 18 pulls scattered week proofs into one plan: translate plant signals for people, keep motion manual, label uncertainty on the TFT. Checklist answers sit on final-project.html and Weeks 2–17. Full integration, show media, and a frozen dialogue script are still open, but at least they are on this page and not only in my head.

Reusable outputs: BOM tables on this page, Fab integration process matrix, Week 20 rehearsal rubric, and firmware in code/week15-individual/final/ and code/week11-network/.

Next: export presentation.png, cut presentation.mp4, finish physical stack (pot + base + harness), close at least one Nanostat prompt loop on TFT, then invention / IP week. Same rule as Week 1: listen carefully, move carefully, do not lie to the leaf.