~derf / projects / multipass
dark mode

multipass is a C++ Library Operating System for a few embedded architectures. As such, it does not provide multi-threading support or similar conveniences. Its objective is similar to the Arduino environment: provide a simple framework for embedded application development, and get out of the way as much as possible. It favors simplicity over performance and abstraction. Re-using components outside of multipass should be fairly simple.

Supported Architectures

ATMega168P, ATMega328P (Arduino Nano)

  • I²C, SPI, UART
  • ADC
  • NeoPixel / WS2812B (Adafruit driver)

MSP430FR5969, MSP430FR5994 (MSP430 Launchpad)

  • I²C, SPI, 2×UART (additional I²C/SPI/UART interfaces are not supported)
  • ADC

POSIX (e.g. running as linux thread on a raspberry pi)

  • I²C via /dev/i2c

Included drivers

  • AM2320 I²C Temperature+Humidity Sensor
  • BME280 I²C Temperature+Humidity+Pressure Sensor (Bosch SensorTec driver)
  • BME680 I²C Temperature+Humidity+Pressure+Air Quality Sensor (Bosch SensorTec driver)
  • CCS811 I²C Air Quality (TVOC) Sensor
  • DS2482 I²C 1-Wire Bus Controller
  • HDC1080 I²C Temperature+Humidity Sensor
  • LM75 I²C Temperature Sensor
  • MAX44006 I²C RGB + IR Light Sensor
  • MAX44009 I²C Light Sensor
  • MPU9250 I²C Accelerometer+Gyroscope+Magnetometer Sensor
  • SCD40/SCD41 I²C CO₂ Sensor
  • SEN5x I²C particulate matter (PM1.0/PM2.5/PM4.0/PM10) and VOC sensor
  • SSD1306 I²C OLED display controller
  • VEML6075 I²C UVA/UVB Light Sensor