Krumeltee

-> Elektronik, Mikrocontroller und Retro-Computing <-

Archive for the ‘Embedded Linux’ Category

Dual IR 1A Webradio

Posted by krumeltee - 14. Juni 2014

Dieser Artikel ist noch NICHT fertig!

Da er aber nun schon mehrere Wochen als Entwurf so da liegt, veröffentliche ich ihn jetzt unter Vorbehalt.

 

Seit einiger Zeit gibt es dieses Webradio relativ günstig zu kaufen. Es enthält ein MSE005 – Board mit einem Agic SOC (NUC930 ARMv5) von Magic Systech. Das Webradio kommt mit folgenden Merkmalen:

  • Zwei Audioausgänge, Kopfhörer und Line-Out
  • Zwei USB-Ports, einer intern mit aufgelötetem USB-WLAN-Stick, einer mit Buchse
  • RT3070 USB WLAN Stick, intern aufgelötet
  • IR-Empfänger
  • 128×64 STN Display (weiss/blau)

Fotos

Hier zwei Fotos vom Innenleben.

Foto 1 Foto 2

Zugang per Telnet

Ein Telnet-Server läuft auf Port 23 auf dem Board. Zugangsdaten sind root/password. Sobald das Board mit dem WLAN verbunden ist, reicht ein  $ telnet <ip/hostname>.

Display

Das verbaute Display trägt die Bezeichnung FGC12864A. Dazu konnte ich nichts genaues finden. Jedoch scheint es einige Übereinstimmungen mit anderen Displays zu geben. Der Controller ist ein ST7567. Das Display wird vom SOC per SPI angesprochen. Ein Kernel-Treiber „ST7567“ läuft auf dem Board. Hier ein paar Code-Beispiele:

Hier zwei paar Datenblätter:

Speicher

Das Board hat 16MB RAM und 128MB Flash Speicher. Der Flash Speicher ist per /dev/mtdblock0 mit jffs2 Dateisystem erreichbar.

IR-Empfänger

Der IR-Empfänger ist ein TL1838. Dieser ist baugleich mit diversen anderen xx1838-Typen. Hier zwei Datenblätter:

Betriebsspannung: 2,7V – 5,5V, Arbeitsfrequenz: 38kHz.

Fernbedienung

Auf dem Board läuft ein SC6122-Treiber. Dieser Chip ist ein IR-Sende-Controller. Wahrscheinlich steckt dann eben dieser oder ein kompatibler in der Fernbedienung. SC6122 Datenblatt.

WLAN-USB-Stick

Der verbaute WLAN-Stick ist ein BL-RT3070-7A. Hier z.B. zu kaufen. Einige Angaben des Herstellers:

  • IEEE 802.11B/G/N
  • USB1.1/USB2.0
  • 2,4GHZ
  • Infrastructure/AD-Hoc
  • Transferraten: 135/54/48//36/24/18/12/9/6/1Mbit/s
  • Reichweite: Indoor 100m / Outdoor 300m
  • 3,3V Versorgungsspannung

Der RT3070-Chip kann unter Linux anscheinend auch mit hostapd zum Access-Point gemacht werden.

Audio-Ausgänge

Das Radio hat zwei Ausgänge, einen Line-Out zum Anschluss an einen Verstärker/Aktiv-Boxen und einen Kopfhörer-Anschluss. Dieser wird von einem PT2308-Treiber versorgt. PT2308 Datenblatt.

Die beiden Ausgänge sind an der Soundkarte leider nur einer.

I2C-Bus

Auf dem Trägerboard sitzt ein PT2259 Chip, der die Lautstärkeregelung übernimmt. dieser wird per I2C angesteuert. Die Pins 4 und 5 sind SDA und SCL.

Sie Datenblatt zum PT2259.

Stromversorgung

Das komplette Radio an sich wird mit 6V/800mA versorgt. Auf dem Board befindet sich ein LM2940CT-5.0, dieser entspricht einem einfachen 7805, jedoch die „Low-Drop-Version“ davon. Bei 1A ist dieser bereits ausgereizt. Auf dem Radio-Board ist ausserdem kein Kühlkörper für den Regler montiert, dieser ist mit Schraube+Mutter an der Platine befestigt. Daher sollte man für weitere Hardware-Basteleien eine andere Stromversorgung vorsehen. Ein LM2596-Schaltregler mit einem maximalen Ausgangsstrom von 3A wäre dafür z.B. interessant.

