Why nRF24 Scanner Apps Black-Screen on Dual-Chip PINGEQUA 2-in-1 Flipper Boards — and How We Fixed It

Почему приложения-сканеры nRF24 дают чёрный экран на двухчиповых платах PINGEQUA 2-in-1 для Flipper — и как мы это исправили

Обычный сканер каналов nRF24 может погасить экран Flipper Zero посреди сканирования на платах 2-в-1 с двумя чипами — вот причина, связанная с арбитражем шины SPI, и исправление, которое мы выпустили в RF Lab.

Короткий ответЧёрный экран возникает потому, что приложения-сканеры nRF24, рассчитанные на один чип, никогда не снимают выбор со второго чипа на общей шине SPI, лишая ресурсов задачу обновления дисплея Flipper. PINGEQUA исправила это в RF Lab (сейчас v0.5.4, 2026-06-12), направив каждую транзакцию через единый furi_hal_spi_bus_handle_external и всегда поднимая CSN неактивного чипа в высокий уровень перед любым доступом. Это бесплатный .fap с открытым исходным кодом, созданный для платы PINGEQUA 2-in-1 nRF24 + CC1101 RF Devboard.
Плата PINGEQUA 2-in-1 nRF24 + CC1101 с двумя антеннами на Flipper Zero, работает Channel Scanner

Симптом

На двухчиповой плате запуск стороннего сканера каналов nRF24 и начало сканирования сигнала могут погасить дисплей Flipper посреди процесса.

Экран Flipper заполняется чёрным снизу во время сканирования nRF24 на двухчиповой плате
Сторонний сканер каналов nRF24 на плате 2-в-1 — дисплей заполняется чёрным снизу посреди сканирования.

Это не уникально для нашего железа. Самое форкаемое приложение nRF24 от сообщества содержит открытый отчёт, описывающий тот же класс сбоя:

«экран иногда полностью гаснет примерно на 5 секунд во время сканирования. Если уменьшить время сканирования, это гашение наблюдается чаще.»
flipperzero-nrf24 issue #15, открыт с 2022 года

Почему это сильнее бьёт по платам с двумя чипами

Плата 2-в-1 подключает nRF24 и CC1101 параллельно на одной шине SPI, выбор которых происходит программно через выделенную линию CSN каждого чипа. Сканер, написанный для одного nRF24, управляет только своей CSN — он никогда не снимает выбор со второго чипа. Тогда оба чипа могут одновременно отвечать на общей шине, а сканер, который непрерывно удерживает шину SPI, может лишить ресурсов задачу обновления дисплея. В результате вы видите чёрный экран.

Мы не единственные, кто указывает на этот пробел в устаревших приложениях — даже наши собственные заметки к продукту предупреждают, что устаревшие приложения могут иметь жёстко заданные определения пинов, и рекомендуют приложения с корректной обработкой GPIO/SPI.

Это описание первопричины — наш инженерный анализ наблюдаемого поведения, а не подтверждённый производителем дефект.

Почему мы переписали, а не патчили

Патчинг особенностей одного форка не решает лежащую в основе проблему арбитража шины и не переживает следующее обновление прошивки. Поэтому в начале 2026 года мы пересобрали набор инструментов на основе официального Furi SDK — без приватных символов форка, с одним чистым арбитром SPI.

Что изменилось

  • Арбитр SPI с единым хендлом — каждая транзакция проходит через один хендл шины (furi_hal_spi_bus_handle_external), который есть в каждой прошивке.
  • С неактивного чипа всегда снят выбор — перед любым доступом CSN другого чипа поднимается в высокий уровень. Шина никогда не остаётся в неоднозначном состоянии, поэтому дисплей никогда не лишается ресурсов.
  • Один .fap для любой прошивки — работает на официальной прошивке Flipper (OFW), Momentum, Unleashed, RogueMaster и Xtreme. Без перекомпиляции.
PINGEQUA RF Lab Channel Scanner работает без сбоев — живой спектр 2,4 ГГц, без чёрного экрана
То же железо с RF Lab — полный 126-канальный спектр, дисплей не лишается ресурсов.

История версий и совместимость прошивок

Что менялось от релиза к релизу

Релиз Что дал
Переход на Furi SDK (начало 2026) Пересобран на основе официального Furi SDK; единый хендл шины SPI (furi_hal_spi_bus_handle_external); CSN неактивного чипа всегда поднимается в высокий уровень перед любым доступом.
v0.5.2 Читаемые человеком имена файлов экспорта (например, scan_2026-05-15_143022_ch42.csv); экран «О программе» на устройстве со сканируемыми QR-кодами для магазина и репозитория исходного кода.
RF Lab v0.5.4 (2026-06-12) Добавляет генератор сигнала 2,4 ГГц исключительно для авторизованного тестирования; выходная мощность намеренно ограничена для соответствия FCC §15 / ETSI EN 300 328.
RF Lab активно развивается — всегда берите последнюю сборку с GitHub Releases, а не старую копию из кеша.
Экран «О программе» RF Lab со сканируемым QR-кодом на магазин
Экран «О программе» на устройстве — отсканируйте QR, чтобы открыть магазин или репозиторий исходного кода.

