SimpleMessageSystem is a library for Arduino 0004 and up. It facilitates communication with terminals or message based programs like Pure Data or Max/Msp. All Serial input and output will be made and interpreted as ASCII characters.

WARNING: Since Arduino 10, you must put the SimpleMessageSystem folder in arduino-0010/hardware/libraries INSTEAD OF arduino-0010/lib/targets/libraries/

The main advantages of this approach are:

    - Send, receive and parse lists to and from the Arduino Board.
    - Send, receive and parse integers to and from the Arduino Board.
    - Max/Msp and Pure Data can communicate with the same code on the Arduino Board.
    TO DO: (- Send, receive and parse strings to and from the Arduino Board).

Get the code, examples and intructions here.

For Wiring you have to download the following additionnal information and examples by Sibylle Hauert. A note for wiring users: wiring does not start the program automatically after uploading - you have to press the reset button again to make the program run - do that before starting the puredata-sms-example! Otherwise it will not work!

Contact: tof [at] danslchamp [dot] org


You can find a modified and better Max/Msp help patch here:

SimpleMessageSystem has been used with:

(The following paragraph was written by someone who hasn't tried SimpleMessageSystem, but has spent half an hour reading related documents, and hopes the following is correct and helpful to others wondering if SMS is for them. I hope more knowledgable people will edit it, and perhaps move it up the page....)

SimpleMessageSystem makes it easy to read from and write to the Arduino over a serial connection, for example over the same link as you use for programming the Arduino. (That connection may be simply to a PC running a serial terminal program, e.g. Windows Hyperterminal, or to more exciting things like web servers executing scripts.) The SimpleMessageSystem can respond to three commands. One will set or clear an Arduino pin, i.e. make an output high or low. (You can set or clear any pin. The command takes a parameter to indicate which pin should be set or cleared.) The other two commands cause the Arduino to send, as a string of ASCII, the states of the pins. (One command reports the states of the digital pins, the other the states of the analog pins). These commands let the connected device "learn" what the Arduino is "seeing". (The Hyperterminal link shows what you can expect from the Simple Message System, in an example.)


    -- i made something what is maybe interessting here, a messaging 
    system by using simple ascii communication like "A 12 34 -56 78 !" 
    i build a small-parser + a basic function call mechanism by first 
    character. code with max/msp sample here: 
    -- kiilo-21.06.07
    -- and a puredata example here: 
    -- kiilo-10.06.08

By Rolandl Apr 16 2009- Simple Message System is still available at Use it with linux and my package of shell scripts. Full IO and PWM control. AD is scaled to mV and CSV formatted for import to most spreadsheets. Modular/expandable--use up to 4 Diecimilas at once. This way you can change the functionality by editing/creating scripts, instead of 1)start IDE 2)modify code 3)compile&load 4)test Take 100 AD readings (x6 chans) in less than 40 seconds.