Single Board Computer Benchmarks

Over the last few years, I have evaluated many single board ARM computers for mobile robotics and home automation applications. Here are some rough benchmark results comparing across different SBC generations that may help avoid some bad buys:

Raspberry Pi

CPU : ARMv6-compatible processor rev 7 (v6l)
L2 Cache :
OS : Linux 4.0.9+
C compiler : gcc version 4.6.3 (Debian 4.6.3-14+rpi1)
libc : libc-2.13.so
MEMORY INDEX : 2.528
INTEGER INDEX : 3.150
FLOATING-POINT INDEX: 2.073

Banana Pi


CPU : Dual
L2 Cache :
OS : Linux 3.4.90
C compiler : gcc version 4.6.3 (Debian 4.6.3-14+rpi1)
libc : libc-2.13.so
MEMORY INDEX : 3.448
INTEGER INDEX : 4.516
FLOATING-POINT INDEX: 3.794

Raspberry Pi 2


CPU : 4 CPU ARMv7 Processor rev 5 (v7l)
L2 Cache :
OS : Linux 3.18.5-v7+
C compiler : gcc version 4.6.3 (Debian 4.6.3-14+rpi1)
libc : libc-2.13.so
MEMORY INDEX : 4.256
INTEGER INDEX : 5.640
FLOATING-POINT INDEX: 4.786

Raspberry Pi 3


MEMORY INDEX : 7.105
INTEGER INDEX : 8.976
FLOATING-POINT INDEX: 7.601

Radxa Rock with antiquated kernel on NAND:


CPU : 4 CPU
L2 Cache :
OS : Linux 3.0.36+
C compiler : gcc version 4.8.2 (Ubuntu/Linaro 4.8.2-19ubuntu1)
libc : libc-2.19.so
MEMORY INDEX : 9.142
INTEGER INDEX : 9.994
FLOATING-POINT INDEX: 9.965

Radxa Rock Pro with experimental 3.18 kernel on SD card:


CPU : 4 CPU ARMv7 Processor rev 0 (v7l)
L2 Cache :
OS : Linux 3.18.0-rc5+
C compiler : gcc version 4.8.2 (Ubuntu/Linaro 4.8.2-19ubuntu1)
libc : libc-2.19.so
MEMORY INDEX : 3.463
INTEGER INDEX : 3.741
FLOATING-POINT INDEX: 3.665

Hardkernel Odroid XU4 on SD card


CPU : 8 CPU ARMv7 Processor rev 3 (v7l)
L2 Cache :
OS : Linux 3.10.82
C compiler : gcc version 4.8.4 (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04)
libc : libc-2.19.so
MEMORY INDEX : 15.504
INTEGER INDEX : 15.309
FLOATING-POINT INDEX: 14.164

And my current 13″ MacBookPro 🙂


CPU : 2,8 GHz Intel Core i7
L2 Cache :
OS : Darwin 14.5.0
C compiler : Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
libc :
MEMORY INDEX : 47.880
INTEGER INDEX : 40.440
FLOATING-POINT INDEX: 83.190

You can benchmark your own SBCs with nbench by:

If you have some interesting results of your own, please don’t forget to drop a comment.

Telegram mit FHEM

Telegram ist eine schneller, kostenloser und vor allem verschlüsselter Nachrichtendienst der sich gut dazu eignet um Meldungen der Heimautomatisierungslösung FHEM auf die Mobilgeräte zu bringen. Mittlerweile gibt es zwei verschiedene Möglichkeiten um Telegram in Fhem einzubinden. Es sei die neuere Version per Bot API empfohlen, da diese wesentlich einfacher einzurichten ist.

Neue Version per Bot API:
in Telegram an den BotFather schreiben:


/newbot
MyFhemBot
MyFhemBot
/setuserpic

der BotFather gibt dann ein Token à la 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw zurück.

in Fhem dann eine TelegramBot Instanz definieren:

Da der Bot nicht von sich aus Kontakt aufnehmen darf, per telegram eine Nachricht an @MyFhemBot senden. Danach kann der Bot mit bekannten peers per

oder mit dem defaultPeer per

kommunizieren.

Alte überholte Version per Telegram cli:

Der Telegram Client tg lässt sich folgendermaßen installieren:

Nun kann man testen, ob das telegram-cli grundsätzlich funktioniert

Beim ersten Start ist die Registrierung eines Accounts mit einer Telefonnummer nötig. Dazu wird per SMS oder Anruf ein Code zur Verifizierung übermittelt. Nach erfolgreicher Registrierung müssen zuerst die benötigten Kontakte angelegt werden :