USB

Das Board hat zwei USB-Anschlüsse. Der eine ist intern und mit einem USB-WLAN-Stick fest verlötet belegt. Der andere ist mit einer Buchse nach draussen geführt. Das gibt einige Möglichkeiten für Erweiterungen der Hardware:

  • USB-Hub
  • RS232-Wandler
  • WLAN-/Surf-Sticks, Netzwerkkarten 10/100 RJ45, …
  • DVB-T für Radio-Empfang, Streaming, …
  • USB-Speicher
  • …..

Weitere Radios mit dem selben Board

Posted in ARM, ARMv5, Embedded Linux, Linux | Leave a Comment »

Backup mit rsync und ssh — ohne rsyncd

Posted by krumeltee - 9. Juli 2013

Wer auf einem entfernten System keinen rsync-Daemon installieren will – aus was für Gründen auch immer – der kann auch einen sshd dafür hernehmen.

Rsync kann lokal kopien erstellen. Dieses feature wird ganz einfach genutzt, indem man das „lokal“ über SSH von einem entfernten Rechner hernimmt.

Eine einfaches Beispiel wäre das:

rsync -avzbe ssh root@192.168.37.33:/ /backup/ --exclude=/proc --exclude=/sys --exclude=/dev

Hierbei wird alles ausser /proc, /sys und /dev vom entfernten System „192.168.37.33“ nach /backup/ gesynct. Diese Ordner sollten auch ausgelassen werden,

da diese nicht statisch sind und die Dateisysteme darin vom Kernel verwaltet werden, man braucht davon kein Backup.

Solch eine Befehlszeile kann man z.B. jede Nacht in einem cronjon laufen lassen. Die Ausgabe einfach per „>“ umleiten und man hat eine Dateiliste, der geänderten Dateien.

Die Bandbreite lässt sich mit „–bwlimit=…..“ begrenzen.

Posted in Embedded Linux, Linux | Leave a Comment »

Galaxy S2 USB-OTG (host-mode), Audio-Out und mehr

Posted by krumeltee - 11. April 2013

Das S2 hat noch mehr Möglichkeiten als nur eine USB-Verbindung am USB-Port.

Nachtrag: am Ende des Artikels habe ich ein Update angefügt. WICHTIG!

Dazu bietet der Micro-USB-Anschluss einen sogenannten ID-Pin, Pin 4. Dieser Pin ist bei normalen USB-Verbindungskabeln unbeschalten.

Es gibt fertige USB-OTG Adapter. Dabei muss man aber aufpassen, bei den meisten ist dieser Pin ebenfalls unbeschalten.

Will man den OTG Mode, muss man diesen Pin über einen Widerstand von 124kOhm mit GND verbinden.

Am einfachsten scheint es, ein normales USB-Verbindungskabel zu zerschneiden.

Am Ende mit dem Stecker lötet man eine Buchse an, den Micro-USB-Stecker schneidet man auf und lötet einen Widerstand ein.

Angehangen ein Schaltplan mit mehreren Beispiel-Möglichkeiten.

image

Nachtrag
Beim Testen und herumprobieren hat sich herausgestellt, dass eine direktverbindung vom ID-Pin nach Masse reicht. Ausserdem scheint der Dorimanx-Kernel am Besten USB-OTG zu unzerstützen, in Verbindung mit dem JB Stock ROM.

Posted in Android, Embedded Linux, Hardware Hacks, Linux | Leave a Comment »

Arcadyan (Vodafone / Arcor) EasyBox A-600

Posted by krumeltee - 23. März 2013

Beschreibung:

Diesmal zerlegt wurde eine Arcadyan EasyBox A-600 mit der genauen Modell-Bezeichnung ARV4520KW-B-LF-LVD. Diese Box ist meiner Internet-Recherche nach (fast) Baugleich zum SpeedPort W700V der Telekom.

Ein paar Infos hierzu findet ihr unter diesen Links:

http://www.dslteam.de/forum/showthread.php?t=130386

