> For the complete documentation index, see [llms.txt](https://ruggedboard.gitbook.io/ruggedboard/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ruggedboard.gitbook.io/ruggedboard/lib-mraa-and-upm-sensor-libraries/know-your-libraries/lib-upm.md).

# LibUPM

The UPM repository provides software drivers for a wide variety of commonly used sensors and actuators. These software drivers interact with the underlying hardware platform (or microcontroller), as well as with the attached sensors, through calls to \[MRAA]\(<https://github.com/intel-iot-devkit/mraa>) APIs.

Programmers can access the interfaces for each sensor by including the sensor’s corresponding header file and instantiating the associated sensor class. In the typical use case, a constructor initializes the sensor based on parameters that identify the sensor, the I/O protocol used and the pin location of the sensor.

We endorse additions that implement the generic C and C++ interfaces provided with the libraries. Multiple sensor and actuator types have been defined, for instance:

* Light controller
* Light sensor
* Temperature sensor
* Humidity sensor
* Pressure sensor
* Gas sensor
* Analog to digital converter

Simple diagram below depicts the use of Lib-UPM to interface various sensor modules.

![](https://2940024201-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LbvnQRGvCTc2Zmsi6BG%2F-Ldi5-jkBsQrq7nHp_uK%2F-Ldi5OzjhGJZ5MpIn9ZA%2Fupm.png?alt=media\&token=b1d510e2-d36c-4764-9536-aae78c41633f)

The developer community is welcome to submit feedback on existing categories or suggest new ones.\
<http://ruggedboard.wixsite.com/rugged-board/forum>
