Interfacing with Other Software
You have come to the place to learn about connecting an Arduino to other devices, whatever software is running on those other devices. The Arduino can "talk", (transmit or receive data data) via a serial channel, so any other device with serial capabilities can communicate with an Arduino. It doesn't matter what program/programming language is driving the other device.
You can either use the Arduino's "main" serial port, the one it uses when you "talk" to it to program it, or you can leave that channel dedicated to programming (and the development environment's serial monitor), and use two other pins for an extra serial link dedicated to the external device.
Some programs (like Flash) don't have native serial capabilities. They can still communicate with Arduino through an intermediary which, like a "translator", enables them to talk to each other.
Ardulink is a complete, open source, java solution for the control and coordination of Arduino boards. It defines a communication protocol and a communication interface allowing several protocol implementations.
It is composed by several java libraries/applications:
- Ardulink Core
- Ardulink SWING that is a ready java SWING components collection able to communicate with Arduino.
- Ardulink Console that is a SWING application that can be used to control an Arduino board without programmer skill.
- Ardulink Network Proxy Server that is a command line application. It is a network client/server technology for remote control purpose.
- Ardulink Mail that is a command line application. With this application an user can control several Arduino boards sending just e-mails.
- Ardulink MQTT that is a command line application able to connect Arduino boards with an MQTT broker.
You can read more detail on Ardulink official site or on Github
A Messaging library for both Arduino and C# & VB .NET / Mono. It implements
- Commands that can be sent or received.
- Multiple arguments can be appended to commands.
- Callback functions can be triggered on received commands.
- All basic data-types (char arrays, floats, int, bytes), both for sending and receiving.
- Optional waiting for a acknowledge commands.
- Escaping data. The special characters that would be interpreted to be field separators or command separators, can be escaped and used in arguments.
- Sending and receiving both plain text and binary data.
Instrumentino is an open-source modular graphical user interface framework for controlling Arduino based experimental instruments. It expands the control capability of Arduino by allowing instruments builders to easily create a custom user interface program running on an attached personal computer. It enables the definition of operation sequences and their automated running without user intervention. Acquired experimental data and a usage log are automatically saved on the computer for further processing. The use of the programming language Python also allows easy extension. Complex devices, which are difficult to control using an Arduino, may be integrated as well by incorporating third party application programming interfaces into the Instrumentino framework.
* Official page
* Release article
* Package in PyPi
* Code in GitHub
MakerPlot is Windows® software for plotting analog and digital data generated by your microcontroller and other devices with ASCII serial outputs. No proprietary hardware is required – just a serial connection from your microcontroller or other device to your PC – that’s it! MakerPlot is software that allows you to build custom interfaces to measure and control the analog and digital data from your microcontroller.
With MakerPlot your PC now becomes a laboratory instrument.
Each screen can be created with dials, meters, buttons, switches and message areas that display and control your micro’s data and internal functions. Meters can be configured with alarm settings (both high and low) then made to sound audio tones using any WAV file you select from the library. Use any of our interfaces that come standard with the software or create your own...that's the power of MakerPlot.
Visit http://www.makerplot.com for complete details.
Blynk - is an app for all makers, badass inventors, designers, teachers, nerds and geeks who would love to use their smartphones to control Arduino. All the hard work of establishing Internet connection, building an app and writing hardware code is made by Blynk Team, you can just build on top of it.
It works over the Internet, but Bluetooth is on the way.
Simply snap together a visual interface from various widgets like buttons, sliders, graphs, joysticks, etc. , upload the example code to the hardware and see first results in under 5 minutes.
Download Blynk for iOS and Android
Phiro - Pocket Code for Phiro a smartphone app, can program & control wirelessly via Bluetooth both Arduino and Phiro simultaneously without need for live internet, once downloaded on the smartphone.
Pocket Code for Phiro is a free open source visual programming mobile application. Special “Scratch” like blocks have been created to access Phiro + Smartphone + Arduino sensors and output devices.
Phiro’s smartphone app opens up endless possibilities for Arduino tinkering community and in the Maker movement world-wide to extend the capabilities for Phiro and Arduino with Pocket Code.
Check out these 2 demo videos
Program & Control an arduino board + Phiro robot simultaneously with smart phone pocket code apps
Pocket Code demo with Phiro and Arduino at the same time!
Phiro works with open source languages viz 1) Scratch 2.0 from MIT-USA, 2) Swish Cards from Robotix, 3) Sequential Keys from Robotix, 4) Snap4Arduino from UC Berkeley-USA/Citilab-Spain 5) Pocket Code mobile app’s from Graz University of Technology Austria.
- iArduino App for iPhone and iPad - This App let you control your Arduino Board Wirelessly with your iPhone and iPad. It provides interactive features like GPIO control of Arduino board, LCD display control, Robot Control, Universal Remote, Wireless Servo Control and much more. Watch iArduino App in action on Youtube.
- Interactive Arduino BASIC interpreter: - An Interactive Arduino BASIC interpreter that runs on the arduino.
- Scada for Arduino - SCADA Acimut Monitoriza for Arduino.
- Processing Modbus Master for Arduino - ModbusMaster class for the Processing environment. ModbusMaster is a class developed in and for the Processing environment. It allows you to communicate with modbus slave devices from within your Processing sketch. It works with any hardware serial port.
- WhiteCat Lighting Board - A lighting application dedicated to theatre and dance embedds communication with the arduino ( use of sliders and buttons, dimmers and motors)
- Firmata - a standard firmware for communication with a variety of software on the computer.
- GoBetwino - a generic proxy that runs on your PC and can do a lot of things that Arduino can not do alone, like starting programs sending e-mails, and a lot more.
- Bitlash - A command shell that interprets commands you type or send programmatically over the serial port.
- Avros: - Yet another small human-readable-writable serial protocol.
- Serial-to-network proxies - programs that allow communication with an Arduino via a network connection.
- Generic case: 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.)
- Arduino Manager for iPhone - iPad - Mac OSX
Integration between iOS devices or Mac and Arduino has never been so easy !!!
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.
For iPhone & iPad
is an app to control your Arduino over a WiFi
Network or a Ethernet Network. The configuration is full changeable in the necessary ion-Project File. You can control to switch Pins, read Sensor values and act with servos.
ArduIP HD (iPad) AppStore-Link:
Link to the Project-File:
- Arduino + iOS (iPhone+iPad): Ardumote An app for iOS that lets the user design an interface on the iPhone/iPad and send messages to the Arduino wirelessly over WiFi as UDP packets. Supports control of all pins, PWM, and receiving messages for reading sensors.
- Arduino + iPhone / iPad: iArd is an app for iPhone that allows you to communicate with Arduino (and compatible) via the ethernet shield and a special sketch.
- Arduino & iOS: Arduino Control You can use this App to control a Arduino using your iPhone, iPad or iPod Touch. It uses JSON for communication. You can change the sketch to make it do or return what you want.
- Arduino + iPhone: MeteoBox This is an App for the iPhone that enables Arduino to publish weather data read from the WeatherShield1. The data are formatted in an XML file ready to be transferred through the Ethernet Shield. The provided sketch let you able to interface to other sensors.
- Arduino + Android: Androino is an open-source library that interfaces android and arduino through an audio connection. A software implementation of a modem-like communication.
- XModem and YModem for uploading and downloading files via serial port.
- Arduino + Android: Amarino
- Arduino + Blender
- Arduino + BlitzMax (access restricted to BlitzMax users)
- Arduino + C
- Arduino + C++ (using libSerial)
- Arduino + C++ (for Windows)
- Arduino + C# using CmdMessenger
- Arduino + C#
- Arduino + C# - Arduino Service Class to interface with Arduino: it also contains an example with a sketch and its schematic
- Arduino + Calico (Windows, Mac, and Linux): Python, Jigsaw (a visual programming language), Scheme, and more
- Arduino + Clojure
- Arduino + Cocoa/Objective-C (Mac Only)
- Arduino + Delphi: A general template. The same Arduino code could be used in systems connecting Arduinos with devices programmed with other languages.
- Arduino + Director
- Arduino + E-Prime
- Arduino + Flash
- Arduino + Flowol
- Arduino + Game Maker
- Arduino + Haskell
- Arduino + Instant Reality (X3D)
- Arduino + Isadora
- Arduino + Java
- Arduino + JSON
- Arduino + L3DGEWorld, l3dgecomm (3D data visualisation tool)
- Arduino + Liberlab (measurement and experimentation software)
- Arduino + Linux TTY
- Arduino + Mathematica
- Arduino + Matlab
- Arduino + MaxMSP
- Arduino + misc generic (1)
- Arduino + misc generic (2) - Any SW via files
- Arduino + Mono
- Arduino + OSC (via Processing)
- Arduino + Pd (Pure data)
- Arduino + PERL
- Arduino + Processing
- Arduino + Python
- Arduino + Ruby
- Arduino + Second Life
- Arduino + Scratch
- Arduino + SQLite - Generic Simple Database input
- Arduino + SuperCollider
- Arduino + Twitter
- Arduino + Unity
- Arduino + VBscript
- Arduino + Virtools
- Arduino + Visual Basic .NET
- Arduino + V V V V
- Arduino + Xterm
- Arduino + Reaper - This sketch for Arduino implements a very simple control surface with a MIDI interface for the Reaper Digital Audio Workstation from Cockos http://reaper.fm Emulates a Frontier AlphaTrack MIDI control surface. Works with DFRobot LCD Keypad Shield for Arduino and Duemilanove. Instructions at the top of the sketch.
- Arduino + Silverlight - Details of how to use Arduino, Firmata and Serial Proxy to interact with an interface running in Silverlight. An overview of the requirements are given along with full downloads of all the code.
- embedXcode: use Xcode (Mac OS X only) to develop for the Arduino platform.
- Mara : A programming language dedicated to 8bit ATMEL AVR microcontrollers with a focus on simplicity and productivity. It simplifies the programming of Arduino boards for all those who do not wish to use the C language.
- 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.