# Leaflabs Maple

{% hint style="danger" %}
The LeafLabs Maple has reached end of life and is no longer sold or supported.
{% endhint %}

![](https://phabricator.purduesigbots.com/file/data/au545ntykxeyir2styvt/PHID-FILE-7yzxrysy7jougj4f5fbo/processor_maple.jpg)

The leaflabs Maple is programmed in C using a provided library, libmaple [(ref)](https://github.com/leaflabs/libmaple), to make programming similar to the [Arduino](https://wiki.purduesigbots.com/electronics/general/external-boards/arduino) environment. Some of the [GPIO](https://wiki.purduesigbots.com/electronics/general/gpio) pins on the Maple are aligned with the Arduino form factor.

### Features

* Fast, powerful 32-bit ARM processor with lots of memory [(ref)](http://leaflabs.com/devices/maple)
* Fits the Arduino form factor, so many Arduino shields are usable
* Low [Power Consumption](https://wiki.purduesigbots.com/electronics/general/power-consumption) for performance, same processor as [VEX Cortex](https://wiki.purduesigbots.com/vex-electronics/legacy/vex-cortex)
* Programmed in native C code with excellent low-level library
* Extensive peripheral set ([I2C](https://wiki.purduesigbots.com/electronics/general/i2c), [UART](https://wiki.purduesigbots.com/electronics/general/uart), [SPI](https://wiki.purduesigbots.com/electronics/general/spi)) and large number of GPIOs [(ref)](http://leaflabs.com/docs/hardware/maple-ret6.html)
* Unmatched [Analog-Digital Converter](https://wiki.purduesigbots.com/electronics/general/analog-digital-converter) complement and resolution
* Flexible power supply options and built-in regulators

### Shortcomings

* A little more expensive than other options (e.g. the [Arduino](https://wiki.purduesigbots.com/electronics/general/external-boards/arduino) or [Netduino](https://wiki.purduesigbots.com/electronics/general/external-boards/netduino))
* Not all pins are [5 Volt Tolerant](https://wiki.purduesigbots.com/electronics/general/5-volt-tolerant)
* [Slew Rate](https://wiki.purduesigbots.com/electronics/general/slew-rate) and [Output Drive](https://wiki.purduesigbots.com/electronics/general/output-drive) leave some to be desired (but are substantially better than [PandaBoard](https://wiki.purduesigbots.com/electronics/general/external-boards/pandaboard)-like alternatives)

### Versions

The Maple comes in two versions - the Maple rev5 based on the STM32F103RBT6 processor and the discontinued RET6 beta using the STM32F103RET6 processor. The RET6 offers additional peripherals and a much bigger program memory space at the expense of gotchas due to re-use of the rev5 board design; the future Maple II processor may feature this chip.

## Current development

The Maple was used by SIGBOTS for VEX Toss Up on both robots as an I/O expander. Due to the limited [ADCs](https://wiki.purduesigbots.com/electronics/general/analog-digital-converter) and [GPIOs](https://wiki.purduesigbots.com/electronics/general/gpio) available on the [VEX Cortex](https://wiki.purduesigbots.com/vex-electronics/legacy/vex-cortex), there are insufficient ports for extra peripherals such as a serial LCD screen.

The Maple supersedes the somewhat unreliable and slow [Netduino](https://wiki.purduesigbots.com/electronics/general/external-boards/netduino). Although the Maple lacks a floating-point unit, it has enough horsepower to process a Kalman filter for the next generation of digital [gyros](https://wiki.purduesigbots.com/vex-electronics/vex-sensors/3-pin-adi-sensors/gyroscope).

#### Teams Contributed to this Article:

* [BLRS](https://purduesigbots.com/) (Purdue SIGBots)
