# Libraries

Libraries that extend core functionality. More...

## Modules
| AES (Advanced Encryption Standard)
| Encrypt and decrypt data using AES.

| Application Board LEDs
| The Application Board LED subsystem controls the 4 LEDs on the Application Board, for status and program feedback.

| Base 64
| The Make Controller Base 64 library provides a way to decode and encode base 64 data.

| Digital Inputs
| Read the 8 inputs on the Make Controller as digital values - 1 (on) or 0 (off).

| Digital Outputs
| The Digital Out subsystem sends digital values out the 8 high current outputs - 1 (on) or 0 (off).

| DIP Switch
| The DIP Switch subsystem reads values in from the 8 position DIP Switch (0 - 255) on the Application Board.

| JSON
| The Make Controller JSON library provides a very small and very fast library for parsing and generating json.

| Motor
| The Motor subsystem provides forward/reverse and speed control for up to 4 DC motors across the 8 high current outputs.

| PWM Out
| The PWM Out subsystem underlies the DC Motor subsystem and controls the 4 PWM signals on the SAM7X.

| Servo
| The Servo Motor subsystem controls speed and position control for up to 4 standard servo motors.

| Stepper
| The Stepper Motor subsystem provides speed and position control for one or two stepper motors.

| Web Client
| A very simple web client for HTTP operations.

| Web Server
| A simple Web Server.

| XBee
| Communicate with XBee (Zigbee) wireless modules via the Make Controller's serial port.

## Detailed Description

Libraries that extend core functionality.

Libraries are modules of code that can be easily added/removed based on the needs of a particular project. This is a list of libraries maintained by MakingThings, but you're free to create your own. Just add a directory with your source files into the libraries directory of the firmware codebase.

## Incorporating a Library into your Project

If you're using mcbuilder, just include the library you want to use.

If you're building from a Makefile, there are a few extra steps:

- add the library directory to your list of include directories (along with any sub-directories if not all the include files are in a single directory).
- add each .c file of the library to your list of files to compile

In the Makefiles in the example projects in the firmware download, you can see the THUMB_SRC and INCLUDEDIRS sections where you can add your own listings of both source files and include directories.