Нет описания

vad7 86edb2f25d fix for some fake nRF24 2 лет назад
Distr 86edb2f25d fix for some fake nRF24 2 лет назад
lib 7739408354 added bit shift in sniff mode for better detection 3 лет назад
Gerber_PCB_Flipper Zero nRF24 board mini_v1_0.zip 93953ad248 gerber added 2 лет назад
Gerber_PCB_Flipper Zero nRF24 board_v1_0.zip 93953ad248 gerber added 2 лет назад
LICENSE 2d95840136 Create LICENSE 3 лет назад
README.md 2052ff7679 mini NRF24 board support - 5V auto power on 2 лет назад
Screenshot-1.png 79027ae52d Release v1.15 3 лет назад
Screenshot-2.png ec54c52a26 upd 3 лет назад
Screenshot-3.png 24d7beabb0 upd 3 лет назад
Screenshot-4.png ad41c9a294 Decode CRC in ESB packets scanned as non-ESB and marking them 3 лет назад
Screenshot-5.png ad41c9a294 Decode CRC in ESB packets scanned as non-ESB and marking them 3 лет назад
Screenshot-6.png 04c924bb88 v2.1 3 лет назад
Screenshot-7.png 04c924bb88 v2.1 3 лет назад
application.fam 4fe19b28f5 init 3 лет назад
nrf24_packet_decoder.py 7739408354 added bit shift in sniff mode for better detection 3 лет назад
nrf24scan.c 86edb2f25d fix for some fake nRF24 2 лет назад
nrf24scan.h 8a241131de fix valuemutex 2 лет назад
nrf24scan_10px.png 4fe19b28f5 init 3 лет назад
scheme.png 93953ad248 gerber added 2 лет назад
scheme2.png f41aa46ae4 upd 2 лет назад

README.md

NRF24 scanner with logging and resend ability for Flipper Zero

An NRF24 driver for the Flipper Zero device. The NRF24 is a popular line of 2.4GHz radio transceivers from Nordic Semiconductors.
NRF24L01+ Enhanced ShockBurst packet decoder example using Python: nrf24_packet_decoder.py

Flipper Zero FAP file: Nrf24_Scanner.fap



Приложение для Flipper Zero, читающее эфир на радиомодулях nRF24L01.
Выбор пукта меню - стрелки вверх/вниз, стрелки влево/вправо либо изменют настройки либо управляют видом списка, кнопка ОК либо выбирает режим (короткое нажатие), либо выполняет дополнительное действие (длительное нажатие).


По умолчанию при запуске включается режим поиска (sniff) - ищутся все валидные пакеты с корректным заголовком и CRC.
Размер CRC и тип пакета (Enhanced ShockBurst или нет) задается. CRC может быть или 1 или 2 байта.
Так как пакеты читаются в RAW формате, то длина полезной нагрузки не может быть больше 23 байт, пакеты с большей длинной не будут пойманы.
В настройках задается минимальный размер нагрузки (payload)
После принятия, пакет сдвигается побитно и валидируется. Побитный сдвиг сильно увеличивает вероятность отлова пакета, но так же увеличивается количество мусорных пакетов.
Количество уникальных адресов запоминается (просмотр - стрелка вниз в режиме просмотра адресов)
После поиска можно переключиться в режим сканирования по найденным адресам или сканировать адрес конкретного пакета или группы адресов с различным LSB в адресе


Адреса, которые попались дважды и более раз отображаются списком:


Изменение режима sniff/scan - стрелками на пункте Scan.

Режим сканирования (scan) - просто чтение пакетов по заданным в настройках мак адресам и виду пакета - ESB/DPL.
На начальном экране в режиме чтения можно загрузить файл настроек (по умолчанию загружается settings.txt из папки nrf24_scanner на SD карте).
В файле настройке задаются адреса (максимум 6) в шестнадцатеричном виде (старший байт - первый), длина адреса вычисляется по P0.
Остальные настройки можно поменять интерактивно
Настройки сохраняются длительным нажатием на ОК.

Описание настроек:
Ch - номер канала.
Rate - скорость передачи данных
Next Ch time - через сколько секунд будет увеличен номер канала
Log - выбор режима авто сохраннения в файлы log-xx.txt. Yes - сохранять в новый файл при заполнении буфера в 99 записей, Append - добавлять в последний файл, Clear - только очистка буфера

