FLORA

An open-source robotic plant companion. A Raspberry Pi 5 that reads your plant's soil, light, temperature and humidity, and talks with you about how it is doing.

Free

Free and open source under the MIT license: the code, the bill of materials and the CAD. You supply the parts, the filament and an OpenAI API key.

A plant that can tell you how it is doing

FLORA sits beside a plant with a capacitive probe in its soil. Ask how your plant is doing and it takes live readings of soil moisture, light, temperature and humidity, then answers out loud.

It learns your plant through conversation. Tell it the plant's name, what kind it is and where it lives, and it remembers. There is no built-in species list or watering schedule: FLORA records what it measures and reasons from your plant's own history.

Everything runs on the Raspberry Pi 5 inside. Memory is a local database on the Pi, and no recordings or transcripts are stored.

FLORA from above beside a potted plant: a white console with the purple Lumalien mark and a glowing ring of lights

Specs

Size
188 by 118 by 46 mm, a low console
Compute
Raspberry Pi 5
Sensors
Capacitive soil probe, VEML7700 light, SHT41 temperature and humidity, on one STEMMA QT hub
Audio
Waveshare WM8960 audio HAT with built-in mics and two 5 W speakers
Light
A 12-LED NeoPixel ring under a printed halo lens
Voice
OpenAI Realtime, with your own API key
Memory
Local SQLite on the Pi. No transcripts kept
Printed parts
Ten, sized for a 256 mm bed. Designed on a Bambu Lab A1
Power
USB-C into the Pi

Voice runs online through OpenAI Realtime, billed to your own OpenAI account. The sensors, memory and light ring work on the Pi itself.

The BOM, the CAD and the code

Nothing about FLORA is held back. All three are public on GitHub, free to read, build, change and share.

01

Bill of materials

Every board, sensor, cable, screw and insert, with the exact Adafruit and Waveshare parts the enclosure was modelled around.

02

CAD

Ten print-ready STLs and the full Blender model, with every electronic part placed at real size.

03

Code

The Python app that runs on the Pi: voice, sensors, memory, the light ring and a boot service, with its tests.

What FLORA does

Every item here runs on the robot today, as the code in the repository describes it.

Live plant status

Ask "How's my plant doing?" or "How much light am I getting?" and FLORA reads its sensors on the spot. It never invents a measurement.

Learns your plant

Its name, its species, where it sits and what it is potted in. Told once, remembered across restarts.

Soil references

Tell FLORA when the plant is ready for water and again when it has been watered. It learns those two points for your actual pot.

History

Every reading is saved with a timestamp, so FLORA can compare today with last week instead of guessing from one snapshot.

A ring that shows its state

Dim purple while idle, a slow pulse while it listens, a sweep while it thinks, green while it speaks.

Remembers you

Your name, how you like to be spoken to, and the care you report, such as "I watered it today."

Not in this first version

  • A wake word. It listens while running
  • Interrupting it mid-reply
  • Reminders or proactive alerts
  • Watering the plant itself

Build it in four steps

Each step is a document in one of the two repositories. Nothing is hidden behind a download.

Step 01

Buy the parts

The Pi 5, the audio HAT and speakers, four Adafruit sensor boards, the cables, and a short list of inserts and screws.

Step 02

Print the parts

Ten STLs, already turned to their print orientation. White for the body, purple for the band and inlays, clear for the halo lens and light window.

Step 03

Assemble

Set the inserts, seat the Pi and speakers in the tray, close the deck, then fit the halo, light sensor and hub into the spine.

Step 04

Install the software

A Python virtual environment, your API key in a .env file, then a check command for each part before the first run.

Ten printed parts

Walls, floor and top are 2.4 mm, and every part fits a 256 by 256 mm bed. The screws are hidden: none show on the top or the front.

Base

188 by 118 by 27.2 mm

White. The tray that holds the Pi, the speakers and the temperature sensor.

Deck

188 by 118 by 5.4 mm

White. The speaker grilles. Prints upside down.

Spine

100 by 118 by 31.5 mm

White. Carries the halo, the light window and the sensor hub.

Collar

100 by 118 by 3 mm

Purple. The band between the deck and the spine.

Halo lens and retainer

Two parts

The lens over the light ring and the ring that holds it.

Light window

13.7 by 3.4 mm

Clear. A thin cup the light sensor reads through.

Logo inlay

33.2 by 36.8 mm

Purple. The Lumalien mark, glued into the spine.

Lettering inlays

Two sets

Purple. FLORA on the front, LUMALIEN on the spine.

Not in the download

Not included:Raspberry Pi 5 and power supply
Not included:Audio HAT, speakers and sensor boards
Not included:Inserts, screws and feet
Not included:Filament and a printer
Not included:An OpenAI API key
Close-up of the FLORA console: the purple Lumalien mark, the lit halo ring and the small light-sensor window

Grow one, and show us.

The code is in one repository and the CAD in another. Build logs, photos, remixes and fixes are welcome.

Found it useful?

FLORA is free and always will be. If it helped you, a donation of any size helps fund the next robot.

See every Lumalien robot in the store.