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チャンネルスキャナーは、2-in-1デュアルチップボード上でFlipper Zeroの画面をスキャン中に真っ黒にすることがあります——その原因はSPIバス調停にあり、私たちはRF Labでその修正を提供しました。

要点黒画面が起きるのは、シングルチップ向けに作られたnRF24スキャナーアプリが、共有SPIバス上でもう一方のチップを一切非選択にせず、その結果Flipperのディスプレイ更新タスクを飢餓状態にしてしまうためです。PINGEQUAはRF Lab(現在v0.5.4、2026-06-12)でこれを修正しました。すべてのトランザクションを単一のfuri_hal_spi_bus_handle_external経由にまとめ、あらゆるアクセスの前に必ずアイドル状態のチップのCSNをHighに駆動するようにしています。これはPINGEQUA 2-in-1 nRF24 + CC1101 RF Devboard向けに作られた、無料のオープンソース.fapです。
Flipper Zeroに装着したデュアルアンテナ付きPINGEQUA 2-in-1 nRF24 + CC1101ボード、Channel Scanner実行中

症状

デュアルチップボードでは、サードパーティ製のnRF24チャンネルスキャナーを起動して信号スキャンを開始すると、途中でFlipperのディスプレイが真っ黒になることがあります。

デュアルチップボードでのnRF24スキャン中に下から黒く埋まっていくFlipperの画面
2-in-1ボード上のサードパーティ製nRF24チャンネルスキャナー——スキャンの途中でディスプレイが下から黒く埋まっていく。

これは当社のハードウェアに限った現象ではありません。最もフォークされているコミュニティ製nRF24アプリにも、同じ種類の不具合を記述したオープンな報告があります。

「スキャン中、画面が5秒ほど完全に真っ黒になることがある。スキャン時間を短くすると、この現象はより頻繁に見られる。」
——flipperzero-nrf24 issue #15、2022年からオープン

なぜデュアルチップボードでより深刻になるのか

2-in-1ボードはnRF24とCC1101を1本のSPIバス上に並列接続し、各チップ専用のCSNラインでソフトウェア的に選択します。単一のnRF24向けに書かれたスキャナーは自分のCSNしか駆動せず——もう一方のチップを非選択にすることはありません。すると両方のチップが共有バス上で同時に応答しうる状態になり、SPIバスを継続的に占有するスキャナーはディスプレイ更新タスクを飢餓状態にしかねません。その結果として現れるのが、画面が真っ黒になる現象です。

レガシーアプリのこうした問題点を指摘しているのは当社だけではありません——当社自身の製品ノートでも、レガシーアプリケーションにはピン定義がハードコードされている場合があると警告し、適切なGPIO/SPI処理を備えたアプリの使用を推奨しています。

この根本原因の説明は、観測された挙動に関する当社のエンジニアリング分析であり、ベンダーが確認した欠陥ではありません。

なぜパッチではなく書き直しを選んだのか

特定のフォークの癖にパッチを当てても、根底にあるバス調停の問題は解決せず、次のファームウェア更新にも耐えられません。そこで私たちは2026年初頭、公式のFuri SDKに対してツールキットを再構築しました——フォーク固有のシンボルを排し、クリーンなSPIアービターを1つにまとめています。

変更点

  • 単一ハンドルのSPIアービター——すべてのトランザクションが、どのファームウェアにも同梱されている1つのバスハンドル(furi_hal_spi_bus_handle_external)を経由します。
  • アイドル状態のチップは常に非選択——あらゆるアクセスの前に、もう一方のチップのCSNをHighに駆動します。バスが曖昧な状態のまま放置されることはなく、ディスプレイが飢餓状態になることもありません。
  • 1つの.fapで全ファームウェアに対応——公式Flipperファームウェア(OFW)、Momentum、Unleashed、RogueMaster、Xtremeで動作します。再コンパイル不要です。
問題なく動作するPINGEQUA RF Lab Channel Scanner——ライブの2.4GHzスペクトラム、黒画面なし
同じハードウェアでRF Labを実行——126チャンネル分のフルスペクトラム、ディスプレイの飢餓状態も発生しない。

バージョン履歴とファームウェア互換性

リリースごとの変更点

リリース 内容
Furi SDKへの書き直し(2026年初頭) 公式Furi SDKに対して再構築。単一のSPIバスハンドル(furi_hal_spi_bus_handle_external)を使用し、あらゆるアクセスの前に常にアイドル状態のチップのCSNをHighに駆動する。
v0.5.2 人間が読めるエクスポートファイル名(例:scan_2026-05-15_143022_ch42.csv)。ショップとソースリポジトリへのスキャン可能なQRコードを備えたデバイス上のAbout画面。
RF Lab v0.5.4(2026-06-12) 認可されたテスト専用の2.4GHz信号発生器を追加。出力はFCC §15 / ETSI EN 300 328に準拠するよう意図的に制限されている。
RF Labは現在も活発に開発が続いています——古いキャッシュ済みのコピーではなく、常にGitHub Releasesから最新のビルドを入手してください。
ショップへのスキャン可能なQRコードを備えたRF LabのAbout画面
デバイス上のAbout画面——QRコードをスキャンしてショップまたはソースリポジトリを開く。

