Funk2Duo: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
(Seite importiert.)
 
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 (:arrow:) es sollte also ein Widerstand (ich hab' 1000 Ohm) dazwischen
+
* 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 ===
|| __GPIO Pin  __ | __Datenrichtung   __ | __Pin am RFM12  __
+
{| 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: ===
+
== 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: ===
+
== 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, 18:35 Uhr

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:

Aufnahme von der Router-Platine

Gpio-map.jpg

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:

Asus-mod-fertig.jpg

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)