Совместимость прошивок

Прошивка Примечания
Официальная прошивка Flipper (OFW) Минимальный API ≥ 87.1
Momentum Поддерживается, без перекомпиляции
Unleashed Поддерживается, без перекомпиляции
RogueMaster Поддерживается, без перекомпиляции
Xtreme Поддерживается, без перекомпиляции

Поставляется в виде единого .fap размером ~44 КБ, который сразу поддерживает все пять целевых прошивок.

Посмотреть в действии

Навигация по главному меню RF Lab на Flipper Zero
Главное меню — Scanner, Signal Generator, About
Главное меню RF Lab на Flipper Zero с платой 2-в-1
На железе
Режим генератора сигнала 2,4 ГГц RF Lab, только для авторизованного тестирования
Генератор сигнала 2,4 ГГц (только для авторизованного тестирования)

Попробуйте на своём устройстве

  1. Скачайте pingequa_rf_toolkit.fap с GitHub Releases
  2. Перетащите его в /ext/apps/GPIO/ в qFlipper
  3. Запустите из Apps → GPIO → PINGEQUA RF Lab

Без переназначения GPIO, без настройки под конкретную прошивку.

Что дальше — решать вам

Дорожная карта v0.6 открыта. Хотите просмотр спектра Sub-GHz, двухдиапазонный свип или собственные пресеты сканирования? Откройте issue — следующий релиз строится на том, что люди действительно просят.

Открытое железо. Открытый код.

nRF24L01+PA и CC1101 на одной шине SPI — для Flipper Zero.

Скачать FAP (бесплатно) Купить железо

Часто задаваемые вопросы

Почему обычные приложения-сканеры nRF24 гасят экран на платах 2-в-1 с двумя чипами?
Плата 2-в-1 подключает nRF24 и CC1101 параллельно на одной шине SPI, выбор которых происходит программно через выделенную линию CSN каждого чипа. Сканер, написанный для одного nRF24, управляет только своей CSN — он никогда не снимает выбор со второго чипа. Тогда оба чипа могут одновременно отвечать на общей шине, а сканер, который непрерывно удерживает шину SPI, может лишить ресурсов задачу обновления дисплея Flipper. Видимый результат — экран, который гаснет посреди сканирования. Это наш инженерный анализ наблюдаемого поведения, а не подтверждённый производителем дефект.
Мой экран гаснет во время сканирования — мой модуль nRF24 сломан?
Нет. Это не уникально для нашего железа и не признак сломанного модуля. Самое форкаемое приложение nRF24 от сообщества содержит открытый отчёт (issue #15, открыт с 2022 года), описывающий тот же класс сбоя — экран гаснет на несколько секунд во время сканирования, чаще при уменьшении времени сканирования. Это проблема арбитража шины в программах эпохи одного чипа, а не неисправность железа.
Какая версия приложения устраняет проблему с чёрным экраном и как она была устранена?
RF Lab устраняет её — текущий релиз v0.5.4 (2026-06-12), основан на переработке начала 2026 года. Вместо патчинга особенностей одного форка (что не пережило бы следующее обновление прошивки), набор инструментов был пересобран на основе официального Furi SDK с одним чистым арбитром SPI. Каждая транзакция проходит через единый хендл шины (furi_hal_spi_bus_handle_external), который есть в каждой прошивке, а CSN неактивного чипа всегда поднимается в высокий уровень перед любым доступом — поэтому шина никогда не остаётся в неоднозначном состоянии, а дисплей никогда не лишается ресурсов. Поставляется в виде одного .fap, который работает на официальной прошивке (OFW, API ≥ 87.1), Momentum, Unleashed, RogueMaster и Xtreme без перекомпиляции.
Может ли RF Lab передавать, или он только принимает?
И то, и другое. Анализатор спектра 2,4 ГГц (126 каналов, max-hold, экспорт в CSV) принимает, а v0.5.4 также включает генератор сигнала 2,4 ГГц исключительно для авторизованного РЧ-тестирования. Его выходная мощность намеренно ограничена для соответствия FCC §15 / ETSI EN 300 328. Используйте генератор сигнала только на тех частотах и в тех условиях, где у вас есть разрешение на тестирование.
Будет ли это работать на моей прошивке без перекомпиляции?
Да. RF Lab поставляется в виде единого .fap размером ~44 КБ, который сразу работает на официальной прошивке (OFW, API ≥ 87.1), Momentum, Unleashed, RogueMaster и Xtreme — без переназначения GPIO и без настройки под конкретную прошивку. Скачайте его с GitHub Releases, перетащите в /ext/apps/GPIO/ в qFlipper и запустите из Apps → GPIO → PINGEQUA RF Lab.

Источники и дополнительное чтение: flipperzero-nrf24 #15 · Документация Furi SDK Flipper

Вернуться к блогу