Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860
Boop - Bettyhacks.com - Hack BettyTV-Remote

Boop

From Bettyhacks.com - Hack BettyTV-Remote
Jump to: navigation, search
(fixed link to tgz)
(Tastatur)
 
Line 1: Line 1:
==Info==
+
Boop ([http://de.wikipedia.org/wiki/Betty_Boop Namensgeberin])ist eine Software (Firmware) fuer die [[Betty TV]], welche von '''netguy''' entwickelt wurde, und von einigen anderen erweitert wird.
boop ist eine software für die betty, welche netguy gerade fertiggestellt hat.
+
Die Firmware dient derzeit haupsaechlich als "testbed" um die Hardware der Betty anzusprechen.
 +
Die Firmware enthält Routinen für das Ansprechen der meisten Hardwarekomponenten der Betty.
  
==Was macht boop==
+
==Features==
boop ist eine software die zur zeit der erstellung dieser dokumentation nach dem laden in den ram der betty ein simples echo per serieller schnittstelle ermöglicht und 2 sätze ausgibt.
+
Siehe [[Boop Features]]. Für andere Verwendungen der Betty Hardware siehe [[Projekte]].
  
===Kommandos===
+
==Lizenz==
'''!''' - es wird "Hello Betty!" ausgegeben
+
'''boop''' steht unter der [http://www.gnu.org/copyleft/gpl.html GPL]v3. Bitte beachtet das wenn, ihr an der Software herumbastelt!
  
'''*''' - es wird "And another Hello!" ausgegeben
+
==Download==
 +
Den aktuellen Source erhält man über [[SVN]] [https://sourceforge.net/projects/boopfirmware/develop hier].
 +
Das aktuelle RAW-Binary zum download: [https://boopfirmware.svn.sourceforge.net/svnroot/boopfirmware/boop/trunk/boop_rom.bin boop_rom.bin]
  
Alles andere wird als echo zurück übertragen.
+
==Mitarbeit==
 +
Wenn Du Fehler findest, oder anders helfen möchtest, melde Dich am Besten im [http://bettyhacks.com/forum Forum].
 +
Zum Entwickeln: [[Coding Style]].
  
==Anforderungen==
 
===Compiler, Linker und Tools===
 
Um boop zu compilieren braucht ihr die [http://opensrc.sec.samsung.com/download/arm-uclinux-tools-base-gcc3.4.0-20040713.sh GCC 3.4.0 Toolchain]
 
  
Nachdem ihr diese herunter geladen habt, führt ihr diese aus mit:
+
==Das System==
sh arm-uclinux-tools-base-gcc3.4.0-20040713.sh
+
Die Firmware ist in C geschrieben für den 32-bit Mikroprozessor mit ARM7 Kern (siehe [[Entwicklungsumgebungen]]).
Damit wird die GCC 3.4.0 Toolchain nach /root/bin installiert.
+
Es sind 64kb SRAM und 16mbit (= 2 MiByte) externer Flash-Speicher vorhanden.
  
==Compileren von boop==
+
Es ist möglich, ein Programm direkt aus dem RAM auszuführen. Das Überschreiben des Flashspeichers entfällt so (siehe [http://bettyhacks.com/forum/index.php?topic=215.msg1449#msg1449 Forum]).
===Download===
+
Die sourcen von boop findet ihr hier auf netguy's server: [http://mamalala.org/boop-0.1.tgz boop-0.1.tgz]
+
===Entpacken===
+
tar xzvf boop.tar.gz
+
Sollte nun das verzeichnis '''boop-0.1/''' im aktuellen verzeichnis erstellt haben.
+
===Compilieren===
+
cd boop-0.1
+
Wechselt in das verzeichnis boop-0.1/ im aktuellen verzeichnis. Wenn ihr alles richtig gemacht habt sollte nun ein
+
make
+
unter anderem die datei '''boop.hex''' erstellt haben
+
===Workaround für lpcload - WICHTIG===
+
Aufgrund der tatsache das hackbard's lpcload noch nicht ganz ausgereift ist, muss das erstellte boop.hex noch etwas modifziert werden. Die erste zeile aus der boop.hex muss leider noch manuell entfernt werden (mit einem editor oder per script) aber wir hoffen das hackbard (oder jmd anderes) das bald in angriff nimmt um uns das in zukunft zu ersparen.
+
  
das erstellte boop.hex sieht zB so aus:
+
Näheres zu den Komponenten unter [[Betty Hardware]] und [http://www.hackdaworld.org/cgi-bin/awki.cgi/BettyTV hackdaworld]
  :020000044000BA
+
:10020000060000EA1F0000EA1E0000EA1D0000EAE6
+
:100210001C0000EA1B0000EA1A0000EA190000EACC
+
:1002200078309FE503D0A0E102AC4DE20010A0E3DE
+
...
+
  
in nachdem wir die erste zeile aus der datei boop.hex entfernt haben sieht es nun so aus:
+
===Das 'Betriebssystem' Timer, Interrupts, ...===
:10020000060000EA1F0000EA1E0000EA1D0000EAE6
+
:100210001C0000EA1B0000EA1A0000EA190000EACC
+
:1002200078309FE503D0A0E102AC4DE20010A0E3DE
+
...
+
  
'''Jetzt''' können wir ans flashen mit lpcload gehen.
+
Die Timers und Interrupts sind unter [[Boop Peripherie]] aufgelistet.
  
 +
===Hardwareunterstützung===
  
==Boop meets Betty - jetzt wird geflasht==
+
==== Serielle Schnittstelle ====
===Bootloader starten===
+
(an der Stiftleiste)
Um boop in die betty zu bekommen müssen wir zuerst in den bootloader:
+
txd0, rxd0
EINT PIN auf GND brücken
+
RESET PIN auf GND brücken
+
RESET PIN wieder öffnen
+
EINT PIN wieder öffnen
+
Jetzt sollten wir im bootloader sein.
+
  
===boop flashen===
+
* Baudrate http://www.standardics.nxp.com/support/documents/microcontrollers/xls/lpc2000.uart.baudrate.calculator.xls
Ich gehe davon aus das ihr alle mit [[lpcload]] umgehen könnt und es installiert habt (sonst könnt ihr mit dem hier eh nichts anfangen behaupte ich mal)
+
./lpcload -d /dev/ttyS0 -f boop.hex
+
schiebt boop.hex ins ram der betty.
+
  
Jetzt wird lpcload beendet:
+
==== Display ====
<strg>-<c>
+
* Anbindung über Speicheradresse 0x81000000 (CMD) und 0x81000001 (DATA)
 +
* Kontrast einstellbar (in Grenzen)
 +
* Diverse Grafik- und Schriftfunktionen (siehe Menu>TestStuff)
 +
** Schriften
 +
** Grafik
 +
*** Bereich löschen, füllen, Linie, Rechteck, Kreise etc
  
'''Geschafft''' boop sollte nun im ram eurer betty laufen und auf eine verbindung warten.
+
=====Hintergrundbeleuchtung=====
 +
* Pin: [[LPC2220_Pin-Belegung|sck0/P0.4]]
 +
* 64 Helligkeitsstufen (Software-PWM in SoundIRQ)
 +
* Leuchtdauer einstellbar (n*[s])
 +
* Übergangsgeschwindigkeit einstellbar (n * 5 ms / Helligkeitsstufe)
  
===Verbindung zu boop herstellen===
+
====Tastatur ====
Öffnet das Terminal-Programm eurer wahl (minicom, cutecom, usw) und stellt folgende einstellungen ein:
+
Q: 'keytest' im Menü 'TestStuff' zeigt Tastaturcodes, wie kommt man da wieder raus?
Bps...........  9600
+
 
Datenbits.....    8
+
A: Batterien rein und raus! Bei dem Hintergedanken der Funktion allerdings völlig legitim.
Parität....... keine
+
 
Stopbits......    1
+
====Akkuzustand ====
Flusssteuerung keine
+
Wird in oben rechts als Batteriesymbol angezeigt.
Wenn das alles passt, solltet ihr nun mit boop verbunden sein und könnt mit * und ! testen ob boop euch versteht und mit euch reden mag. Alle anderen tastatureingaben sollten als ECHO zurück gegeben werden.
+
'bat debug' im Menü 'TestStuff' zeigt - was für Werte?
 +
 
 +
====Audio ====
 +
 
 +
=====Hardware=====
 +
P0.7/SSEL0/PWM2/EINT2    69    PWM<br\>
 +
P0.11/CTS1/CAP1.1        83     Shutdown<br\>
 +
 
 +
Verstärker: LM4876
 +
 
 +
=====Software=====
 +
Sounderzeugung (Menu>TestStuff>SID) und Wiedergabe von Samples (Menu>Credits)
 +
 
 +
====IR====
 +
Über Pin 4 (P0.21/PWM5/CAP1.3) kann die IR Diode zum Senden ein und ausgeschaltet werden.<br\>
 +
Der IR-Empfang wird über Pin 84 (P0.12/DSR1/MAT1.0) aktiviert/deaktiviert.<br\>
 +
Über Pin 32 (P0.29/AIN2/CAP0.3/MAT0.3) wird das empfangene Signal eingelesen.<br\>
 +
 
 +
====Funk====
 +
Transceiver [[CC1100]]
 +
Testweise als IR-Device eingebaut, überträgt Tastencodes an den [[SCART Adapter]] mit [[betty_scart]]
 +
 
 +
* Kommunikation Scartadapter [http://bettyhacks.com/forum/index.php?topic=114.msg826#msg826 Forum]
 +
* Transceiver CC1100 Möglichkeiten [http://bettyhacks.com/forum/index.php?topic=121.msg850#msg850 Forum]
 +
 
 +
====Uhr====
 +
I2C
 +
 
 +
 
 +
[[Category:Firmware]]

Latest revision as of 00:01, 17 February 2011

Personal tools