Mar 012014

LCD Display for Raspberry Pi – the Foundation’s first steps

Gordon Hollingworth was hinting at a new interesting product being prepared for the Embedded World 2014 in Nuremberg. We had the chance to see it at both the Farnell and the Toshiba booths.

The Raspberry Pi foundation has an interesting concept, as always:

Toshiba has a chip which converts the Raspberry Pi’s display port to a more generic parallel interface. The drivers – to program which you need to sign NDAs – have been developed by the Foundation, and are freely available.

The Foundation (according to Farnell, and Gordon H. ) will bring two displays to market during this year – a 7 ‘’ display with a low resolution, and a high-resolution 10’’ display. Both are supposed to have touch capabilities. These displays should be ready and in stock with Farnell in three to six months. I assume that RS Components will also stock them, as this is clearly a core extension for the Raspberry Pi.

Developers free to roll their own

Any other developer / entrepreneur, though, can basically source the Toshiba chip and interface it with a display of their choice – even before the Foundation will get to market with their displays.

Here are some pictures of this display:



This picture (click to enlarge) shows the Raspberry Pi foundation’s development board, along with a LCD display.


Picture showing the setup at the Toshiba booth.

There are two chips which are being demoed. Both carry unique business opportunities with them.

Toshiba HDMI to MIPI CSI2 bridge chip TC358743XBG

This chip (on the pcb developed by the Foundation) connects an Android PC, which plays a movie / runs a 3D rendering (teapot) over HDMI to the Raspberry Pi’s camera port, thus allowing the Raspberry Pi to capture HDMI input (also an idea which will open up many use cases – for instance pass-through recording and streaming of your favourite Playstation games!)

Toshiba MIPI DSI to DPI display chip TC358762XBG

