Growing Heliamphora

Heliamphora are carnivorous plants which originate from high on the humid tepui mountaintops of the Guiana Highlands -- cool, bright, humid conditions that are hard to fake with a plug-in thermostat and a spray bottle. My collection lives inside a modified storage rack, under LED growlights and active cooling, all run by a self-built, open-source control system that tracks real-time weather at the actual tepuis rather than holding fixed numbers.
This page documents the setup itself -- hardware, wiring, and exactly how the automation makes its decisions -- for anyone who wants to build something similar rather than just read about the plants. If that's not you, the plant-care sections (Substrate, Water, Fertilization) further down are the ones actually about growing them.

Hardware

Everything below is tied together over Modbus (mostly RTU/RS485, some devices support TCP), read and driven by a Python control loop running on a small Linux server on my home network -- not a dedicated board sitting in the rack itself.

Bill of materials
ComponentModelRole
Grow lights (x2)Sanlight Q4WL S2.1Primary lighting
Light dimmingWaveshare Modbus RTU Analog Output 8CH (B), 0-10VContinuously variable dimming, solar-elevation driven
Primary + secondary sensor (x2)Seeed S-THP-01A, RS485 ModbusTemperature/humidity/pressure/dew point, cross-checked against each other
Ambient sensorrelocated outside the growtentOutside-room temperature/humidity monitoring
MistingDiaphragm pump + misting nozzlesHumidity, relay-driven time-proportional duty
Exhaust fanSpider Farmer 150mm inline fanHumidity venting / evaporative cooling assist
Fan speed controlWaveshare Modbus RTU PWM Output 4CH10kHz PWM, continuously variable
Actuator relayWaveshare Modbus RTU Relay 4CHSwitches mister, cooler and growlight power
CoolingModified CO2-laser watercooler + PC radiatorCascade-assist cooling
Safety watchdogRaspberry Pi + USB-to-RS485 adapterIndependent fail-safe, wired directly onto the relay bus

How It's Automated

Weather tracking. Most setpoints aren't fixed numbers -- they're pulled from real, live weather data for the Guiana Highlands. Every 15 minutes the loop queries Open-Meteo (free, no key needed) and blends readings from four real tepui summits -- Roraima, Auyán-tepui, Chimantá Massif and Kukenán-tepui -- so one summit's local quirk doesn't skew the signal. That blended reading drives the temperature setpoint, the humidity setpoint, growlight dimming under real cloud cover, and a rain-triggered humidity boost, each clamped to a safe range so a bad reading can never push an actuator to an extreme.

Fallback chain. If the live weather API goes down, tracking doesn't freeze -- it falls back through: a 30-minute rolling average of the controller's own logged history, then a two-week historical curve built from that same history, then a fixed day/night baseline as a last resort. That curve is time-shifted to match the tepuis' own real day/night cycle to the growroom's simulated one (not calendar clock time), so the tracked night-time target stays aligned with when the growlights are actually off, year-round.

Fan control (three regimes). The exhaust fan's control logic switches between three modes based on the room's own temperature: below 24°C it's driven by a humidity PID; between 24°C and 25°C it switches to a temperature PID instead, leaning on ventilation for evaporative cooling before the compressor engages; at 25°C and above it hands back to humidity, since the compressor is now doing the temperature work. All three regimes share one set of PID gains, just re-pointed at whichever variable is currently relevant.

Self-tuning (currently disabled). The fan's PID gains don't have to stay fixed -- there's a relay-feedback autotune mechanism built in (the same family of method used by commercial PID tuners), scheduled separately for day and night. It's switched off right now: a real run once converged on a false oscillation and tried to write a proportional gain in the millions straight into live control. Root cause: a swapped argument in the amplitude-tracking code collapsed the oscillation signal to nothing and let the underlying math blow up. Fixed and verified against the exact data that caused it, but not yet trusted back onto live control.

Cascade-assist cooling. The watercooler isn't the fan's first resort -- it only engages once the fan alone has failed to hold setpoint for a sustained 10 minutes (more than 0.1°C/%RH off target). Once on, it's held on for at least 4 minutes; once off, held off for at least 3 minutes -- standard protection against compressor short-cycling wear.

