Arduino -- Host-to-Arduino communication schemes

Created by: gwideman, Mar 2, 2014 2:19 am
Revised by: gwideman, Apr 22, 2015 3:03 pm (2 revisions)


A useful Arduino application scenario has a PC application sending commands to an Arduino application, which carries out the commands and sends back responses. Possibly also the Arduino could initiate a communication sequence.
Physically, the PC connects to the Arduino as usual by USB. The basic communication channel is "serial over USB", for which a library is available for the Arduino, and a driver for the PC end.
What is not standardized is a pair of libraries (one each for Arduino and PC) to make easy the passing and interpretation of simple messages. This page collects some notes on what's available in this area.


Arduino Playground

  • Interfacing with Software
    • Manually control/read pins on Arduino from computer GUI: Arduino Interface v
    • On computer, plot data gathered by Arduino: MegunoLink
    • Similar idea: On PC plot Arduio's data:
    • Firmata - a standard firmware for communication with a variety of software on the computer.
      • OK, but then what's "Fermata"
    • Bitlash - A command shell that interprets commands you type or send programmatically over the serial port.
    • Generic case: (With Delphi host!). An example of connecting an Arduino which has an LED and a switch to an external device via a serial link. The external device is the master; the Arduino the slave. While the example uses Delphi in the master, what is in the Arduino could be used unchanged for interfacing to any external master. (Master can turn Arduino LED on or off, and it displays the state of the switch.)
  • SimpleMessageSystem: Deprecated in favor of "Messenger" (link points to Messenger)
  • Messenger: Deprecated. Link points to CmdMessenger. However:
  • CmdMessenger:


  • Serial-to-network proxies - programs that allow communication with an Arduino via a network connection.
  • Arduino and SensorMonkey - together at last A high speed low latency streaming service over http. The tutorials demonstrate how to drive web pages with high speed data from the Arduino without the need for the Ethernet shield. Users can also send commands to the Arduino from a web page. It works really well with Processing.js.
  • Arduino Manager for iPhone - iPad - Mac OSX. Integration between iOS devices or Mac and Arduino. Arduino Manager is an app to control your Arduino board and receive information from it through the new official WiFi Shield or the Ethernet Shield. The app shows a grid and tapping on it you can insert specialized widgets to send and receive information from Arduino.
  • Arduino + Delphi: A general template. The same Arduino code could be used in systems connecting Arduinos with devices programmed with other languages.
  • Arduino + Python
  • druid4arduino : an automatic, configuration-free, GUI for any Arduino project using SerialUI (terminal based UI). Automatically reproduces the commands and sub-menus you've configured for your device. Provides access to commands and sub-menus to any depth, and handles user input, error reporting and more. Desktop versions for Windows and Linux available, with Mac on the way. Druid4Arduino Video Demo/Walk-through
  • Sparkfun: Connecting Arduino to Processing: