Die Firma Qube Solutions hat zuvor noch keine Raspberry-Pi-Erweiterungen, industrielle Computer oder Embedded-Lösungen, sondern spezielle 3D-LED-Displays angeboten sowie Prototypen und Kleinserien im Kundenauftrag gefertigt. Der Entwickler des Systems war zuvor in der Automatisierungsindustrie tätig, was man dem System von der Konzeption und dem Aufbau sowie auch von der Dokumentation her positiv anmerkt.
Das PiXtend-System (Bild 3) ist in vier Varianten erhältlich: als Fertiggerät, als Bausatz mit vorbestückter Platine, als Bausatz mit allen Komponenten, die dann alle selbst zu bestücken sind, und es wird auch nur die Platine angeboten. Optional gibt es ein passendes Gehäuse für die Hutschienenmontage und zudem eine Abdeckung aus Edelstahl, was dem System einen professionellen Look (Bild 4) verleiht. Eine CE-Zertifizierung, die es ohnehin nur für das Fertiggerät geben kann, wird mit der neuesten Version, die mit SMD-Komponenten aufgebaut sein wird, angestrebt.
Das System firmiert komplett unter Open Source, sodass jegliche Hard- und Software dieses Systems frei zugänglich ist. Es ist ursprünglich für das Raspberry-Pi-Modell B entwickelt worden, kann über einen Adapter aber auch mit dem Modell 2 oder dem Banana Pi eingesetzt werden.
Als Spannungsversorgung für das Board und den Raspberry Pi ist ein Steckernetzteil (7,5 V, 1500 mA) vorgesehen, die von einem Linearregler (mit Kühlkörper) auf die notwendigen 5 V (LM7805) heruntergesetzt wird. Hier wäre ein Schaltregler sicher besser am Platz gewesen.
Das Herzstück des Systems bildet ein ATmega32-Controller (8-bit-Prozessor), der über den ersten SPI-Port mit dem Raspberry Pi kommuniziert. Das Prinzip ist also das gleiche, wie man es vom Gertboard her kennt. LEDs bei den Relais, den digitalen Ausgängen sowie den digitalen Eingängen erlauben praktischerweise die visuelle Kontrolle der Signale. Der ATmega32-Controller steuert die folgenden Ports an:
Alle vier analogen Eingänge nutzen die A/D-Wandlereingänge des ATmega32-Controllers. Die verbleibenden vier A/D-Wandlereingänge des Controllers sind optional für den Anschluss von Temperatur- und Feuchtigkeitssensoren etwa vom Typ DHT11 (oder DHZ22 oder AM2302) vorgesehen, der einen der Standard-Sensoren in der Arduino-Welt darstellt und sehr preiswert erhältlich ist. Diese Ports sind auch als digitale GPIO-Ports einsetzbar.
Die digitalen Ausgangssignale des ATmega werden mit nachgeschalteten Treibertransistoren (2N7000, IRFZ44) gepuffert, die zudem mit selbstrückstellenden Sicherungen (Polyfuses) einzeln abgesichert sind, und die analogen Eingänge verfügen über Schutzschaltungen mit Dioden (BAT41), was das System gegen zu hohe Ströme oder Spannungen recht gut absichert.
Zwei Ausgänge sind als PWM/Servo gekennzeichnet und erlauben den Anschluss von pulsweitenmodulierten Aktoren oder Servos, wofür zwei PWM-Ausgänge oder zwei Digitalausgänge (was per Jumper festgelegt wird) des ATmega-Controllers verwendet werden.
Der erste SPI-Port kann per Jumperverbindung getrennt werden, was für die optionale Programmierung des Atmel-Contollers (ISP) notwendig ist. Der zweite SPI-Port des RP steuert sowohl einen D/A-Wandler (MCP4812) als auch einen CAN-Controller (MCP2515), wobei die entsprechende Umschaltung durch eine Zusatzschaltung und einen GPIO-Port-Pin (GPIO24) vom Raspberry Pi realisiert wird. Dem D/A-Wandler sind zwei OPs (LM358) nachgeschaltet, womit die beiden analogen Ausgänge (0 –10 V) gebildet werden. Der CAN-Bus-Controller plus einem Transceiver (MCP2551) bietet eine vollwertige CAN-Bus-Schnittstelle gemäß CAN 2.0B. Bild 5 verdeutlicht, wie der Raspberry Pi mit dem ATmega32 und mit einigen der Peripherieschaltungen kommuniziert.
Sowohl für die RS-232- als auch für die RS-485-Schnittstelle werden die Leitungen TX und RX vom Raspberry Pi verwendet, denen entsprechende Treiber (MAX232, MAX485) nachgeschaltet sind. Demnach gibt es keine Übergabeleitungen oder sonstige Signale, weshalb die RS-232-Schnittstelle hier tatsächlich nur in der Minimalausführung realisiert wurde. Außerdem ist kein gleichzeitiger Betrieb dieser beiden Schnittstellen möglich. Die entsprechende Ein- bzw. Umschaltung der beiden Schnittstellen erfolgt durch drei GPIO-Leitungen vom Raspberry Pi. Eine weitere GPIO-Leitung des Raspberry Pi (GPIO17) ist für einen 433-MHz-Transceivers vorgesehen. Die passenden Typen (z.B. FS1000A) sind handelsüblich und werden für die bekannten Funksteckdosen eingesetzt, wie man sie beispielsweise im Baumarkt findet.
Zwischen die Leitungen (SPI, I²C, GPIO), die zwischen RP und dem ATmega sowie zur RTC sowie zum MAX232 und zum MAX485 verlaufen, wird der logische Pegel über Buffer (74HCT126) bzw. Transistoren (2N7000) angepasst, weil der RP mit einem logischen High-Pegel von 3,3 V arbeitet und die anderen Komponenten mit 5 V. Wie beim emPC (s.o.) und vielen anderen Erweiterungsboards ist am I²C-Bus eine Real-Time-Clock vom Standardtyp DS1307 angeschlossen, die von einer Knopfzelle (CR2025) versorgt wird.