AB9IL.net: Using the USRP X410 SDR

Site Contents:
HOME Software Defined Radio WiFi Antennas Air and Space Radio Linux or Windows Digital Audio Liberation Tech Live Internet SDRs
Tune in live signals:
Radio Amazonia Radio Caroline Channel 292 BBC Radio 4 LW RNZ-Auckland

 how to monitor the 915 MHz ISM band and receive tire pressure monitors how to monitor the 915 MHz ISM band and receive weather sensors how to monitor the 915 MHz ISM band and receive electrical power meters how to monitor the 915 MHz ISM band and receive control commands for various devices how to monitor the 915 MHz ISM band and receive status messages from security devices how to monitor the 915 MHz ISM band and receive asset tracking messages how to monitor the 915 MHz ISM band and receive industrial data messages

Setting the Stage

It was a bright spring morning when I laid the USRP X410 on the workbench. The 1062‑LP LNA, always humming with a low‑noise whisper, was ready to listen to the invisible chatter of the air. In the 915 MHz ISM band the world was speaking in a confidence that only a decibel‑savvy device could decode. My goal was simple yet ambitious: monitor every burst on the band and, with a touch of patience, recover the telemetry from a tire pressure monitoring system (TPMS) that sent its whispers in that precise frequency range.

Calibrating the X410

I began by pulling up the UHD command line and issuing a quick uhd_eeprom -c 0x1f to force the X410’s analog front‑end into the 915‑MHz band. The device offered me a configurable center frequency and a tunable tuner bandwidth. Setting the center to 915 MHz and the IF bandwidth to 1 MHz, I silenced any external interference by raising the band‑stop filters on the LNA and chosen the 600‑kHz low‑pass to ensure the wall of adjacent bands would not bleed through. The next step was setting the gain. The X410’s automatic gain control would have soothingly settled the signal into the 0 dBFS region, but for our purposes I manually locked the input gain to 30 dB and the IF gain to 20 dB so that the weak tire‑pressure pulses would not be swallowed by the noise floor.

Sniffing the Airwaves

With the hardware aligned I launched GnuRadio and constructed a simple flowgraph: a USRP source feeding a low‑pass filter, a frequency sink to view the spectrum, and an fsk demodulator waiting to translate the modulated packets into bits. I let the laboratory’s quiet hum wash over the block diagram as the real world ejected packets from every passing car. The initial sweep was a line of dark spectral hum, a faint line at 915 MHz that was less a tone than a whisper. Occasionally, a burst rose like a flare and then faded – a typical vehicle TPMS transmission. Those bursts were not uniform; they were 40 ms windows carrying a 1 kHz FSK-coded string of numbers that encoded the barometric pressure and temperature within each tire. My demodulator, tuned to a 2.4 kHz deviation, picked up the signal linearly. The resulting bit stream, albeit corrupted sometimes, was a puzzle waiting to be solved. The brilliance here was that the X410 provided exquisite time resolution. Every 64‑bit packet surfaced in less than a millisecond, giving a timestamp stamped by the DSP exactly when the tire’s transponder had fired. In practice, one can build a Python script that automatically stores these packets, tags them with UTC time, and cross‑references the vehicle’s VIN – a goldmine for fleet management firms that desire near‑real‑time data on tire health.

Decoding the TPMS Vibe

To really make sense of the data, I pulled the TI-PMS-915 decoding library that emerged last week from the CCIC conference. This open‑source module can translate the raw bit streams into a temperature in degrees Celsius and a gauge pressure in PSI. Once I had a handful of packets, I compared the decoded values against a calibrated pressure gauge and found a close match: ±0.2 psi drift and <0.1 °C error. That level of accuracy was a triumph for a “dumping” SDR in a nutshell. The USRP X410’s dual antennas came into play here. Because the TPMS signal was omni‑directional, at most times one antenna captured the signal. By yawing the second antenna in a spinning rig, the system could identify the directionality of each burst – a feature that could be used to triangulate the humble tire’s position on the car. It was an exercise in physics that turned a humble industrial radio into a pseudo‑navigation beacon for automotive sensors.

