Qube Solutions hat verschiedene Software für das System entwickelt. Dazu gehört zunächst die Firmware für den ATmega32, mit dem der Controller bereits programmiert ist und die sich vom Anwender mit den üblichen Atmel-Tools (AVR-GCC) bei Bedarf verändern lässt. Auf dem Board ist hierfür der entsprechende ICP Connector vorhanden.
Das Programm pxauto (Bild 6) bietet ein menüähnliches User Interface und eignet sich für die erste Inbetriebnahme und die Funktionskontrolle der Einheiten. Damit sich die Aus- und Eingänge schalten und lesen lassen, ist es zuvor notwendig, die SPI-Kommunikation zwischen dem Raspberry Pi und dem ATmega32 zu aktivieren, wofür der Wert »16« in das UC_CTRL-Register unter dem Menüpunkt CTRL zu schreiben ist. Der Wert wird erst wieder durch einen Reset oder den Neustart des Programms gelöscht und ist demnach dann auch wieder neu zu setzen.
Für den ersten Test empfiehlt es sich, einen digitalen Ausgang (z.B. DOUT – DO0: TRUE) zu schalten, was anhand der dazugehörigen LED sofort zu erkennen ist. Oder man schaltet ein Relais, was dann auch akustisch wahrzunehmen ist. Das Programm muss unbedingt mit ./sudo pxauto gestartet werden und wirkt durch das tastengesteuerte Menü etwas gewöhnungsbedürftig, zumal es nicht mit jeder Tastatur (bzw. den jeweils zugeordneten Pfeiltasten) funktioniert; es erfüllt jedoch seinen Zweck. Wenn unter dem Menüpunkt STAT die Versions- bzw. Statusbytes angezeigt werden, ist dies ein sicheres Indiz dafür, dass die Kommunikation zwischen dem Raspberry Pi und dem ATmega32 funktioniert. Mitunter ist der Wert »16« erneut in das UC_CTRL-Register zu schreiben, damit die Ausgabe funktioniert.
Pixendtool ist ein Kommandozeilenprogramm, mit dem sich anhand einzelner Befehle auf die Hardware zugreifen lässt, um etwa Ausgangssignale zu setzen und Eingänge abzufragen. Mit der folgenden Zeile wird das Relais 1 geschaltet:
pi@raspberrypi ~ /pxdev/pxtendtool $ sudo ./pixtendtool -rel 1
Mit der folgenden Zeile werden alle Relais geschaltet:
pi@raspberrypi ~ /pxdev/pxtendtool $ sudo ./pixtendtool -rel 15
Beim Setzen und Lesen ist demnach die binäre Codierung der jeweiligen Bytes zu beachten.
pi@raspberrypi ~ /pxdev/pxtendtool $ sudo ./pixtendtool -di
digital inputs: 15
Mit der obigen Zeile werden beispielsweise die digitalen Inputs, die einen anderen Port als die Outputs bilden, als Byte (00001111) gelesen, d.h., die Eingänge 0 bis 3 sind Eins, die Eingänge 4 bis 7 sind Null. Beim Lesen der analogen Eingänge (- ai 0 entspricht dem Kanal 0) ist eine Umrechnung (10/1024 * angezeigtem Wert) entsprechend des 10-bit-Wandlers mit der Maximalspannung von 10 V notwendig.
Die C-Bibliothek (pixtend), die auch von den beiden erläuterten Testprogrammen verwendet wird, stellt dem Programmierer ein Interface zu den einzelnen Komponenten zur Verfügung, für deren Nutzung die wiringPi Library notwendig ist, weil die Kommunikation zwischen dem Raspberry Pi und dem Atmel-Controller eben über SPI erfolgt. In jedem Programmverzeichnis befindet sich stets der dazugehörige Quellcode. Alle drei Software-Komponenten sind im pxdev-Paket zusammengefasst und bieten eine gute Ausgangsbasis für eigene Projekte.