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 list. 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 15). 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 about locking scope, not celebrating early wins.

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 shows on the leaves, it is often too late to fix easily.

Many older adults live alone. Cats and dogs need daily care they may not have energy for. A plant is a lower-maintenance companion: no walks, no litter, just basic watering to keep it in the room.

Plants also respond to their environment. They bend toward light; roots react to soil changes. That response is slow, but real. The problem is visibility: the plant is working, and we do not see it.

Forest Fairy translates sensor readings the plant already produces into text and speech 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 is the WiFi-connected conversational screen, where cloud ASR/TTS and the LLM return text and audio to the TFT and speaker. I am not adding a standalone web page, MQTT broker, or phone app to the final script; the Week 11 network bench work stays in that week’s report.

The closed loop I am building starts with environment readings from the DHT11, DFRobot light module, and RS485 soil NPK sensor on XIAO, each at its own native rate (Week 10, Week 11). The plant channel comes from Pico reading Nanostat and sending the result to XIAO over UART, with electrodes attached to the leaf (Week 6 rev.2, final-project §4). From there I interpret the data with rules and a model-assisted summary, but I keep the categories limited to acute stress, environmental drift, or stable noise floor. I do not turn random jitter into "drama" (Week 16). The expression side is manual or auto cruise with SR09 safety, WROOM networking and TFT pages, and the required WiFi Alibaba ASR/TTS voice path from Week 15. WiFi only supports cloud dialogue back to the screen and speaker; it is not a remote control app.

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 (final upload notes, Week 15 cloud voice).

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. What I am building 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 15 voice).

Precedents I actually touched (not adopted whole-board)

I tested a few precedents instead of only reading about them. XiaoZhi (小智) and similar turnkey voice modules taught me how wake and streaming ASR products are usually packaged; I bench-wired a module to the XIAO ESP32, but the firmware repo was too large and too tangled with my TFT and sensor bus, so I only kept the microphone and speaker and moved the voice path to Alibaba ASR/TTS plus my hub (Week 15 voice). Mimiclaw was an early helper-layer idea on XIAO ESP32, but integration and upkeep were too heavy, so it is not used in the current project or in the loop diagram. Parrot Flower Power and similar soil sticks proved that home plant telemetry has a market, but their four-scalar phone-curve model is not the same as multi-channel sensing with screen and voice expression. The 120° three-wheel omni education kit gave me a known base with mixing, drives, and PS2 remote control (Week 12); I chose not to spend the remaining budget on research platforms like TidyBot++ because sensing and the carrier board were the real unknowns for my project.

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

