{"id":13676194,"url":"https://github.com/vad7/nrf24scan","last_synced_at":"2025-04-29T03:30:37.925Z","repository":{"id":82910989,"uuid":"569747055","full_name":"vad7/nrf24scan","owner":"vad7","description":"NRF24 scanner with resend ability for Flipper Zero","archived":false,"fork":false,"pushed_at":"2023-06-10T07:07:14.000Z","size":385,"stargazers_count":124,"open_issues_count":2,"forks_count":2,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-11-11T17:45:54.004Z","etag":null,"topics":["flipper","flipper-plugin","flipper-zero","flipperzero","nrf24l01"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vad7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-11-23T14:20:58.000Z","updated_at":"2024-10-24T19:19:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"694085e0-ee39-4585-8af5-fcc113cc20c0","html_url":"https://github.com/vad7/nrf24scan","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vad7%2Fnrf24scan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vad7%2Fnrf24scan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vad7%2Fnrf24scan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vad7%2Fnrf24scan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vad7","download_url":"https://codeload.github.com/vad7/nrf24scan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251426712,"owners_count":21587635,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flipper","flipper-plugin","flipper-zero","flipperzero","nrf24l01"],"created_at":"2024-08-02T13:00:20.010Z","updated_at":"2025-04-29T03:30:37.533Z","avatar_url":"https://github.com/vad7.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"#  NRF24 scanner with logging and resend ability for Flipper Zero\n\nAn [NRF24](https://www.sparkfun.com/datasheets/Components/SMD/nRF24L01Pluss_Preliminary_Product_Specification_v1_0.pdf) driver for the [Flipper Zero](https://flipperzero.one/) device. The NRF24 is a popular line of 2.4GHz radio transceivers from Nordic Semiconductors.\u003cbr\u003e\nNRF24L01+ Enhanced ShockBurst packet decoder example using Python: [nrf24_packet_decoder.py](https://raw.githubusercontent.com/vad7/nrf24scan/master/nrf24_packet_decoder.py)\u003cbr\u003e\n\u003cbr\u003e\nFlipper Zero FAP file: [Nrf24_Scanner.fap](https://raw.githubusercontent.com/vad7/nrf24scan/master/Nrf24_Scanner.fap)\n\u003cbr\u003e\u003cbr\u003e\n___________________________________________________________________________\n\u003cbr\u003e\n\u003cb\u003eПриложение для Flipper Zero, читающее эфир на радиомодулях nRF24L01.\u003c/b\u003e\u003cbr\u003e\nВыбор пукта меню - стрелки вверх/вниз, стрелки влево/вправо либо изменют настройки либо управляют видом списка, кнопка ОК либо выбирает режим (короткое нажатие), либо выполняет дополнительное действие (длительное нажатие).\u003cbr\u003e\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/vad7/nrf24scan/master/Screenshot-1.png\"\u003e\u003cbr\u003e\nПо умолчанию при запуске включается режим поиска (sniff) - ищутся все валидные пакеты с корректным заголовком и CRC.\u003cbr\u003e\nРазмер CRC и тип пакета (Enhanced ShockBurst или нет) задается. CRC может быть или 1 или 2 байта.\u003cbr\u003e\nТак как пакеты читаются в RAW формате, то длина полезной нагрузки не может быть больше 23 байт, пакеты с большей длинной не будут пойманы.\u003cbr\u003e\nВ настройках задается минимальный размер нагрузки (payload)\u003cbr\u003e\nПосле принятия, пакет сдвигается побитно и валидируется. Побитный сдвиг сильно увеличивает вероятность отлова пакета, но так же увеличивается количество мусорных пакетов.\u003cbr\u003e\nКоличество уникальных адресов запоминается (просмотр - стрелка вниз в режиме просмотра адресов)\u003cbr\u003e\nПосле поиска можно переключиться в режим сканирования по найденным адресам или сканировать адрес конкретного пакета или группы адресов с различным LSB в адресе\u003cbr\u003e\n\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/vad7/nrf24scan/master/Screenshot-6.png\"\u003e\n\u003cbr\u003e\nАдреса, которые попались дважды и более раз отображаются списком:\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/vad7/nrf24scan/master/Screenshot-7.png\"\u003e\n\u003cbr\u003e\u003cbr\u003e\nИзменение режима sniff/scan - стрелками на пункте Scan.\u003cbr\u003e\u003cbr\u003e\nРежим сканирования (scan) - просто чтение пакетов по заданным в настройках мак адресам и виду пакета - ESB/DPL.\u003cbr\u003e\nНа начальном экране в режиме чтения можно загрузить файл настроек (по умолчанию загружается settings.txt из папки nrf24_scanner на SD карте).\u003cbr\u003e\nВ файле настройке задаются адреса (максимум 6) в шестнадцатеричном виде (старший байт - первый), длина адреса вычисляется по P0.\u003cbr\u003e\nОстальные настройки можно поменять интерактивно\u003cbr\u003e\nНастройки сохраняются длительным нажатием на ОК.\u003cbr\u003e\u003cbr\u003e\n\u003cb\u003eОписание настроек:\u003c/b\u003e\u003cbr\u003e\nCh - номер канала.\u003cbr\u003e\nRate - скорость передачи данных\u003cbr\u003e\nNext Ch time - через сколько секунд будет увеличен номер канала\u003cbr\u003e\nLog - выбор режима авто сохраннения в файлы log-xx.txt. Yes - сохранять в новый файл при заполнении буфера в 99 записей, Append - добавлять в последний файл, Clear - только очистка буфера\u003cbr\u003e\u003cbr\u003e\nВ пунктах Ch, Rate, Next при нажатии OK меняются параметры связи:\u003cbr\u003e\nESB - Enhanced ShockBurst (включена автоотправка подтверждения получения пакета, работающий приемник тоже попытается это сделать, возможны коллизии)\u003cbr\u003e\nDPL - Динамический пакет\u003cbr\u003e\nCRC1/2 - Размер CRC в байтах\u003cbr\u003e\nPayload - размер пакета в байтах\u003cbr\u003e\n\u003cbr\u003e\n\u003cb\u003eПросмотр принятых пакетов\u003c/b\u003e\u003cbr\u003e\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/vad7/nrf24scan/master/Screenshot-2.png\"\u003e\n\u003cbr\u003e\nВ пункте \"Start scan/sniff\" можно выбрать стрелками сканировать и смотреть или просто смотреть (view).\u003cbr\u003e\nЕсли в файле настройки было несколько адресов, то первая цифра - номер канала (pipe) от 0 до 5.\u003cbr\u003e\nСтрелки - перемещение по списку и горизонтальное скролирование\u003cbr\u003e\nДолгий OK - отправка пакета\u003cbr\u003e\nOK - вход в режим просмотра адресов и включения декодирования заголовка ESB пакета и CRC.\u003cbr\u003e\nПри декодировании заголовка (PCF) - первые 2 цифры - длина пакета в hex или 33, если длина пакета фиксирована\u003cbr\u003e\n3-я цифра - PID (2bit) \u003c\u003c 1 +  флаг NO_ACK\u003cbr\u003e\nЕсли включен режим декодирования CRC, то по всему пакету ищется подходящая CRC и подчеркивается в списке, а так же вместо \":\" выводится \"=\" после номера записи в буфере\u003cbr\u003e\n\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/vad7/nrf24scan/master/Screenshot-3.png\"\u003e\n\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/vad7/nrf24scan/master/Screenshot-4.png\"\u003e\n\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/vad7/nrf24scan/master/Screenshot-5.png\"\u003e\n\u003cbr\u003e\n\u003cbr\u003e\nСхема подключения модуля nRF24l01:\u003cbr\u003e\nBig board:\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/vad7/nrf24scan/master/scheme.png\"\u003e\nGerber for full board (https://raw.githubusercontent.com/vad7/nrf24scan/master/Gerber_PCB_Flipper%20Zero%20nRF24%20board_v1_0.zip)\u003cbr\u003e\nEasyeda source (https://oshwlab.com/vad7/flipper-zero-nrf24-board).\n\u003cbr\u003e\u003cbr\u003e\nMini board:\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/vad7/nRF24-Batch/main/Pics/NRF24_mini_3D.png\"\u003e\n\u003cbr\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/vad7/nrf24scan/master/scheme2.png\"\u003e\n\u003cbr\u003e\nGerber 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)\u003cbr\u003e\nEasyeda source (https://oshwlab.com/vad7/flipper-zero-nrf24-board_copy).\n\u003cbr\u003e\n\u003cbr\u003e\n_________________________________________________________________________________\n\u003cbr\u003e\n\u003cbr\u003e\nSettings file (default addr.txt) format:\u003cbr\u003e\n\nRate: 0/1/2 - rate in Mbps (=0.25/1/2)\u003cbr\u003e\nCh: 0..125 - default channel          \u003cbr\u003e\nESB: 0/1 (1 - Enhanced ShockBurst)    \u003cbr\u003e\nDPL: 0/1 (1 - Dynamic Payload Length) \u003cbr\u003e\nCRC: 0/1/2 (CRC length)\u003cbr\u003e\nPayload: 1..32 (bytes)                \u003cbr\u003e\nP0: address pipe #0 in hex (max 5 bytes, LSB last)\u003cbr\u003e\nP1: address pipe #1 in hex (max 5 bytes, LSB last)\u003cbr\u003e\nP2: address pipe #2, LSB in hex (1 byte)   \u003cbr\u003e\nP3: address pipe #3, LSB in hex (1 byte)   \u003cbr\u003e\nP4: address pipe #4, LSB in hex (1 byte)   \u003cbr\u003e\nP5: address pipe #5, LSB in hex (1 byte)   \u003cbr\u003e\ncaptured data in raw format, first byte = address # 0..5, Payload len if DPL\u003cbr\u003e\n... up to MAX_LOG_RECORDS-1\u003cbr\u003e\n\u003cbr\u003e\nIn the list of the received:\u003cbr\u003e\nPress OK - send the packet,\u003cbr\u003e\nLong press OK - view addresses.\u003cbr\u003e\n\u003cbr\u003e\nDecode the Packet Control Field and check CRC (long press OK in the list and then press '\u003c' / '\u003e').\u003cbr\u003e\nESB (Enhanced Shockburst) option must be turned off.\nPress '\u003e' to decode CRC.\u003cbr\u003e\n1 - pipe #\u003cbr\u003e\n2 - Payload length (for valide packet must be 1..20 or 33 hex)\u003cbr\u003e\n3 - PID (2 bit) + NO_ACK (1 bit)\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n## PinOut from from NoComp/Frog\n\u003cimg src=\"https://media.discordapp.net/attachments/937479784726949900/994495234618687509/unknown.png?width=567\u0026height=634\"\u003e\n\n# NRF24 pinout by UberGuidoZ\n2/A7 on FZ goes to MOSI/6 on nrf24l01\u003cbr\u003e\n3/A6 on FZ goes to MISO/7 on nrf24l01\u003cbr\u003e\n4/A4 on FZ goes to CSN/4 on nrf24l01\u003cbr\u003e\n5/B3 on FZ goes to SCK/5 on nrf24l01\u003cbr\u003e\n6/B2 on FZ goes to CE/3 on nrf24l01\u003cbr\u003e\n8/GND on FZ goes to GND/1 on nrf24l01\u003cbr\u003e\n9/3V3 on FZ goes to VCC/2 on nrf24l01\u003cbr\u003e\nIRQ/8 is left disconnected on nrf24l01\n![NRF_Pins](https://user-images.githubusercontent.com/57457139/178093717-39effd5c-ebe2-4253-b13c-70517d7902f9.png)\nIf 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. ¯\\\\\\_(ツ)_/¯\n![NRF_Capacitor](https://user-images.githubusercontent.com/57457139/178169959-d030f9a6-d2ac-46af-af8b-470ff092c8a7.jpg)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvad7%2Fnrf24scan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvad7%2Fnrf24scan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvad7%2Fnrf24scan/lists"}