Basics
Inputs
Teagueduino has 5 inputs, aligned vertically on the left-hand side of the board. Each input gives a numeric value between 0 and 1000 depending on state of the sensor attached. This is derived from the analog input voltage (ranging from 0-5 volts).
Outputs
Teagueduino has 5 outputs, aligned vertically on the right-hand side of the board. Each output can be controlled by setting it to a value between 0 and 1000. See Output Types for more information about what the output values mean.
Output Types
There are 4 types of output that Teagueduino supports: Digital, PWM, Tone, and Servo.
DIG (Digital)
If the output value is set to 0, a low signal (0.0 volts) will be used. Otherwise, a high signal (5.0 volts) will be output.
PWM (Analog)
Pulse Width Modulation is a digital form of analog output. Since it is difficult for electronic devices to output an analog (variable range) of voltages, PWM switches between high and low very quickly proportional to the output value. This produces an average value of 0-5 volts over the range of the output values (0-1000). This is great for controlling the brightness of LEDs.
Tone (Frequency)
The tone output mode produces a square-wave at the specified frequency. This is useful for driving speakers, buzzers, or other frequency controlled devices.
Servo (Angle)
The servo output mode produces a variable-width pulse designed to control a standard RC servo. Most servos use the width of the pulse to then turn the servo motor to a specific absolute angle. There are, however, other servo that allow for continuous rotation and can be used to drive rotaty outputs (such as wheels).
Variables
Teagueduino has 9 variables. A variable is a value that can be modified by your program. For example, these two line of code store half the value of In_1 into Var_1, then use that value to set Output A. This effectively limits Out_A to the range 0-500.
Values
Numbers
Most numbers in Teagueduino range from 0-1000. However, variables can be explicitly set to numbers between -1000 to 1000. Via mathematical operations variables may grow to even larger values but are bound to -32768 to +32767 since variables are stored internally as 16-bit integers.
Random( )
The random() function allows you to add uncertainty to your program. It returns a number between 0-1000 with roughly equal probability. The example shown here will turn on Out_A 50% of the time, and otherwise turn it off.
Comparison
There are six basic types of comparison supported by Teagueduino.
X == Y
X is equal to Y. True if X is the same value as Y; otherwise False.
X != Y
X is not equal to Y. True if X is not the same value as Y; otherwise False.
X < Y
X is less than Y. True if X has a lower value than Y; otherwise False.
X > Y
X is greater than Y. True if X has a greater value than Y; otherwise False.
X <= Y
X is less than or equal to Y. True if X has the same or lower value than Y; otherwise False.
X >= Y
X is greater than or equal to Y. True if X is the same or has a greater value than Y; otherwise False.
Math
There are five basic mathematical operations built into Teagueduino. These operations can be used when setting any variable.
X + Y
X plus Y. Add X to Y.
X - Y
X minus Y. Subtract Y from X.
X / Y
X divided by Y. Divide X by Y. Note that dividing a number by zero is not possible. Teagueduino will continue to run using 1 for the denominator instead of 0.
X * Y
X times Y. Multiple X and Y.
X % Y
X modulo Y. Find the remainder when dividing X by Y.
Statements
If( )
An If() statement tests if a condition is true (see Comparison). When the statement is true, all code between curly braces from "{" to "}" will be executed. To run code when the statement is false, place it directly after the next "} else {" statement.
Delay( )
The Delay() statement waits for the specified number of milliseconds (thousandths of a second) and then allows the program to continue. This example shows how to blink a light in a very controlled way; it is turned off for 250mSec, then turned on for 500mSec.
Waituntil( )
The Waituntil() statement forces the program to stop until the specified condition is true. The example shown here waits for the user to press a button on In_1 and then proceeds to turn on Out_A and Out_B.
While( )
The While() statement is essentially a looping If() statement. If the specified condition is true, everything between "{" and "}" will be run continuously, or looped, until the condition becomes false. This example code loops 1000 times, smoothly ramping up the brightness of an LED on Out_A.
Advanced
Migrating to Arduino and Beyond
Teagueduino is built on the shoulders of giants! That means that when you master the Teagueduino software and hardware you can simply move up a level (Arduino) to make your project even more awesome!

We're still still working out the details for exporting your existing Teagueduino project as an Arduino project (hopefully that will come together soon!).

If you want to start from scratch with your Teagueduino in the Arduino programming environment (IDE), simply install the Teensyduino application and get started.

You can also remove the green Teensy++ board from the top of the white Teagueduino board to gain access to all of the IO pins by gently prying it up with a medium-sized flat screwdriver. Be careful removing the Teensy++ since it is socketed quite tightly and can snap up quickly and poke your fingers!

Want to turn your Teensy++ back into a Teagueduino? Don't worry. It's easy. :) See the section below.
Loading Teagueduino onto a Teensy++
Note: Loading Teagueduino onto a Teensy++ is only necessary if you wish to upgrade your board version, or you are an advanced user and want to try out Teagueduino on a spare Teensy++ you have lying around.

1. Download the Teensyloader from PJRC and the lastet TRI .hex file from the Teagueduino download page.
2. Make sure the Teagueduino editor is not open.
4. Plug in the Teensy++ via USB.
5. Open the Teensyloader application, then choose Open from the file menu and select the TRI .hex file.
6. Load it (it may take 10 seconds after loading to self-program the EEPROM memory).
7. Test that the board is setup as a Teagueduino by opening the Teagueduino editor trying it out!
Understanding the Teagueduino editor
...



Realtime Interpreter Specification
Teagueduino uses a realtime interpreter to allow for changes to the program's code while it is running. This allows for immediate feedback while debugging and is intended to help those less familiar with programming to learn more quickly and improve understanding.

Check out the full Teagueduino Realtime Interpreter Specification for more details.