Skip to content

About

Sensor array supporting App flipper zero

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Flipper Sense

Flipper Zero app that reads four I2C sensors on the GPIO header and shows them on an overview page plus one detail page per sensor.

Sensor Address Measures
BME680 0x77 or 0x76 temperature, humidity, pressure, gas resistance
SCD40 0x62 CO2, temperature, humidity
SGP40 0x59 VOC index (via Sensirion's algorithm)
VEML7700 0x10 ambient light, auto-ranging

Wiring

All four sensors in parallel:

Flipper pin Signal
9 3V3
8, 11 or 18 GND
15 (C1) SDA
16 (C0) SCL

Build and run

pip install ufbt
ufbt update --index-url=https://up.momentum-fw.dev/firmware/directory.json
ufbt launch

ufbt launch builds, uploads over USB and starts the app. The app installs under Apps > GPIO. Rebuild whenever the firmware is updated.

Controls

Left/Right (or Up/Down) change page. Back exits.

Behaviour worth knowing

  • Sensors are polled once a second. The BME680 is sampled every third second so its gas heater does not warm the chip.
  • CO2 appears about 5 s after start and updates every 5 s.
  • VOC shows a 46 s warm-up, then climbs toward 100 over a minute or two. 100 means "this room's recent average"; higher is more VOCs.
  • The SGP40 is given the BME680's temperature and humidity, and the SCD40 is given the BME680's pressure. If the BME680 is missing, the SGP40 falls back to the SCD40's values, then to 25 C / 50 %.
  • A sensor that stops answering shows "not found" and is retried every 5 s.
  • Temperature follows the unit chosen in the Flipper's system settings.
  • Debug output: log in the Flipper CLI, tag FlipperSense.

Layout

flipper_sense.c          app loop, polling, UI
i2c_bus.c/.h             external I2C bus wrapper
sensors/                 one driver per sensor, plus Sensirion framing
vendor/                  third-party code, unmodified

Third-party code

vendor/sensirion_gas_index/ is Sensirion's Gas Index Algorithm v3.2.0, copyright (c) 2022 Sensirion AG, BSD 3-Clause. The licence text is at the top of each file.

License

Licensed under the GNU Affero General Public License v3.0 or later. See LICENSE. The vendored Sensirion code keeps its own BSD 3-Clause licence, as noted above.

About

Sensor array supporting App flipper zero

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages