Hallo, kann mir einer sagen, wie ich ZigBee 802.15.4 Packete zur Analyse mitsniffen kann? Dabei suche ich eigentlich speziel etwas für die Bandbreite 868/915 Mhz. Ich arbeite zur Zeit hauptsächlich mit den Atmega ZigBit-900 Chips. Ich habe bei Atmega auch das AVRRZ541 AVR Z-Link Kit für 2.4 GHz gefunden. Das gibt es aber eben nicht für 868/915Mhz. Außerdem ist da Daintree Networks SNA dabei. Auf der Daintree Seite steht aber, dass dies seit März 2010 nicht mehr vertrieben wird. Ich hab noch Wisens Classic gefunden, dass scheint auch nur von 2006 zu sein und nicht mehr aktualisiert zu werden und in der Bandbreite 868/915Mhz gibt es dort wohl nichts, ausserdem ist das ein bissel teuer mit 800$. Ich hab noch den ZENA Network Analyzer gefunden, aber eben wieder nur 2,4Ghz. Online Analyse wäre zwar schön, aber offline Analyse wäre auch schon was. In Wireshark ist ja ZigBee schon implementiert. Sollte doch eigentlich nicht so schwer sein, dass ein ZigBit USB Dongle z.B. AtAny900 einfach alles mitsnifft, wie es bei WLAN auch möglich ist. Weiss jemand, ob es irgendetwas vernünftiges gibt in dieser Richtung oder wie man das genau macht? Für Hilfe wäre ich dankbar Grüße winny
Ich habe sowas mal mit uracoli gebaut, die ANY USB Sticks sind in dem Paket zwar noch nicht drin, aber mit ZigBit/Meshbean gehts, bzw. auch mit den DE RCBs + Sensor Terminal board / STK541. Als Interface zw. serieller Schnittstelle und Wireshark dient ein Python Script, das eine "Named Pipe" aufmacht (Unter Windows haengen manchmal ein paar Pakete, was aber an der Wireshark Seite zu liegen scheint). In dem Script kannst du auch Modulation und Kanal einstellen. - http://download.savannah.gnu.org/releases/uracoli/apps/ - u5isniffer-lin-0.2.rc1.zip enthaelt nur den Python Code - u5isniffer-win-0.2.rc1.zip enthaelt zusaetzlich ein py2exe Version des Scripts
Danke schonmal. Heute sind STB Boards angekommen. Ich werde das jetzt mit denen ausprobieren. Bin schon gespannt, ob das klappt. Mit den AtAny 900 Modulen hat das nicht geklappt. Keine Ahnung, was hier wieder gebraucht wird, sind ja nicht soviel anders als die Meshnetics Boards. Ich hab aber auch nicht verstanden, welcher USB Treiber hier zu benutzen wäre, der im Pakage hatte nicht geklappt. Und eigentlich ist ja auf dem Meshnetics auch der CP2102 und auf den AtAny900 Dongle der Cp2103 Chip drauf. Dafür war der Treiber ja bereits installiert und nicht der aus dem uracoli Pakage. Ich werd sehen, wie weit ich jetzt komme. Gruß
Hallo, kannst Du mir kurz mitteilen, wie Du diese Sniffer-Lösung auf dem Meshbean-Board (Zigbit-Modul mit 86RF212 und ATmega1281) zum Laufen gebracht hast ? Die im zip-File enthaltenen Firmware-Files beziehen sich ja wohl auf andere Plattformen ? Gruß und danke Peter
Hallo Peter, 2011 ist nun schon eine Weile her, da sah das Paket noch etwas anders aus. Aktuell nimmst du fuer das Zigbit-Modul mit AT86RF212 und ATmega1281 die any900st firmware. Das Any900 ist intern zum Zigbit kompatibel verdrahtet. Es verwendet den UART-1 des ATmega1281. Die Settings fuer den UART1 sind 38400 8N1. Bitte das Paket uracoli-sniffer-0.3.1.zip verwenden, dort stimmt die Baudrate. Ich werde wohl in der naechsten Release eine Meshbean-Firmware (230,212) beilegen, da die Frage nach einem Zigbit-Sniffer auch schon mal bei AVR Freaks auftauchte.
http://www.ti.com/tool/packet-sniffer Software ist kostenlos, man braucht einen dongle aber die sind auch nicht so teuer. Ich benutze es fuer Bluetooth 4.0 und da bezahlte ich 50 euro fuer starterkit (dongle+evaluation board). Da brauchst du einen dongle fuer Zigbee.
Patrick C. schrieb: > Da brauchst du einen > dongle fuer Zigbee. Ah ja. Und wo genau findet man selbige bei TI für 868/916 MHz? ;-)
> Ah ja. Und wo genau findet man selbige bei TI für 868/916 MHz? ;-)
Ja, da hast du recht, das hatte ich nicht gut gelesen...
Danke für den Hinweis, nun funktioniert alles wie gewünscht. Peter
>nun funktioniert alles wie gewünscht.
Schoen! Weitere Wuensche und Anregungen gern auch per
Mailingliste uracoli-devel at nongnu dot org
(bitte in englisch).
Hallo, ich hab das damals mit dem Dresden Elektronik Board hinbekommen. Mit der aktuellen Version bekomme ich es unter Windows mit dem Any900 Stick auch hin mitzusniffen. Wir haben allerdings auch eigene Module, die den ZigBit900-Chip benutzen. Mit diesen funktioniert die Firmware des Any900 Sticks nicht. Mir ist nicht so ganz klar woran das liegt. Es wird ebenfalls die Uart1 benutzt. Den einzigen Unterschied, den ich sehe ist, dass wir einen FTDI FT232 als USB-Uart Bridge einsetzten. Mit einer CP2102 USB-Uart Bridge hat es allerdings auch nicht funktioniert. Der Any900 benutzt den CP2103, aber daran kann es doch eigentlich nicht liegen, oder? Grüße Markus
Noch zur Info: Das Python Programm sniffer_io.py hängt sich mit der folgenden Fehlermeldung auf: File "C:\Users\krausse\Downloads\Sniffer_mit_Wireshark\uracoli-sniffer- racoli-sniffer-0.3.1\script\sniffer_io.py", line 175, in info 'tscale' : self.tscale, AttributeError: PortIn instance has no attribute 'tscale' Wenn ich das Attribut auskommentiere fehlen die nächsten Attribute ticknb,rates und plattform. Grüße Markus
Da stimmt was mit der seriellen Schnittstelle nicht.
Am besten mal ein Terminal aufmachen und dann
Reset am Board druecken. Danach erscheint:
====================================
Sniffer V0.1 [<boardname>]
====================================
Mit dem Kommando "parms" sollte die
Ausgabe in etwa wie folgt aussehen:
====================================
> parms
PLATFORM: stb231 V0.1
SUPP_CMSK: 0x7fff800
CURR_CMSK: 0x7fff800
CURR_CHAN: 11
CURR_PAGE: 0
CURR_RATE: OQPSK250
SUPP_RATES: OQPSK250 OQPSK500 OQPSK1000 OQPSK2000
TIMER_SCALE: 1.0/8000000
TICK_NUMBER: 65536
CHKCRC: 0
MISSED_FRAMES: 0
OK
====================================
Folgende Ideen zur Fehlersuche:
1) COM-Port von zwei Programmen zugleich geoeffnet
2) Falsche Baudrate
3) Hardware-Handshake enabled --> muss aus sein.
Achso, ich hatte das vorige Post uebersehen. Sind die Fuses des Zigbits auf 8MHz internal RC OSC, LowFuse = 0xe2 (default ist glaube ich 0x62 -> 1MHz, dann stimmt die Baudrate nicht). Die UART bridge CP2103 oder FTDI wuerde ich nicht in Verdacht haben, wenn sie prinzipiell zuvor schon mal gegangen ist.
Ich habe daheim jetzt nur Module mit 2400MHz ZigBit Chip. Aber damit klappt es jetzt nachdem ich die Fuse auf 0xe2 gesetzt habe. Die 900Mhz Module kann ich erst wieder am Donnerstag testen, aber das sollte dann ja auch gehen. Vielen Dank. So ganz verstanden hab ich das mit der Fuse aber nicht oder besser gesagt warum funktioniert die serielle Schnittstelle jedesmal, wenn ich eine Firmware mit AVRStudio 5.1/Bitcloud bzw. AVRStudio 5.1/MAC-Stack erstelle. Ich kann dann die Fuse setzen wie ich will. Die Ausgabe funktioniert jedes Mal. F_CPU bleibt immer auf 8000000UL. Da frag ich mich jetzt natürlich, wie dies dort gelöst wurde???
Markus K. schrieb: > So ganz verstanden hab ich das mit der Fuse aber nicht oder besser > gesagt warum funktioniert die serielle Schnittstelle jedesmal, wenn ich > eine Firmware mit AVRStudio 5.1/Bitcloud bzw. AVRStudio 5.1/MAC-Stack > erstelle. Vermutlich benutzt du deren "ELF production file", welches die Fuse-Einstellungen mit beinhaltet. Oder aber, sie setzen den clock prescaler einfach zur Laufzeit. Könnte man natürlich auch in µracoli einbauen.
Ich benutze schon das hex-File. Und die Fuse kann ich auch noch ändern nachdem die Firmware auf dem Chip ist. Ändert auch nix. Muss dann eher die zweite Lösung sein. Bedeutet das die Fuses werden zur Laufzeit ausgelesen oder wie darf ich mir das vorstellen?
Die Fuses verdrahten u.a. fest die Clockauswahl in der MCU, man kann sie zur Laufzeit im Programm zwar lesen, aber das dient nur fuer Diagnose-Zwecke. Nicht einmal der Bootloader kann die Werte der Fuses aendern, das geht nur mit einem externen Programmer, ISP, JTAG oder HighVoltage. Leider kenne ich mich mit AVR-Studio gar nicht aus, so dass ich keine Ahnung habe, wann welches Studio-Modul an welchen Einstellungen dreht. Ich errinnere mich nur mit Grausen an ein Setting in der GUI, das die EESAVE-Fuse per Software ausser Kraft setzte, d.h. trotz gesetzter Fuse war nach einem Programmierzyklus der EEPROM Inhalt 0xff :-(
Mit einem DVB-T Stick (R820t und RTL2832), gnu radio und UCLA ZigBee sollte man doch eigentlich auch einen Packet Sniffer zusammenclicken können, oder?
Markus K. schrieb: > Bedeutet das die Fuses werden zur Laufzeit > ausgelesen oder wie darf ich mir das vorstellen? Man kann zur Laufzeit den clock prescaler neu einstellen. Die CKDIV8-Fuse legt lediglich fest, ob initial beim Reset ein 1:8-Vorteiler bereits aktiviert ist oder nicht. Zur Laufzeit kann man aber beliebig zwischen 1:1 und 1:256 (bei macnhen AVRs auch bis 1:1024) einstellen. Damit ist man völlig unabhängig von der CKDIV8-Fuse.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.