Ciao Core and Connectors

Arduino Ciao is made of two parts: a simple and lightweight library usable while writing sketches for the MCU and a core developed in python that runs over the CPU/MPU side of the board.
This part of Arduino Ciao is defined Ciao Core: it's a powerful software that receives commands via serial communication from the MCU and interacts with several modules (called connectors) for communicating with network protocols, third-party services and platforms.

Ciao Library is documented and explained here.

Getting Started

Ciao is totally modular and configurable. It provides several "connectors" to interact with local resources (filesystem, console, memory) and to communicate with most common protocols (MQTT, XMPP, HTTP, SMTP, etc..) and applications (Jabber,Twitter, Facebook, etc.).

Ciao Connector  

The CPU/MPU side of Ciao is composed by the Ciao Core and several Connectors. Till now we developed only a few of them but the core component has been designed and developed to support as much connector as you can possibly imagine.


Ciao has a core multi-threaded module developed to interact with MCU and to act as a router with all enabled connectors. It communicates with MCU via the serial shared with the MPU/CPU. They communicate with no limits on the number of enabled and registered connectors.

Yún-like boards
In this kind of boards like Yún, Industrial 101 etc.. Ciao Core is started and handled by the microcontroller.

Tiān board
Otherwise with the Tian, Ciao Core is installed as a service, like the Yun-like model it restarts every time the microcontroller is resetted (pressing the reset button or uploading a new sketch). Anyway this behaviour is totally transparent.


A Connector is a standalone module that on one hand communicates with Ciao Core to send/receive data to/from the microcontroller, and on the other connects to external services and/or applications trought specific protocols. Connectors are the tools of Ciao to connect to the World. Main Connectors, like RestServer, Shell, MQTT are pre-installed with Ciao, other connectors and Third party connectors are available in the Connectors Repository, and installable via opkg, see the installation section for more information.  

List of Connectors

Following a list of connectors already developed or under development. Please check each connector to learn how to use and how to setup.

Internal Connector:
External Connector:
at the time of this writing the external available connector are:
  • SMTP
  • XMPP
  • WebSocket (in progress)
  • Twitter (in progress)

Every external connector is available on the Ciao Connectors Repository on Github.

Develop new connectors

As stated above Ciao Core has been designed to be modular, in this way anyone can develop one (or more) Connector for its own needs.
Connectors can be developed in any programming language, compatible with TCP protocol and JSON strings, available on LininoOS. Further information on how to develop new connectors and to interact with Ciao Core via TCP are provided at the following page.