Archiv der Kategorie: Neues

Retrocomputer in neuer Technik: MIST FPGA

 

Commodore C16 am MIST FPGA

In den Sommermonaten und vor allem mit meinem kleinen Sohn, ist die Zeit, hinter dem Rechner zu sitzen und über die „Projekt’chen“ zu schreiben, doch sehr dünn gesät. Schon etwas länger beschäftige ich mit den Retrocomputern, wie den Commodore C16, C64, Amiga etc. Mittlerweile ist auch schon eine kleine Sammlung an originaler Hardware zusammengetragen. Um die alten Customchips in den „Brotkisten“ zu schonen, ist es interessant auf alternative Hardware auszuweichen. Für jeden modernen Rechner und auch die kleinen Computer der Raspberry-Foundation ist es kein Problem, einen C64 oder Amiga zu emulierten. Dafür gibt es viel Software (Vice, Yape, Mame, ePSXe, Stella, etc.), die auch ausgezeichnet funktioniert. Bei den Emulatoren wird die Funktionalität der alten Maschinen per Software nachgebildet. Programme und Spiele, die früher per Datasette oder Floppydisk geladen wurden, werden beim Emulator einfach als „Imagedatei“ geladen und gestartet. Das klappt zum größten Teil. Es gibt aber auch Spiele, die so trickreich programmiert worden sind, dass sie das Maximum aus der Hardware herausholen und dafür beispielsweise Bereiche im Speicher für Gamecode verwenden, der für ganz andere Dinge vorgehen war… In solchen Fällen kann es dann vorkommen, dass der Emulator hier versagt.

Noch viel exklusiver und weniger umständlich in Betrieb zu nehmen, um schnell mal einen alten „Rambo“ zu spielen, ist ein Retrocomputer in einem FPGA. Den Elektronikern unter den Lesern ist FPGA sicher ein Begriff. FPGA bedeutet Field-Programmable-Gate-Array. Das Wiederum bedeutet, man hat hier einen Chip, dessen Logikgatter per Softwarebeschreibung erstellt werden. Mann stelle sich zum Beispiel einen TTL Baustein  7408 vor. Er beinhaltet vier unabhängige UND-Gatter mit je zwei Eingängen und einem Ausgang. Solche einfachen und viel komplexere Bausteine bilden von der Funktionalität her, die Basis jeden Computers. Solche „Bausteine“ lassen sich auch in einem FPGA erstellen. Man „beschreibt“ quasi mit einer Hochsprache die Funktion, synthetisiert diese und erstellt einen Programmingcode, der im FPGA dann die Gates zu den gewünschten Gattern zusammenschaltet.

HDL nennt man diese „Hochsprache“ (HardwareDescriptionLanguage). Ein solch ein FPGA enthält nun wirklich sehr, sehr viele GateArrays, die alle zu einer gewünschten Funktion geschaltet werden können. Man baut sich quasi seinen eigenen Chip. Der grosse Vorteil ist natürlich, dass alle Schaltvorgänge in Echtzeit und je nach Beschattung parallel ausgeführt werden. FPGAs von den Herstellern Altera oder XILINX sind mittlerweile in der Lage im Higspeedbereich zu operieren mit zig Megagates, IO-Buffers für SingleEnded und LVDS Signalen  geliefert zu werden.

Mit solchen FPGA´s ist es natürlich auch gar kein Problem einen alten 8 oder 16Bit Computer aus den 80igern nachzubilden. Und zwar in Hardware – das bedeutet die Funktion aller Chips die auf einem C64 Board montiert waren (CPU, RAM, PLA, ROM, SID, VIC, CIA ) wird per VHDL beschrieben und  die Gates des FPGA dann so zusammenschaltet, dass er dann sozusagen ein C64 Chip ist, der alles kann was ein echter C64 kann.    

Altera Cyclon III FPGA
Microcontroller Atmel

Ein solches Projekt wurde im Rahmen des MIST (aMIga atariST) realisiert. Die MIST Community hat hier ein Board entwickelt, dessen Kern ein ALTERA Cyclon III ist.  Ein SD-Kartenslot dient als Datenquelle. Über die SD-Karte wird zum einen das FPGA bin-file (also der Core, der den FPGA zum Computer macht) und zum anderen die Daten für den entsprechenden nachgebildeten Computer, wie Spieleimages. Das Management und übernimmt ein kleiner Atmel-Microcontroller. Die Community hat mittlerweile eine ganze Reihe von Rechnerkernen (Cores) gebastelt, die Rechner wie Atari XL, ZX81, ZX Spectrum, C64, Atari VCS, Atari 5200, Apple II, Sega Master System, NES, Odyssey2 und viele mehr nachbilden.

MIST Board Vorderseite

Das Mist-Board bringt eine Reihe von Schnittstellen mit. Eine MicroUSB-Buchse dient als Eingang für die Energieversorgung. Der MIST kann mit einem normalen USB-Handy Steckernetzteil versorgt werden.

MIST Board Hinterseite

Zwei 9 polige SUB-D Male-Buchsen ermöglichen das Anschliessen der originalen Retro-Joysticks, wie Quickshot etc.  Vier USB-Hostbuchsen, nehmen Datenträger wie USB-Sticks und auch HIDs wie Maus, Keyboard oder auch Game Controller auf. Eine Klinkenbuchse gibt den Ton der Rechner aus und das Bild kommt über eine VGA-Buchse. Hier liegt auch ein kleiner Haken. Denn das Videosignal kommt mit der Frequenz aus der Buchse, mit der auch der originale Rechner gelaufen ist. Wenn ein C64 PAL also mit 50Hz Bildwechselfrequenz arbeitet gibt die Buchse das V-Sync auch mit 50Hz aus. Bei NTSC wären es dann 60 Hz usw. Und das ist schon das Problem. Die meisten neuen LCD Monitore können mit einem 50Hz Signal nicht umgehen. Hier kommt meist eine Meldung wie: „Signal out of range“ Ich habe nur einen alten HP1955 und einen noch älteren IBM Bildschirm zum Laufen gebracht.

MIST – MIDI Buchsen

Wer sich mit Retro Computern und Musik, vor allem mit MIDI beschäftigt, der kann auch mit dem MIST und den Atari ST Sequencern arbeiten. Das Board hat auch zwei Midi DIN Buchsen.

Wenn man seine SD-Karte nun vorbereitet, also einen Core von GitHub geladen, als core.rbf umbenannt hat, dann gehts auch schon los. Ich habe als Beispiel einen Commodore C16 Core gewählt und als Spiel das Jump an Run Spiel „Big Mac“ als .prg Datei auf die SD-Karte gelegt. Wenn´s auch viele nicht kennen, mein Bruder dürfte sich daran erinnern, falls er sich in den Blog hierher verirrt 🙂 