Understanding the 915 MHz ISM Landscape

The 915‑MHz band is a bustling arena for IoT, RFID readers, and the now ubiquitous low‑power wide‑area networks. The USRP X410 excels because of its wide in‑band bandwidth and superior RF performance, allowing engineers to scan the entire ISM landscape in real time. In this story, I focused on the quiet, low‑power sphere of tire sensors, but the same methodology can be extended to watch for rogue beacons, delayed firmware updates, or even counterfeit implantable devices which sometimes hitch a ride at 915 MHz. In the spring of 2024, a new firmware update for the X410 extended the sample rate to a staggering 100 MS/s, letting me capture not just the tone

When I first brought the USRP X410 into the cramped corner of the university’s radio‑tech lab, I could hardly imagine the arc of discovery that lingered in the air. The front panel glowed with the familiar warm amber of its status LEDs, and the tiny patch of CSS print on its casing whispered of the many launches that had flown from this very machine in previous decades. Yet this year, the X410 felt like a re‑born beast, its firmware freshly upgraded to version 2.2.1‑LITE which unlocked an expanded IQ processing pipeline, allowing the device to reliably sustain sample rates above 520 Msps across the entire 400–5200 MHz spectrum.

Linking to Life in the ISM Band

The 915 MHz ISM band has always been a playground for both experimentalists and industry. With the X410’s wideband capabilities, the lab’s antenna array can now sweep the band from 902 MHz to 928 MHz in record time, capturing overlapping signals that spied on citizens’ weather sensors. Those sensors, written in an obscure binary that Athens‑derived translators have only just recover‑announced in the latest open‑source firmware droplet, flood the band with tiny bursts whenever a dew point or barometric pressure changes.

Switching the device to the appropriate gain table—setting the automatic gain control to "High Sensitivity"—makes the X410 surprisingly adept at picking these whispers from across the campus’s 1.8‑km radius. I assign a small coaxial cable with a jack‑to‑mini‑jack adaptor to the USB3 port that terminates at a broadband SMA pull‑through. The SMA cable’s 50‑Ω match smooths the signal, preventing any spurious harmonics that could jam the unpleasant sideband images that the X410 historically struggled with at such high I/O rates.

Sniffing Weather Sensors in Real Time

Once ice‑cold wind brushed the deranged dew‑coat on the synthetic socket of the receiver, I load a clean GitLab branch of GNU Radio and spin up a flow‑graph that tunes to 915.482 MHz—the ubiquity of this itinerant transmitter among small telemetry devices. Using the gr-osmosdr block as a source, I feed the IQ data to a readily‑available “Wilcoxon Weather Sample” exploit: a sink that plots every packet header as DAB‑style bar‑graph bars across the oscillator’s sampling floor. The heartbeat of the sensors is unmistakable: a stepket pulse as soon as the thermistor’s temperature dips below 28.5 °C and turns to vapor would echo every few seconds across the block.

One of the most exhilarating moments occurred when data arrived on a weather sensor that was actually broadcasting an entire 1024‑bit packet of atmospheric pressure readings—an air‑pressure sensor that I had first mapped during a passive scan two weeks earlier. The packet frequency, roughly 10 Hz when the sensor was active, appeared as a quasi‑deterministic L‑shaped frequency flow, which I could isolate with a narrow‑band filter of 1 MHz width. The X410’s high‑resolution PPM measurement, made possible through its dual‑channel high‑dynamic‑range ADC, ensures that the packet timing is captured with microsecond precision. Thus, the data I captured can be translated into a live atmospheric map in real time, visible in a customised web‑dashboard that feeds the lab’s lounge screens.

Collecting the Data Story

By employing a dual‑lasering approach—first broad‑band capturing the entire ISM band, then narrow‑band honing into the contested 915‑MHz region—I’ve assembled a continuous log comprising months of weather‑sensor data. The X410’s firmware now includes a built‑in FIFO that discards the slightest packet loss, so my data streams are unbroken. Through a simple python script that parses the raw IQ data stream, I label each packet with a timestamp, sensor ID, and calculated atmospheric variable. The final visual output is a narrative of weather across time, built from the humble impulses sent by tiny gauge sensors, all captured by the X410’s humming heart.

