Pocket SDR captured data

category: gnss

Introduction

Pocket SDR is an open source software defined radio (SDR) released by Professor Tomoji Takasu of Tokyo University of Marine Science and Technology, which receives signals from global navigation satellite system (GNSS).

In addition, the Pocket SDR capture data published by Professor Takasu in his diary/remarks on March 27, 2025 also included the L1C/B signal being tested on the Michibiki 6 satellite J08. I was very impressed by this data, so I will also publish the Pocket SDR captured data I have. I will add any observation data I record here in the future.

Pocket SDR sample IF data

Usage

First, try to decode the GPS L1C/A and Galileo E1B signals.

Some recording files are compressed with gzip. For example, download the recording file L1.bin.gz and the tag file L1.bin.tag, and unzip the recording file with gunzip L1.bin.gz.

Then, fix the position with the Pocket SDR pocket_trk application. In this example, we are searching for the GPS L1C/A and Galileo E1-B signals.

$ pocket_trk L1.bin -prn 1-32 -sig E1B -prn 1-36
 1970-01-01 00:00:00.0   0.00000000    0.00000000     0.000   0/0 ---   BUFF:  4% SRCH:   2 LOCK:   9/  68
  CH RF  SAT   SIG PRN  LOCK(s) C/N0 (dB-Hz)         COFF(ms) DOP(Hz)    ADR(cyc) SYNC  #NAV #ERR #LOL FEC
   5  1  G05  L1CA   5    14.40 33.2 |              0.7138032 -1569.4    -22546.2 ----     0    0    0   0
  12  1  G12  L1CA  12    13.70 44.0 ||||||||       0.5609495  1025.9     14074.2 -B--     0    1    0   0
  20  1  G20  L1CA  20    12.87 30.0 |              0.2656514   570.1      7312.5 ----     0    0    0   0
  24  1  G24  L1CA  24    12.50 54.1 ||||||||||||   0.3122772 -1539.0    -19234.4 -BF-     1    0    0   0
  25  1  G25  L1CA  25    12.45 44.4 ||||||||       0.8502644  3326.7     41415.1 -BFR     1    0    0   0
  32  1  G32  L1CA  32    11.59 36.1 |||            0.6249231  2534.7     29402.0 -BF-     1    0    0   0
  37  1  E05   E1B   5    10.24 50.9 ||||||||||||   0.6130906 -1830.9    -18754.3 -BFR     3    0    0   0
  57  1  E25   E1B  25     3.93 45.1 |||||||||      0.2554515  2076.4      8157.7 ----     0    0    0   0

For recording specifications such as center frequency, sampling frequency, please note the configuration file name in the recording batch file sat.sh and refer to Awesome Pocket SDR (Effective use of configuration files).

Aachen, Germany (Recommended: ★☆☆)

This data was recorded when I stayed at a hotel in front of Aachen Station, with the antenna placed by the window. Due to a tall building across the street, the signal level was low, and only about three GPS satellites could be received with sufficient strength.

Aachen data

  • Recording date: November 3, 2024
  • Receiver: Pocket SDR FE4CH (DATAGNSS version)
  • Antenna: Beitian BT-200
  • Cable: RG58 2 meters
  • Recording software: Pocket SDR version 0.13

Pocket SDR signal capture at Aachen, German

Bonn, Germany (Recommended: ★☆☆)

I recorded it in the square near the hotel early in the morning. I had intended to record for 30 seconds, but it was only 15 seconds long, so I was unable to get a positioning result. I was also able to record Galileo HAS (E6B signal) data.

Bonn data 1
Bonn data 2

  • Recording date: November 6th and 7th, 2024
  • Receiver: Pocket SDR FE4CH (DATAGNSS version)
  • Antenna: Beitian BT-200
  • Cable: RG58 2 meters
  • Recording software: Pocket SDR version 0.13

Pocket SDR signal capture at Bonn, German

Hiroshima City University (Recommended: ★★☆)

I connected the receiver to an available port on the GNSS observation station and recorded. Although I was able to receive a stable signal, I was unable to obtain a position because the recording time was only 30 seconds.

Hiroshima data

  • Recording date: November 13, 2024
  • Receiver: Pocket SDR FE4CH (DATAGNSS version)
  • Antenna: Beitian BT-200
  • Cable: RG58 2m + 2m
  • Signal splitter: INSTOCK GPS410 (4 way)
  • Recording software: Pocket SDR version 0.13

To demodulate the GPS L1C/A signal, Michibiki L1C/A signal, or Galileo E1-B signal, do the following:

pocket_trk L1.bin -prn 1-32,194-199 -sig E1B -prn 1-36