Commodore C16 BASIC Einschaltbildschirm

Nach dem Startbildschirm des C16, kann mit einem angeschlossenen Keyboard mit F12 per Imageinjection das File in den C16-Speicher kopiert werden. Das geht so schnell, dass man nicht merkt, ob zwischen der Enter Taste und dem Ready am Commodore Basic Bildschirm, etwas passiert ist. Mit RUN startet man das Spiel und es kann losgehen 😀

C16/Plus4 Game: BigMac

 

 

 

USB Camera an Raspberry PI mit OSD

In diesem Projekt stelle ich eine Anwendung des Raspberry PI im Bereich Bilderfassung vor. Es gibt zu diesem Thema etliche Foren und Beiträge im Internet, doch eine direkt geeignete Lösung war nicht zu finden. Darum poste ich hier meine Lösung.

Als Aufgabenstellung  soll eine Platinenbohrmaschine der Firma Lemmen von der optischen Version (Bohrlochzentrierung per Lupe) in eine opto-elektronische Version (Bohrlochzentrierung auf Bildschimmonitor) kostengünstig umgebaut werden.

Lemmon „Variodrill“ Bild: Herstellerwebsite

Die Bohrmaschine soll dahingehend modifiziert werden, dass die zur Sichtkontrolle verwendete Lupe mit sechsfacher Vergrößerung durch eine Kamera ersetzt wird. Das Kamerabild soll auf einem LCD Computermonitor dargestellt werden. Eine geeignete Kamera war schnell gefunden. Hier gibt es günstige Mikroskopkameras, die eine variable Vergrößerung bis 200fach erreichen. Eine solche Kamera ist beispielsweise die DigiMicro Scale von „dnt“. Allerdings ist das eine USB-Kamera, die einen PC und eine geeignete Software benötigt, um ein Bild anzuzeigen. Und ein PC ist wiederum nicht unbedingt eine kostengünstige Lösung. Weiters käme auch eine CVBS Kamera (also eine analoge Videocamera) in Frage, die einfach an einen geeigneten Bildschim (oder PC-Monitor mit Upscaler/Converter) geschaltet werden müsste. Aber das ist nicht zeitgemäß … Weiters soll das Bild ja nicht nur das Bohrloch vergrößern, sondern auch noch die Vorzüge eines Zielvisieres, also eines Fadenkreuzes oder Kreisabsehens implementieren. Dafür bräuchte man im analogen Bereich wieder einen OSD- (OnScreenDisplay) Generator oder zumindest einen Edding, der das Kreuz gemalt auf dem Bildschirm darstellt 🙂

USB Microskopkamera

Also die Varianten PC oder analoges Kamerasystem fallen durch. Aber es gibt ja noch den Raspberry PI, den kleinen Einplatinencomputer mit einem integrierten USB-Host und wunderbaren Grafikfähigkeiten.  Das Projekt wird also mit einem Raspberry PI 3 realisiert.

 

Als Betriebssystem kommt das Raspian-Jessi zur Anwendung. Das Image kann hier heruntergeladen werden. Nach dem Entpacken der ZIP Datei und dem Beschreiben der MicroSD Karte mit dem Win32DiskImager, kann der Rasbperry gebootet werden. Jetzt gibt es zwei Möglichkeiten an den Raspberry eine Camera anzuschliessen: 

 

-mittels Flachbandkabel an den Cameraport (hier kann nur die PI-Camera angeschlossen werden)

 

-oder über den USB-Port jede USB2.0 Camera.

 

Voraussetung hierbei ist, dass die Cam auch erkannt wird. Hier kann mit >lsusb in der Linuxconsole nachgesehen werden, ob die angeschlossene Cam auch in der Deviceliste erscheint. Als einfaches Tool, um am Desktop das Camerabild zu sehen, kann guvcview verwendet werden. Das würde jetzt auch schon genügen, wenn man nur das Bild sehen will. Unser Ziel ist jedoch, in das Camerabild ein Overlay mit Fadenkreuz einzublenden.

 

Das lässt sich in Python mit der PI-camera und der der picamera Library wunderbar lösen. Die Library besitzt eine integrierte Overlayfunktion. Es geht aber auch mit der USB-Kamera. Hierfür müssen ein paar Module installiert werden. In der Linuxkonsole sind folgende Zeilen einzugeben:

 

zuerst einmal die üblichen Aktualisierungen:

 

>sudo apt-get update >sudo apt-get upgrade

dann installieren wir numpy >sudo apt-get install python-numpy und danach das Bildverarbeitungstool schlechthin: OpenCV >sudo apt-get install install python-opencv

Jetzt kann ein Pythonscript erstellt werden, das die USB-Camera initialisiert, und in einer Endlosschleife die Bilder an ein Desktopfenster übergibt. Mit den Bildbearbeitungsfunktionen in opencv lässt sich auch das Erstellen eines Fadenkreuzes realisieren. Auch das Fixieren des Ausgabefensters am Desktopbildschirm ist möglich. Siehe folgendes Script:

 

 

 

</p>
<p style="text-align: justify;">#usb camera mit osd für platinenbohrsystem
#version 1.0 03/2017 by bihlo


import numpy as np
import cv2


cam = cv2.VideoCapture(0)
cam.open(0)

cam.set(3,800)
cam.set(4,600)

while(True):

# bei jedem schleifendurchlauf wird ein frame genereriert

# frame von der camera holen
ret, frame = cam.read()

# fadenkreuz mit der funktion line zeichnen mit 2 pixeln linienbreite
cv2.line(frame,(0,300),(800,300),(255,0,0),2)
cv2.line(frame,(400,0),(400,600),(255,0,0),2)

# zwei kreise zeichnen
cv2.circle(frame,(400,300), 50, (255,0,0), 2)
cv2.circle(frame,(400,300), 100, (255,0,0), 2)

#text ins bild einblenden
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(frame,'Platinenbohrsystem V1.0',(10,50), font, 1,(255,255,255),2)

