What can you connect to Firefly?

One of the best things about Firefly is that you don't need to write code to use a new sensor — just pick it from the New Panel dialog and the firmware handles the rest. Below is every driver that ships with critterOS today, grouped by what they do. Calibration, averaging and multi-value readings come free with every panel.

Temperature & humidity

DriverInterfaceValues you getNotes
DS18B20OneWire (single pin)temperatureWaterproof probe, very popular for tanks and pipes.
DHT22Single GPIOtemperature, humidityAccurate digital sensor, reads every 2 s.
DHT11Single GPIOtemperature, humidityBudget version of the DHT22 — great for learning.
BMP180I2C (D1/D2)pressure, temperatureAtmospheric pressure + temperature.
BME280I2C (D1/D2)pressure, temperature, humidityThe go-to indoor environment sensor.
BME680I2C (D1/D2)pressure, temperature, humidity, gasBME280 plus gas resistance for air quality.
SHT31I2C (D1/D2)temperature, humidityHigh-accuracy, professional-grade.
MPU6050I2C (D1/D2)x, y, z, temperatureAccelerometer with chip temperature.

Distance & level

DriverInterfaceValues you getNotes
HC-SR04 (us_sensor)Trig + Echo pinsdistanceUltrasonic, great for tanks and cisterns. Power from 5 V.
VL53L0xI2C (D1/D2)distanceTime-of-flight, mm precision, up to 2 m.

Light & air quality

DriverInterfaceValues you getNotes
BH1750I2C (D1/D2)luxAmbient light sensor, auto-ranging.
BME680I2C (D1/D2)gas (kΩ)Gas resistance — a proxy for air quality / IAQ.

Flow, weight & counting

DriverInterfaceValues you getNotes
Flow / RPMPulse pin (interrupt)total, rateHall sensors, water flow meters, tachometers.
HX711DT + SCKweight (raw counts)Load cells for weighing and dosing.

Inputs & communication

DriverInterfaceValues you getNotes
Analog inputA0raw ADCAny 0–3.3 V sensor.
Digital inputAny GPIO0 / 1Buttons, switches, PIR, reed contacts.
IR remoteIR receiver pinbutton, repeatNEC protocol, auto-stales after 2 s of silence.
UDP remoteWiFi (no pins)mirrors remote panelSubscribe to a panel on another board. Supports sub-values: MAC/panel.value.

Outputs

DriverInterfaceWhat it does
Digital outputAny GPIORelays, LEDs, solenoids. Active-low aware.
ServoPWM pin0–180° hobby servo (hardware PWM).
PWMPWM pin0–100 % duty for pumps, valves, dimmers.
StepperStep + DirStepper motor control.
WS2812Data pinNeoPixel / addressable LED (RGB).

Composite panels

Panel typeWhat it does
Flow controlFlow meter + relay: fills to a limit, pauses, resets. Great for dispensing.
DispenserLinks an input (weight/level) to a PWM output with gentle-fill ramp.
PID controllerClosed-loop control: reads an input, drives an output to a setpoint.
TimerScheduled on/off: clock mode (HH:MM) or repeating seconds (e.g. 5-10-5).
TelegramSends messages to a Telegram chat from rules or panel events.
Number (setpoint)Editable setpoint value, usable in rules and PID.
Push buttonPhysical button with click / double-click / long-press slots.

Multi-value panels

Many sensors publish more than one reading. Instead of creating a separate panel for each value, critterOS uses a values map with named keys:

  • "" (empty string) = the primary/default value
  • "temperature", "pressure", "humidity", "gas", "lux", etc. = named sub-values

For example, a BMP180 panel publishes {"": 1013.25, "pressure": 1013.25, "temperature": 19.5}. UDP remote panels can subscribe to a specific sub-value using MAC/panel.value notation (e.g. C8:C9:A3:64:80:C8/press.temperature).

Every input panel includes

  • Calibration: offset/factor or two-point (Low/High) calibration
  • Averaging: optional 16-sample moving average
  • Logging: record values to a CSV file on the board
  • Display: show on the OLED (per-panel toggle)
  • MQTT: publish state to a broker or Home Assistant
  • UDP: publish to other boards on the LAN

All of this runs on a $4 Wemos D1 Mini (ESP8266) or ESP32 board, with no server, no cloud and no subscription.