Other safety guards:

  • Mister runaway cap -- never more than 35% duty within any 100-second window, regardless of reading or a forgotten manual override.
  • Sensor cross-check -- the two temperature/humidity sensors are compared continuously; a sustained gap over 5°C or 15 percentage points flags a likely sensor fault.
  • Manual override expiry -- any dashboard override (cooler/mister/growlight forced on or off) automatically reverts to Auto after 4 hours.
  • Independent watchdog -- a second Raspberry Pi, wired directly onto the same relay bus over its own RS485 connection, watches the main controller from the outside. If it stops reporting for more than 30 seconds, the watchdog forces the cooler, mister and fan into a safe idle state on its own, regardless of whether the network or the main controller is even still up.

Light

2 Sanlight Q4WL S2.1 fixtures. I used to dim them with a Sanlight M-Dimm, a magnetic dimmer limited to 4 fixed steps (100%, 80%, 60%, 40%) -- that's no longer in the setup. Dimming is now done directly by an 8-channel Waveshare Modbus 0-10V analog output module: continuously variable, running at 65% of full output at midday, ramping from a 10% floor at dawn to fully off at dusk, following a real solar elevation calculation for the tepui's location rather than a fixed clock time, and dimming further under real cloud cover via the weather tracking described above.
Choosing LED growlights helps keep temperature easier to control. Under these lights the plants color up nicely, as you can see in the pictures below.

Manufacturer photo below of the dimming module (Waveshare) -- not a photo of my own installed unit.
Waveshare Modbus RTU Analog Output 8CH (B) 0-10V module

Today's Growlight Curve

The actual growlight intensity recorded so far today (not a fixed program -- see above) -- real solar elevation for the tepui, dimmed further under real cloud cover as it happens. Only covers up to now, not the rest of today, since this control loop decides dimming live rather than planning the whole day in advance.

2026-09-20:
-1.2%7.4%16%2026-09-192026-09-20Intensity

Temperature

Heliamphora do not like high temperatures at all. They can survive high temperatures as long as relative humidity is kept high (>85%).
Baseline targets: 22°C day / 15°C night, held by a PID controller driving the cooling system -- normally overridden by the tepui's live tracked temperature instead, clamped between 12°C and 24°C for safety.

That ~7°C day/night drop is deliberate, not incidental -- Heliamphora experience a real diurnal swing natively, and a flat temperature all night undersells that. The specific numbers are a conservative middle ground based on reported conditions on Roraima's actual summit (commonly cited as roughly 15-25°C by day down to 0-10°C at night, though the summit's near-constant cloud cover damps the swing most days): not the full extreme, since a growroom's abrupt mechanical cooling isn't quite the same as gradual overnight radiative cooling, and my own species mix leans toward the warmer, lower-elevation Chimantá massif rather than Roraima's coldest conditions specifically.
Which setpoint is active switches on real solar elevation at the tepui's own coordinates, not the local clock -- so night mode engages at the tepui's actual dusk, not mine. The drop itself is actively driven, not passive drift: the watercooler (see Cooling below) has to remove real heat to bring the room down that far each night rather than just coasting toward room-ambient.

Monitored with a Seeed S-THP-01A, an RS485 Modbus sensor that also reads humidity, barometric pressure and dew point over the same connection, enclosed in a weatherproof housing. A second, identical unit provides the redundancy the sensor cross-check compares against, and a third one that used to sit inside the growtent has since been relocated to monitor the room outside it instead.
Below is a manufacturer photo of the sensor (Seeed Studio) -- not a photo of my own installed unit.

Seeed S-THP-01A RS485 temperature/humidity/pressure sensor probe and cable

Room temperature vs. the raw tracked-weather value over the last 7 days (hourly averages):
13.1°C18.7°C24.2°C2026-09-132026-09-20Room temperatureTracked weather

Humidity