# ausgabe des frames in fenster/ beenden mit taste "q"
cv2.nameWindow('Platinenbohranlage CAM')
cv2.moveWindow('Platinenbohranlage CAM',0,0)
cv2.imshow('Platinenbohranlage CAM',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

# nach beendigung das device freigeben und das fenster schlissen
cap.release()
cv2.destroyAllWindows()</p>
<p style="text-align: justify;">

 

Nach Starten des Scripts sollte am Bildschirm das Camerabild und das Fadenkreuz zu sehen sein:

Will man, dass das Pythonscript (in meinem Fall habe ich es "camtest9.py" genannt) nach dem Hochfahren und Laden des Desktops automatisch gestartet wird, so kann man am einfachsten im LXSession Configurationsfenster einen Eintrag hinzufügen. Dazu ist  im Desktopmenu unter >Einstellungen >Default applications for LXSession anzuklicken.

Im LXSession Menue ist dann unter "Autostart" der folgende Eintrag hinzuzufügen:

@python /(pfad zum pythonscript)/camtest9.py

Jetzt muß nur mehr neu gestartet werden und das Script sollte nach dem Start direkt ausgeführt werden. Die folgenden Bilder zeigen den umgebauten Variodrill...

SDR – Software Defined Radio

Wer schon immer einmal auf kostengünstigste Weise eine Spektralanalyse im Frequenzband bis knapp 1GHz durchführen will, oder einfach sehen möchte, welche Trägersignale vorhanden sind, der kann sich des SDR (SoftwareDefinedRadio) bedienen. Die günstigste Variante einen entsprechenden Empfänger zu bekommen, ist es, einen DVB-T Stick auf Basis des Realtek Chip RTL2832 zu erstehen. Diese Sticks sind im Internet für wenige Euros zu erstehen.

Die technischen Facts des Sticks und die darin verwendeten IC´s:

Zum einen kommt hier der RTL2832U von Realtek zum Einsatz. Das ist ein quadratischer 6mm Chip (QFN-Package) mit zwölf Pins pro Seite. Er wird mit einer Spannung von 3.3V versorgt und mit einem Takt von 28.8 MHz betrieben. Der IC ist ein DVB-T COFDM Demodulator. (Coded Orthogonal Frequency-Division Multiplexing). Das „U“ in der Bezeichnung definiert das Interface des Chip, das ein USB 2.0 Interface ist. Hier wird im Datenblatt angegeben, den RTL2832U unbedingt über ein USB-Verlängerungskabel anzuschliessen, um die Empfindlichkeit des Empfängers nicht durch die Störaussendungen des Computers zu beeinträchtigen. Weiters besitzt der RTL2832U auch acht GPIO Ports sowie einen Infrarot remote control Port.

Der mit dem RTL2832U meist verwendete Tuner-Chip ist der R820T von Rafael Micro. Der Tuner hat einen Frequenzbereich von 42-1002MHz, die Noise figure liegt bei 3.5dB @ RFin. Die Stromaufnahme liegt bei kleiner 178mA bei 3.3V. Der Eingang darf mit einer Leistung von maximal +10dBm beaufschlagt werden. 

Ein anderer Tunerchip, der auch oft in den DVB-T Sticks zum Einsatz kommt ist der E4000 von Elonics. Er hat im Vergleich zum R820T einen Frequenzbereich von 64MHz bis 1.7GHz.

Der RTL2832U besitzt einen 8Bit ADC und einen DSP. Er beherrscht Digitale Down Conversation (DDC) von IF zum Basisband via I/Q Mixern, digitales Low-pass Filtering, I/Q resampling und sendet die 8Bit I/Q Daten über den USB Port. Ein weiteres Feature des RTL2832U ist  die FFT (FastFourierTransformation), sowie der COFDM Demodulator, der per Software gesteuert werden kann und in den SDR-Applikationen zu Einsatz kommt.

RTL2832U Blockschaltbild (Quelle: Herstellerdatenblatt)

 

Die Software um den DVB-T Sticks SDR-Radio zu entlocken:

Hier gibt es mittlerweile eine riesige Community und ebenso für fast alle Systeme Lösungen um SDR zu betreiben. Eine Ausnahme ist hier  Apple mit seinen iPhones und iPads.

Für den Mac ist hier die Applikation GQRX die erste Wahl. Unter dem folgenden Link: http://gqrx.dk/download ist auch eine Version für den RaspberryPI2 und 3 und für Ubuntu Linux zu finden.

Screenshot von GQRX

Die Software ermöglicht die Darstellung des Frequenzbandes in einstellbarer Bandbreite. Es zeigt die Träger auf der y-Achse in dBuV an. Ebenso kann ein Averaging eingestellt werden. Per einstellbarem Wasserfalldiagramm können auch nur kurzzeitig auftretende Trägersignale sichtbar gemacht werden. Etliche Parameter, wie Sampletrate, FFT-Size, Demodulation, etc. sind konfigurierbar.

Natürlich sind auch für Windows-Systeme geeignete Tools verfügbar: Hier beispielsweise die freie Software SDR# (SDR sharp) von Airspy. Sie bietet dieselben Features wie die GQRX Version für den MAC.

Screenshot von SDRsharp

Wem jetzt auch noch die portable Version fehlt, der kann sein Tablet oder Smartphone mit Android Betriebssystem als „mobiles Messsystem“ aufbauen. Hierzu wird lediglich eine Treibersoftware und das Analyzertool benötigt. Im APP-Store muß hierzu folgendes heruntergeladen werden:

RTL-sdr-driver von Martin Marinov (es ist kein root für das Android Betriebssystem notwendig)
RF-Analyzer oder SDR-TOUCH

Screenshot RF-Analyzer Android

Zusammenfassend noch einmal die Linksammlung:

MAC, Linux und Raspberry:  GQRX
Windows: SDRsharp
Android: RF-Analyzer, RTL-SDR-Driver

 

Raspberry Pi – mechanische Beanspruchung extrem

Der Raspberry Pi ist als universell einsetzbarer Einplatinencomputer in vielen Hobby- und Heimanwendungen zu finden. Ob als Webserver, TV- oder Radio-Streamingserver, Spielekonsolenemulator oder Steuerungen im Bereich Robotik und Automation, der Raspberry PI kann diese Aufgaben erfüllen. Auch als mobiler Datenlogger lässt er sich aufgrund der kompakten Bauform und geringen Stromaufnahme ideal nutzen. In einem früheren Blogbeitrag habe ich ein Beispiel mit Wetterdatensensoren, angeschlossen an einen batterieversorgten Raspberry Pi, aufgebaut. Der „Logger“ zeichnete die Daten der Sensoren auf einer Speicherkarte auf. So ein Logging-System lässt sich auch wunderbar in ferngesteuerte  Fahr- oder Flugmodelle einbauen. 

Was jedoch passiert wenn so ein Flug- oder Fahrmodell von seiner Momentangeschwindigkeit in einem sehr kurzen Moment auf Geschwindigkeit Null verzögert wird, kann man sich vorstellen. Wie jedoch das Logging-System darin dann aussieht, vielleicht nicht. Aber ich kann hier mit Bildmaterial helfen.

Hier war einst die CPU

Die USB-Buchsen sind noch vorhanden. Der LAN-Anschluß fehlt.

Die Zweiteilung des Raspberry Boards haben die ihn überholenden, schwereren Komponenten (Batterien), die hinter ihm angeordnet waren verursacht. 

Selbst der Mini-USB Stick verformte sich so stark, dass der Speicherchip in zwei Teile zerbrach. Ein Auslesen der Daten war somit auch nicht mehr möglich.

3D-Druck: ein schneller Test und gleichzeitig praktisch

dsc_2935Einfach praktisch ist er schon, der 3D-Drucker. Ein Kunststoff-Filament bis zum flüssigen Zustand erwärmen und mit einem Drei – Achsen – Positionierer den Kunststoff schichtweise auftragen. Das ist ganz das grob beschriebene Prinzip eines 3D-Druckers.  Und mit genau so einem Drucker habe ich schlussendlich das hier beschriebene Objekt ausgedruckt. Bei dem verwendeten Drucker handelt es sich um einen Ultimaker 2+, der mit ABS-Filament mit 2.85mm Durchmesser als Druckmedium befüllt ist.

Doch vor dem Ausdrucken muss erst einmal ein Druckmodell her. Hier gibt es im Netz eine Vielfalt an fertigen herunterladbaren Modellen, die direkt gedruckt werden können. Eine Website ist hier zum Beispiel  thingiverse. Hier können die Community – Mitglieder ihre Designs und Objekte veröffentlichen und frei zugänglich machen. Doch ich wollte kein fertiges Modell nehmen, sondern den gesamten Designflow einmal von Beginn an durchmachen und testen, ob die, hier bei uns in der Arbeit verwendeten Tools auch zuverlässig funktionieren. Für dieses Testobjekt, einen Telefonaufsteller – oder „Handyhalter“ habe ich folgende Tools verwendet:

acadmodelDie 3D – Konstruktion habe ich mit AutoCad 2013 von Autodesk gezeichnet. Hier kamen einfach nur 3D Körper wie Quader und Zylinder zum Einsatz, die durch Addition, Subtraktion und extrudieren von Objekten das gewünschete Ergebnis liefern. Das fertige Objekt wird dann als Stereo-Lithografie-Datei (.stl) exportiert.

Jetzt kommt die sogenannte Slicer – Software zum Einsatz. Slicer bedeutet sinngemäß soviel wie zerscheneiden, aufscheiden. Und nichts anderes macht diese Software. Das dort geladene Druckmodell wird in Schichten zerlegt, so wie sie der Drucker später auch als Kunststoffebene schichtenweise auftägt. Auch hier gibt es einiges an open-source und freeware Software. Ich habe Cura verwendet. Dieses Slicer-Tool wird auch von Ultimaker angeboten und kann auch direkt mit deren Hardware arbeiten. Im Slicer werden dann einige Parameter festegelegt, die für den Druck dann wichtig sind. Das sind die Temperatur auf die das Filament erwärmt wird, die Plate Temperatur, die Materialvorschubgeschwindigkeit (ist abhängig von der Druckdüse und dem Material selbst), die Druckgeschwindigkeit usw. Hier sind etliche Dinge zu beachten und definieren, die schlussendlich erhebliche Auswirkung auf die Qualität, den Materialverbrauch und die Druckzeit haben…

dsc_2933
Der Ultimaker bei der Arbeit
curabild
Das Modell im Cura-Slicer

 

dsc_2937
Frisch aus dem Drucker

 

tvheadend – Aufnehmen über´s Netzwerk

IMAG1150Diese kurze Anleitung beschreibt wie Fernsehaufnahmen, die mit dem tvheadend-Server empfangen werden, auf ein Share im Netzwerk aufgenommen werden können: (da in vielen Haushalten auch NAS Server zum Speichern der Familiendaten herumstehen, kann man sich einen USB Speicher am Raspberry sparen und auch die Fernsehsendungen auf dem gemeinsamen Speicher ablegen)

Voraussetzung:

Ein Netzwerk, in dem ein Share über ein NAS oder eine andere Netzwerkfreigabe existiert, die, wie im Beispiel hier das Sambaprotokoll  beherrscht. Nehmen wir als Beispiel an, die Netzwerkfreigabe lautet wie folgt:

//192.168.50.50/NAS/TV/record

dieser Netzwerkpfad muß von allen Clients in diesem Netz erreichbar sein. Dann haben wir die erste Bedingung erfüllt. Weiters benötigen wir einen tvheadend Server, im selben Netz (die Bedingung ist auch erfüllt, da der Anspruch, die Aufzeichnung zu konfigurieren ja aus dem tvheadend Projekt kommt 😉 ). Nehmen wir an der tvheadend Server liegt auf 192.168.50.100 Dann testen wir im Browser durch Eingabe von:

http://192.168.50.100:9981

ob die tvheadend Weboberfläche erreichbar ist. Wenn ja, dann sind alle Grundbedingungen erfüllt. Jetzt muß am tvheadendserver die Konsole gestartet werden. (in diesem Fall ist der Server ein Raspberry auf dem xbian läuft)

Mit ssh xbian@192.168.50.100 in die Konsole einloggen.

das default Passwort lautet: raspberry

danach mit „nano“ die folgende Datei ändern:

sudo nano /etc/fstab

dort die folgende Zeile hinzufügen:

//192.168.50.50/NAS/TV/record /home/xbian/record cifs defaults,username=name,password=pass

dann mit „CTRL“+“O“ speichern und mit „CTRL“+“X“ beenden. Anmerkung: Auf dem Raspberry muß der Ordner „record“ im Verzeichnis /home/xbian/ angelegt sein bzw. mit mkdir record angelegt werden. Der Username bzw. das Password im obigen Eintrag bezieht sich auf das NAS, also die user/pass id mit der auf das NAS zugegriffen werden darf.

Jetzt mit sudo mount -a  die fstab neu ausführen. Jetzt in das Webinterface von tvheadend wechseln und dort bei den Aufnahmeeinstellungen bei Speicherpfad /home/xbian/record eintragen. Ab sofort landen alle Aufzeichnungen am Netzlaufwerk des NAS…

Retro Controller ganz neu

NES – Nintendo Entertainment System ist sicher auch noch vielen ein Begriff. Es war die 8-Bit Spielekonsole der Firma Nintendo, die Mitte der 80iger Jahre auch in Europa verkauft wurde und die Jugend der Zeit geprägt hatte. Mittlerweile ist sie doch ein Museumsstück, das bereits den Titel „Retro“ verdient. Vielleicht auch aus diesem Grund, beginnt sie in der Retrogamergemeinde wieder aufzuleben. So soll beispielsweise noch dieses Jahr ein Remake der NES in miniaturisierter Form mit moderner Technik und vorinstallierten Spielen auf den Markt kommen.

dsc_2760Auch über Emulatoren für alle möglichen Plattformen kann man die alten NES Spieletitel wieder zum Leben erwecken. Um diese Spiele auch „artgerecht“ bedienen zu können, (natürlich geht es auch mit der PC Tastatur oder über den Touch-Screen am Handy) hat das Unternehmen 8Bitdo Tech den NES30 GamePad Controller auf den Markt gebracht. Es handelt sich dabei um einen Wireless Bluetooth Controller der exakt dem originalen NES Controller nachempfunden wurde. Er ist mit einem Integrierten Akku ausgestattet, der über eine MicroUSB Kabelverbindung geladen werden kann. Der Controller ist so konstruiert, dass er sowohl als PC-Gamecontroller, als Joystick, als Bluetooth-Keyboard und als USB Joystick konfiguriert werden kann. Das lässt sich über fünf unterschiedliche Modes realisieren. Diese Modes können durch Tastenkombinationen während des Einschaltens ausgewählt werden. Die Tabelle unten zeigt die unterschiedlichen Modi:

Mode1 Mode2 Mode3 Mode4 Mode5
Joystick BT-Keyboard iCade Emu-Touch USB-Joystick
Power ON START START+B START+A START+X Kabelverbindung
Blaue LED blinken 1x 2x 3x 4x
OS WIN Android WIN/Apple Android Android Apple Android Apple WIN

dsc_2759Im Bild ist die USB-Ladebuchse zu sehen, rechts davon sind zwei Status-LEDs .

dsc_2816

auf der Rückseite der Platine ist der Akku untergebracht

dsc_2817

die Platine des Controllers; der die Firmware des Mikrocontrollers kann aktualisiert werden

dsc_2818

Kontaktmatten stellen die Tasten dar. Unter den beiden Schultertasten liegen echte Mikrotaster …

dscn0763

Hier wird der Emulator „NES Emu“ auf einem Android-Handy mit dem NES30 bedient 😉

 

Guter Ton mit Raspberry PI

Nach schon einigen Projekten und Versuchen mit dem Raspberry PI, bin ich immer wieder einmal auf die Problematik mit der schlechten, verrauschten Tonqualität des Raspi-Audioausgangs gestoßen. Der analoge Ton besteht ja nur aus einem einfachen PWM (PulseWidthModulation) Signal, das über ein paar Filtercaps direkt an die Klinkenbuchse des Raspberry geschaltet ist. Für viele Anwendungen reicht das sicherlich, wenn man nur eben einmal ein paar Töne ausgeben will. Soll´s aber Musik sein, oder wie in meinem Fall ein vernünftiger Ton bei der Retro-Gamestation, die mit „retropie und der EmulationStation“ läuft, so reicht die Qualität einfach nicht aus.

DSC_2748Hier sollte man dem Raspberry PI einen richtigen Soundchip, also Soundkarte verpassen. Im Internet wird man schnell fündig und so habe ich mir bei einem Onlineshop  um gerade einmal 2,90 Euro eine USB – Soundkarte bestellt. Die Karte, oder besser, der USB Dongle besitzt zwei 3,5mm Klinkenbuchsen. (einen Audio-Ausgang und einen Mikrofon-Eingang)

 

Die Installation ist schnell durchgeführt. Will man ein bestehendes System umrüsten, so ist einfach der Klinkenstecker der Lautsprecherzuleitung vom Raspberry abzuziehen und in den Audioausgang des Raspberry einzustöpseln. Der USB Stecker kommt in einen freien Port des Raspberry.

DSC_2751

Der Hardwareteil ist somit erledigt und es kann mit dem Anpassen der Software begonnen werden. Nach dem Booten der Retropi-Maschine und dem Einloggen in die Konsole kann man überprüfen, welche Geräte am USB-Bus erkannt wurden. Nach der Eingabe von:

pi@retropie:~ $ lsusb

werden alle am USB-Bus angeschlossenen Geräte gelistet:

Bus 001 Device 007: ID 1516:1603 CompUSA Flash Drive
Bus 001 Device 006: ID 03f0:034a Hewlett-Packard
Bus 001 Device 005: ID 16c0:05e1 Van Ooijen Technische Informatica Free shared USB VID/PID pair for CDC devices
Bus 001 Device 004: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

In diesem Fall ist der C-Media Electronics, Inc. CM108 Audio Controller unsere USB – Soundkarte. Als nächsten Schritt überprüft man die Reihenfolge (Priorität) der geladenen Soundmodule.

pi@retropie:~ $ cat /proc/asound/modules

Als Ergebnis kommt:

0 snd_bcm2835
1 snd_usb_audio

Das bedeutet die Soundausgabe des BCM2835 ist als erstes gelistet. Wir wollen jedoch alle Tonausgaben über den USB-Ausgang hören. Dazu muß die Datei „alsa-base.conf“ wie folgt angelegt werden. (auf einigen Systemen ist sie bereits vorhanden – hier sind dann nur die Prioritäten anzupassen)

pi@retropie:~ $ sudo nano /etc/modprobe.d/alsa-base.conf

Falls jetzt ein leeres Script öffnet, hat die .conf-Datei noch nicht existiert und man muß die folgenden Zeilen eingeben:

options snd_usb_audio index=0
options snd_bcm2835 index=1
options snd slots=snd-usb-audio,snd-bcm2835

Mit „control+O“ wird gespeichert und mit „control+X“ kann der Editor beendet werden. Jetzt ist das System zu rebooten. Nach dem Neustart kann in der Konsole nochmals mit:

pi@retropie:~ $ cat /proc/asound/modules

die Reihenfolge der Module überprüft werden. Die sollte jetzt so aussehen:

0 snd_usb_audio
1 snd_bcm2835

Jetzt sollten in der Emulationstation wieder Töne zu hören sein. Diesmal aber ohne Rauschen und kristallklar 😀

 

Fernsehen mit Aufnahme über IPTV mit Raspberry und A1

Als Kunde des A1 IPTV – Angebotes bekommt man ein A1 DSL – Modem samt einer A1 TV-Box. Diese Kombination funktioniert natürlich einwandfrei. Möchte man den Funktionsumfang erweitern und beispielsweise eine MINIX NEO – Box als Streaming Client betreiben, so bietet sich hier die bekannte Software „KODI“ an, die für alle möglichen Hardwareplattformen und Betriebssysteme erhältlich ist.

TV-Variante ohne Server, ohne Aufnahme und Timeshift

Die A1 TV – Box kann man direkt gegen die MINIX Box ersetzen. Auf der Mini-Box läuft ein Android Betriebssystem. Unter kodi.tv kann man sich den Client herunterladen und auf der Mini Box installieren. Dann ist noch unter SYSTEM -> STETTINGS -> ADDONS -> PVR clients auszuwählen.kodiiptvclient

Dort findet man den PVR IPTV Simple Client der zu installieren ist. Unter Konfiguration ist der Pfad zu einer .m3u – Liste anzugeben. Die m3u Liste sollte einfacher weise in einem lokalen Ordner (z.Bsp. Downloads) abgelegt werden. kodiiptvclient1

Die .m3u – Datei beinhaltet die IP-Adressen mit den Streaming-Links und Sendernamen und sieht für die Basissender von A1 so aus:

#EXTM3U

## A1TV_Basis, Stand: Nov. 2015
## KODI

#EXTINF:-1 tvg-num="1" tvg-logo="609",ORF eins
rtp://@239.2.16.1:8208
#EXTINF:-1 tvg-num="2" tvg-logo="625",ORF 2-W
rtp://@239.2.16.2:8208
#EXTINF:-1 tvg-num="3" tvg-logo="671",ATV
rtp://@239.2.16.3:8208
#EXTINF:-1 tvg-num="4" tvg-logo="4",PULS 4
rtp://@239.2.16.4:8208
#EXTINF:-1 tvg-num="5" tvg-logo="227",Servus TV
rtp://@239.2.16.11:8208
#EXTINF:-1 tvg-num="6" tvg-logo="5",SAT.1 Austria
rtp://@239.2.16.5:8208
#EXTINF:-1 tvg-num="7" tvg-logo="7",ProSieben Austria
rtp://@239.2.16.7:8208
#EXTINF:-1 tvg-num="9" tvg-logo="6",RTL Austria
rtp://@239.2.16.6:8208
#EXTINF:-1 tvg-num="10" tvg-logo="75",A1 TV Plus-Info
rtp://@239.2.16.10:8208
#EXTINF:-1 tvg-num="14" tvg-logo="672",ATV 2
rtp://@239.2.16.91:8208
#EXTINF:-1 tvg-num="18" tvg-logo="574",Das Erste
rtp://@239.2.16.16:8208
#EXTINF:-1 tvg-num="19" tvg-logo="642",ZDF
rtp://@239.2.16.17:8208
#EXTINF:-1 tvg-num="22" tvg-logo="611",ORF III
rtp://@239.2.16.29:8208
#EXTINF:-1 tvg-num="23" tvg-logo="578",3sat
rtp://@239.2.16.21:8208
#EXTINF:-1 tvg-num="27" tvg-logo="612",ORF SPORT +
rtp://@239.2.16.78:8208
#EXTINF:-1 tvg-num="34" tvg-logo="709",gotv
rtp://@239.2.16.36:8208
#EXTINF:-1 tvg-num="66" tvg-logo="617",ORF 2-B
rtp://@239.2.16.65:8208
#EXTINF:-1 tvg-num="67" tvg-logo="618",ORF 2-K
rtp://@239.2.16.66:8208
#EXTINF:-1 tvg-num="68" tvg-logo="619",ORF 2-NÖ
rtp://@239.2.16.67:8208
#EXTINF:-1 tvg-num="69" tvg-logo="620",ORF 2-OÖ
rtp://@239.2.16.68:8208
#EXTINF:-1 tvg-num="70" tvg-logo="621",ORF 2-S
rtp://@239.2.16.69:8208
#EXTINF:-1 tvg-num="71" tvg-logo="622",ORF 2-St
rtp://@239.2.16.70:8208
#EXTINF:-1 tvg-num="72" tvg-logo="623",ORF 2-T
rtp://@239.2.16.71:8208
#EXTINF:-1 tvg-num="73" tvg-logo="624",ORF 2-V
rtp://@239.2.16.72:8208
#EXTINF:-1 tvg-num="92" tvg-logo="724",Melodie TV
rtp://@239.2.16.37:8208
#EXTINF:-1 tvg-num="94" tvg-logo="738",Bibel TV
rtp://@239.2.16.81:8208
#EXTINF:-1 tvg-num="95" tvg-logo="725",K-TV
rtp://@239.2.16.82:8208
#EXTINF:-1 tvg-num="105" tvg-logo="726",RTS Sat
rtp://@239.2.16.63:8208
#EXTINF:-1 tvg-num="120" tvg-logo="719",Okto
rtp://@239.2.16.34:8208
#EXTINF:-1 tvg-num="121" tvg-logo="85",Schau TV
rtp://@239.2.16.83:8208
#EXTINF:-1 tvg-num="122" tvg-logo="86",RT24
rtp://@239.2.16.84:8208
#EXTINF:-1 tvg-num="123" tvg-logo="87",P3 TV
rtp://@239.2.16.85:8208
#EXTINF:-1 tvg-num="124" tvg-logo="88",WNTV
rtp://@239.2.16.86:8208
#EXTINF:-1 tvg-num="125" tvg-logo="89",LT1
rtp://@239.2.16.87:8208
#EXTINF:-1 tvg-num="127" tvg-logo="91",KT1
rtp://@239.2.16.89:8208
#EXTINF:-1 tvg-num="128" tvg-logo="92",N1
rtp://@239.2.16.90:8208
#EXTINF:-1 tvg-num="129" tvg-logo="142",Kärnten TV
rtp://@239.2.16.112:8208
#EXTINF:-1 tvg-num="130" tvg-logo="143",Tirol TV
rtp://@239.2.16.109:8208
#EXTINF:-1 tvg-num="132" tvg-logo="141",HT1
rtp://@239.2.16.114:8208
#EXTINF:-1 tvg-num="133" tvg-logo="211",Mühlviertel TV
rtp://@239.2.16.113:8208

Jetzt muss nur mehr „Settings“ -> „TV“ der „Enabled“ Button gecheckt werden und die Wiedergabe der TV-Kanäle sollte funktionieren. Mit dieser Methode ist stellt die Android Box einen IPTV Client dar, der die Streaming Links direkt abspielt. Da kein Server im Hintergrund läuft, ist es auch nicht möglich Timeshift oder Aufnahmen von Sendungen zu realisieren.

TV – Variante mit Server, Timeshift, EPG und Aufnahme

Um diese Funktionen zu erhalten, muss in heimische Netzwerk ein IPTV Server integriert werden. In meinem Fall habe ich einen Raspberry Pi2 für diesen Zweck konfiguriert.
DSC_2660Folgende Komponenten benötigen wir dazu:

  • Raspberry Pi2 (an das heimische Netzwerk angeschlossen)
  • Micro SD Karte mit 8GB
  • eine externe Festplatte oder USB-Stick als Speicher für die Aufnahmen
  • das Softwareimage XBIAN und einen Imageextractor
  • (für den Mac gibt´s diese Version: ApplePi-Baker)

Ist alles heruntergeladen, so beginnt man mit dem Extrahieren des Images auf die Speicherkarte. Dazu startet man die Software win32diskimager.exe und wählt den Pfad zur Image-Datei. (die nennt sich in diesem Fall: XBian_Latest_rpi2.img). Dann ist die Speicherkarte einzulegen und der zugeordnete Laufwerksbuchstabe auszuwählen. Danach kann der Schreibvorgang mit „Write“ gestartet werden. ACHTUNG: Das gewählte Laufwerk wird mit dem Image ausgestattet. Hier unbedingt sichergehen, dass nicht ein falsches Laufwerk ausgewählt wird. Nach ein paar Minuten ist die SD-Karte fertig beschrieben und kann in den Raspberry PI eingesteckt werden.

Jetzt kann man den Raspberry PI an einen Monitor, Keyboard, LAN und per Micro-USB an eine 5V/2A Versorgung anschließen. Er wird jetzt booten. Es startet das Script: raspi-config, das bequem mit dem Keyboard bedient werden kann. Hier wird als erstes der tvheadend – Server installiert:

xbianconfig1Zunächst wählt man „Packages“ aus und bestätigt.

xbianconfig2dann scrollt man bis zur Kategorie „video“ und bestätigt wiederum.

xbianconfig3hier ist nun tvheadend auf „Yes“ zu setzen und wieder zu bestätigen. Jetzt beginnt der Download des Paketes und die anschließende Installation. Ist der Prozess beendet, so ist das raspi-config script zu beenden und in die bash zu gehen. Der default Login lautet: xbian und das Passwort: raspberry

Zunächst sind noch alle Updates und Upgrades durchzuführen:

sudo apt-get update
sudo apt-get upgrade

Als nächstes macht es noch Sinn, die IP Adresse des Raspberry PI zu kennen, die er vom DHCP Server des Routers zugewiesen bekommen hat. Die müssen wir ja wissen, wenn wir auf den TV-Server Zugriff haben wollen. Dazu gibt man einfach folgendes ein:

ifconfig

Als Antwort erhält man dann folgende Infos zum Ethernet – Anschluss. In diesem Fall eth0:

ifconfigWie man sieht, ist in diesem Beispiel die Adresse 10.0.2.15 zugewiesen worden. Mit dieser Information können wir den Raspberry Pi nun neu starten und an einem Client-Computer mit dem Setup von TVHeadend fortfahren.

sudo reboot

Nach dem Neustart sollte der Raspberry tvheadend-Server jetzt auf einem Client-PC erreichbar sein. Dazu öffnet man einen Webbrowser und gibt in der Adresszeile folgende Adresse ein: http://10.0.2.15:9981

Jetzt muss folgendes zu sehen sein:

headen1Wir suchen und klicken auf den TAB „Konfiguration“. Hier geben wir ein paar allgemeine Einstellungen ein: den Servernamen (bei mir hier einfach Tvheadend); den Ansichtsmodus stellt man auf „Experte“. Die restlichen Einstellung belässt man auf default. Unter Spracheinstellungen ist „German“ zu wählen. (oder was auch immer gewünscht wird). Die Webbenutzeroberfläche ist im default Modus auch ganz schön. Wer auch noch Senderlogos haben will, der stellt unter „Picon“ wie folgt ein:

headen2Nach all den Einstellungen nicht vergessen auf „Speichern“ zu klicken. Jetzt kommt die eigentliche Arbeit: Das Editieren der Senderliste. Hierzu erstellt man als erstes ein „Netzwerk“. Unter den Tabs: Konfiguration -> DVB-Inputs -> Netzwerke legen wir ein neues „Netzwerk“ (eigentlich TV-Netzwerk) an.

headen3Mit „Hinzufügen“ öffnet sich ein Fenster in dem man „IPTV Network“ auswählt. Bestätigt man das so öffnet sich ein weiteres Fenster. Hier nimmt man ein paar wenige Einstellungen vor. Sinnvoller Weise benennen wir das Netzwerk A1TV.

headen4

Mit „Speichern“ werden die Einstellungen abgeschlossen. Jetzt klickt man auf den TAB „Muxes“. Hier müssen alle Sender angelegt werden. Diese Arbeit muss man sich einmal antun. (Es gibt dann aber die Möglichkeit, über die Konsole die config-Dateien vom Server zu sichern – dazu später aber mehr)

headen5In dem Bild ist die fertige Mux-Tabelle zu sehen. Mit „Hinzufügen“ wird ein neuer „MUX“ (Signalquelle) hinzugefügt. Hier wählt man aus den verfügbaren Netzwerken A1TV (das, das wir vorher angelegt haben) aus.headen6Im sich jetzt öffnenden Fenster ist unter URL die Streaming – Adresse vom jeweiligen Sender einzugeben (hier z. Bsp.: rtp://239.2.16.21:8202 für 3sat). In Mux-Name ist der Sendername einzugeben.

headen7Danach auf „Speichern“ drücken und mit „Hinzufügen“ den nächsten Sender konfigurieren. Hat man die mühevolle Arbeit dann getan und alle Sender eingegeben, so müssen die Muxes einem Service/Kanal zugeordnet werden. Das ist die eigentliche Senderliste, die der Server dann den Clients zur Verfügung stellt. (Ein MUX muss jetzt nicht unbedingt eine IP-Streaming Adresse sein, sondern kann auch aus einem Sat-, oder DVB-T Empfänger kommen. Da hier in einer Signalfrequenz mehrere TV oder Radioprogramme per Multiplexverfahren (eben MUX) übertragen werden. Darum ist die Bezeichnung MUX für IP-Adressen hier vielleicht etwas verwirrend). Das Zuordnen der Services geschieht im TAB „Services„. Hier einfach auf „Services zuordnen“ -> „alle Services zuordnen“ klicken und warten bis der Prozess abgeschlossen ist. Nun kann ein erster Test erfolgen.

headen8Links neben den Kanalnamen ist ein kleiner „Play-Button“ zu sehen. Ist das VLC-Player-Plugin im Browser installiert, so wird beim Anklicken des Buttons ein Wiedergabefenster geöffnet, das den aktuellen Stream anzeigt.

 

EPG und Senderlogos

Weiter geht´s beim Konfigurieren nun mit dem elektronischen Programm Guide (EPG). Hier muss ein wenig getrickst werden. Aus diversen Foren und Anleitungen im Web habe ich eine für mich funktionierende Konfiguration zusammengestellt. Wir beginnen im Tvheadend-Server unter Konfiguration -> Kanal/EPG -> EPG-Grabber Module mit den Einstellungen.

epg1Hier ist der interne Grabber „XMLTV: Sweden (TVZon)“ zu aktivieren. Danach wieder auf Speichern drücken.

Danach müssen wir wieder auf den Raspberry PI in die Konsole. Man macht das entweder vom Client-PC aus über ein Terminal (z. Bsp. Putty) oder direkt am Raspberry PI, wenn dieser noch an Keyboard und Monitor angeschlossen ist. Die folgenden Anleitungen stammen von https://github.com/Bronkoknorb/a1tv-helpers

Ist die Konsole, am besten als root-admin geöffnet, so installiert man zuerst ruby und die dazugehörigen libraries.

sudo apt-get install ruby ruby-dev
sudo gem install rest-client

Als nächstes benötigt man xmltv:

sudo apt-get install xmltv-util
sudo su hts
tv_grab_se_tvzon --configure
 
Nach der letzten Eingabe fragt das Konfigurationsscript des Grabbers nach folgenden Informationen:
  • Root-URL for grabbing data (hier http://xmltv.xmltv.se/channels-Austria.xml.gz eingeben)
  • Directory to store the cache:  /home/hts/.xmltv/cache
  • Select Channels : Hier all auswählen

Jetzt muss der TVheadend – Service neu gestartet werden:

sudo service tvheadend restart

Jetzt kann wieder auf das Webinterface von TVheadend gewechselt werden. Im EPG-Grabber TAB kann jetzt noch die Zeit zum Synchronisieren der EPG Datenbank ausgewählt werden.

epg2Die Senderlogos werden weitgehend gefunden. Wo das Senderlogo fehlt, kann unter dem TAB Kanal/EPG -> Kanäle in der Spalte Benutzerlogo ein Link mit einem geeigneten Logo eingetragen werden.

epg3Jetzt ist der Server soweit fertig konfiguriert und die Clients können eingerichtet werden. In meinem Fall habe ich auf der MINIX NEO X8 Android Box ein Kodi installiert. In der Liste Addons -> PVR-Addons ist unter vielen auch ein TVHEADEND Addon gelistet. Dieses wird installiert. Alle anderen PVR-Addons müssen deaktiviert werden.

tvh1In den Client Einstellungen ist lediglich noch die IP Adresse des Raspbery PI anzugeben. Die Ports sind default (9981). Wenn beim TVheadend Server kein eigener User angelegt ist, so brauchen wir auch im Client unter user und pass nichts einzutragen.

Jetzt fehlt nur mehr die Aufnahmefunktion am Server. Hierzu begeben wir uns wieder in das Webinterface vom Server. Unter Konfiguration -> Aufnahme sind die abgebildeten Einstellungen zu machen:

recIch habe hier das default profile editiert. Wichtig ist der Aufnahmedateipfad. Steckt am Raspberry PI ein externer USB-Datenträger, so kann dieser für die Aufnahme verwendet werden. (In der Xbian Konsole kann man sich den Datenträger entsprechend vorbereiten und Verzeichnisse erstellen). Die Einstellungen sind weitgehend selbsterklärend….

 

 

 

 

Das Buch zum Blog

DSC_2643Da nicht jeder die Möglichkeit besitzt, einen Computer oder Tablet mit Internetzugang benutzen zu können, habe ich mir gedacht, warum nicht die Sammlung an Blog-Beiträgen zu Papier bringen. Natürlich wäre die einfachste Möglichkeit das zu bewerkstelligen, Beitrag für Beitrag auszuwählen direkt vom Webbrowser mit einem Drucker zu drucken. Das wollte ich aber schöner machen. Auf die Idee haben mich die Fotobücher gebracht, die zur Sommer- und Urlaubszeit ja immer stark beworben werden. Hier kann man ja einfach über einen online Editor seine Fotos hochladen, bearbeiten, arrangieren und danach daraus direkt ein Fotobuch drucken lassen.

DSC_2645So etwas, dachte ich mir, muss es ja auch für Weblogs geben. Also auf den Webseiten der Fotobuchhersteller gesucht, aber hier war nichts zu finden. Der Schwerpunkt liegt eindeutig im Bereich der Bilderwelt. Also habe ich mich weiter auf die Suche gemacht und bin bei einem Verleger/Drucker fündig geworden. Die Firma nennt sich „epubli“ (http://www.epubli.de/), hat den Sitz in Deutschland und wirbt mit dem Slogan: „Eigenes Buch drucken, Buch binden und Buch veröffentlichen„. Voraussetzung dafür ist ein vollständig formatiertes PDF-Dokument, das dann einfach hochgeladen werden kann. Im Webformular von epubli kann man unterschiedlichste Formate und Papiersorten auswählen, auch ob in Farbe oder Schwarz-Weiß gedruckt werden soll. Der Umschlag kann in Hardcover oder Softcover gewählt werden. In meinem Fall habe ich mich für einen Farbdruck in DIN A5 mit 90g Papier entschieden. Das Cover ist ein Softcover.

DSC_2644Das Buch beinhaltet ca. 80 Blogbeiträge und ebenso viele Bilder aus den Beiträgen. So ist ein übersichtliches und angenehmes „Offline-Blättern“ möglich. Die Kosten für den Druck eines Buches mit Versand betragen ca. 48 Euro.

Das Erstellen und Formatieren habe ich mit Word gemacht und die fertige Version als PDF gespeichert. Um den Inhalt des Blogs als doc-files zu erhalten muss aus WordPress zuerst ein XML-Export des gesamten Inhalts gemacht werden. Dieser kann dann mit dem kleinen Tool „wordpress2doc“ in ein Worddokument konvertiert werden. (Ich habe im Beitrag „ Von WordPress zu Word.doc“ darüber berichtet. Jetzt braucht man NUR mehr das Format in Word anzupassen. Das ist auch die meiste Arbeit und dauert einige Tage – da es in diesem Fall 322 Seiten geworden sind…