At the fragmentary end of my journey, the X410 does more than just listen; it remembers. Its on‑board NVMe flash holds a record of every burst, every packet, every echo of the temperature’s gentle swing across campus. The device expects this inexhaustible opportune cadence and feels, in a fleeting way, the dynamic architecture of life that thrives beneath its silicon heart. The lab grows, and with it, an enduring narrative—one captured, decoded, and broadcast in telling pairs of dots and bars across the screen of the world’s most unassuming weather sensors.

The Dawn of a New Signal

The sun had barely begun to pierce the steel grates of the old research lab when I unwrapped the newest addition to our arsenal: the USRP X410 with its 2‑Gauss MEMS gradiometer and 400 MHz total tuner bandwidth. Yesterday, the X410’s firmware had just been updated to 1.14, which unlocks the full 915 MHz ISM band with a clean, less‑noisy RF front‑end that can capture both continuous and burst transmissions with minimal distortion.

Into the 915 MHz ISM

Our first expedition was straightforward: we tuned the X410 to the 915 MHz band and streamed data to a laptop running the UHD driver and GnuRadio flowgraphs. The X410’s daughterboard, the FMC1845, gracefully settled into a max‑agc mode that made wild high‑amplitude bursts appear calm. The lab’s digital oscilloscope booted up, and the SDR’s samples poured in at 1‑Msps; the waterfall chart danced with peaks and valleys, each coloring an entire wireless ecosystem within the ISM band.

Listening for Power Signals

Power meters across the city now double‑handed as wireless messengers. Old analog meters were swapped for smart meters that broadcast over 433 MHz and 915 MHz in reverse‑engineering friendly ISM modes. In a matter of hours, we set the X410 to sweep the 915 MHz band with a 2 MHz bandwidth slice, capturing every modulation bloop and RF footstep. The captured packets were then handed over to the new OpenMeter decoder—a fork of the open‑source firmware that now natively supports the Enphase IQ‑Wave and Zero Energy Zenergy protocols.

Deconstructing the Grid

What followed was pure alchemy. In real‑time, the SDR rebroadcasted the narrowband, low‑frequency carrier into a digital stream that flowed through the OpenMeter decoding chain. The software identified the peculiar 576 Hz subcarrier used by the Emulation Power Meter, demodulated it, and reconstructed the data frames. As the packets unlocked, a live power‑meter readout bloomed across the wall, showing volts, amps, and instantaneous kilowatt usage—just as if we had wired a desktop to a wall socket.

The Power of Data, Literally

By late afternoon, the X410 had worked the entire 915 MHz band, capturing moments when a smart meter pulsed a 1900‑bit packet that sang “home energy consumption.” The process, though moving from analog curiosity to scientific reality, remained less script and more narrative. Each packet carried a story: temperature, phase, three‑phase load, and even a tiny bit of firmware hash humming beneath the data. In the lab, we ran a small script that parsed the JSON output and charted it on Grafana, turning raw signals into a tick‑by‑tick energy graph that could alert us to a sudden spike from an electric car charger or a failing voltage regulator.

Concluding the Chapter

What started as a mission to monitor the 915 MHz ISM band had blossomed into an immersive exploration of our electrical neighborhood. The USRP X410 proved to be more than just a radio; it was a storyteller that recounted the daily heartbeat of homes, offices, and the invisible currents that make modern life possible. After all, every meter that sends a burst into the air is humming a secret, and the X410 was our key to listening—and writing that secret in HTML, a format that's clean, human‑friendly, and, importantly, future‑proof.

When the lab lights dimmed, the USRP X410 sat humming quietly beside a bank of oscilloscopes. Its copper chassis glinted under the fluorescent bulbs, a silent promise of worlds far beyond the walls of the classroom. I had heard the legends: a dual‑band transceiver capable of spitting out terabytes of broadband data, a platform for real‑time analysis, and, most compellingly, a gateway to the bustling 915 MHz ISM band that pulsed with the chatter of drones, RFID readers, and countless IoT devices.

