Tower Listener: narrowband GMSK for heliostat communication
This article describes the receiver design and the demonstration plan as they stood in June 2025.
The problem
A heliostat field contains hundreds or thousands of motorized mirrors. Each mirror tracks the sun and reflects light toward a central tower. CaribouLabs was building the wireless link for a DOE/NREL heliostat project.
Each mirror needed two-way communication with the tower:
- Position commands for azimuth and elevation.
- Status data such as position, orientation, temperature, and battery state.
The radio system had to cover a large field while handling many short messages with low delay.
The receiver
Tower Listener was a CLER flowgraph designed to monitor 15 GMSK channels at once. It could read live samples from a CaribouLite radio or replay a saved IQ recording.
Why narrowband GMSK?
A 200 kHz receiver channel admits less noise power than a wide receiver channel at the same noise density. That can help the link budget, but it does not change propagation by itself. Range still depends on transmit power, antennas, path loss, data rate, coding, interference, and receiver design.
The project also favored a direct radio link over a cellular system: it avoided a carrier network and allowed a simpler radio at each mirror. GMSK keeps the transmitter envelope nearly constant, which suits small RF power amplifiers.
Design values
| Item | Value |
|---|---|
| Input sample rate | 4 MS/s from CaribouLite or recorded IQ |
| Channelizer rate | 3 MS/s |
| Channel plan | 15 channels at 200 kHz each |
| Modulation | GMSK, BT = 0.3 |
| Protocol | TI EasyLink format used by the heliostat radio board |
DSP pipeline
1. Input source
An application block selected live radio input or a recording at startup. Replaying the same samples made the DSP chain easier to test without field hardware.
2. Resampling
A MultiStageResamplerBlock converted 4 MS/s to 3 MS/s, a ratio of 0.75. The design used 80 dB stopband attenuation.
3. Polyphase channelizer
A 15-channel polyphase filter bank split the 3 MHz span into 200 kHz outputs. One shared channelizer avoids maintaining 15 separate mixer-and-filter chains. The actual saving depends on the implementation and target CPU.
4. GMSK demodulation
Each channel fed its own demodulator at two samples per symbol. The demodulator handled preamble detection, sync-word correlation, header parsing, and payload processing.
Demonstration plan
The June 2025 plan was to test the system at the Flatirons facility. The test list covered:
- Closed-loop command latency across the field.
- Bulk transfer for firmware and configuration data.
- Operation under RF interference.
- Packet reliability at different distances.
- Long runs under changing weather.
- Encrypted and authenticated messages.
The useful CLER lesson was already clear from the receiver design: a wide input could be rate-converted once, channelized once, and then sent to parallel protocol blocks with typed connections.