
البرمجيات الثابتة وأدوات البحث لأجهزة USB ولوحات التوسعة القائمة على شرائح nRF24LU1+ من Nordic Semiconductor.
برامج ثابتة وأدوات بحثية لأجهزة USB واللوحات التجريبية القائمة على شريحة nRF24LU1+ من Nordic Semiconductor.
ثبّت التبعيات على أوبونتو:
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+ مع مُحمّل إقلاع مبرمج من المصنع يملأ أعلى 2 كيلوبايت من ذاكرة الفلاش. تدعم البرامج الثابتة لـ CrazyRadio والبرامج الثابتة البحثية لـ RFStorm أوامر USB للدخول إلى مُحمّل إقلاع Nordic.
يمكن برمجة الدونغلات واللوحات التجريبية عبر USB إذا كانت تعمل بأحد البرامج الثابتة التالية:
لوميض البرنامج الثابت عبر USB:
sudo make install
تعتمد معظم دونغلات Unifying الشائعة على nRF24LU1+، لكن بعضها يستخدم شرائح من Texas Instruments. هذا البرنامج الثابت مدعوم فقط على إصدارات nRF24LU1+ ذات رقم الطراز C-U0007. سيكتشف سكريبت الوميض تلقائيًا نوع الدونغل الموصل، ولن يحاول وميض سوى إصدارات nRF24LU1+.
لوميض البرنامج الثابت عبر USB على دونغل Logitech Unifying:
sudo make logitech_install
قم بتنزيل وفك ضغط صورة البرنامج الثابت من Logitech، والتي سيكون اسمها RQR_012_005_00028.hex أو ما يشابهه. بعد ذلك، شغّل الأمر التالي لوميض البرنامج الثابت من Logitech على الدونغل:
sudo ./prog/usb-flasher/logitech-usb-restore.py [path-to-firmware.hex]
إذا تعطّل الدونغل أو اللوحة التجريبية لديك، يمكنك بدلًا من ذلك برمجته عبر SPI باستخدام Teensy.
تم اختبار هذا فقط مع Teensy 3.1/3.2، لكنه من المرجح أن يعمل مع أنواع أخرى من أردوينو أيضًا.
platformio run --project-dir teensy-flasher --target upload
sudo make spi_install
أداة اكتشاف الأجهزة بوضع شبه غير الانتقائي (Pseudo-promiscuous mode)، تمسح قائمة من القنوات وتطبع حزم 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
أداة رسم خرائط الشبكة النجمية، والتي تحاول اكتشاف العناوين النشطة في شبكة نجمية عن طريق تغيير البايت الأخير في العنوان المُعطى، وإرسال طلب ping إلى كل عنوان من 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 التجريبية التي تم اختبارها انحراف تردد يبلغ حوالي 300 كيلوهرتز، مما جعلها تستقبل الحزم على قناتين متجاورتين.
سيجعل هذا السكريبت جهاز الإرسال والاستقبال ينقل نغمة على أول قناة يتم تمريرها.
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)
أرسل نغمة مستمرة بتردد 2405 ميجاهرتز
./nrf24-continuous-tone-test.py -c 5
| Teensy | CrazyRadio PA | لوحة Sparkfun nRF24LU1+ التجريبية |
|---|
| 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 |