In die Firmware des AMB8826 ist der Amber-RF-Stack integriert, der es erlaubt, den Kommandomodus des AMB8826 zu nutzen. Über die UART-Schnittstelle kann der Host – in diesem Fall das Raspberry Pi – vordefinierte Kommandos an das Funkmodul senden, um es zu konfigurieren oder das Senden von Funknachrichten zu veranlassen. Das Modul wiederum antwortet darauf mit einer Bestätigung, um mitzuteilen, dass das Kommando umgesetzt wurde. Zusätzlich kann das AMB8826 auch eigenständig senden, etwa wenn eine Funknachricht empfangen wurde. Unabhängig von der Art des Kommandos ist das Protokoll immer gleich aufgebaut:
Das Kommando beginnt immer mit dem Startsignal, ein Byte mit dem Wert 0x02, um den Beginn einer Nachricht anzuzeigen. Daran schließt sich das Kommando-Byte an, das beschreibt, um welches Kommando es sich handelt. Anschließend folgt ein Längen-Byte, das die Anzahl der nachfolgenden Daten-Bytes bestimmt. Abgeschlossen wird das Kommando mit einer Prüfsumme, um die korrekte Übertragung zwischen Host und Modul zu überprüfen. Um beispielsweise eine Nachricht über Funk zu senden (Kommando-Byte 0x00) mit dem Inhalt „Hello” (also 0x48 0x65 0x6C 0x6C 0x6F in hexadezimaler Notation), wird das folgende Kommando verwendet:
Nach dem erfolgreichen Senden der Nachricht antwortet das Modul mit dem folgenden Frame: Eine Payload mit dem Byte 0x00 steht für das erfolgreiche Ausführen des Request. Tritt ein Fehler bei der Funkübertragung des Telegramms auf, besteht die Payload aus dem Byte 0x01:
Das Amber PI Software Development Kit (SDK) wird als Quellcode in C bereitgestellt. Es beinhaltet die Treiber für die gelieferte Hardware (AMB8826, AMB8665 und Sensoren) und implementiert zudem das beschriebene Kommandointerface des Amber-RF-Stacks. Dabei setzen einfache Funktionen ein Kommando zusammen, senden es über die UART-Schnittstelle an das Modul und interpretieren die Rückantwort. Der Rückgabewert der Funktionen vom Typ Boolean gibt an, ob das Kommando erfolgreich vom Modul ausgeführt wurde oder nicht. Zum Senden einer Nachricht kann die entsprechende Funktion einfach mit den zu übertragenden Daten und der Länge dieser aufgerufen werden:
bool ret;
uint8_t payload [5] =
{ ´H´, ´e´, ´l´, ´l´, ´o´};
ret = AMB8826_Transmit(payload, sizeof(payload));
Neben der Kommunikation mit dem AMB8826 beinhaltet das SDK auch die Treiber der mitgelieferten Sensoren, sodass diese schnell und einfach angesteuert werden können. Als Einstiegspunkt für eigene Projekte enthält das SDK eine Beispielapplikation. Diese liest die angesteckten Sensoren periodisch aus und sendet die Sensorwerte anschließend über Funk an den mitgelieferten Funk-Stick. Die Beispielanwendung kann als Grundlage für eigene Projekte genutzt und an die Bedürfnisse angepasst werden.
Mit dem Amber-Pi-Kit als Gesamtpaket aus Hardware und Software wird eine einfache Möglichkeit geboten, um den Raspberry Pi für die Funkkommunikation im Sub-1GHz-Spektrum auszustatten. Durch das Augenmerk auf Einfachheit in der Benutzung und Flexibilität in der Ausstattung können so eine Vielzahl von Projekten mit verschiedensten Anforderungen umgesetzt werden. Typische Applikationen sind Fernüberwachung und Funksteuerung, der Ersatz serieller Kabelverbindungen oder Sensornetzwerke in der industriellen Automation.