В пунктах Ch, Rate, Next при нажатии OK меняются параметры связи:
ESB - Enhanced ShockBurst (включена автоотправка подтверждения получения пакета, работающий приемник тоже попытается это сделать, возможны коллизии)
DPL - Динамический пакет
CRC1/2 - Размер CRC в байтах
Payload - размер пакета в байтах

Просмотр принятых пакетов


В пункте "Start scan/sniff" можно выбрать стрелками сканировать и смотреть или просто смотреть (view).
Если в файле настройки было несколько адресов, то первая цифра - номер канала (pipe) от 0 до 5.
Стрелки - перемещение по списку и горизонтальное скролирование
Долгий OK - отправка пакета
OK - вход в режим просмотра адресов и включения декодирования заголовка ESB пакета и CRC.
При декодировании заголовка (PCF) - первые 2 цифры - длина пакета в hex или 33, если длина пакета фиксирована
3-я цифра - PID (2bit) << 1 + флаг NO_ACK
Если включен режим декодирования CRC, то по всему пакету ищется подходящая CRC и подчеркивается в списке, а так же вместо ":" выводится "=" после номера записи в буфере





Схема подключения модуля nRF24l01:
Big board:
Gerber for full board (https://raw.githubusercontent.com/vad7/nrf24scan/master/Gerber_PCB_Flipper%20Zero%20nRF24%20board_v1_0.zip)
Easyeda source (https://oshwlab.com/vad7/flipper-zero-nrf24-board).

Mini board:


Gerber for mini board with 5V - 3.3V converter LM1117-3.3 (https://raw.githubusercontent.com/vad7/nrf24scan/master/Gerber_PCB_Flipper%20Zero%20nRF24%20board%20mini_v1_0.zip)
Easyeda source (https://oshwlab.com/vad7/flipper-zero-nrf24-board_copy).




Settings file (default addr.txt) format:

Rate: 0/1/2 - rate in Mbps (=0.25/1/2)
Ch: 0..125 - default channel
ESB: 0/1 (1 - Enhanced ShockBurst)
DPL: 0/1 (1 - Dynamic Payload Length)
CRC: 0/1/2 (CRC length)
Payload: 1..32 (bytes)
P0: address pipe #0 in hex (max 5 bytes, LSB last)
P1: address pipe #1 in hex (max 5 bytes, LSB last)
P2: address pipe #2, LSB in hex (1 byte)
P3: address pipe #3, LSB in hex (1 byte)
P4: address pipe #4, LSB in hex (1 byte)
P5: address pipe #5, LSB in hex (1 byte)
captured data in raw format, first byte = address # 0..5, Payload len if DPL
... up to MAX_LOG_RECORDS-1

In the list of the received:
Press OK - send the packet,
Long press OK - view addresses.

Decode the Packet Control Field and check CRC (long press OK in the list and then press '<' / '>').
ESB (Enhanced Shockburst) option must be turned off. Press '>' to decode CRC.
1 - pipe #
2 - Payload length (for valide packet must be 1..20 or 33 hex)
3 - PID (2 bit) + NO_ACK (1 bit)



PinOut from from NoComp/Frog

NRF24 pinout by UberGuidoZ

2/A7 on FZ goes to MOSI/6 on nrf24l01
3/A6 on FZ goes to MISO/7 on nrf24l01
4/A4 on FZ goes to CSN/4 on nrf24l01
5/B3 on FZ goes to SCK/5 on nrf24l01
6/B2 on FZ goes to CE/3 on nrf24l01
8/GND on FZ goes to GND/1 on nrf24l01
9/3V3 on FZ goes to VCC/2 on nrf24l01
IRQ/8 is left disconnected on nrf24l01 NRF_Pins If the nRF module is acting a bit flakey, try adding a capacitor to the vcc/gnd lines! I've not tried the Plus model so it may have a bigger need for a cap. Otherwise, I haven't had any major issues. Anything from a 3.3 uF to 10 uF should do. (Watch your positive/negative placement! Negative to ground.) I learned if you wanna get fancy, include a 0.1 uF cap in parallel. The 3.3 uF to 10 uF will respond to slow freq changes while the 0.1 uF will respond to the high freq switching spikes that the larger one cannot. That said, a single 10 uF will likely suffice for the Mousejack attack. ¯\_(ツ)_/¯ NRF_Capacitor