Bei „Flip & click“ von MikroElektronika handelt es sich um einen Arduino Due mit zu Arduino Uno R3 kompatiblen Shield-Steckverbindern auf der einen und vier mikroBus-Slots auf der anderen Seite. Die Arduino-Seite ist passend in blau und die Click-Seite in weiß gehalten. Die Form des Boards erinnert an einen Schmetterling und ist ebenso ungewöhnlich wie die Verpackung, die man komplett auseinanderfalten muss, um die aufgedruckte Anleitung lesen zu können.

Das Board gibt es zudem in zwei Varianten: Arduino und Python, doch der einzige Unterschied liegt in der Firmware. Folglich kann man die Arduino-Version in ein Phyton-Board verwandeln und umgekehrt.
Da Flip & click eigentlich ein Arduino Due ist, hat das Board einen 144-poligen, 32-bittigen ARM-Cortex-M3-Mikrocontroller des Typs AT91SAM3X8E von Atmel (jetzt Microchip) an Bord. Die zusätzlichen I/O-Leitungen eines echten Due stehen allerdings nicht auf Flip & click zur Verfügung. Ein Teil wird nämlich für die mikroBus-Slots genutzt und andere treiben die vier blauen LEDs auf der Unterseite. Der Rest wird schlicht nicht genutzt.

Arduino Uno R3 next to Flip & click board

mikroBus

Beim mikroBus handelt es sich um ein proprietäres Interface für Erweiterungs-Boards nach der Spezifikation von mikroE (MikroElektronika). Genaue Infos kann man sich von deren Website herunterladen. Er besteht aus zwei einreihigen, 8-poligen Sockeln im 0,1”-Raster und bietet serielle, I²C- und SP-Ports, einen Analog-Eingang, einen PWM-Ausgang, Reset sowie Interrupt-Signale plus eine Versorgung mit 5 V und 3,3 V. Alle Leitungen außer der Stromversorgung können auch als GPIO fungieren. Das Interface erschließt sehr viel Hardware, denn mikroE hat schon mehrere hundert Erweiterungs-Boards dafür entwickelt. Es gibt fast täglich neue (keine Übertreibung). Auf vielen Boards findet man interessante Sensoren, darunter sogar GPS, Mobilfunk und andere Funk-Boards sowie Motor- und LED-Treiber etc.

Die geheime Botschaft hinter Flip & click ist es zu demonstrieren, dass der Arduino-Stil der Systemerweiterung mit dem Stapeln nichtstandardisierter und vielfach konfligierender Shields ziemlich suboptimal ist. Das kann viel eleganter, kleiner und ohne gegenseitige Beeinträchtigung mit dem besser durchdachten Konzept der Click-Boards mit ihrem standardisierten Interface geschehen.

Flip & click with GPS click

Die vier mikroBus-Slots sind nicht komplett unabhängig, da sie alle den SPI-Port teilen. Die Slots A & B teilen sich zudem I²C0 und die Slots C & D entsprechend I²C1 sowie UART3 (Serial3 in einem Sketch, kein Druckfehler). Slot A teilt UART0 (Serial1 in einem Sketch) mit dem Arduino-Shield-Stecker und Slot B ist mit UART1 (Serial2 in einem Sketch) gekoppelt.

Einsatz als Arduino Due
Da Arduino Due von Arduino.org stammt und nicht von Arduino.cc, ist die geeignete Arduino-IDE für Flip & click wohl Version 1.7.11 (zum Zeitpunkt des Schreibens dieses Beitrags), da hier ein Due unterstützt wird. In den IDEs der Versionen 1.6.x (wie von mikroE empfohlen) muss man zuerst das Board mit dem Boards Manager installieren. Da Arduino.cc den Due nicht mehr unterstützt, kann man bei einer veralteten Toolchain landen.

In der IDE 1.7.11 gibt es gleich zwei Arduino Due Boards: „Programming Port“ und „Native USB Port“. Nutzt man die USB-Buchse neben der Buchse für die Stromversorgung, wählt man Ersteres. Die Alternative ist für die USB-Buchse unter SPI gedacht. Bei korrekter Einstellung kann man beide zum Upload von Sketches nutzen.

Ein genauer Blick auf die Schaltung (mikroE veröffentlich normalerweise alle Schaltungen) offenbart, dass der serielle Port auf den Pins 0 und 1 des Shield-Steckers nicht der Gleiche ist wie der des Programming-Port (bei einem richtigen Due sind sie gleich). Vermutlich ist das der Grund dafür, dass die Uno-R3-Shield-Steckverbinder von Flip & click nicht zu 100% kompatibel mit denen des Arduino Due sind. Außerdem werden die seriellen Ports der Pins 0 und 1 auf dem Bestückungsaufdruck als RX0 und TX0 geführt, obwohl sie in einem Sketch als Serial1 angesprochen werden, was etwas irritieren kann. Der Standard-Serial-Port „Serial“ kommuniziert ausschließlich über den USB-Programming-Port.