Das XDK110-Kit (Bild 4) ist eine Entwicklung der Bosch Connected Devices and Solutions (BCDS). Das Board ist in einem 60 mm × 40 mm × 22 mm großen Gehäuse untergebracht und wird mit einem Lithium-Ionen-Akku (560 mAh) ausgeliefert, der beim Anschluss des Boards an den USB automatisch nachgeladen wird. Zum Kit gehören außerdem ein Extension-Board mit einem passenden Anschlusskabel, ein USB-Kabel sowie eine Halteplatte mit Schrauben für die Befestigung.
Der verwendete Cortex-M3 stammt aus der EFM32-Reihe von Silicon Labs und verfügt über 128 KB RAM sowie über 1 MB Flash-Speicher. Auf dem Board sind eine Vielzahl von Sensoren untergebracht: Als Inertialsensoren fungieren ein BMA280 für die Beschleunigung, ein BMG160 für die Drehrate und ein BMI160 für die Beschleunigung und die Drehrate. Die Lichtintensität wird mit einem MAX44009 gemessen, Feuchtigkeit, Luftdruck und Temperatur mit einem BME280, für die Magnetfeldmessung ist ein BMM150 vorhanden sowie das MEMS-Mikrofon AKU340 von Akustica für akustische Messungen.
Neben den Sensoren verfügt das Board über zwei frei programmierbare Taster und drei farbige LEDs (rot, orange, gelb) sowie über einen microSD-Kartenslot für die Speicherung von Messdaten. Als Funk werden sowohl BLE 4.0 als auch IEEE 802.11b/g/n (WLAN) unterstützt, sodass sich damit eine Vielzahl von Applikationen realisieren lässt.
Zertifizierungen laut CE, FCC und IC sowie die Auslegung für den Dauerbetrieb (24/7) sind als besondere Merkmale zu sehen, sodass sich das System nicht nur für typische IoT-Applikationen, sondern auch für industrielle Anwendungen im Kontext von Industrie 4.0 (Predictive Maintenance) empfiehlt.
Praktische Entwicklungsumgebung
Wie üblich ist die Software für das Kit über das Internet zu beziehen. Die ist schnell erledigt, denn anders als bei Dialog gibt es hier keine langwierige Registrierungsprozedur. Die PDF-Dokumente sind ohne Registrierung verfügbar. Für die Programmierung ist die auf Eclipse basierende Entwicklungsumgebung XDK Workbench vorgesehen, über die die benötigten Treiber, Vorlagen und weitere Tools installiert und bereitgestellt werden. Als Builder ist standardmäßig die BCDS-Tool-Chain von Bosch eingestellt. Hier ist die bereits fertig kompilierte API für die Kommunikation mit den Sensoren und den Peripherie-Einheiten zu finden. ARM GCC, Cygwin C und Solaris C Compiler & Linker sowie Linker für MacOS X C und MinGW C stehen zur Verfügung.
Nach abgeschlossener Installation, was ohne Probleme vonstatten geht, steht die Entwicklungsumgebung bereit (Bild 5). Von hier aus lassen sich die Beispielprojekte abrufen sowie die passenden Dokumentationen öffnen. Einen guten Einstieg liefert das PDF-Dokument XDK Guide First Steps. Der Projekteditor erscheint über der Schaltfläche Click & Go und ausführliche Erklärungen zur XDK-API sind über den Button XDK-Docs zu erreichen. Wichtig ist Bosch eine intensive Kommunikation mit den Kunden, denn es wird eine Online-Community gepflegt, womit der Austausch von Informationen und Support-Anfragen auch zwischen den Anwendern gefördert wird. Der entsprechende Zugang steht ebenfalls über die XDK-Workbench zur Verfügung.
Das Board ist wie üblich mit dem beiliegenden USB-Kabel und einem PC (ab Windows 7) zu verbinden. Ein neues (leeres) Projekt wird anhand des Beispiels XDKApplicationTemplate erstellt, das die XDK-API automatisch einbindet. Die Beispiele stehen unter Open-Source-Lizenz und bilden den Funktionsumfang des Systems nachvollziehbar ab, weshalb sie als Startpunkte für eigene Applikationen gut geeignet sind.
Bei anderen Systemen schienen die mitgelieferten Beispiele mitunter etwas willkürlich gewählt worden zu sein, gelten dann gleich für verschiedene Systeme, sind dadurch überladen und nur mühsam zu durchschauen, was hier eben nicht der Fall ist. Außerdem ist eine Mathematik-Bibliothek verfügbar, die zahlreiche nützliche Funktionen (z. B. Filter, FFT) enthält, sodass viele Routinen nicht erst mühsam selbst in C zu programmieren sind. Hilfreich sind auch die weiterführenden Erläuterungen unter Advanced für den Einsatz von Bluetooth und Wi-Fi mit http/https, CoAP oder MQTT in Cloud-Anwendungen sowie zum Echtzeitbetriebssystem FreeRTOS, das auf dem System eingesetzt wird.
Die Demosoftware Virtual XDK ist bei Lieferung noch nicht als Firmware auf dem Board vorhanden, sondern ist mithilfe der XDK-Workbench zunächst zu kompilieren und auf das Board zu schreiben. Durch einen Rechtsklick auf den Projektordner (Build Project) und Betätigung der Schaltfläche Flash ist der Vorgang bereits erledigt. Die serielle Ausgabe wird zur Funktionskontrolle im laufenden Betrieb in der Konsole unten rechts dargestellt.
Bis zur Version 2 der XDK-Workbench müssen die Projektdaten für die Virtual-XDK-Demo manuell importiert werden:
Ab Version 3 entfallen diese Schritte, denn das Programm liegt direkt als Beispielprojekt im Bereich XDK-Examples (Bild 5) der XDK-Workbench vor. Die dazugehörige App (Virtual XDK, Bild 6) ist für Android und für iOS in den jeweiligen Stores und bei Bosch verfügbar. Sie demonstriert sehr anschaulich den Einsatz der verschiedenen Sensoren.
Das XDK110 wird mit einem Erweiterungsadapter (XDK Gateway, Bild 7) ausgeliefert, das mit einem 26-poligen Flachbandkabel an das Hauptsystem anzuschließen ist. Damit stehen neben GPIO-Ports eine I²C-, SPI-, und UART-Schnittstelle sowie zwei direkte Zugänge zum A/D-Wandler zur Verfügung. Der maximal zulässige Strom für die GPIO-Ports lässt sich per Software einstellen (0,5 mA; 2 mA; 6 mA oder 20 mA); insgesamt dürfen in der Summe nicht mehr als 50 mA an allen Pins gleichzeitig fließen.
Von Bosch sind verschiedene Erweiterungen, die sich an den Erweiterungsadapter anschließen lassen, angekündigt oder auch schon verfügbar, etwa ein spezielles Temperaturmessmodul (–200 °C bis +800 °C), ein Infrarotsensor für die Aufzeichnung von Wärmesignaturen und ein LoRaWAN-Modul, was die industrielle Ausrichtung des XDK110-Systems, etwa für die Prozessüberwachung, unterstreicht. Der Versand der Messdaten erfolgt über WLAN oder BLE − in Verbindung mit einem Gateway natürlich auch in eine Cloud eigener Wahl −, wobei ein GATT-Konfigurator für BLE wünschenswert wäre.
Wenn das System eingeschaltet ist (also auch im Leerlauf oder Ladebetrieb), stört es massiv den WLAN-Empfang, sodass Verbindungen zu prinzipiell verfügbaren WLAN-Zugangspunkt mit dem im Test (Virtual-XDK-App) verwendeten iPhone nicht mehr möglich waren. Dieses Phänomen tritt bekanntermaßen auch in anderen Gerätekombinationen auf, die alle im 2,4-GHz-Bereich funken, was in Problemfällen stets genauer zu untersuchen ist.
Generell bietet das XDK110 eine solide Basis für eigene Entwicklungen mit einer durchdachten Hardware und einer Vielzahl von Sensoren. Die Entwicklungsumgebung und die Beispiele sind relativ schnell zugänglich und haben quasi auf Anhieb ohne großes Suchen funktioniert, was auch der guten Dokumentation geschuldet ist.