Funk2Duo: Unterschied zwischen den Versionen
Stesie (Diskussion | Beiträge) (Seite importiert.) |
Stesie (Diskussion | Beiträge) K (Tabelle korrigiert) |
||
Zeile 12: | Zeile 12: | ||
Der Restore-Taster-Pin (verbunden auf den Eingang des Reset-Tasters) ist insoweit problematisch als dass | Der Restore-Taster-Pin (verbunden auf den Eingang des Reset-Tasters) ist insoweit problematisch als dass | ||
− | * man durch Tasterdruck den MISO-Pin des RFM12 gegen Vcc schalten kann | + | * man durch Tasterdruck den MISO-Pin des RFM12 gegen Vcc schalten kann -> es sollte also ein Widerstand (ich hab' 1000 Ohm) dazwischen |
* der Taster ist normalerweise durch einen kleinen C auf der Platinenvorderseite entprellt. Dieser Kondensator muss weg, sonst wird's nichts mit dem Digital-Eingang | * der Taster ist normalerweise durch einen kleinen C auf der Platinenvorderseite entprellt. Dieser Kondensator muss weg, sonst wird's nichts mit dem Digital-Eingang | ||
Zeile 22: | Zeile 22: | ||
=== Pinning === | === Pinning === | ||
− | || | + | {| border="1" |
− | GPIO1 | in | nIRQ | + | | '''GPIO Pin ''' |
− | GPIO4 | out | SCK | + | | '''Datenrichtung ''' |
− | GPIO5 | out | MOSI | + | | '''Pin am RFM12 ''' |
− | GPIO6 | in | MISO (via 1 kOhm Widerstand) | + | |- |
− | GPIO7 | out | nSEL | | + | | GPIO1 |
+ | | in | ||
+ | | nIRQ | ||
+ | |- | ||
+ | | GPIO4 | ||
+ | | out | ||
+ | | SCK | ||
+ | |- | ||
+ | | GPIO5 | ||
+ | | out | ||
+ | | MOSI | ||
+ | |- | ||
+ | | GPIO6 | ||
+ | | in | ||
+ | | MISO (via 1 kOhm Widerstand) | ||
+ | |- | ||
+ | | GPIO7 | ||
+ | | out | ||
+ | | nSEL | ||
+ | |} | ||
Vcc (+3,3 Volt) und GND solltest Du selbst finden, wenn Du ebenfalls einen Router modden möchtest :-) | Vcc (+3,3 Volt) und GND solltest Du selbst finden, wenn Du ebenfalls einen Router modden möchtest :-) | ||
− | + | == und so sieht's dann aus: == | |
<pre> | <pre> | ||
root@funkrouter:/tmp# insmod ./rfm12.o | root@funkrouter:/tmp# insmod ./rfm12.o | ||
Zeile 41: | Zeile 60: | ||
</pre> | </pre> | ||
− | + | == inzwischen gibt's sogar ein bißchen Statistik: == | |
<pre> | <pre> | ||
rfm12 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 | rfm12 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 |
Version vom 27. März 2009, 17:35 Uhr
Inhaltsverzeichnis
Funk2Duo - Asus WL-500g Hardware modding
... oder konkreter: wir zeigen einem WLAN-Router, wie man nicht nur WLAN, sondern auch IP over RFM12 spricht.
Das Ganze geht zurück auf eine Idee von stesie, zunächst sollte ein RFM12 USB-Dongle entstehen. Auf der Fahrt zur Arbyte kam dann die Idee, dass es ja wohl wesentlich schicker wäre, das Funkmodul nicht irgendwo dran zu stöpseln, sondern gleich im WLAN-Router zu verstecken.
Gesagt, getan. Es kann ja nicht so schwer sein, einen RFM12 auf einem Router nachzurüsten :-)
Nunja, ganz so einfach war's dann auch wieder nicht. Auf dem Board des Routers mussten zunächst fünf Pins gefunden werden, welche direkt vom Prozessor gesteuert werden können (SPI Eingang/Ausgang, Clock, Chip Select und eine Interrupt Leitung). stesie fand zunächst sogar einen Atmel EEPROM, der per SPI angebunden war. Leider führen die Leiterbahnen die vom Speicher weg führen direkt zum Switch-Chip und von dort nicht weiter zur CPU. Nach zwei langen Abenden der Pin-Suche waren dann fünf Pins aufgetan, welche vielversprechend aussahen:
Der Restore-Taster-Pin (verbunden auf den Eingang des Reset-Tasters) ist insoweit problematisch als dass
- man durch Tasterdruck den MISO-Pin des RFM12 gegen Vcc schalten kann -> es sollte also ein Widerstand (ich hab' 1000 Ohm) dazwischen
- der Taster ist normalerweise durch einen kleinen C auf der Platinenvorderseite entprellt. Dieser Kondensator muss weg, sonst wird's nichts mit dem Digital-Eingang
Der Quellcode liegt im Git unter http://git.brokenpipe.de/cgi-bin/gitweb.cgi?r=stesie;p=broadcom-rfm12;a=summary
Fertig implantiert sieht das Ganze dann so aus:
Pinning
GPIO Pin | Datenrichtung | Pin am RFM12 |
GPIO1 | in | nIRQ |
GPIO4 | out | SCK |
GPIO5 | out | MOSI |
GPIO6 | in | MISO (via 1 kOhm Widerstand) |
GPIO7 | out | nSEL |
Vcc (+3,3 Volt) und GND solltest Du selbst finden, wenn Du ebenfalls einen Router modden möchtest :-)
und so sieht's dann aus:
root@funkrouter:/tmp# insmod ./rfm12.o root@funkrouter:/tmp# ifconfig rfm12 192.168.5.23 up root@funkrouter:/tmp# ping 192.168.5.100 PING 192.168.5.100 (192.168.5.100): 56 data bytes 64 bytes from 192.168.5.100: seq=0 ttl=64 time=175.834 ms
inzwischen gibt's sogar ein bißchen Statistik:
rfm12 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:192.168.5.23 Bcast:192.168.5.255 Mask:255.255.255.0 UP BROADCAST RUNNING NOARP MULTICAST MTU:254 Metric:1 RX packets:164 errors:0 dropped:0 overruns:0 frame:0 TX packets:73 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 RX bytes:15884 (15.5 KiB) TX bytes:9005 (8.7 KiB)