ファームウェア互換性

ファームウェア 備考
公式Flipperファームウェア(OFW) 最小API ≥ 87.1
Momentum 対応、再コンパイル不要
Unleashed 対応、再コンパイル不要
RogueMaster 対応、再コンパイル不要
Xtreme 対応、再コンパイル不要

約44KBの単一.fapとして提供され、標準で5つすべてのファームウェアに対応します。

実際の動作

Flipper Zero上でのRF Labメインメニューの操作
メインメニュー——Scanner、Signal Generator、About
2-in-1ボードを装着したFlipper Zero上のRF Labメインメニュー
実機での様子
認可されたテスト専用のRF Lab 2.4GHz信号発生器モード
2.4GHz信号発生器(認可されたテスト専用)

自分の環境で試す

  1. GitHub Releasesからpingequa_rf_toolkit.fapをダウンロード
  2. qFlipperで/ext/apps/GPIO/にドラッグ
  3. Apps → GPIO → PINGEQUA RF Labから起動

GPIOの再マッピングも、ファームウェアごとの設定も不要です。

次に何を作るかはあなた次第

v0.6のロードマップは公開されています。Sub-GHzスペクトラム表示、デュアルバンドスイープ、カスタムスキャンプリセットが欲しいですか?issueを開いてください——次のリリースは、実際に寄せられた要望をもとに作られます。

オープンなハードウェア。オープンなソースコード。

nRF24L01+PA と CC1101 を1本のSPIバスに——Flipper Zero向け。

FAPをダウンロード(無料) ハードウェアを購入する

よくある質問

なぜ汎用のnRF24スキャナーアプリはデュアルチップの2-in-1ボードで画面が真っ黒になるのですか?
2-in-1ボードはnRF24とCC1101を1本のSPIバス上に並列接続し、各チップ専用のCSNラインでソフトウェア的に選択します。単一のnRF24向けに書かれたスキャナーは自分のCSNしか駆動せず——もう一方のチップを非選択にすることはありません。すると両方のチップが共有バス上で同時に応答しうる状態になり、SPIバスを継続的に占有するスキャナーはFlipperのディスプレイ更新タスクを飢餓状態にしかねません。目に見える結果として、スキャンの途中で画面が真っ黒になります。これは観測された挙動に関する当社のエンジニアリング分析であり、ベンダーが確認した欠陥ではありません。
スキャン中に画面が真っ黒になります——nRF24モジュールが故障しているのでしょうか?
いいえ。これは当社のハードウェアに限った現象ではなく、モジュールが故障している兆候でもありません。最もフォークされているコミュニティ製nRF24アプリにも、同じ種類の不具合を記述したオープンな報告(issue #15、2022年からオープン)があります——スキャン中に数秒間画面が真っ黒になり、スキャン時間を短くするほど頻繁に発生するというものです。これはシングルチップ時代のソフトウェアに起因するバス調停の問題であり、ハードウェアの不良ではありません。
どのアプリバージョンで黒画面の問題が修正されましたか、また、どのように修正されたのですか?
RF Labがこれを修正します——現在のリリースはv0.5.4(2026-06-12)で、2026年初頭の書き直しをベースにしています。特定のフォークの癖にパッチを当てるのではなく(それでは次のファームウェア更新に耐えられません)、公式のFuri SDKに対してツールキットを再構築し、クリーンなSPIアービターを1つにまとめました。すべてのトランザクションが、どのファームウェアにも同梱されている単一のバスハンドル(furi_hal_spi_bus_handle_external)を経由し、アイドル状態のチップのCSNはあらゆるアクセスの前に常にHighに駆動されます——そのためバスが曖昧な状態のまま放置されることはなく、ディスプレイが飢餓状態になることもありません。公式ファームウェア(OFW、API ≥ 87.1)、Momentum、Unleashed、RogueMaster、Xtremeで動作する1つの.fapとして提供され、再コンパイルは不要です。
RF Labは送信できますか、それとも受信専用ですか?
両方です。2.4GHzスペクトラムアナライザー(126チャンネル、max-hold、CSVエクスポート)は受信を行い、v0.5.4には認可されたRFテスト専用の2.4GHz信号発生器も搭載されています。その出力はFCC §15 / ETSI EN 300 328に準拠するよう意図的に制限されています。信号発生器は、テストが許可されている周波数・環境でのみ使用してください。
再コンパイルせずに自分のファームウェアで動作しますか?
はい。RF Labは約44KBの単一.fapとして提供され、公式ファームウェア(OFW、API ≥ 87.1)、Momentum、Unleashed、RogueMaster、Xtremeで標準のまま動作します——GPIOの再マッピングもファームウェアごとの設定も不要です。GitHub Releasesからダウンロードし、qFlipperで /ext/apps/GPIO/ にドラッグして、Apps → GPIO → PINGEQUA RF Lab から起動してください。

出典・参考資料: flipperzero-nrf24 #15 · Flipper Furi SDKドキュメント

ブログに戻る