UbiquiOS ein modulares Softwarepaket für diverse Mikrocontroller, das verschiedene Module und Stacks für Netzwerkverbindungen (MQTT, HTTP, Sockets, TCP, UDP, DNS) über Ethernet, WiFi, Mobilfunk und Bluetooth sowie entsprechende Schnittstellen für diverse Cloud-Dienste (Microsoft Azure, Amazon Web Services, IBM Bluemix) bereitstellt (Bild 6).
Wie erwähnt, kommt man für die Inbetriebnahme von Visible Things nicht herum, sich mit UbiquiOS näher zu beschäftigen. Dabei handelt es sich eben nicht um eine Entwicklungsumgebung. Vielmehr sind die dazugehörigen Routinen in einem beliebigen Editor zu bearbeiten, um diese anschließend anhand mehr oder weniger vorgefertigter Make-Dateien unter Linux zu kompilieren, was dann (hoffentlich) zum lauffähigen UbiquiOS führt. Demnach wird hierfür neben Windows noch ein installiertes Linux benötigt bzw. eine virtuelle Maschine unter Windows wie VirtualBox von Oracle, in der das Linux zu installieren und daraufhin auszuführen ist. Für die Tests haben wir Xubuntu erfolgreich eingesetzt.
Avnet verweist bei Anfragen zur Gateway-Programmierung stets an UbiquiOS Technology, für die das Gateway von Avnet aber nur eine von vielen möglichen Plattformen ist, sodass man auch keine detaillierten oder systemspezifischen Informationen hierzu von UbiquiOS Technology erwarten kann. Grundsätzlich wird man an das UbiquiOS-Support-Portal verwiesen, wo nach der Registrierung Anfragen gestellt werden können, die hier üblicherweise von den Entwicklern selbst beantwortet werden, also technisch fundiert sind. Es gibt demnach keine endlosen Diskussionen von selbsternannten Experten ohne konkrete Aussage. Die notwendige Registrierung für UbiquiOS funktionierte jedoch eher beschwerlich, und erst auf mehrmaliges Nachfragen bei UbiquiOS Technology, was dann letztlich ca. drei Wochen gedauert hat.
Im doc-Verzeichnis des ausgepackten UbiquiOS-Paketes befindet sich die API-Dokumentation, die über die index.html-Datei abrufbar ist. In den Verzeichnissen include und lib ist das eigentliche UbiquiOS abgelegt und im Verzeichnis examples\avnet-baevtgw001 befinden sich Beispielprojekte für das Gateway-Board. Die Bezeichnungen der Projektordner lassen erkennen, worum es dabei geht. So bietet ble_bridge beispielsweise den Datenempfang über BLE, und die Übertragung über WiFi mittels MQTT und Iothub bietet die Anbindung zur Azure IoT Hub Cloud von Microsoft mithilfe eines UbiquiOS-Agents. Avnet selbst bietet keine eigene Cloud, und UbiquiOS setzt auf Azure, sodass hierfür noch ein Zugang und die notwendige Software nötig sind. Durch die passende Kombination der Beispielprojekte ist eine Transportlösung der Messdaten vom Smart-Sensor-Board in die Azure-Cloud zwar realisierbar, allerdings erfordert dies eigene Programmierarbeiten, sodass UbiquiOS eigentlich als Werkzeugkasten zu verstehen ist und für Visible Things von Haus aus keine fertige Lösung bietet.
Wichtig ist, dass nicht die aktuelle Version 6 der GNU ARM Embedded Toolchain verwendet werden darf, weil die Unterstützung für die STM32-Mikrocontroller reduziert wurde und die erzeugten Binärdateien deshalb nicht lauffähig sind. Stattdessen muss die Version 4.9 aus dem Jahr 2015 geladen, entpackt sowie die Rechtevergabe hierfür manuell bearbeitet werden. Für das Schreiben des Programmcodes eignet sich die ST-Link-Utility. Außerdem wird noch eine separate STM32-Firmware (STM32Cube F7) benötigt, die im Makefile des Projekts verlinkt wird. Dabei ist ebenfalls Vorsicht geboten, denn UbiquiOS Technology setzt auf die STM32CubeF7-Firmware Version 1.4 bzw. Version 1.6, die beide nicht mehr offiziell erhältlich sind, sodass man nicht sicher sein kann, ob die vorgesehenen Beispiele hiermit alle korrekt funktionieren.
Für Kontrollzwecke ist eine Ausgabe nützlich. Dies lässt sich mithilfe der auf dem Gateway-Board integrierten UART-Schnittstelle (CN1, Pin 2: TX, Pin 5: GND) und einem zusätzlichen UART-USB-Adapterkabel (etwa von FTDI) realisieren, wozu dann noch etwas »Empfangssoftware«, wie beispielsweise PuTTY benötigt wird. Im Bild 7 ist der Empfang der Sensordaten am Gateway gezeigt, wofür das Beispiel ble_observer in das Gateway-Board erfolgreich programmiert wurde. Die Tabelle zeigt, wie die Daten zu interpretieren sind.
Avnet propagiert zwar eine Gateway-App für iOS und Android, allerdings findet die App das Gateway-Board nicht, vermutlich weil das darauf laufende UbiquiOS nicht mit der App klarkommt. Eine weitere App, Avnet Things, vollzieht nur ein allgemeines BLE-Scanning und bietet ansonsten nur Werbetexte. Quellcodes und Dokumentationen gibt es hierzu auch nicht, genauso wenig wie Schaltpläne für die beiden Boards, und die zur Verfügung gestellten Benutzerhandbücher für das Sensor- und das Gateway-Board verdienen eine derartige Bezeichnung nicht, sie sind schlichtweg indiskutabel.