# OSC

Communicate with the Make Controller Kit via OSC. More...

## Modules
| Analog In - OSC
| Read the Application Board's Analog Inputs via OSC.

| Debug - OSC
| Debug allows sending/receiving debug messages via OSC.

| IO - OSC
| Control any pin's direction and output from OSC.

| Network - OSC
| Configure the Controller Board's Network Settings via OSC.

| Serial - OSC
| Configure the Serial Port and Read Characters via OSC.

| System - OSC
| System controls many of the logistics of the Controller Board via OSC.

| App LED - OSC
| Control the Application Board's Status LEDs via OSC.

| Digital In - OSC
| Read the Application Board's Digital Inputs via OSC.

| Digital Out - OSC
| Control the Application Board's Digital Outs via OSC.

| DIP Switch - OSC
| Read the Application Board's DIP Switch via OSC.

| Motor - OSC
| Control DC motors with the Application Board via OSC.

| PWM Out - OSC
| Generate PWM signals with the Application Board via OSC.

| Servo - OSC
| Control Servo motors with the Application Board via OSC.

| Stepper - OSC
| Control Stepper motors with the Application Board via OSC.

| Web Server - OSC
| Configure the Web Server via OSC.

| XBee - OSC
| Communicate with XBee modules with the Make Controller Kit via OSC.

| XBee Configuration - OSC
| Configure an XBee module connected to your Make Controller Kit via OSC.

## Detailed Description

Communicate with the Make Controller Kit via OSC.

## OSC

"Open Sound Control (OSC) is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology." With OSC implemented on the Make Controller Kit, it can already talk to a wide variety of environments and devices like Java, Max/MSP, Pd, Flash, Processing, SuperCollider, and many others.

OSC is based on the notion of messages, which are composed of an address, and the data to be sent to that address. The address looks a lot like a URL that you might type into your internet browser. Each element in the address is like a directory, with other elements inside it, and each element is separated from the next by a slash (/). Each OSC message must also start with a slash.

Example:
  For instance, the OSC address

       /make/controller/kit

  says, "start in the 'make' directory, go down to the 'controller' directory, and finally to the 'kit' directory.

Any number of argument values can be sent to that address by including them in the message after the address. These values can be integers (ints), floats, or strings.

Example:
  If we wanted to send the value 35.4 to the address above, we would create the message

       /make/controller/kit 35.4

  with a space between the address and the data.
  Additional data can be added, each separated by a space

       /make/controller/kit 35.4 lawn 12

## OSC & the Make Controller Kit

Many devices on the Make Controller Kit can be addressed via OSC. In sending messages to them, we need to know the OSC address, and the appropriate argument values to send.

The Make Controller Kit is orgranized, for OSC, into subsystems. Each subsystem has one or more devices, and each device has one or more properties. To address a particular device, you'll need to create an OSC message specifying the address in that format:

     /subsystem/device/property

Each of the modules above provide the details for each of the subsystems on the board, along with their devices and properties. A simple example is given below.

Example:
  To create an OSC message to turn an LED on, first identify the appropriate subsystem. In this case, the subsystem is called appled.
  There are 4 LEDs, so we need to specify which one to control. The LEDs are numbered 0 -3, so choosing the first LED means the device value is 0.
  The property of the LED that turns it on and off is its 'state'.
  Lastly, we must specify what the state should actually be, by including an argument value after the address. To turn it on, this value should be 1. 0 would turn it off.
  The complete OSC message looks like

       /appled/0/state 1