Added via a diaphragm pump pushing water through misting nozzles inside the growrack. The pump is a simple relay-driven on/off device, but the controller approximates a variable duty cycle by rapidly switching it within a 40-second window (e.g. 15 seconds on, 25 off), so the average misting rate is tunable rather than just full-blast or nothing. Hard-capped at 35% duty within any 100-second window regardless of reading or override, guarding against a stuck relay waterlogging the growing medium.
Removed via the exhaust fan (see Hardware above) -- continuously variable speed via its dedicated PWM module, normally chasing the humidity reading directly (too humid, spin up and vent; close to target, ease off) except when the room is warm enough to switch to the temperature-driven regime described in "How It's Automated".
Baseline targets: 80% day / 90% night, normally overridden by the tepui's live tracked humidity instead, clamped between 75% and 95%. A real rain event at the tepui (from the same weather feed) temporarily nudges the target up for half an hour.

Manufacturer photos below -- not photos of my own installed units -- of the Spider Farmer inline fan and the Waveshare Modbus PWM module driving it.
Spider Farmer 150mm/6-inch inline duct fanWaveshare Modbus RTU PWM Output 4CH module

Room humidity vs. the raw tracked-weather value over the last 7 days (hourly averages):
43.1%71.6%100%2026-09-132026-09-20Room humidityTracked weather

Relative humidity is monitored trough the same Seeed S-THP-01A sensor used for measuring temperature.

Cooling

An industrial cooler normally used for cooling a CO2 laser, modified and hooked up to a relay driven over Modbus, cooling a PC watercooling radiator mounted inside the growrack -- the same 4-channel Waveshare relay module also switches the mister and growlight power.
Only engages as a cascade assist once the exhaust fan alone has failed to hold setpoint for a sustained 10 minutes (see "How It's Automated" above for the exact compressor-protection timing).

Manufacturer photo below of the relay module (Waveshare) -- not a photo of my own installed unit.
Waveshare Modbus RTU Relay 4CH module

Related Projects

If this kind of build interests you, take a look at Highland Cloud Forest by Gabriele Zoppoli -- a similarly automated, weather-tracking terrarium for ~70 highland cloud forest species, with its own live dashboard and open-source code.

Substrate

My media mix consists out LFS (long fibered sphagnum), horticultural perlite, a bit peatmos and smal orchidbark. All of this is then topped of with live sphagnum moss.
This mix allows for exelent drainage and stays moist but not soaking wet.


Water

The plants get watered with rainwater (conductivity of max. 58µS) or with reverse osmosis water (conductivity of max. 18 µS). The most of the time I use rainwater.


Fertilization

I fertilize my Heliamphora's with RAIN MIX®. This is an all seasons orchid fertiliser and has been especially developped for use with rainwater, RO water or soft city water.
The ratio's (NPK) are: (11,8N + 2,7P2O5 + 13,7K2O + 11,8CaO + 3,5MgO + 4,8SO3) completed with neccesary trace elements like Fe, Mn, Zn, Cu, B, Mo and Co.
I prepare a solution with a max. conductivity of 250 µS and fertilize with every watering. The conductivity varies with every watering never exceeding the max conductivity of 250 µS.
On top of the fertilizer the plants also get dried bloodworms/other dried insects once a month.


My Current Collection

Live list of the plants currently in my collection, pulled straight from the growroom controller.

Current Collection
Name Qty
Brocchinia Reducta 1
H. (Heterodoxa x Ionasi) x Minor var Pilosa (02) 1
H. Chimantensis 1
H. Exappendiculata, Apacapa 1
H. Exappendiculata, Aprada 1
H. Minor 1
H. Minor var Pilosa 1
H. Nutans, Kukenan 1
H. Pulchella Akopan, Tepui Mix of clones 1
H. Pulchella, Churi 1
H. Purpurascens Ptari tepui 1
H. Sarracenioides "Chubby form" Ptari 1
H. Uncinata E 1
Sphagnum rubellum 1

Sale - Trade

In the table below you 'll find and overview of all the different Heli's I have in my collection. If there are plants available then the number per species is shown in the field "Aantal te koop/ruil".
The listed price is only for the plants and excluding shipping costs! If you are interested in one of the plants listed below you can send me email and I am sure we can arrange something.
I 'll try to update the list as frequent as possible. You can always contact me for the most up to date status of plants available for sale/trade.
Plants on my wishlist are listed below my growlist.

Overview Growlist Heliamphora
Genus Species Tepui Aantal te koop/ruil Prijs/stuk [€]
Overview Wishlist Heliamphora
Genus Species Tepui

Other plants I Grow


Overview Other plants
Genus Species Location