Similarly, it is also possible to demodulate Michibiki CLAS (L6D signal), MADOCA-PPP (L6E signal), and Galileo HAS (E6B signal).

$ pocket_trk L6.bin -sig L6D -prn 194-199 -sig L6E -prn 204-209 -sig E6B -prn 1-36

Pocket SDR signal capture at Hiroshima City University, Japan

Eindhoven, Netherlands (Recommended: ★★★)

I used the configuration file pocket_L1G1L5L6_16MHz.conf. Since it was recorded in raw data format, one file 20250605-073318fe4.bin contains data for 4 channels.

Eindhoven data

  • Recording date: June 5, 2025
  • Receiver: Pocket SDR FE4CH (DATAGNSS version)
  • Antenna: Beitian BT-200
  • Cable: RG58 2 meters
  • Recording software: Pocket SDR version 0.14

Positioning is possible with GPS L1C/A and Galileo E1-B. SBAS and Galileo E6-B signals can also be detected.

We also attempted to record data at a sampling frequency of 48 MHz, which exceeds the hardware limits (20250605-073918all.bin), but the operation was unstable and the data could not be recorded completely.

Efficient signal analysis with shell scripts

To efficiently find the presence of a signal, I created a shell script. trap allows the process to be interrupted with Ctrl+C.

In the second half, the recording file name, signal name, and PRN number range are given to the function psdr_exec. The combination of signal name and PRN (pseudo random noise) number range was written with reference to the shell script in the Pocket SDR test directory.

#!/bin/bash

set -eu

psdr_exec()
{
    FILE=$1
    SIG=$2
    PRN=$3
    echo $SIG \($FILE\)
    pocket_trk $FILE -sig $SIG -prn $PRN
}

term()
{
    echo terminated.
    exit 0
}

trap term 2

psdr_exec L1.bin   L1CA  1-32,193-202
psdr_exec L1.bin   L1CB  202-206
psdr_exec L1.bin   L1CA  120-158
psdr_exec L1.bin   L1S   183-186,189
psdr_exec L2.bin   L2CM  1-32,193-201
psdr_exec B1I.bin  B1I   1-62
psdr_exec B2I.bin  B2I   1-18
psdr_exec G1.bin   G1CA  -7-6
psdr_exec G2.bin   G2CA  -7-6
psdr_exec L6.bin   E6B   1-36
psdr_exec L6.bin   E6C   1-36
psdr_exec L6.bin   L6D   193-202
psdr_exec L6.bin   L6E   203-212
psdr_exec B1Ia.bin B1I   1-62
psdr_exec B3I.bin  B3I   1-62
psdr_exec E1.bin   E1B   1-36
psdr_exec E1.bin   E1C   1-36
psdr_exec E5b.bin  B2BI  19-50
psdr_exec E5b.bin  E5BI  1-36
psdr_exec E5b.bin  E5BQ  1-36
psdr_exec G1OC.bin G1OCD 1-27
psdr_exec G1OC.bin G1OCP 1-27
psdr_exec G3OC.bin G3OCD 1-27
psdr_exec G3OC.bin G3OCP 1-27
psdr_exec L1a.bin  B1CD  19-50
psdr_exec L1a.bin  B1CP  19-50
psdr_exec L1a.bin  E1B   1-36
psdr_exec L1a.bin  E1C   1-36
psdr_exec L1a.bin  I1SP  1-14
psdr_exec L1a.bin  I1SP  1-14
psdr_exec L1a.bin  L1CD  1-32,193-199
psdr_exec L1a.bin  L1CP  1-32,193-199
psdr_exec L5.bin   B2AD  19-50
psdr_exec L5.bin   B2AP  19-50
psdr_exec L5.bin   E5AI  1-36
psdr_exec L5.bin   E5AQ  1-36
psdr_exec L5.bin   I5S   1-14
psdr_exec L5.bin   L5I   1-32,193-199
psdr_exec L5.bin   L5I   120-158
psdr_exec L5.bin   L5Q   1-32,193-199
psdr_exec L5.bin   L5Q   120-158
psdr_exec L5.bin   L5SI  184-186,189
psdr_exec L5.bin   L5SQ  184-186,189

Conclusion

I was so impressed by the Pocket SDR recording data that Professor Takasu released at the end of March that I decided to release my own data as well.

This FE4CH hardware fits neatly into an empty SFP+ optical transceiver case. Now I can carry it around with peace of mind.

Pocket SDR FE4CH case

For future signal recordings, I will do thorough advance preparation and rehearsals, record data for 10 minutes, and check the contents on the site.


Related article(s):