I used the NanoStat open potentiostat as the closest instrument precedent: Lee & Burke (Electrochimica Acta, 2022; GitHub) built an ESP32 + LMP91000 board with a browser UI, and I bought a standard Nanostat module for leaf bench reads. The AD5933 breakout stayed as a parallel/control path (Week 6 rev.2). I also used finalprojects.fabacademy.org as a benchmark for documentation depth, BOM transparency, and cross-week integration narrative, because Forest Fairy spreads evidence across Weeks 2-17 and this page has to pull that scattered proof into one checklist.

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 (final upload notes, 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?

My source stack is practical first. I use the Fab Academy nueval modules, Chaihuo Makerspace equipment notes, and group-assignment pages for the fabrication processes, then check datasheets and libraries for ESP32-S3 / WROOM, Arduino UNO, Raspberry Pi Pico, DHT11, DFRobot light, RS485 NPK, Adafruit ILI9341, Nanostat / AD5933, and the omni kit motor drivers. For open hardware I keep the Nanostat docs and GitHub, KiCad Fab libraries, and the tree-root pot reference mesh acknowledged in Week 2. The leaf EIS rationale comes mainly from Basak et al. (2020), Determination of Leaf Nitrogen Concentrations Using Electrical Impedance Spectroscopy in Multiple Crops (Remote Sensing), and Li et al. (2017), Early Diagnosis and Monitoring of Nitrogen Nutrition Stress in Tomato Leaves Using Electrical Impedance Spectroscopy (IJABE), with the extended reading list in references 1-9 above. For the voice and UI side I use the XiaoZhi module only as a hardware precedent, NanoStat as the open instrument precedent, my Week 15 HTML prototype, Alibaba ASR/TTS, and an HTTPS LLM service. The last source is my own wiring: firmware READMEs, pin comments, week HTML pages, final-project-weekly-plan.md, code/week11-network/, and code/week15-individual/final/ have to match what is actually on the bench.

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

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.

The original design work is spread across mechanics, electronics, firmware, UI, and testing rather than one single file. I modeled the tree-root pot, omni interface, and cable clips in Blender, made the laser-cut frame parts, and cast the spirit decor that sits beside the machine (Week 2, Week 5, Week 14). On the electronics side I designed the KiCad Forest_fairy_v2 carrier with the XIAO socket, FPC display connector, sensor inputs, and Nanostat sidecar interfaces; the v1 carrier remains iteration history only (Week 6, Week 8). The firmware covers XIAO environment aggregation, Pico to Nanostat, UNO motion and avoidance, WROOM networking and TFT pages, plant-state packing, and the UI state machine (Week 4 to Week 11 to Week 15 voice). I also designed the dialogue policy: the HTML prototype moved to ILI9341, prompts stay tied to sensor flags, unknowns are labeled on the TFT, and leaf impedance captures are saved with metadata so watering and light events can be compared later (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 (15)
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 ¥581.57
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 ¥2699.35

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 RS485→TTL module Industrial grade 2 ¥12.11
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)

The physical work I am making, rather than buying whole, includes two CNC-milled PCBs: the power-detection board inside the charging dock and a custom purple PCB for the mobile base with on-board ESP32-WROOM, pushbuttons, and LEDs (charging dock, Week 6 group bench, Week 8). I also designed the JLC-made Forest_fairy_v2 carrier with XIAO socket, FPC display connector, sensor inputs, and Nanostat sidecar interfaces; the v1 lots stay as iteration history (Week 6-8). The mechanical parts I made are the FDM tree-root pot for the chili pepper plant, the laser-cut charging dock with magnetic contacts and LCD1602 top panel, the laser-cut chassis woodwork for SR09, buttons, and status LEDs, and the cast 森之精灵 spirit figure that sits beside the machine rather than inside the motion stack (Week 2, Week 3, Week 5, Week 14). The application system is also mine: multi-MCU firmware, Alibaba ASR/TTS + LLM dialogue, TFT UI pages, sensor aggregation, motion service, and harness routing designed as one closed loop (final upload notes, Week 16).

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 is left is mechanical union and harness routing, not new features from scratch.

The last build push is mechanical union, electrical pass-through, and rehearsal. I need to mount the printed pot on the omni base, route harnesses clear of the wheels, connect XIAO / WROOM / UNO / Pico to the sensors, Nanostat, TFT, mic, and speaker according to the final firmware notes, then rehearse WiFi Alibaba voice to TFT/speaker with manual and auto cruise plus SR09 avoidance on the integrated machine. The parts I made or ordered for fabrication are the CNC dock power board, WROOM base PCB, final JLC Forest_fairy_v2 carrier, FDM pot, laser-cut dock and chassis panels, cast spirit figure, harnesses, firmware, and UI assets. The bought whole parts are the omni wheels and motors, drive mainboard, battery holder, commercial display module, Nanostat analog front-end board, and voice donor module. The systems I still have to make behave together are the sensor bus, interpretation layer, motion service, Alibaba dialogue service, and WROOM display service.

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 (415)
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 15 voice 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 15 voice

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

I am not promising a quantified baseline window for "trend" yet, because I do not know whether the useful window is hours or days. I am also not letting Nanostat curves alone drive user-facing prompts in the final show; that stays a research channel until the data is steadier. Passive irrigation hardware, fixed LLM disclaimer copy, cross-species generalization, LiPo shipping rules, and cloud data-retention policy all belong to a later version or outside the class scope. The two issues still open but not blocking Week 20 are leaf electrode attachment after the chili pepper plant is potted and long-run stability of v2 cloud voice on lab WiFi. For the presentation, the voice path only has to survive 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 the pot, base, carrier, screen, harness, and chili pepper plant run as one unit, with wiring that matches the final firmware pin notes. The base has to drive on a flat indoor floor, stop in manual mode when SR09 falls below the threshold, and run auto cruise avoidance from the Week 12 extension. Electrically, Forest_fairy_v2 must power without shorts, and XIAO / WROOM / UNO / Pico must be flashed and talking (Week 8). The TFT should show DHT11, DFRobot light, and RS485 NPK readings (Week 10), and the plant channel needs at least one leaf impedance capture with metadata from NanoStat electrodes on the leaf (final-project §4). The required integrated demo is one WiFi Alibaba ASR/TTS/LLM to TFT/speaker run per script (Week 15 voice demo). The documentation passes if classmates can trace the major subsystems through the week pages and repo, and if the 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 user profile on a 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 useful, 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), with my name, project title, Fab Lab, hero image, short blurb, and "Fab Academy 2026".

Forest Fairy final project summary slide for 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

I did not add a separate voiceover. Fab allows picture-led clips, so I kept the 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. I need the repo URL to point to this site, the root to contain presentation.png and presentation.mp4, the filenames to match Fab requirements exactly, and the schedule links to open after the GitLab Pages deploy through .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, so I have about one week before the Week 20 online presentation. The subsystems pass on the bench separately; what remains is integration, media, and the script. On 5-6 Jun I plan to lock the tree-root pot to the omni base, route the carrier, FPC, and harness according to the final firmware pin notes, pot the chili pepper plant, and attach the first leaf electrode. On 7 Jun I will power on the integrated unit and tune motion, SR09 e-stop / auto cruise avoidance, environment readings on TFT, and at least one Pico to Nanostat capture. On 8 Jun I need to freeze the WiFi v2 Alibaba ASR/TTS/LLM script and run one full rehearsal on lab WiFi. On 9-10 Jun I will shoot the integrated machine and bench photos, export presentation.png at 1920×1080, and edit presentation.mp4 from the render, base test, print timelapse, and integrated run. Around 11 Jun I will join the remote Fab review slot and run the 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 they are listed here now.

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/.

I used Cursor to code and refactor the firmware trees listed above: hub, WROOM UI, Pico bridge, and voice clients. I kept flashing each board as the integration checklist on this page narrowed.

Next: finish physical stack (pot + base + harness), export presentation.png, cut presentation.mp4, close at least one Nanostat prompt loop on TFT, then invention / IP week.