Eytan Mann

HOW TO MAKE (ALMOST) ANYTHING_MAS.863/4.140

Week 11 - Interface and Application Programming


Serial Communication - The channel for Board-Computer Communication
Serial communication is the process of sending data one bit at a time, sequentially, over a communication channel or computer bus. This is in contrast to parallel communication, where several bits are sent as a whole, on a link with several parallel channels.

Serial interfaces stream their data, one single bit at a time. These interfaces can operate on as little as one wire, usually never more than four.

Baud Rate
The baud rate specifies how fast data is sent over a serial line. It’s usually expressed in units of bits-per-second (bps). If you invert the baud rate, you can find out just how long it takes to transmit a single bit. This value determines how long the transmitter holds a serial line high/low or at what period the receiving device samples its line.
Baud rates can be just about any value within reason. The only requirement is that both devices operate at the same rate. One of the more common baud rates, especially for simple stuff where speed isn’t critical, is 9600 bps. Other “standard” baud are 1200, 2400, 4800, 19200, 38400, 57600, and 115200.


A serial bus consists of just two wires - one for sending data and another for receiving. As such, serial devices should have two serial pins: the receiver, RX, and the transmitter, TX. Project 02a

Firmata is a generic protocol for communicating with microcontrollers from software on a host computer. It is intended to work with any host computer software package. Right now there is a matching object in a number of languages. It is easy to add objects for other software to use this protocol. Basically, this firmware establishes a protocol for talking to the Arduino from the host software. The aim is to allow people to completely control the Arduino from software on the host computer.

The Firmata library implements the Firmata protocol for communicating with software on the host computer. This allows you to write custom firmware without having to create your own protocol and objects for the programming environment that you are using. Project 02a

Fabduino / Unity Communication:
Project 02a
Notes on connection:
1. Check which BAUD rate and port name you have on the Arduino IDE Sketch
2. This can only be done with C#, which is sad.
3. In Unity >> Edit>Project Settings>Player -- make sure its set to .NET 2.0 SUBSET.
4. The C# code
5. Make sure the Serial Monitor is closed in the Arduino IDE, because it interferes with the connection.





Fabduino / Processing Communication:
Project 02a