
Nordic Semiconductor nRF24LU1+ आधारित USB डोंगल और ब्रेकआउट बोर्ड के लिए फर्मवेयर और रिसर्च टूल्स।
Nordic Semiconductor nRF24LU1+ आधारित USB डोंगल और ब्रेकआउट बोर्ड के लिए फर्मवेयर और अनुसंधान उपकरण।
Ubuntu पर निर्भरताएँ स्थापित करें:
sudo apt-get install sdcc binutils python python-pip
sudo pip install -U pip
sudo pip install -U -I pyusb
sudo pip install -U platformio
निम्नलिखित हार्डवेयर का परीक्षण किया गया है और यह कार्य करने के लिए जाना जाता है।
make
nRF24LU1+ चिप्स फैक्ट्री-प्रोग्राम्ड बूटलोडर के साथ आते हैं जो फ्लैश मेमोरी के सबसे ऊपरी 2KB हिस्से पर कब्जा करता है। CrazyRadio फर्मवेयर और RFStorm अनुसंधान फर्मवेयर Nordic बूटलोडर में प्रवेश करने के लिए USB कमांड का समर्थन करते हैं।
डोंगल और ब्रेकआउट बोर्ड को USB के माध्यम से प्रोग्राम किया जा सकता है यदि वे निम्नलिखित में से कोई एक फर्मवेयर चला रहे हैं:
USB के माध्यम से फर्मवेयर फ्लैश करने के लिए:
sudo make install
सबसे सामान्य Unifying डोंगल nRF24LU1+ पर आधारित हैं, लेकिन कुछ Texas Instruments के चिप्स का उपयोग करते हैं। यह फर्मवेयर केवल nRF24LU1+ वेरिएंट पर समर्थित है, जिनका मॉडल नंबर C-U0007 है। फ्लैशिंग स्क्रिप्ट स्वचालित रूप से पता लगाएगी कि किस प्रकार का डोंगल प्लग इन है, और केवल nRF24LU1+ वेरिएंट को फ्लैश करने का प्रयास करेगी।
Logitech Unifying डोंगल पर USB के माध्यम से फर्मवेयर फ्लैश करने के लिए:
sudo make logitech_install
Logitech फर्मवेयर इमेज डाउनलोड करें और निकालें, जिसका नाम RQR_012_005_00028.hex या समान होगा। फिर, डोंगल पर Logitech फर्मवेयर फ्लैश करने के लिए निम्नलिखित कमांड चलाएँ:
sudo ./prog/usb-flasher/logitech-usb-restore.py [path-to-firmware.hex]
यदि आपका डोंगल या ब्रेकआउट बोर्ड बेकार हो गया है, तो आप वैकल्पिक रूप से Teensy का उपयोग करके इसे SPI के माध्यम से प्रोग्राम कर सकते हैं।
इसका परीक्षण केवल Teensy 3.1/3.2 के साथ किया गया है, लेकिन यह अन्य Arduino वेरिएंट के साथ भी कार्य कर सकता है।
platformio run --project-dir teensy-flasher --target upload
| Teensy | CrazyRadio PA | Sparkfun nRF24LU1+ Breakout |
|---|---|---|
| GND | 9 | GND |
| 8 | 3 | RESET |
| 9 | 2 | PROG |
| 10 | 10 | P0.3 |
| 11 | 6 | P0.1 |
| 12 | 8 | P0.2 |
| 13 | 4 | P0.0 |
| 3.3V | 5 | VIN |
sudo make spi_install
सूडो-प्रोमिस्क्युअस मोड डिवाइस डिस्कवरी टूल, जो चैनलों की एक सूची को स्कैन करता है और डीकोड किए गए Enhanced Shockburst पैकेट प्रिंट करता है।
usage: ./nrf24-scanner.py [-h] [-c N [N ...]] [-v] [-l] [-p PREFIX] [-d DWELL]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
-p PREFIX, --prefix PREFIX Promiscuous mode address prefix
-d DWELL, --dwell DWELL Dwell time per channel, in milliseconds
चैनल 1-5 पर डिवाइसों को स्कैन करें
./nrf24-scanner.py -c {1..5}
सभी चैनलों पर उन डिवाइसों को स्कैन करें जिनका पता 0xA9 से शुरू होता है
./nrf24-scanner.py -p A9
डिवाइस का अनुसरण करने वाला स्निफर, जो किसी विशिष्ट nRF24 डिवाइस का अनुसरण करता है जब वह हॉप करता है, और डिवाइस से डीकोड किए गए Enhanced Shockburst पैकेट प्रिंट करता है।
usage: ./nrf24-sniffer.py [-h] [-c N [N ...]] [-v] [-l] -a ADDRESS [-t TIMEOUT] [-k ACK_TIMEOUT] [-r RETRIES]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
-a ADDRESS, --address ADDRESS Address to sniff, following as it changes channels
-t TIMEOUT, --timeout TIMEOUT Channel timeout, in milliseconds
-k ACK_TIMEOUT, --ack_timeout ACK_TIMEOUT ACK timeout in microseconds, accepts [250,4000], step 250
-r RETRIES, --retries RETRIES Auto retry limit, accepts [0,15]
सभी चैनलों पर पते 61:49:66:82:03 से पैकेट स्निफ करें
./nrf24-sniffer.py -a 61:49:66:82:03
स्टार नेटवर्क मैपर, जो दिए गए पते में अंतिम बाइट बदलकर स्टार नेटवर्क में सक्रिय पतों को खोजने का प्रयास करता है, और चैनल सूची के प्रत्येक चैनल पर 256 संभावित पतों में से प्रत्येक को पिंग करता है।
usage: ./nrf24-network-mapper.py [-h] [-c N [N ...]] [-v] [-l] -a ADDRESS [-p PASSES] [-k ACK_TIMEOUT] [-r RETRIES]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
-a ADDRESS, --address ADDRESS Known address
-p PASSES, --passes PASSES Number of passes (default 2)
-k ACK_TIMEOUT, --ack_timeout ACK_TIMEOUT ACK timeout in microseconds, accepts [250,4000], step 250
-r RETRIES, --retries RETRIES Auto retry limit, accepts [0,15]
उस स्टार नेटवर्क का मैप करें जिससे पता 61:49:66:82:03 संबंधित है
./nrf24-network-mapper.py -a 61:49:66:82:03
nRF24LU1+ चिप्स में एक निरंतर टोन संचारित करने के लिए एक परीक्षण तंत्र शामिल है, जिसकी आवृत्ति को सत्यापित किया जा सकता है यदि आपके पास SDR तक पहुँच है। डिवाइसों के बीच आवृत्ति ऑफसेट के कारण अप्रत्याशित व्यवहार होने की संभावना है। उदाहरण के लिए, परीक्षण किए गए SparkFun ब्रेकआउट बोर्डों में से एक में ~300kHz का आवृत्ति ऑफसेट था, जिसके कारण यह दो आसन्न चैनलों पर पैकेट प्राप्त करता था।
यह स्क्रिप्ट ट्रांसीवर को पहले पास किए गए चैनल पर एक टोन संचारित करने के लिए प्रेरित करेगी।
usage: ./nrf24-continuous-tone-test.py [-h] [-c N [N ...]] [-v] [-l]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
2405MHz पर निरंतर टोन संचारित करें
./nrf24-continuous-tone-test.py -c 5