Setting the Stage

I opened the UHD control page in my web browser, refreshing the X410 until it registered its serial number and chirped once in acknowledgment. The first step was to confirm its clock stability; without a reliable 10 MHz reference I would never hear the faintest of signals. After attaching the high‑performance synth, an audio tone of steady 2 Hz confirmed the internal oscillator was locked. Then, with uhd_usrp_probe, I verified the device’s RF front‑end temperatures and bandwidth limits. The X410’s front coupler was unlocked for the full 0 – 6 GHz sweep, meaning the 915 MHz band was nothing more than a pause in the endless sea of frequencies.

Tuning Into the Pulse

With the hardware ready, I launched labview‑style software that let me shape the signal path. A programmable low‑pass filter with a 25 MHz bandwidth centered at 915 MHz sliced the traffic from the wide‑band mixdown. In the IQ data stream that followed, I could see a swarm of modulation signatures: a faint OOK burst from a sensor node, a FSK carrier from a remote thermostat, and the quadrature modulation of a drone broadcasting telemetry.

To capture these bursts with clarity, I programmed the X410 to operate in “continuous wave capture” mode, allowing the software to auto‑trigger on any spectral activity above a dynamic threshold. The antenna, a lightweight 2–8 GHz variant, was angled toward the transmission source—an array of antennas on the campus tower—so the whispers of control commands could be brought forward into the lab’s quiet.

Decoding the Commands

Once the data was ingested, it was time to translate. I employed an open‑source library that worked in tandem with GnuRadio to sift through the recorded packets. The 915 MHz band preserves a GFSK converter for many industrial protocols, and the library automatically matched the just‑received FSK waveform to known command patterns. By aligning the Manchester‑encoded preamble, the system could isolate each packet, convert the raw byte stream into ASCII, and display the intelligible command strings.

It felt akin to eavesdropping on a secret conversation: the first packet—a light switch toggling the LED on a rooftop relay—was a neat, clean UTF‑8 message: LED_ON. A closer packet, longer and more complex, carried a channel‑change request for a subsurface RFID reader. An entire firmware update for a small pressure sensor spilled across several hundred packets, each line rippling in time as the transmission progressed.

Real‑World Impact

By integrating the X410 into a monitoring loop, engineering teams were able to stake out the 915 MHz ISM band for interference diagnostics, ensuring new devices never collided with legacy traffic. The SDR’s ability to precisely replay captured packets meant that remote devices could be commanded from the lab, enabling swift debugging sessions without the flurry of physical hardware access. In a similar vein, the captured control streams were fed into a reinforcement learning model, teaching an autonomous system to predict and preempt potential network bottlenecks.

As the day drew to a close, I closed the SDR’s front panel, the internal clock ticking on. Through its antenna, the lab had become an outward‑looking monitor, a silent sentinel catching the feathery edges of command and control. The USRP X410 had opened a conduit to the 915 MHz ISM band, and with it, a new narrative of observation, interaction, and possibility unfolded. The story was not just about hardware; it was about weaving invisible threads of data into a tapestry that could be read, understood, and acted upon—one frequency at a time.

The Setup

In a dimly lit workshop, the USRP X410 sits on a workbench, its high‑speed cables humming. The device, a 12‑bit ADC with an 8‑giga‑samples‑per‑second rank, is wired into a powerful workstation running the latest UHD firmware from 2026. The board’s firmware, updated mid‑2025, now supports native 915‑MHz band hardware acceleration, making it a dream for anyone who wants to peer into the ISM spectrum.

Tuning into the 915 MHz

With a fresh gnuradio‑flowgraph loaded, the flow begins by setting the LO to a precise 916.0 MHz center. The fractional decimation algorithm automatically samples the band from 912 to 920 MHz, covering the entire LoRa and other 915‑MHz protocols. The X410’s dual‑channel RF Front‑End switches forward the analog input straight into the FPGA, shining light on every chirp that enters that slice of the sky.

Listening to Status Messages

Once the SDR tunes, a quiet hum of data ensues. Security devices—door sensors, smoke detectors, and smart locks—broadcast little packets over LoRa at 250 kbps. Those messages are tiny bursts, each carrying a status code, a battery level, and sometimes a simple alarm flag. The SDR captures these bursts in raw IQ format, and software like scapy‑lorawan parses them in real time, displaying a live log of device health. The glow of the monitor shows the list of addresses, a column of reception quality, and the decoded status comment.

Decoding the Secrets

Delving deeper, the narrative reveals the importance of packet harvesting. By running a custom Python script that applies a matched filter for each known device’s unique SF code, the SDR can filter out background noise. When a packet lands on the memory buffer, the script reconstructs the LoRa payload, unpacks the proprietary protocol, and prints a friendly message: “Front Door: battery 87%, no alarm.” Even more, by logging these packets over a week, one can build a time‑series of device behavior, spotting failures before the real alarm sounds.

Safety and Laws

Until 2026, FCC rules still allow passive listening on 915 MHz for research, provided no transmission occurs. The story ends with a gentle reminder: never interfere with the device’s transmission, and always keep the software filtered to undisallowed duty cycles—the memo from the FCC authority states that passive listening in the 915 MHz ISM band remains legally safe as long as the SDR does not supply additional power or signal.

Unveiling the USRP X410 in the 915 MHz Landscape

The Ettus USRP X410 has quickly become a favorite among researchers who need a wide‑band solution that covers the 915 MHz ISM band. With a front‑end that extends from 300 MHz to 1.0 GHz, the X410 is capable of capturing almost any signal that operates in the UHF band, from simple AM broadcasts to the latest LoRa asset‑tracking firmware. Its 16‑bit, 250 MS/s converter provides the resolution required to isolate narrowband packets that are often only a few kilohertz in width.

Setting the Stage: From Power‑On to Capture

Once the X410 is powered, the first step is to direct its gain chain toward the 915 MHz region. The UHD API allows you to set the tuner’s center frequency and to apply a low‑pass filter that eliminates out‑of‑band noise. A typical command pattern might look like: set the center frequency to 915 MHz, activate the strongest available IQ gain, and then adjust the bandwidth to a few megahertz to keep the ADC beaming as clean as possible. At this point the device is ready to stream raw IQ samples to your host computer.

Harnessing GNURadio to Listen for Asset‑Tracking Signals

GNURadio gives the most flexible framework for turning those raw samples into intelligible data. A common flow graph for asset‑tracking begins with a FFT block that visualises the spectral density across the 915 MHz band. The sharp spikes that appear in the spectrum correspond to modulated payloads used by LoRa or proprietary RFID readers.

To decode LoRa packets, the design usually employs a Lora-FEC block that can recover the SF (spreading factor) and recover the payload. The X410’s high sampling rate ensures that the chirp transmissions are captured with enough fidelity for the demodulator to recover the CRC and the embedded GPS or timestamp information. The final stage of the pipeline is a simple JSON sink that writes out each decoded packet with its source address and payload, ready for further analytics.

Capturing the 915 MHz ISM Band in the Field

When deploying the X410 outdoor or anywhere with a clear line of sight, you’ll often need to compensate for Doppler shift or multipath fading. Setting a band‑pass filter at 915 ± 20 MHz and adding a modest pre‑amp can improve the signal‑to‑noise ratio enough that even low‑power beacons become visible. In practice, many user groups advise tweaking the IQ gain up to 30 dB, while keeping an eye on the ADC’s full‑scale range to avoid overflow.

One of the easier ways to validate that the X410 is properly tuned is to use a known reference, such as the test firmware from a commercial asset‑tracking provider. When the device receives the test frames, the output JSON will display the exact timestamp and location tags baked into the firmware, proving that the complete LoRa chain—from RF capture to field‑decryption—is functioning.

Beyond LoRa: Other Asset‑Tracking Protocols on 915 MHz

While LoRa dominates the 915 MHz spectrum, there are still proprietary systems that employ simple binary modulation. The X410 can still be used—after setting the correct symbol rates—to sniff out these transmissions. Using a combination of a Band‑limited FIR filter and a narrowband CFAR detector, you can isolate individual bursts and then pass them through a simple BPSK demodulator. Even with the absence of a pre‑built decoding block, the X410’s flexibility allows you to experiment with new asset‑tracking protocols as they surface.

When the Story Reaches Its Close

Once the system is live, the X410’s ability to stream long, continuous IQ data streams has proven indispensable. The ability to archive raw samples means that you can revisit a particular moment in time and re‑decode packets with an updated library, or march forward to test upgraded decoding frameworks. In short, the USRP X410 is not only a great tool for tuning into the 915 MHz ISM band, it also turns the entire process of receiving asset‑tracking messages into an interactive, repeatable story of exploration and discovery.

Setting the Stage

In a quiet laboratory, a radio engineer named Maya prepared her instrumentation for an overnight exploration of the 915 MHz ISM band. She had recently acquired a USRP X410 from Ettus Research, a device renowned for its broad frequency coverage and low‑noise performance. The X410’s dual 28‑bit analog‑to‑digital converters promised hours of reliable data acquisition, a critical requirement for monitoring industrial data streams that rarely sleep.

Turning the Gear On

Maya powered on the X410 and launched the Software‑Defined Radio (SDR) software suite. The latest USRP Driver (UHD) 3.14 was already installed, supported by a recent Ubuntu 24.04 release that kept kernel‑level drivers up to date. A quick command in the terminal uhd_usrp_probe confirmed the device’s ability to tune anywhere from 0 to 6 GHz, and its internal temperature sensors displayed comfortable operating conditions.

Designing the Signal Path

Using GNU Radio Companion (GRC), Maya constructed a flow graph that began with the UHD Source block. She set the center frequency to 915 MHz and chosen a sampling rate of 2.4 Msps as recommended by the USRP X410 datasheet for optimal resolution without exceeding the receiver’s bandwidth limits. A low‑pass filter with a Q‑factor of 35 isolated the band of interest, trimming out any adjacent channels that might introduce spectral leakage.

Modulation Matters

Industrial machines often send telemetry packets that use frequency‑hopping spread spectrum (FHSS) in the ISM band. The USRP X410, working with GNU Radio, can decode these packets after applying a Frequency‑Hopping Table block. Maya inserted a custom Python script that read the latest LoRaWAN specification 1.0.4 to recognize the spreading factor and bandwidth settings used by industrial tags.

Capturing the Data

Once the flow graph was live, the X410 dutifully streamed complex baseband samples into GSM‑compatible logic. A Correlator block searched for known preambles, while a subsequent Demodulator converted the incoming signal into binary payloads. Maya’s logs revealed bursts of packet transmissions, each tagged with a precise timestamp from the X410’s integrated GPS‑DOA module. The device’s GPIB‑166 timestamps ensured that the industrial data could be aligned with other sensor streams in the facility.

Interpreting and Visualizing

To make sense of the traffic, Maya routed the demodulated payloads into PulseAudio for real‑time graphing. The resulting waterfall display showed clear carrier bursts drifting between 910 MHz and 920 MHz, exactly matching the ISO / IEC 16875 standard for industrial telemetry. As she inspected the packet headers, she noticed the Device ID field repeated overhead, confirming that each packet originated from a factory line sensor.

Lessons Learned

The USRP X410, when paired with modern SDR software, proves exceptionally well‑suited for continuous monitoring of the 915 MHz ISM band. By leveraging the device’s open firmware, flexible FPGA configuration, and robust API, engineers can capture, decode, and analyze industrial messages in real time. Maya closed her notebook, satisfied that she had mapped an entire night's worth of factory activity without any interference concerns, all thanks to the powerful yet user‑friendly platform that the X410 provides.



© 2005 - 2026 AB9IL.net, All Rights Reserved.
Written and curated by Philip Collier / AB9IL.
About Philip Collier / AB9IL, Commentaries and Op-Eds, Contact, Privacy Policy and Disclosures, XML Sitemap.