BioBoard/Documentation/Arduino protocol

Contents

In order for the Arduino, with all its cool sensors connected, to communicate to the outside world, there needs to be an agreement on how that data should look. Otherwise, all that
great data would be lost. Hence, the BioBoard Protocol.

All protocols need a way to get started. The BioBoard protocol is no different.

For starters, we first output a packet that is different than any of the other packets.
You'll notice that we also include a version number.

!BIOBOARD:0.1

Immediately after the "starter packet" we output the project name. This can be anything, but you shouldn't use any of the reserved characters described above. But, letters, numbers, and spaces are fine.

@PROJ:TESTLIQUID5$

Ok, we are still not outputting any data packets, because there is one more thing we need to do-- that is, to declare which probes are active.

@PR:TC:0$
@PR:NIR:0$
@PREND$

Here, we have declared two probes, TC probe 0, and NIR probe 0.
At the end of the declarations, we output a PREND tag.

Finally, we are ready to output data packets! This is the fun part of the protocol.

As you can see, these packets seem to indicate that the temperature is dropping.
Maybe an ice cube was dropped near the probe? Actually, we just made up the numbers,
but it might as well have been an ice cube!

Also, you might have noticed that there are more TC packets than NIR packets.
There is no restriction on how often each probe reports its data. In fact, the Arduino sketch, depending on how it is coded, will determine how often each type of data packet is output.

Finally, the BioBoard protocol is line-oriented, meaning that a newline or carriage return is sent after each packet. This makes it easier to view the data or to make up sample data in a simple text editor.
Also, the communication speed is 19,200 baud. The Arduino, including older models, can easily handle this speed. Of course, this can be changed,
but it would need to be adjusted on the receiving end as well.
Remember, a protocol is an agreement between two sides of a communication link!