Nun sollte überprüft werden, ob Nachrichten verschickt und empfangen können werden:

Bei Bedarf kann noch ein Profilname, Benutzername und Profilbild für den Telegram Account gesetzt werden:

Funktioniert dies alles, kann Telegram als Daemon gestartet werden. Dazu verwende ich folgendes Script von Fizzle:

Der Benutzer tatsch und die binary Pfade müssen auf ihrem System angepasst werden. Der Dienst kann nun ganz bequem per

gestartet, gestoppt, bzw. neu gestartet werden.

Nun muss noch das FHEM Modul 70_Telegram.pm von viegener installiert werden:

in FHEM muss das Modul dann neu geladen werden. Danach kann eine telegram Instanz definiert, ein Standardempfänger gesetzt und eine Testnachricht versendet werden:

How to install ROS Jade on OS X Yosemite

For all the OS X users out there being annoyed by having to run ROS in their virtual machines, here is the gist for compiling it natively:

https://gist.github.com/jmtatsch/3aa268d41ae40c89b35a

Be warned, this is not a walk in the park. There are usually plenty of issues to work around. But the result is worth it!

MOOC Autonomous Navigation for Flying Robots

A Massive Open Online Course (MOOC) I have contributed to is re-run due to overwhelming demand. Here is the teaser video.

Sign up now

Free up space on your linux machine

Here are some useful commands to free up space on your linux machine. To display the used space of your filesystem:

To display the folders and how much space they take:

Find the 20 largest offenders on your system:

Or use the graphical command line tool ncdu:

If you are using a Debian based system, you can list the installed packages with size:

remove unwanted packages:

and uninstall their unused dependencies:

and finally

clear the packet cache.

Steuern sparen bei der Wartung und Reparatur ihrer IT- Infrastruktur

Auch für Privatleute sind Wartung und Reparatur ihrer Informations- und Telekommunikationinfrastruktur von der Steuer absetzbar!

Nach EStG § 35a Abs. 3 sind die Arbeitskosten für Wartung und Reparaturen zu 20 % von der Einkommenssteuer abzugsfähig, bis zu einer Höchstgrenze von 1200 €. Laut BMF-Schreiben 2014 gilt dies insbesondere auch für Reparatur, Wartung und Pflege von Gegenständen im Haushalt des Steuerpflichtigen (z. B. Personalcomputer und andere).

BMF Schreiben 2014

Dies gilt allerdings nur wenn die Reparatur zu Hause, d.h. vor Ort und nicht in unserer Fachwerkstatt erfolgt. Als Arbeitskosten sind dabei alle Aufwendungen für die Inanspruchnahme der Dienstleistungen selbst einschließlich der in Rechnung gestellten Werkzeug- und Fahrtkosten und der Umsatzsteuer zu verstehen. Zu beachten ist, dass nur unbare Zahlungen, d.h. Überweisungen auf unser Konto vom Finanzamt anerkannt werden können (BFH, Urteil vom 20. November 2008, BStBl 2009 II Seite 307).

Use the Neato Botvac with ROS

Neato’s Botvacs are not only cool for keeping your home clean, they also are an affordable robotics platform compatible with the robot operating system (ROS). To use your Neato with ROS, first install ROS, then download and install my fork of the neato_robot package:

To use my Neato wifi hack with the ROS package neato_robot the telnet access has to be bridged back to serial with socat:

Now you can launch the necessary ROS nodes with roslaunch:

While the console window is active, you should be able to move your robot around by:
u i o
j k l
m , .

q/z : increase/decrease max speeds by 10%
w/x : increase/decrease only linear speed by 10%
e/c : increase/decrease only angular speed by 10%
anything else : stop

CTRL-C to quit
Watch out, it can be surprisingly fast 😉

Neato ROS

Alternatively you can command your neato via rviz to go to a nav goal…

How to install ROS Indigo on OS X Yosemite

Compiling the Robot Operating System (ROS) Indigo on Mac OS X can be quite a challenge. Here is a well tested recipe originally created by Mike Purvis and updated by me for OS X Yosemite 10.10.2:

Uninstall Homebrew

If your homebrew is completely messed up, it’s a good idea to remove everything and start off fresh:

Now you can reinstall with:

Deactivate the LED of the Raspberry Pi Camera

The red led of the Raspberry Pi Camera can be annoying or even catching unwanted attention.
Simply add the line disable_camera_led=1 to your config.txt file and you are done: