Zack Lovisa Software developer Start an estimate

Case study

2026

Z-Scouter

A Raspberry Pi field unit with a dual ATSC tuner that turns a phone into a TV antenna signal meter over Bluetooth.

  • Client TV antenna installer
  • Discipline Hardware
  • Duration Ongoing
  • Budget band Not disclosed
  • Raspberry Pi
  • Python
  • Bluetooth LE
  • Linux DVB
  • ffmpeg
  • React
Z-Scouter shown on screen

The problem

Signal Scout predicts reception. On the roof, the installer has to measure it: turn the antenna a few degrees and know right away whether the signal got better.

The measurement also had to outlast the moment. A reading taken while aiming is useful once, but a reading recorded against the install is what someone checks months later when a channel drops.

What I did

The unit is a Raspberry Pi 3B+ with a Hauppauge WinTV-dualHD, two ATSC tuners in one stick. The phone reaches it over Bluetooth LE with Web Bluetooth, straight from Signal Scout in Chrome, with no app to install.

The same tuner answers two questions. A run visits a list of channels, writes every sample to the unit’s card, and belongs to the unit, so it finishes and stays stored even if the phone walks away. The meter holds one channel open for aiming and writes nothing down. With two tuners, two channels peak at the same time without either one retuning, and when the numbers are not enough the unit streams the channel itself, picture and sound, with subchannel names read from the broadcast.

A unit on a roof has to look after itself. It powers the tuner down when nobody is connected, and it takes new firmware over Bluetooth: files are staged, checked and compiled before they swap in, and the previous version comes back on its own after three failed starts.

Outcome

Handed over to an antenna installer in September 2026. Its readings fill the station rows of a Signal Scout report, so the prediction and the measurement for one install sit on the same record.

One lesson carried forward. Patched drivers once forced the wrong demodulator onto the tuner, and it reported no signal on any channel, which looks exactly like a dead antenna. Hours went on the aerial before the drivers were checked. Now the hardware’s own identity gets confirmed before anything on the roof is blamed.