Ein „lustiger“ Bug bei dieser Box ist das verkorkste Patent auf die Berechnung der standart-WPA2-Keys. Siehe http://www.wotan.cc/ .

Hardware:

  • Infineon PSB50505 E V1.3 MIPS CPU, wahrscheinlich getaktet mit 235MHz, AMAZON M Familie
  • 32MB SDRAM (2x ISSI IS42S16800A-7TL)
  • 32MB FLASH (1x 29LV320)
  • Infineon ADM6996I 6-Port 10/100 Switch, 4 Ports extern verfügbar
  • Atheros AR2413A WLAN Chipset

Linux darauf, UART, …

Die Chancen stehen recht gut, einen 2.4er oder sogar einen 2.6er Kernel für diesen Chip hinzubiegen, zu allererst muss aber der Zugang zum Flash per seriellem Bootloader oder JTAG gefunden werden. Da ich mich bisher soweit noch nicht mit der Box beschäftigt habe, kann ich dazu noch nicht viel sagen. Den UART werde ich die Tage noch raussuchen und vielleicht wisst ihr ja noch mehr, dann schreibt mir bitte!

Sollte sich da was machen lassen, werde ich mich dahinterklemmen 🙂

Fotos

PEB3332 HT VOIP Prozessor

PEB3332 HT VOIP Prozessor

CPU, RAM und Flash

CPU, RAM und Flash

Atheros AR2413 Wireless Chipset

Atheros AR2413 Wireless Chipset

PCB Übersicht

PCB Übersicht

PCB Übersicht

PCB Übersicht

PCB Übersicht

PCB Übersicht

Chip

Chip

LAN Übertrager

LAN Übertrager

Arcadyan A600 PCB overview

Arcadyan A600 PCB overview

Posted in Embedded Linux, Hardware Hacks, Linux, MIPS, WLAN Linux | Leave a Comment »

SAA1064 I²C 7-Segment Treiber (4 Digits) am AVR32

Posted by krumeltee - 22. August 2011

Heute habe ich einen alten „Humax“ Receiver geschlachtet und gesehen, dass der Chip, welcher die 7 Segment Anzeigen im Bedienteil ansteuert ein SAA1064 ist.

Der SAA1064 kann bis zu vier  7-Segment Anzeigen mit bis zu 21mA pro Segment treiben, dazu sind nur zwei Transistoren, zwei Widerstände und zwei Kondensatoren extern nötig.

Der Chip ist zwar auch schon etwas älter, aber es gibt ihn in DIP und SMD noch bei Reichelt und anderen für ca. 2 Euro zu kaufen. Also hab ich mich kurz rangesetzt und ein bisschen Code für das Grasshopper Board und den Chip geschrieben. Sollte natürlich genauso auf dem NGW100, STK1000 usw. laufen.

Auf diesem Bild kommt die Zahl vom Grasshopper Board 🙂

Der Code ist relativ einfach und sollte anhand der Aufrufe der SAA1064-Funktionen in der main() selbsterklärend sein, hier findet ihr ihn.

Posted in ARM, AVR32, C, Dil NET PC 486, Embedded Linux, Hardware Hacks, I2C, mini2440, MIPS | Leave a Comment »

LM75 am AVR32 unter Linux

Posted by krumeltee - 15. August 2011

Hier eine kleine C-Lib, welche einen LM75 unter Linux auf dem AVR32 auslies.

Hier findet ihr die Quellcodes.

Der Code sollte auch mit meinem „RAM-I2C-Interface“ an jedem PC laufen.

Posted in ARM, AVR32, C, Dil NET PC 486, Embedded Linux, I2C, mini2440 | Leave a Comment »

PCF8574 am AVR32 unter Linux

Posted by krumeltee - 15. August 2011

Hier eine kleine C-Lib, welche einen MAX127 unter Linux auf dem AVR32 auslies.

Hier findet ihr die Quellcodes.

Der Code sollte auch mit meinem „RAM-I2C-Interface“ an jedem PC laufen.

Posted in ARM, AVR32, C, Dil NET PC 486, Embedded Linux, I2C, mini2440, MIPS | Leave a Comment »

MAX127 am AVR32 unter Linux

Posted by krumeltee - 15. August 2011

Hier eine kleine C-Lib, welche einen MAX127 unter Linux auf dem AVR32 auslies.

