Das A²C-Protokoll (advanced Arduino communication protocol) wurde 2016 von mir entwickelt und wurde ursprünglich zur einheitlichen Kommunikation zwischen einem Arduino und einem Computer über die serielle USB-Schnittstelle entworfen. Es lässt sich jedoch ebenso auf eine Kommunikation zwischen anderen Gerätekombinationen (z. Bsp. Arduino zu Arduino oder Arduino zu Smartphone über Bluetooth) anwenden.
Der Name des Protokolls ist eine Anspielung auf den seriellen Datenbus I²C und auf die englische Sprechweise „a to c protocol“ für „Arduino to computer protocol“.
Das Grundkonzept des A²C-Protokolls basiert auf der Extensible Markup Language (XML), hat aber keinen Start- und Endtag, sondern nur einen umschließenden Tag, der den Befehl und alle Daten enthält.
Das Protokoll muss für eine eindeutig definierte Kommunikation unter Umständen mit weiteren Kommunikationsrichtlinien erweitert werden. Zum Beispiel müssen für eine Kommunikation über die UART-Schnittstelle, für die das Protokoll ursprünglich vorgesehen war, die Baudrate, die Anzahl der Datenbits, die Paritätskontrolle und die Anzahl der Stopp-Bits zwischen beiden Geräten identisch konfiguriert sein.
Das Protokoll findet bereits Anwendung in den Arduino-basierenden Produkten:
- SunTracker (SIA 2016/2017 der Staatlichen Feintechnikschule mit Technischem Gymnasium Schwenningen )
- Digitale Dual-Lötstation (Berufsausbildung Continental Automotive GmbH Villingen)
- Line-Follower „Herbie“ (WS 2018/2019 Hochschule Furtwangen)
- WG-Konsole (WS 2018/2019 Hochschule Furtwangen)
Die größte Verbreitung hat das A²C-Protokoll im Zusammenhang mit der PC-Software Arduino-Communication™ gefunden. Dieses ermöglicht es Arduino-Programmierern eine schnelle und einfache Kommunikation für eine Steuerung oder Debugging-Zwecke aufzubauen. Des Weiteren können ein Interface eingerichtet und beliebige Tastenkombinationen hinterlegt werden, die sich als Projektdatei speichern und somit auch für andere Nutzer zur Steuerung veröffentlichen lassen.
Das A²C-Protokoll ist unter der MIT-Lizenz lizenziert.