Cellular field survey · iPhone & iPad

See exactly what the network is doing.

CellPi turns a WLAN Pi and a Quectel 5G modem into a pocket walk-test rig: RSRP, RSRQ and SINR, Orb network quality and raw signaling, mapped outdoors by GPS or indoors with LiDAR.

Coming to the App Store · works with your own WLAN Pi · built-in demo needs none

01 / Features

One survey, the whole picture

Every reading a walk-test needs, captured together and mapped in place, not spread across five tools.

📶

Full signal detail

Serving cell and neighbours: RSRP, RSRQ, SINR, RSSI, operator, band, PCI, ARFCN, bandwidth, and per-antenna branches.

🛰️

5G SA, NSA & LTE

Passive sweep of every operator and band, or active serving-cell logging with band and RAT locks for A/B comparisons.

⚡

Orb network quality

Score, latency, jitter, lag, packet loss and throughput layered onto each point. Real experience, not just RF.

🧭

Outdoor & indoor

Map by GPS on the move, or drop points on a floor plan with LiDAR tracking you between taps. No beacons.

🔬

Raw signaling (PCAP)

Capture the air interface and decode neighbours, handovers, SCG failures and RLF re-establishments per point.

📄

Reports that convince

Export JSON and PCAP, then open the desktop viewer for heatmaps, per-ride band preference and operator comparisons.

02 / How it works

The modem does the radio. The app does the rest.

CellPi drives the modem over your local network and handles the mapping, math and reports.

Connect the WLAN PiConnect over USB‑C (OTG) or Bluetooth. Enter the Pi's SSH details once. CellPi drives the modem inline, so nothing needs installing for basic scanning.
Walk, drive or map a floorPick passive (scan everyone, no SIM needed) or active (serving cell, Orb and data path). Points log by GPS outdoors, or by LiDAR on an indoor plan.
Read the map liveDots recolour by RSRP, SINR, latency, jitter, loss or Orb score. Handovers and failures are flagged where they happened.
Export and reportEach survey saves with its own PCAP. Open it in the CellPi desktop viewer for heatmaps and operator-by-band comparisons.
No hardware handy? CellPi ships with a demo survey. Open Settings, tap Load Demo Survey, and every screen fills with a sample walk so you can try the whole app offline.
Keeps logging with the screen locked. During an active survey CellPi uses your location in the background, so a long drive or walk keeps recording even when the phone sleeps or you switch apps. Location is used only to place survey points on the map, and it never leaves your device.
03 / Hardware

What you need

Basic passive scanning works with no SIM and nothing installed on the Pi. Add a package for PCAP, Orb or enrichment.

Hardware

  • WLAN Pi M4+, or any Debian / Ubuntu host reachable over SSH
  • Quectel 5G modem with USB lanes and AT / DIAG: RM520N‑GL, RM511, RM50x (not PCIe‑only M.2 slots)
  • A USB carrier such as the GL.iNet GL‑M2
  • iPhone or iPad, iOS 17+. LiDAR (Pro models) only for indoor tracking
  • A data SIM for active tests. Passive scanning needs no SIM
  • Connect over USB‑C or Bluetooth (BE200)

On the Pi

  • Nothing for the passive sweep. The app inlines AT+QSCAN
  • qcsuper for PCAP signaling capture
  • tshark to decode neighbours, handovers and RLF
  • Orb agent for network quality (optional)
  • qmicli + udhcpc for the active-mode data path
04 / CellPi Light

CellPi Light, the operator scanner

A separate companion app for a live look at which operator wins where you're standing. No map, no survey points, nothing to install on the Pi. It uses the same WLAN Pi and Quectel modem as CellPi, and runs the inline passive sweep for you.

🏆

Best operator, live

Every operator and band in the air right now, ranked by SINR and RSRP. See at a glance who has the strongest, cleanest signal at your location.

📈

Grafana-style graphs

Push any operator or band and watch its RSRP, SINR, RSRQ and RSSI update on a live graph every sweep. Great for validation and A/B checks.

📍

No location needed

Light never touches GPS, it's a pure signal scanner. Export a file and open it in the report tool for the full operator comparison.

CellPi Light is passive only (no Orb, data or PCAP): a quick way to compare operators and validate coverage before a full CellPi survey.

05 / Setup

Set up the WLAN Pi

Install only what you will use. These run on the Pi over SSH. The full step-by-step lives in the manual.

# base: AT access, active-mode data path, and PCAP decode (tshark) sudo apt update sudo apt install -y python3 python3-serial libqmi-utils udhcpc tshark # DIAG capture for PCAP (see the qcsuper repo linked below) pip3 install qcsuper # Orb network-quality sensor: follow the guide linked below
06 / Get

Get the apps

Both apps are free and coming to the App Store. Bring your own WLAN Pi and Quectel modem, or try CellPi's built-in demo first. Already have a survey? Open it in the browser report tool, no install.

CellPi

The full walk-test rig: signal, Orb, PCAP, outdoor GPS and indoor LiDAR maps. Exports a ZIP (survey JSON, PCAP and map image) you open in the report tool.

App Store, soon
🏆

CellPi Light

Live operator scanner: best operator by SINR and RSRP, Grafana-style graphs, no map, no location. Learn more.

App Store, soon
🖥️

CellPi Desktop and Report

Open a survey in the browser, no install. Coverage heatmaps, per-band and operator comparison, and PDF export.

07 / Credits

Built on community work

CellPi would not exist without the people and projects that came first. Thank you.

Mark Houtz

Author of the original qscan.py that made WLAN Pi cellular scanning approachable. We inline the sweep now, but this is where it began. markhoutz.com

GL.iNet GL‑M2

The 5G M.2 carrier board that hosts the modem over USB. gl-inet.com

GL‑M2 case

A tidy 3D‑printed enclosure for the dev board. Printables

RM520N‑GL firmware

Firmware and flashing resources for the Quectel modem. 4IceG/RM520N-GL

WLAN Pi

The host platform that carries the modem and runs the inline sweep over SSH. wlanpi.com

Orb, tshark, QCSuper & libqmi

Network quality, signaling decode, DIAG capture (QCSuper), and the QMI data path the backend leans on.