0% found this document useful (0 votes)
65 views7 pages

GitHub - An SDR Receiver Purposely For JAERO

GitHub data for SDR-Receiver Program

Uploaded by

souwestrubi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views7 pages

GitHub - An SDR Receiver Purposely For JAERO

GitHub data for SDR-Receiver Program

Uploaded by

souwestrubi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

jeroenbeijer / SDRReceiver Public

Code Issues 5 Pull requests Actions Projects Security Insights

3 Branches 1 Tags Go to file GoAbout


to file Code

An SDR Receiver purposely for


jeroenbeijer Update ci-windows-build.sh
JAERO
a5e61e4 · 2 years ago
Readme

.github/… Update ci-linux… 3 years ago MIT license

Activity
gnuradio initial commit 3 years ago
26 stars

jonti Update sdr.cpp 3 years ago 6 watching

5 forks
kiss_fft130 initial commit 3 years ago
Report repository
sample_ini added 288k mo… 3 years ago

Releases
.gitignore gitignore adde… 3 years ago

1 tags
LICENSE initial commit 3 years ago

README… Update READM… 3 years ago Packages

SDRRece… Modified autost… 3 years ago No packages published

ci-linux-… Update ci-linux… 3 years ago


Contributors 3

ci-windo… Update ci-wind… 2 years ago


jeroenbeijer
halfband… initial commit 3 years ago
jontio Jonti Olds
halfband… initial commit 3 years ago
Roethenbach

main.cpp removed unnee… 3 years ago

mainwin… Update mainwi… 2 years ago Languages

mainwin… Modified autost… 3 years ago


C++ 96.1% C 3.3%
Other 0.6%
mainwin… Modified autost… 3 years ago

oscillator… initial commit 3 years ago

oscillator.h initial commit 3 years ago


qcustom… initial commit 3 years ago

qcustom… initial commit 3 years ago

sdrj.cpp Modified autost… 3 years ago

sdrj.h Modified autost… 3 years ago

vfo.cpp added 288k rate 3 years ago

vfo.h added 288k rate 3 years ago

zmqpubl… cleanup and ad… 3 years ago

zmqpubl… added sending … 3 years ago

This project contains a basic SDR Receiver which feeds


JAERO with audio from an R820T2 RTL2832U device like the
RTL SDR V3. Rather than feeding JAERO with audio via
audio cables, this implementation makes use of ZeroMQ as
the interface between the SDR and JAERO. This provides a
more stable data flow which is significanty less prone to
CRC errors in JAERO.

In addition, the aim of the project is to run at low CPU


usage without any bells or whistles. The GUI is very simple
and has only basic features to select the RTL device, start
the SDR as well as enable or disable the device bias tee. The
FFT is purposely slow to reduce CPU usage. You can select
individual VFO's in the dropdown menu which should
display the approximate spectrum shown in JAERO.

All settings are made in an ini file. A few examples ini files
are included in the project. Further details on the options in
the ini file are to follow but be very careful when editing the
file, any mistakes may cause the program not to run
correctly.

Note that this SDR requires a JAERO instance of version


1.0.4.13 or higher which has the ZeroMQ audio source
options included.
README MIT license

Inmarsat AERO channels are more or less grouped in


clusters of lower speed channnels (600/1200) and higher
speed channels (10500/8400). The SDR takes advantage of
this by grouping these in a "main" VFO which allows the
whole group to be mixed down and decimated from the
original sample rate down to a much lower rate that still
covers all of the channels inside the group. Each channel /
sub VFO is then mixed / decimated down to the required
frequency and sample rate as well as USB demodulated.
The resulting data is transmitted to JAERO via a ZeroMQ
PUB/SUB pattern (https://zguide.zeromq.org/). This means
that it is possible to connect several JAERO instances to the
same SDR VFO output. It also allows you to run the SDR on
a different device to where JAERO is running, provided
there is network connectivity between the two. The SDR is
the ZMQ Publisher and binds to the address specficied in
the ini file:

zmq_address=tcp://*:6003

Each VFO defined in the ini file should have it own Topic
name as shown in the below ini file excerpt
This topic name would then be matched by the settings in
JAERO:

The easiest way to start the SDR is by creating a bat or shell


script to pass the ini file name argument, i.e. on windows:

start SDRReceiver.exe -s ini/SDR_25E.ini

In order to make this work I have re-used some of Jonti's


excellent code from his JDSCA project for handling the RTL
callback and data handling. I also used some gnuradio
project code for FIR coeffecient calculations.

The main sample rate for the device is set as follows:

sample_rate=1536000
However this should probably not be changed. Except for
the older I3 satellite at 54W all channels fit nicely with a
1.536.000 sample rate and it can be decimated down to
48Khz entirely with half band FIR filters. In order to cover
the data channels and voice channels around 1546.8 for
54W it is also possible to run at 1.920.000 but obviously this
takes a little more CPU and has no obvious benefit for the
I4 satellites. A more narrow 288.000 sample rate is also
available which might be useful on slower devices or if you
are only interested in particular channels.

The center frequency is chosen so that both the lower


speed data channels and higher speed channels as well
voice channels are covered:

center_frequency=1545600000

Other ini file keys: set the tuner gain, 496 is the highest for
R820T2 devices

tuner_gain=496

remove the annoying spike in the center of the spectrum


correct_dc_bias=1

when changing dongles there may be a slight freqency


difference. Use this to tune ALL VFO's up or down by a
number of Hz. Use positive values to tune higher, negative
values to tune lower

mix_offset=0

You should be able to connect to remote RTL that is


running via rtl_tcp, it will show in the device drop down
when enabled

remote_rtl=127.0.0.1:1234

Also the tuner gain by index position can be selected with


this key where a value of 28 is the highest gain for an RTL
SDR V3

remote_rtl_gain_idx=28
The main VFO's are shown in the image above. There is
typically no need to change these unless perhaps while
setting up a new C Band ini file. The SDR should work for C
Band as well but the FFT is quite slow so it is probabaly a
good idea to determine the exact frequencies to use via
other means.

The SDR can be autostarted and with the following ini keys:

auto_start=1

auto_start_tuner_idx=0

The latter key being the zero based index of the RTL device
to be started as shown in the device dropdown

On some VFO you may like to low pass the audio prior to
sending to jaero, i.e. for the audio channels a 10Khz audio
filter could be useful to limit adjecent channel activity. Use
the filter_bandwidth ini setting on the vfo to set this. A
value of 0 means no filter, a value of 10000 would set a
10Khz hamming windowed low pass filter.

You may also need to adjust the gain slightly for your
setup. Increase or decrease the VFO gain value until you
get a green volume light in jaero

The decoding results in jaero should be similar to what one


would get from other SDR's but it becomes possible to run
jaero almost free of CRC errors even at high CPU loads.

Updated 17th October 2021

Added two new ini keys to auto start based on device serial:

auto_start=1
auto_start_tuner_serial=00000001

You might also like