12.09.2016 /He [Druckansicht]

Raspberry Pi 3 Model B mit linux-gpib und Kernel 4.1

Anleitung für National Instruments GPIB-USB-HS und Agilent 82357A/B GPIB USB Adapter

Raspberry Pi 3 Model B und NI GPIB USB-HS Adapter Seit dem Erscheinen des 1. Raspberry Pi, als es noch Mühselig war, einen Kerneltreiber zu Installieren und alles zu Testen, ist es dank dem letzten Modell, dem Raspberry Pi 3(Stand 2016) um einiges leichter geworden, alles direkt auf dem Pi zu erledigen. So auch das Übersetzen des Kernels direkt auf dem Pi. Möchte man einen USB-GPIB Adapter der Marke Agilent oder National Instruments verwenden, benötigt man eine Kernel Treiber Modul, das mit dem USB-GPIB-Adapter kommuniziert. Das Open-source Projekt namens linux-gpib [http://linux-gpib.sourceforge.net/] liefert die notwendige Software und auch die passende Firmware. Auch wird der Kernel 4.1.x unterstützt, was einen großen Vorteil hat, da der Kernel 4.1 Langzeit-Support erhält. Eigentlich sollten alle Versionen des 4.x.x zweiges funktionieren. Getestet wurde hingegen nur die Version 4.1.y

weiter...

08.07.2016 /He [Druckansicht]

Raspberry Pi 3 von USB SSD booten- auch ohne SD-Karte

...Erste Schritte

Raspberry Pi 3 Model B mit SSD unten befestigt Die Verwendung einer SSD(Solid State Disk) für den Raspberry Pi bringt einige Vorteile, unter Anderem durch den Preisverfall eine relativ günstige Speicherplatzaufrüstung jenseits der 128GB einer MicroSD-Karte, wo sich der Preisunterschied richtig bemerkbar macht(Stand 08/2016). Auch kann ich nicht sagen, ob überhaupt mehr als 64GB MicroSD-Karten erkannt werden, mangels Testobjekt. Nach einigen Tests auch mit "normalen" Festplatten hat sich der 4,572cm (1.8") Formfaktor für den Raspberry am geeignetsten herausgestellt. Hierfür wurde nun auch ein Universalhalter entworfen, der sich oben sowie unten am RPI einfach aufstecken lässt(gehalten von 4x Hexagonal M2.5,5.0mm Abstandshülsen). Auch kann die SSD auf unterschiedliche Arten eingeschoben werden. Der Universalhalter soll später auch eine Stromversorgung und weitere Zusatzhardware aufnehmen können, die Datei im STL-Format kann am Ende des Beitrags heruntergeladen und mit einem 3D-Drucker ausgedruckt werden.

weiter...

08.03.2016 /He [Druckansicht]

MSP-EXP430G2 und Raspberry Pi 3 mit MSP430-gcc-toolchain

...ein 16-Bit Co-Prozessor für den Raspberry Pi

TI MSP-EXP430G2 In den letzten Artikeln wurden 8-Bit und 32-Bit Mikrocontroller besprochen nun fehlt noch ein 16-Bit Mikrocontroller, die Wahl hierfür viel auf den MSP430 von Texas Instruments[http://www.ti.com/tool/msp-exp430g2]. Ziel ist es auch hier direkt auf dem Raspberry Pi Programme zu übersetzen und auf die Zielplattform, dem MSP430 zu übertragen. Unterstützung erhält man in diesem Fall direkt vom Hersteller der in Zusammenarbeit mit Red Hat einen gcc port zur Verfügung stellt. Das MSP430-gcc-toolchain ist auf der Seite [http://www.ti.com/tool/msp430-gcc-opensource] erhältlich muss aber für den Raspberry Pi erst einmal übersetzt werden. Zu erwähnen sei noch die Vielfalt an MSP430 Varianten und eine große Community im Open-Source Bereich. Auf der 43oh Internetseite [http://43oh.com/] findet man viele Tutorials und Projekte rund um den MSP430.

weiter...

07.03.2016 /He [Druckansicht]

NUCLEO-F401RE und mbed SDK auf dem Raspberry Pi 3

...ein weiterer 32-Bit Co-Prozessor für den Raspberry Pi 3

ST NUCLEO-F401RE Zum Einsatz soll diesmal ein "Launchpad Evaluation Kit Tiva™ C Series TM4C123GXL" von Texas Instrumens [http://www.ti.com/tool/ek-tm4c123gxl] kommen, das direkt über den Raspberry Pi in C programmiert wird, um es als eine leistungsfähige I/O-Erweiterung einzusetzen.
Motivation:
Nachdem das neue Model vom Raspberry Pi 3 mit einer leistungsfähigeren CPU und WiFi aufwartet, kann man ein passendes ARM-Toolchain für den auf dem Tiva™-Board verbauten "32-Bit ARM Cortex M4" direkt auf dem Raspberry Pi 3 übersetzen. Was noch vor ein paar Monaten mit dem Vorgängermodel(Pi 2) mehr als einen halben Tag in Anspruch genommen hat, ist nun der Hälfte der Zeit erledigt. Das Ganze ist natürlich nur einmal durchzuführen, doch danach profitiert deutlich von der gesteigerten Rechenleistung, was letztendlich auch den Schritt vom Notebook als Entwicklungsrechner*), komplett auf den Raspberry Pi 3 umzusteigen, war.
*) Das bezieht sich nur auf Prozessoren mit ARM-Kern.

weiter...

02.03.2016 /He [Druckansicht]

Raspberry Pi 3 Model B Headless Raspbian Jessie Lite

...Schnellstart-Anleitung für Linux

Raspberry Pi 3 Model B Nun ist er da, der Raspberry Pi 3 Model B und er bringt endlich auch WiFi und Bluetooth LE(Low Energy) mit.Dieser Minirechner soll nun, auch dank seiner gesteigerten Rechenleistung, für die bisher auf einem Notebook mittels Crosscompiler oder qemu-arm emulation übersetzten Programme direkt auf dem Raspberry Pi übersetzen und somit die zentrale Entwicklungsumgebung für unterschiedliche Projekte werden.Ob das möglich ist, wird sich in den kommenden Wochen zeigen.Die Technischen Daten kann man auf der Homepage vom Raspberry Pi [https://www.raspberrypi.org] direkt abfragen, hier möchte ich nur auf die Installation von "Raspbian Jessie Lite",das in der aktuellen Version den neuen Pi 3 direkt unterstützt, eingehen. Download unter: [https://www.raspberrypi.org/downloads/raspbian/]

weiter...

22.03.2015 /He [Druckansicht]

Launchpad TM4C12x MCU-Series und Raspberry Pi 2 Model B

...oder ein 32-Bit Co-Prozessor für den Raspberry Pi

TI Launchpad EK-TM4C123GXL Zum Einsatz soll diesmal ein "Launchpad Evaluation Kit Tiva™ C Series TM4C123GXL" von Texas Instrumens [http://www.ti.com/tool/ek-tm4c123gxl] kommen, das direkt über den Raspberry Pi in C programmiert wird, um es als eine leistungsfähige I/O-Erweiterung einzusetzen.
Motivation:
Nachdem das neue Model vom Raspberry Pi mit einer leistungsfähigeren CPU und mehr Speicher aufwartet, kann man ein passendes ARM-Toolchain für den auf dem Board verbauten "32-Bit ARM Cortex M4" direkt auf dem Raspberry Pi übersetzen. Was noch vor ein paar Monaten mit dem Vorgängermodel mehr als einen halben Tag in Anspruch genommen hat, ist nun in weniger als 3 Stunden geschehen. Das Ganze ist natürlich nur einmal zu erledigen, aber auch danach profitiert man weiterhin deutlich von der gesteigerten Rechenleistung, sowie dem verdoppelten Speicher beim Übersetzen von Programmen.

weiter...

05.03.2015 /He [Druckansicht]

BeagleBone Black als 14-Kanal 100MHz Logikanalysator

Standalone 100MHz 14-Kanal Logikanalysator mit Netzwerkfähigkeit

BeagleBoneBlack-BeagleLogic Logikanalysator mit WiFi und USB-Powerbank Ein Logikanalysator mit 1Hz bis zu 100MHz Abtastrate(Samplerate) und einem Speicher von bis zu 320 MB(getestet) und 14-Kanal, der über einen Netzwerkanschluss verfügt, ist wirklich eine feine Sache. Besonders wenn die komplette Software auf Open-Source basiert und durch die Verwendung der Sigrok-Decoder Library [http://sigrok.org/wiki/Protocol_decoders] derzeit über 30 Protokolle dekodiert werden können(I2C,SPI,UART,IR etc.).Jetzt kommt die berechtigte Frage, von welcher Hardware-Plattform sprechen wir hier? Die Rede ist vom BeagleBone Black[http://beagleboard.org/black] In diesem Artikel wird bewusst die ältere Version verwendet(Rev A5B/2GB), die sich hauptsächlich in der Größe des auf dem Board befindlichen Flashspeichers(eMMC) 2GB gegenüber Version(Rev C) mit 4GB unterscheidet.Der für das Projekt aber auch nur zu ca. 75% belegt wird, somit bleibt genug Platz für weitere Anwendungen, die die direkte Datenverarbeitung auf dem Board unterstützen können.Der geringe System-Speicherbedarf liegt an dem Betrieb als reine Konsolenversion(Headless), bei der die HDMI Pins für den Analysator genutzt werden und eine grafische Oberfläche nicht benötigt wird, da der Logikanalysator über USB oder das Netzwerk LAN/WLAN kommuniziert.

weiter...

12.02.2015 /He [Druckansicht]

STM8L Discovery Wave Generator Demo unter Linux mit SDCC

2. Teil der STM8 Microcontroller Serie

STM8L-Discovery Board mit Wave Generator Demo Nachdem im 1. Teil der STM8S105 Microcroller vorgestellt wurde, sowie die Installation der Software, Compiler und das "flashen" der Firmware/Code des STM8S nachvollzogen werden konnte, kommt meist schnell der Wunsch auf, nicht nur LEDs blinken zu lassen, sondern eine kleine Anzeige für Raspberry PI zu verwenden, wenn er "Headless", also ohne Monitor, betrieben wird.Sei es um kurze Statusmeldungen, Betriebszustände oder Anweisungen auszugeben. Für diesen Fall kann man auf das STM8L-Discovery Board zürückgreifen, das neben vielen Ein- und Ausgängen auch ein LCD-Display besitzt.Doch hierfür ist es notwendig, eine neue Firmware für den STM8L-Microcontroller von der STMicroelectronics Homepage [www.st.com] herunterzuladen, an den SDCC anzupassen und zu compilierne/übersetzen. Alternativ schliesst man ein Display an dem zuvor besprochenen STM8S-Microcontoller an und schreibt selbst die Software für die Ansteuerung.

weiter...

27.01.2015 /He [Druckansicht]

STM8S Discovery unter Linux und dem Raspberry Pi mit SDCC

...oder auf der Suche nach einem Co-Prozessor für den Raspberry Pi

STM8S-Discovery und Raspberry Pi Es gibt viele Gründe warum man den Raspberry Pi um einen Zusatzprozessor bereichern möchte oder muss.Sei es, dass einem schlicht die IO-Pins ausgehen, der Raspberry andere Aufgaben zu erledigen hat und zeitkritische Prozesse an einen weiteren Prozessor delegiert werden müssen. Oder einfach eine Pegelanpassung 5V<->3.3V notwendig ist, um weitere el. Bauteile anzuschliessen.Hier kommen die unzähligen expansions-/devel-Platinen(Boards) zum Einsatz, die im einfachsten Fall aus eimem Seriell nach Paralell Porterweiterung(Port-Expander) und einer Pegelanpassung bestehen. Bis zu Insellösungen, die einen ATMega/(Arduino) oder gar ARM-Prozessor on Board haben. Die meisten Erweiterungen haben eins gemeinsam, sie bieten eine Fläche für Zusatzschaltungen.Genau dazwischen siedelt sich das STM8S-Discovery Board an.

Beispiele für die genannten Bausteine:
Porterweiterung(Port-Expander): PCF8574 Anbindung über SPI
Pegelanpassung(Level-Shifter/Voltagetranslator): TCA9406 Anbindung über I2C

weiter...

25.10.2014 /He [Druckansicht]

Display MG24065G-SERIES / T6963C mit U8glib an Arduino

u8glib-240x64-t6963c-arduino Um Messwerte auch bei schlechten Lichtverhältnissen gut lesbar darzustellen, wird hier ein Display eingesetzt, das eine Hintergrundbeleuchtung hat.Die Wahl fiel auf ein Display der MG24065G-Series, das mit einem Toshiba T6963C Controller bestückt ist, der auch im Embedded- und Messtechnik Bereich seinen Einsatz findet.Ein weiterer Vorteil kommt hinzu, dass nur eine Versorgungsspannung von 5V benötigt wird und diese auch für die Hintergrundbeleuchtung über einen Vorwiderstand direkt verwendet werden kann.
Der Vorwiderstand berechnet sich wie folgt: R>=(Ved-Vled)/Iled wobei Iled<=100mA (max) und Vled=4.0 V ist.
Die genaue Bezeichnung des grafikfähigen Displays lautet: MG24065G-SBLWU und es hat eine Auflösung von 240x64 Pixeln.

weiter...

03.09.2014 /He [Druckansicht]

Lattice iCEstick Evaluation Kit unter openSUSE13.1-64bit

Lattice iCEstick Evaluation Kit iCE40 Für einen Versuch zum Anschluß von verschiedenen Sensoren, soll diesmal ein FPGA eingesetzt werden. Die Wahl fiel auf einen Lattice FPGA der Reihe iCE40 LP/HX/LM.Wichtig war, dass die komplette Entwicklung unter Linux möglich ist.Um dies zu testen, wurde ein günstiges Entwicklungs-Kit geordert, das eine Programmierung direkt im System über den USB-Bus ermöglicht.
Hier kommen die ersten Fallstricke, die es zu umschiffen gilt.Das Entwicklungs-Kit hat zur Kommunikation und Programmierung des FPGA(bzw. des SPI-EEproms) einen FTDI FT2232HL an Bord. Von Vorteil ist, dass man so zwei serielle Schnittstellen zur Verfügung hat. Was jedoch auch gleich einen "Nachteil" darstellt, da der FTDI FT2232HL automatisch die Kerneltreiber ftdi_sio.so den Schnittstellen zuweist.Was zur Folge hat, dass eine Programmierung des FPGA(bzw. des SPI-EEproms) über die mitgelieferte Software nicht funktioniert, da die Software ihren eigenen Treiber verwendet, der entsprechende Kanal jedoch schon mit dem ftdi_sio Modul vorbelegt ist und somit von der Software nicht angesprochen werden kann.Die einfachste Lösung ist, den Treiber ftdi_sio.so per rmmod ftdi_sio zu entfernen.
Die elegantere Lösung ist, gezielt nur den ersten Kanal des FT2232HL mit dem nachfolgenden Befehl von ftdi_sio zu "lösen"

> echo "1-1.1:1.0" /sys/bus/usb/drivers/ftdi_sio/unbind
Die 1-1.1:1.0 kann aus dem Logfile hergeleitet werden siehe *1) und kann auf jedem Rechner anders lauten!

weiter...

KODAK Motion Corder Analyzer am Raspberry Pi

Kodak Motion Corder Analyzer SR-1000c  mit angeschlossener Kamera(Bildsensor) und Kontrollmonitor Für einen Versuchsaufbau zur Aufzeichnung und Analyse von Bewegungsabläufen wird ein "Kodak Motion Corder Analyzer SR-1000c" an den Raspberry Pi angeschlossen. Der "SR-1000c" verfügt über eine SCSI Schnittstelle mit HD50(Half Pitch SUB-D 50) SCSI Anschluss, um die Bilder vom Analyzer-Speicher in den Pi oder einen PC zu übertragen.Befehle empfängt der "SR-1000c" über eine RS-232 Schnittstelle oder alternativ über die im Analyzer integrierte Folientastatur.Die "1000" in der Typbezeichnung steht für maximal 1000 Bilder/Sekunde und das "c" für Color(Farbe). Erhältlich sind Varianten bis max. 10000 Bildern/Sekunde. Die erste Herausforderung war, mit welcher Methode man den SCSI-Bus an den Pi anbinden kann. Schnell war klar, es kommt nur ein USB<->SCSI Adapter in Frage.Nach erfolgloser Suche im Kernel-Code, nach einem passenden Treiber, wurden die bekannten Internetauktionshäuser nach einer passenden Hardware durchsucht. Leider gab es meist nur PCMCIA<->SCSI Adapter(die auch direkt vom Kernel unterstützt werden) und nur wenige USB<->SCSI Adapter. Nur hat der Pi keinen PCMCIA-Bus,somit war die Auswahl letztendlich doch sehr begrenzt. Verfügbare Kandidaten waren:

weiter...

Raspberry Pi in der Messtechnik

Raspberry Pi Der Raspberry Pi ist ein günstiger scheckkartengroßer Einplatinencomputer mit ARM-Prozessor. Weiterführende Informationen findet man auf der Homepage der Raspberry Pi Foundation [http://www.raspberrypi.org/]. Er eignet sich durch seine Schnittstellen und Größe besonders gut für den Messtechnik- und Laborbereich. LAN, 2x USB und ein Expansion Port (GPIO) gepaart mit einer großen Auswahl an GNU/Linux-Software machen ihn zu einem sehr beliebten Entwicklungstool. Für die hier vorgestellte Anwendung ist er sogar überdimensioniert, da er in unserem Fall als Headless Linux-Computer betrieben wird und somit keine Verwendung von seinem Grafikchipsatz (GPU) macht.

Wie kommuniziert der Raspberry Pi mit der "Außenwelt"?


Im aktuellen Setup kommuniziert er über den integrierten LAN-Port, der an einem Wireless Router mit integriertem 4-Port LAN-Hub angeschlossen ist. Durch W-LAN hat man eine galvanische Trennung erreicht. Um den Raspberry Pi mit Software und Updates zu versorgen, benötigt man Zugriff auf das Internet. Auch ist somit ein Fernzugriff über ssh/VPN oder gar das WWW möglich, wenn man sich der Gefahren bewusst ist und geeignete Schutzvorkehrungen trifft. In manchen Umgebungen, in der eine Funkverbindung nicht erwünscht oder möglich ist, sollte man mindestens einen 4 Port Switch/Hub verwenden, der den Raspberry Pi mit dem Intranet oder direkt mit einem PC oder Notebook verbindet. Man hat so die Möglichkeit, weitere Rasperry Pi's oder VXI-11/LXI-konforme Messgeräte anzuschließen. Natürlich ist auch ein direkter Anschluss an ein Notebook oder PC ohne Hub möglich und für die Entwicklung von Software auf dem Raspberry Pi und dem Client ausreichend. Hierzu reicht dann auch die eingebaute serielle Konsole (GPIO) und ein TTL<->USB-RS-232/Adapter mit 3.3V konformem Chipsatz aus. Somit bleibt der LAN-Port für ein Messgerät frei. Hinweis: Client login screen /dev/ttyUSB{0..n} 115200

Wie kommen die Messwerte in den Raspberry Pi?


Diagramm VXI-11 ist eine TCP/IP Protokoll-Spezifikation und Teil der VIXBus-Spezifikation. Weitere Informationen kann man auf der Homepage des "VXI Bus Consortium" [http://www.vxibus.org/] erhalten. Bei der Verwendung eines VXI-11/LXI-konformen Messgerätes wird ein LAN-Hub oder W-LAN-Router benötigt. Ein direkter Anschluss an den LAN-Port des Raspberry Pi ist nur möglich, wenn man den Raspberry Pi über ein W-LAN(/LAN/Bluetooth)-USB-Dongle im Netzwerk betreibt, da der LAN-Port für die Kommunikation mit dem Client (Tablet/Notebook/PC etc.) schon belegt ist.

Zwei Mal USB 1.1/2.0 werden vom Raspberry Pi "nativ" bereitgestellt. Somit können viele Messgeräte direkt über den USB-Bus angeschlossen werden, sofern passende Treiber der Hersteller oder "Kernelhacker" zur Verfügung stehen. Diese Art von Messgeräten wird in einem gesonderten Kapitel behandelt, sobald Erfahrungswerte vorliegen. Für die Protokollierung von Messaufgaben ist es manchmal notwendig, dass Fotos von einer Messung oder einem Messaufbau gemacht werden. Für diese Aufgabe kann eine PTP (Picture Transfer Protocol)- kompatible Kamera angeschlossen werden, um diese Aufgabe zu automatisieren. Hier zeigen sich die Stärken der Anwendung, denn man kann Messdaten und Datum/Uhrzeit direkt in das Foto einbetten. Entweder über Text im Foto und/oder als Exif Daten. Eine Erklärung zu Exif findet man hier [http://de.wikipedia.org/wiki/Exchangeable_Image_File_Format].

weiter...

RESTful Measurements

Teaser Der kommunikationskern der Anwendung ist ein Socketserver. Über diesen kommuniziert der Paspberry Pi mit seinen Clients im Netzwerk. Messdaten werden im internen Speicher (RAM) und bei Bedarf in einer NoSQL Datenbank (CouchDB) vorgehalten. Die Wahl auf einen Socketserver fiel, da er nicht an eine Programmiersprache gebunden ist, einfach zu implementieren und die Kommunikation direkt über sogenannte "HTTP REST" Anfragen ohne zusätzliche Software im Webbrowser ausgeführt werden kann. Auch können dadurch einfach Apps für Tablets oder Smartphones erstellt werden, ohne sich mit irgendwelchen Treibern für die verwendeten Messgeräte auseinandersetzen zu müssen. Da der Socketserver nicht auf den Standardport 80 hört, muss noch ein Proxyserver die Requests auf diesen Port umleiten. Im anderen Fall könnte man keinen Webserver auf Port 80 betreiben. Wer auf einen Webserver verzichtet, kann den Socketserver direkt auf Port 80 lauschen lassen. Da in unserer Anwendung jedoch auch ein Webserver vorgesehen ist, wird ein Apache-2.x eingesetzt, der durch das Modul mod_proxy gleich die Anpassung der Requests an den Socketserver auf Port 8080 weiterleitet. Mit dieser Konfiguration kann man jetzt Internetanwendungen direkt auf dem Raspberry Pi oder über das Netzwerk ausführen. Noch ein Wort zum Socketserver. Dieser erfüllt eine weitere wichtige Aufgabe im System. Denn nur er hat direkten Zugriff auf die Hardware und besitzt die entsprechenden Rechte.

Socketserver Diese Grafik veranschaulicht die Interaktion zwischen Webbrowser/Proxy/Socketserver. "foo" kann natürlich gegen einen aussagekräftigen Namen wie "datenlogger" ersetzt werden. Um die Variable a mit dem Wert 10 zu belegen, sendet man einfach > http://192.168.178.200/datenlogger/a=10 Wenn alles geklappt hat, erhält man als Antwort "ok". Um den Wert der Variablen a wieder auszulesen, sendet man > http://192.168.178.200/datenlogger/a=?

weiter...