This chip converts the Raspberry Pi’s Display Serial Interface (DSI) to a parallel interface (DPI). (“De-serializer display bridge for connectivity of panels using legacy parallel interface to the Baseband or Application Processors with MIPI® Display Serial Interface

read more about DSI on Wikipedia, and the TC358762XBG product brief.


NFC Board for the Raspi

This board has been on the market for a couple of weeks (maybe even months) already. pi3g actually won one sample board, courtesy of Farnell Smile 

NXP Technology provides the NFC chip used on this board. The board’s design is a bit unlucky (very big), and it won’t fit in many “normal” cases on the market, for instance the TEK-BERRY cases we use.

The guys from NXP assured me that it should be no problem to source the chip and alter the board’s design to a smaller board, though. The NFC antenna (which can be seen on the left in the following picture) can include other electronic components in the free space inside, and also components could go on the bottom of the board.


I see NFC as a very promising technology, and the Raspi is ready to be the first networked NFC reader under 100 € system cost.



Internet of Things

There are many companies and platforms being shown / developed / available for “Internet of Things” applications. These devices will have  a small custom applications processor, programmable, and with a small amount of RAM. They are then connected via WiFi to your home network, cloud solutions / or provide a built-in webhost for control via your smartphone / tablet.

A very important thing is the initial programming of your WiFi credentials into these devices. There are several solutions emerging. Apple is rolling their own (apple certified devices, which include a proprietary Apple chip, and just “show up” on your iOS devices – especially more present since iOS 7), but there is another interesting option available: BTE.

BTE is Bluetooth Low Energy, and basically is expressly built for such scenarios (of low-data transfer, low-power devices). BTE devices can be set up by the manufacturer to show up on any Smartphone (with built-in BTE – if you have Bluetooth 4.0 you have it), and be accessible without any code / authentication necessary.

You could now use an App to connect via BTE to the new device, set up your WiFi connection credentials, and once the WiFI connection works, and maybe a password is set, the BTE connection will be disabled alltogether. It would only be available again pressing a “factory reset” button.

I do not believe that the Raspberry Pi is a good platform for Internet of Things in mass-production / consumer devices. We need a smaller platform for these applications, with less processing resources, and lower power usage.

For enthusiasts, who want to experiment in this direction, and directly interface with the computer, the Pi is great, though!

Maybe we will build a “Internet of Things” platform on which you can develop your own application / this could also be a great idea to put on Kickstarter / … .



The highlight of the fair!

This is what Model C of the Raspberry Pi should be like, if it ever would be published. Technical specifications include:

  • ARM Cortex A9 MPCore Processor at 1 GhZ
  • HD video decoder
  • OpenGL ES 2.0 3D graphics accelerator, 2D accelerator
  • 1 GB DDR3 RAM
  • headphone / microphone (!) jack
  • LVDS, HDMI, Parallel RGB interface
  • four USB ports
  • barrel power connector (not micro USB)
  • 4 GB Flash on-board
  • GBit LAN port
  • GPIO connector

This board runs Android and Ubuntu Linux, at impressive speeds. Web browsing, PDF viewing is quite fluent with it.

The GBit port, and the four USB ports make it a good NAS / home cloud system base board. Further possible applications include Thin Clients, stand-alone web browsing stations, and build-your-own media centres. It should also run web applications more fluently than the Pi. With the built-in flash, you could even make do without an additional SD card.

All this very attractively priced, and available now through Farnell (and soon through us, maybe).

Have a look at the spec sheet. (PDF, 12 MB)

We are seriously considering adding this board to our portfolio as a high-end SBC solution, where the Raspberry Pi simply has insufficient compute power.

Here’s a photo:


May 212013

Das ist eine Anleitung wie man eine mit NTFS formatierte Festplatte über den Raspberry Pi im heimischen (Windows-) Netzwerk freigibt. Der Samba-Teil kann (und sollte) natürlich auch mit Linux Partitionen verwendet werden.


ntfs-3g installieren

Dieses Paket wird benötigt um NTFS – Partitionen größer als 2 TB einbinden zu können. Ich habe diesen Absatz ganz an den Anfang gestellt, damit etwaiige Probleme erst gar nicht auftreten. Sollte man nur Linux Partitionen einbinden wollen, kann das entfallen.

Da der ntfs-3g Treiber sehr ressourcenintensiv ist, sollte man wenn möglich native Linux (ext4 / ext3) Partitionen bevorzugen.

Die dazugehörige Fehlermeldung, falls man es ohne dieses Paket  versuchen würde, würde lauten:

pi@andromeda /mnt $ sudo mount -a
mount: wrong fs type, bad option, bad superblock on /dev/sda1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

pi@andromeda /mnt $ sudo dmesg | tail
[23556.245263] NTFS driver 2.1.30 [Flags: R/W MODULE].
[23556.265987] NTFS-fs error (device sda1): parse_ntfs_boot_sector(): Volume size (2TiB) is too large for this architecture.  Maximum supported is 2TiB.  Sorry.
[23556.266018] NTFS-fs error (device sda1): ntfs_fill_super(): Unsupported NTFS filesystem.

Daher installieren wir das Paket ganz einfach:

sudo apt-get install ntfs-3g

Einbinden einer neuen Festplatte

  • Schließe die Festplatte an.
  • Überprüfe mit lsusb ob sie erkannt wurde
pi@andromeda ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub
Bus 001 Device 005: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 001 Device 006: ID 0bc2:3320 Seagate RSS LLC

In unserem Fall ist die Festplatte eine Seagate 3 TB USB 3.0 Festplatte (abwärtskompatibel mit USB 2.0 für den Raspberry Pi). Sie wird erkannt.

  • Liste die angeschlossenen Speichermedien auf mit:



Wenn Deine Ausgabe anstelle der Baumsymbole links komische Zeichen ausgibt, stelle die Zeichensatzkodierung deines SSH-Clients (z.B. PuTTY) auf UTF-8 um. (Klick auf das Bild öffnet eine größere Version)

In unserem Beispiel wird also sowohl die SD Karte von der der Pi gebootet wird ( /dev/mmcblk0 ) mit ihren zwei Partitionen /dev/mmcblk0p1 und /dev/mmcblk0p2, sowie die Seagate Festplatte als /dev/sda mit der einzigen Partition /dev/sda1 angezeigt.

Wichtig an dieser Stelle anzumerken ist, dass die Buchstaben, z.B. das a bei /dev/sda nach der Reihenfolge des Einsteckens vergeben werden. Um jedesmal sicher die richtige Festplatte anzusprechen (z.B. wenn man mehrere Festplatten an dem Pi anschließt, oder zusätzliche USB Sticks / SD Reader / …), sollte man sich daher der UUID bedienen.

  • Liste die UUIDS auf, und verifiziere deren Zuordnung:

ls –lR /dev/disk/by-uuid/



  • Mountpoint erstellen und /etc/fstab editieren (hier erstmal die Default Einstellungen in dieser Datei zur Referenz):
pi@andromeda /mnt $ sudo su
root@andromeda:/mnt# mkdir /mnt/bigdata
root@andromeda:/mnt# nano /etc/fstab

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1

Der Mountpoint ist nötig, um die Festplatte in das Hauptdateisystem “einhängen” und damit später adressieren zu können  Es sollte sich um einen leeren Ordner handeln, der aber nicht unbedingt in /mnt liegen muss. (Nur das Verzeichnis /tmp sollte man vorsichtig benutzen – es wird bei jedem Neustart geleert).

Wie bereits oben ausgeführt, sollte man hier NICHT /dev/sda1 eintragen, sondern den Pfad mit der UUID, um sicherzustellen dass die richtige Festplatte angesprochen wird.

Wir fügen folgende Zeile in die /etc/fstab hinzu:

UUID=DA0E27C90E279E0F   /mnt/bigdata    ntfs    defaults        0       2

Dabei sind die einzelnen Spalten jeweils mit einem Tab getrennt.

  • die UUID solltest Du mit Deiner UUID ersetzen, die der Partition entspricht die Dich interessiert
  • den Mountpoint ebenfalls mit dem, den Du erstellt hast
  • das Dateisystem ggf. anpassen, falls es nicht ntfs ist
  • defaults bedeutet: standard-Einstellungen (z.B. ob das Dateisystem beim Start automatisch eingehängt werden soll – normalerweise ja)
  • die zahl 0 bedeutet “dump-freq” – Archivierungsfrequenz für das Programm dump – 0 bedeutet “disabled”
  • die zahl 2 spezifiziert die Reihenfolge des Dateisystem-Checks. Nicht-root Partitionen sollten hier eine 2 oder eine 0 (disabled) haben.


  • initiales Mounten

Die Partition ist jetzt in /etc/fstab eingetragen, und wir sollten sie jetzt einhängen (nach einem Neustart wird das automatisch gemacht werden):

sudo mount -a

Sollte hier ein Fehler auftreten, schaue bitte den allerersten Absatz nochmal an – hast Du das Paket ntfs-3g installiert?



Samba ist eine “Kompatibilitätsschicht” mit der Windows-Welt von der Linux-Seite her. Es dient nicht nur zur Freigabe von Dateien, sondern auch um z.B. Drucker für Windows zur Verfügung zu stellen.

Aus meiner Sicht ist die Freigabe unter Linux deutlich einfacher als unter Windows selber, also herein ins Vergnügen:

  • wir installieren samba
pi@andromeda ~ $ sudo su
root@andromeda:/home/pi# aptitude install samba samba-common-bin

Samba liest seine Einstellungen aus der Datei /etc/samba/smb.conf – wir schlagen vor die Default Datei als Backup zu verschieben, und eine neue Datei mit einfachen Einstellungen anzulegen. Eine einfache funktionierende Beispieldatei (in Anlehnung an diesen Artikel) ist im folgenden wiedergegeben:

# Global parameters
       workgroup = HOME
       netbios name = ANDROMEDA
       server string = Samba Server %v
       map to guest = Bad User
       log file = /var/log/samba/log.%m
       max log size = 50
#       socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
       preferred master = No
       local master = No
       dns proxy = No
       security = User

# Share
       path = /mnt/bigdata
       valid users = my-samba-user
       read only = No
       create mask = 0777
       directory mask = 0777

Die Gruppe global ist ein Sonderbezeichner, es gibt außerdem weitere, z.B. für Drucker. Die workgroup “HOME” hat für uns ganz gut funktioniert, evtl. könnte man noch “WORKGROUP” ausprobieren.

Edit: Durch auskommentieren der socket options Zeile (durch die Raute #)  – wie durch den Kommentar von Basti empfohlen, kann man die Geschwindigkeit auf nahezu den vollen Durchsatz des 100 Mbit/s Ports des Raspberrys anheben! (=> ca. 10 MB/s)

Der netbios name ist der wichtigste Teil unter global. Das ist der neue Windows-Name des Raspberry Pi’s. Es macht Sinn ihn genauso zu benennen, wie den echten hostnamen des Raspberrys (das was üblicherweise auf der Kommandozeile immer angezeigt wird).

Der Name des Shares wird später unter Windows im Pfad eingegeben, ist hier in rechteckigen Klammern, bigdata.

Der vorher erstellte Pfad zum mountpoint sollte hier verändert werden, unter valid users einzutragen ist ein frei wählbarer Name (hier als Beispiel “my-samba-user”), für den wir im nächsten Schritt einen Benutzer anlegen werden.

  • Samba User anlegen, Einstellungen testen, Samba Server neustarten
root@andromeda:/etc/samba# useradd -c "Pi Samba user" my-samba-user

root@andromeda:/etc/samba# smbpasswd -a my-samba-user
New SMB password:
Retype new SMB password:
Added user my-samba-user.

root@andromeda:/etc/samba# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[bigdata]"
Loaded services file OK.
Press enter to see a dump of your service definitions

        workgroup = HOME
        server string = Samba Server %v
        map to guest = Bad User
        log file = /var/log/samba/log.%m
        max log size = 50
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        local master = No
        dns proxy = No
        idmap config * : backend = tdb

        path = /mnt/bigdata
        valid users = my-samba-user
        read only = No
        create mask = 0777
        directory mask = 0777

root@andromeda:/etc/samba# service samba restart
[ ok ] Stopping Samba daemons: nmbd smbd.
[ ok ] Starting Samba daemons: nmbd smbd.


Das ist alles was auf Linux Seite erforderlich ist.


Einfacher Verbindungstest


Man kann jetzt im Windows (falls man den Startknopf noch hat) Dialog “Ausführen” bzw. “Run” auswählen, und den Pfad des neuen SAMBA Shares einfach angeben. In unserem Beispiel “\\ANDROMEDA\bigdata” – ANDROMEDA ist der Pi und bigdata der Share. Man beachte die BACK-Slashes!

Es geht ein Dialog auf, in dem man den ebenfalls bereits auf dem Raspberry Pi angelegten SAMBA-Benutzer und das Passwort eingeben muss, danach öffnet sich ein Explorer-Fenster mit dem Inhalt des neuen Netzlaufwerkes.


Dauerhafte Verbindung einrichten


Windows 8


Explorer aufmachen, Computer anklicken, Reiter “Computer”, “Map Network Drive” klicken. (Map Network Drive kann man auch per Rechtsklick auf “Computer” aus dem Kontext-Menü auswählen).


Hier muss man einen (lokalen) Laufwerksbuchstaben auswählen, und den Pfad des Netzlaufwerkes angeben. Bequemerweise kann man auch mit dem Knopf “Browse …” den Ordner auswählen, der Pi taucht in der HOME Gruppe einfach auf. Sollte es das nicht tun, dennoch den Pfad manuell eintippen – das sollte so klappen.

Wichtig ist, dass “Connect using different credentials” angekreuzt ist – wir haben auf dem Raspberry einen eigenen User für die Verbindung eingerichtet.

Ein Klick auf “Finish” ruft den Dialog für die Passwort / Nutzer – Eingabe auf:


Hier sollte man die Login Daten des speziell dafür angelegten SAMBA Nutzers eingeben. Es empfiehlt sich in sicheren Umgebungen vermutlich auch, “Remember my credentials” einzugeben, damit sich der Rechner die Zugangsdaten merkt.

That’s it – jetzt steht das Laufwerk zur Verfügung!


Windows 7


Man öffnet den Explorer, klickt auf “Computer”, und auf “Map network drive”. (Falls man es in der Leiste oben nicht findet, kann man es auch per rechts-Klick auf “Computer” erreichen).

Ansonsten analoges Vorgehen wie bei Windows 8, siehe oben!


Windows XP


Im Explorer wählt man unter Extras den Menüpunkt “Netzlaufwerk verbinden …” aus …


es erscheint dieser Dialog, in dem man den Pfad (analog wie bei Windows 8 bzw. 7) eingeben sollte. Anders ist hier, dass man anstelle einer Checkbox “als anderer Benutzer verbinden” eine Art Hyperlink hat, den man anklicken sollte.


Es erscheint daraufhin dieser Dialog, in dem man die Zugangsdaten die auf dem Raspberry Pi für Samba eingerichtet wurden, eingeben sollte. Ein Klick auf OK hier, und auf Fertig stellen im vorherigen Dialog sollte das Netzlaufwerk verbinden und gleich ein Explorer-Fenster mit dessen Inhalt öffnen.


Q & A

Web browser

Ein wichtiger Vorteil von SAMBA ist, dass man den Pi ab sofort unter seinem (Samba) Namen per Webbrowser erreichen kann. Z.B. kann ich einfach andromeda als Adresse angeben, und vorausgesetzt dass ein Webserver installiert ist, wird die Webseite problemlos aufgerufen



Was für eine Geschwindigkeit kann man erwarten?

Edit: Durch auskommentieren der socket options Zeile (durch die Raute #)  – wie durch den Kommentar von Basti empfohlen, kann man die Geschwindigkeit auf nahezu den vollen Durchsatz des 100 Mbit/s Ports des Raspberrys anheben! (=> ca. 10 MB/s)


>> ca. 5 – 6 MB/s

Dabei war die angeschlossene Festplatte eine USB 3.0 Festplatte, es wird das 100 Mbit/s Netzwerk des Raspberrys benutzt, angeschlossen sind das Zielnotebook und der Raspberry am gleichen Gigabit-Switch, und es wird auf eine SSD kopiert, was den Raspberry selber bzw. die USB Implementatoin darauf zu der Engstelle macht.

Das ist natürlich nicht besonders schnell, aber zum Streamen von Filmen, Musik, Dokumenten und für Background-Backups reicht es. Lieber allerdings nicht alles gleichzeitig Smile

Mögliche Gründe für diese niedrige Geschwindigkeit sind – neben den Flaschenhälsen LAN, USB (was sowohl für lesen von der Festplatte als auch für das LAN benötigt wird) das Dateisystem NTFS bzw. der Treiber ntfs-3g dafür. Er ist bekannt, sehr ressourcenfressend zu sein. Vielleicht ist der Default-Treiber für ntfs ressourcenschonender, bei unserem Test mussten wir jedoch ntfs-3g wegen der 3 Terabyte Größe der Festplatte verwenden. Bevorzugen sollte man wie schon erwähnt Linux-eigene Partitionsformate. Wir werden demnächst einen Test damit veröffentlichen.

Die Geschwindigkeit über WLAN (an das Notebook, Raspberry Pi ist weiterhin per LAN angebunden) ist mit ca. 700 KB/s deutlich niedriger – seltsamerweise. Wir würden uns hier über ein paar Erfahrungen von euch freuen (einfach als Kommentar posten). Evtl. liegt das auch an unserer Netzwerk-Topologie / Timing-Problemen …


Referenzen / weitere Information

Optimization WordPress Plugins & Solutions by W3 EDGE