• Allows control of low-level communication protocols, like GPIO, AIO, SPI, I2C, and UART, through easy-to-use APIs
  • Works across multiple platforms, including the Intel® Edison board, MinnowBoard MAX*, Raspberry Pi*, and BeagleBone Black

IoT MRAA SDK Overview

MRAA (pronounced em-rah) is a low-level library written in the C programming language. The purpose of MRAA is to abstract the details associated with accessing and manipulating the basic I/O capabilities of a platform (such as the Intel® Galileo or Intel® Edison boards) into a single, concise API.

MRAA serves as a translation layer on top of the Linux General Purpose Input/Output (GPIO) facilities. Although Linux provides a fairly rich infrastructure for manipulating GPIOs, and its generic instructions for handling GPIOs are fairly standard, it can be difficult to use. By definition, all platforms vary; each have different capabilities, pin numbers, and types of GPIOs. For example, a GPIO pin may support certain capabilities on one platform but might not support the same capabilities on others. MRAA abstracts the details of the board configuration from the developer by automatically assigning port names and numbers specific to that board at run time. Therefore, MRAA makes the process of developing programs less complicated because it can be used to create portable code that will work across the supported platforms.

Supported Programming Languages

Supported Boards