Login
Login-SSL
Register
Forum
Kontakt
Bitmania
2013-09-10 20:14
by bitman
AVR-NET-IO mit RFM12 Funkmodul
AVR-NET-IO

Ich hab mich mal dran gemacht die RFM12 Funkmodule in Betrieb zu nemen, die ich hier schon seit längerem herumliegen habe.

Als erste Aufgabe habe ich mir gestellt zwei AVR-NET-IOs per RFM12 zu 'verbinden'

Dabei soll der NET-IO A als gateway in das RFM12 Funk Netz dienen und ein zweiter NET-IO B als entfernter 'Rechner' nur per Funk zu erreichen.
Zuerst habe ich mir einen Adapter gebaut, nach einem Schaltplan den ich hier im Netz gefunden habe:
https://m21.hyte.de/attachment/wiki/Projekte/EthersexStromzaehler/AVR_NetIO_RFM12-ethersex-Aufsatzboard_Schema.jpg

Das ist der daraus entstandene Adapter.
Ich denke mit dem 20pol Flachbandkabel hab ich die seltsam angeordneten Wannenstecker auf dem NET-IO ganz gut in den Griff bekommen:



Schaltplan



Hier kann man die Bestückung entnehmen, der RFM12 kommt auf die Lötseite:



Layout (600dpi)



Falls es jemand nachbauen möchte, hier die Eagle Files;
file





Bevor ich den RFM12 auf die Kupferseite gelötet habe, habe ich noch Klebeetiketten drunter gemacht, damit kein Kurzschluß entsteht.



Software

Die Konfiguration der Ethersex-Software fand ich recht schwierig.
Ich hab mir darum ein paar Notizen gemacht:


Gemeinsame Vorbereitung, für beide NET-IOs gültig

Im menuconfig habe ich den Pollin NET-IO ausgewählt, und die config gespeichert.
Dann ein eigenes Pinning File erzeugt (nach dieser Anleitung: http://old.ethersex.de/index.php/Ethersex_Hardware_hinzuf%C3%BCgen)

$ scripts/add-hardware neuerprofilname


In diesem Pinning-File dann die Einstellungen für das RFM Modul vorgenommen:



vi pinning/hardware/netio.m4

ifdef(`conf_RFM12', `dnl
/* port the rfm12 module CS is attached to */
pin(SPI_CS_RFM12_0, PD5, OUTPUT)
RFM12_USE_INT(1)
/* port the LEDS for rfm12 tx/rx attached to */
pin(STATUSLED_RFM12_TX, PB0, OUTPUT)
pin(STATUSLED_RFM12_RX, PB3, OUTPUT)
')



NET-IO A - Router zwischen Ethernet und RFM12-Funk

General Setup -> Status LEDs -> Status LED (Transmitted) -> RFM12 TX
General Setup -> Status LEDs -> Status LED (Received) -> RFM12 RX
Protocols -> ECMD (Ethersex Command) support -> IP Statistics
Protocols -> ECMD (Ethersex Command) support -> Memory usage information (free)
Network -> Enable IP forwarding
Network -> Default gateway: "192.168.0.1"
Network -> Ethernet (ENC28J60) support -> MAC address: "00:22:f9:01:0c:90
Network -> Ethernet (ENC28J60) support -> IP address: "192.168.0.90
Network -> Ethernet (ENC28J60) support -> Netmask: "255.255.255.0"
Network -> IP over RFM12 (FSK transmitter) support -> (869.775MHz) RFM12 frequency
Network -> IP over RFM12 (FSK transmitter) support -> IP address: "192.168.1.1"
Network -> IP over RFM12 (FSK transmitter) support -> Netmask: "255.255.255.0"


Einloggen und nachschauen:

telnet 192.168.1.1 2701
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
ipstats
iface 0:
192.168.1.1/255.255.255.0
gw: 192.168.0.1
ip: recv 11 sent 9 drop 0
udp: recv 0 sent 0 drop 0
tcp: recv 11 sent 9 drop 0
icmp: recv 2 sent 2 drop 0
iface 1:
192.168.0.90/255.255.255.0
gw: 192.168.0.1
ip: recv 152 sent 108 drop 0
udp: recv 0 sent 0 drop 0
tcp: recv 152 sent 108 drop 0
icmp: recv 0 sent 0 drop 0


NET-IO B - entfernt, nur per Funk erreichbar

General Setup -> Status LEDs -> Status LED (Transmitted) -> RFM12 TX
General Setup -> Status LEDs -> Status LED (Received) -> RFM12 RX
Protocols -> ECMD (Ethersex Command) support -> IP Statistics
Protocols -> ECMD (Ethersex Command) support -> Memory usage information (free)
Network -> Enable IP forwarding
Network -> Default gateway: "192.168.1.1"
Network -> Ethernet (ENC28J60) support -> aus
Network -> IP over RFM12 (FSK transmitter) support -> (869.775MHz) RFM12 frequency
Network -> IP over RFM12 (FSK transmitter) support -> IP address: "192.168.1.2"
Network -> IP over RFM12 (FSK transmitter) support -> Netmask: "255.255.255.0"


Einloggen und nachschauen:

telnet 192.168.1.2 2701
Trying 192.168.1.2...
Connected to 192.168.1.2.
Escape character is '^]'.
ipstats
iface 0:
192.168.1.2/0.0.0.0
gw: 192.168.1.1
ip: recv 59 sent 65 drop 1
udp: recv 0 sent 0 drop 0
tcp: recv 18 sent 30 drop 1
icmp: recv 42 sent 42 drop 0


Rechner (Debian Linux)

Die RFM12 spannen ein eigenes, zusätzliches Netz auf.
Man kann es z.B. so machen:
- 192.168.0.0/24 Ethernet-Netz
- 192.168.1.0/24 RFM12-Netz
Damit man einen NET-IO über RFM12 erreichen kann, muß man die Routing Tabelle auf dem eigenen Rechner anpassen.
Bedeutet: Hosts im Netz 192.168.1.0/24 sind über NET-IO A, also 192.168.0.90 erreichbar

root@scovery $ route add -net 192.168.1.0/24 gw 192.168.0.90
root@scovery $ netstat -rnv
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 192.168.0.90 255.255.255.0 UG 0 0 0 eth0


Die Route reboot fest machen:

root@scovery $ echo "route add -net 192.168.1.0/24 gw 192.168.0.90" >> /etc/network/interfaces






Hier sieht man die zwei NET-IOs wie sie sich gerade miteinander unterhalten:




Da ergeben sich nun völlig neue spannende Möglichkeiten...