Der Code ist mehr oder weniger mein AVR-Code für den MAX127, einfach nur auf Linux angepasst.

Hier findet ihr die Quellcodes.

Der Code sollte auch mit meinem „RAM-I2C-Interface“ an jedem PC laufen.

Posted in AVR32, C, Embedded Linux, I2C, Linux, mini2440 | Leave a Comment »

mplayer auf dem N900

Posted by krumeltee - 24. Februar 2011

Der vielseitige Video- und Audioplayer mplayer wurde auch für das Nokia N900 compiliert. Der mplayer an sich ist ein Konsolenprogramm und auf die vielen vielen Optionen werde ich hier eingehen.

Wer den mplayer verwenden möchte, aber keine Lust auf Konsole hat, kann die GUIs kmplayer, smplayer und sib verwenden.

Vorweg ein kleiner/grosser Nachteil des mplayers auf dem N900… Der vorinstallierte Medienspieler auf dem N900 kann die Hardwarebeschleunigung des OMAP-Prozessors für Audio/Video nutzen und braucht somit weniger Rechenleistung, was sich auch an der Akkulaufzeit bemerkbar macht. Wett macht das ganze jedoch der riesige Funktionsumfang und die totale Kontrolle des Players.

Wer Zuhause am Fernseher mit dem Handy gucken will, den stört das sowieso nicht. Unterwegs nehme ich lieber den vorinstallierten Medienspieler.

Aufgerufen wird der mplayer mit „$ mplayer <optionen> <datei1> <datei2> <oder wildcards wie zum Beispiel „*“ für alle Dateien> <oder *.avi>„.

Die brauchbarsten Optionen nun hier:

  • -idx

Repariert defekte Videodateien, zum Beispiel wenn Spulen nicht funktioniert. Wird allerdings nicht in die Video-Datei gespeichert, nur temporär.

  • -ss <sekunde>

Startet den Video ab Position <sekunde>. Wenn sonst nicht gespult werden kann, muss -idx mit angegeben werden.

  • fs

Startet den Video im Fullscreen-Modus

  • -msgcolor

Die Konsolenausgabe farbig gestalten, übersichtlicher.

  • -quiet und -really-quiet

Sehr wenig Konsolenausgabe, sinnvoll auf lahmen SSH-Verbindung oder Ähnliches, damit es nicht wegen sowas ruckelt. Auch auf seriellen Konsolen, die CR nicht richtig darstellen sinnvoll.

  • -heartbeat-cmd <command>

Wenn mplayer in scripten verwendet wird, kann man <command> alle 30 Sekunden ausführen lassen um zum Beispiel festzustellen, ob der Player noch reagiert.

Mplayer ist zu lahm? Es ruckelt? Kein Problem, versucht die beiden Sachen:

$ mplayer -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=all

oder

$ mplayer -framedrop 1o

Wenn der Film „krumm“ ist, kann man das Seitenverhältnis anpassen:

$ mplayer -monitoraspect 4:3

oder

$ mplayer -monitoraspect 1.3333339

Alle Optionen kann man sich mit -list-options geben lassen.

Posted in Embedded Linux, Nokia N900 | Leave a Comment »

Kompletten gcc auf dem N900 installieren

Posted by krumeltee - 24. Februar 2011

Auch das ist eigentlich ganz einfach, man muss einfach nur drei weitere Repositories (Programmkatalog) hinzufügen:

deb http://repository.maemo.org/ fremantle/sdk free non-free
deb-src http://repository.maemo.org/ fremantle/sdk free
deb-src http://repository.maemo.org/ fremantle/tools free

Danach kann man eine gcc-toolchain mit

apt-get install gcc-4.2 make autoconf automake libc6-dev gcc libncurses-dev libtool flex bison gdb gcc libltdl3-dev

Mit dieser Installation kann man den kompletten N900-Kernel auf dem Handy compilieren!
Ein kleiner Testdes Compiler sollte natürlich gleich gemacht werden:

$ vi test.c
^^ i drücken, das tippen:
#include
int main() { printf("hallo n900\n"); return 0; }

^^ ESC drücken, ":wq" tippen, ENTER
gcc test.c
./a.out

menuconfig

Posted in C, Embedded Linux, Nokia N900 | 1 Comment »