Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Once gnss-sdr Position fix is established, gnss-sdr-monitor stops responding #20

Open
ampledata opened this issue Jan 20, 2022 · 2 comments

Comments

@ampledata
Copy link

ampledata commented Jan 20, 2022

Hi, First, thanks for this tool, I'm really looking forward to using it.

I'm able to stream data from gnss-sdr to gnss-sdr-monitor, but once a Position fix is established, the gnss-sdr-monitor windows stops responding. I can see sat data, etc in the window, but that no longer updates, and the alt/lat/lon fields are never filled. Only fix is to stop gnss-sdr, at which point gnss-sdr-monitor starts responding again. I've tried to change the buffer size from 50/500/1000 to no avail. I've also enabled throttling on gnss-sdr.

Steps to reproduce:

  1. Configure gnss-sdr to stream into gnss-sdr-monitor (per the docs).
  2. Start gnss-sdr-monitor
  3. Start gnss-sdr

Expected result:

  1. gnss-sdr-monitor should display sat data received from gnss-sdr.
  2. gnss-sdr-monitor should display position fix data from gnss-sdr (once position fix is established).

Actual result:

  1. gnss-sdr-monitor monitor displays sat data, but not position fix data.
  2. gnss-sdr-monitor 'locks up' until gnss-sdr exits.

Here's my gnss-sdr-monitor config file:

[Main_Window]
pos=@Point(0 0)
size=@Size(1400 600)

[Preferences_Dialog]
buffer_size=1000
port_gnss_synchro=1111
port_monitor_pvt=1112

[TelecommandWidget]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x13\0\0\x3\xc4\0\0\x1\xad\0\0\0\0\0\0\0\x13\0\0\x3\xc4\0\0\x1\xad\0\0\0\0\0\0\0\0\a\x80\0\0\0\0\0\0\0\x13\0\0\x3\xc4\0\0\x1\xad)

[tableView]
column\1\width=100
column\10\width=100
column\11\width=376
column\2\width=100
column\3\width=100
column\4\width=100
column\5\width=100
column\6\width=100
column\7\width=100
column\8\width=100
column\9\width=100
column\size=11

And my gnss-sdr config (I cargo-culted most of this from the gnss-sdr website):

[GNSS-SDR]
GNSS-SDR.telecommand_enabled=true
GNSS-SDR.telecommand_tcp_port=3333

;######### GLOBAL OPTIONS ##################
GNSS-SDR.internal_fs_sps=2000000

;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=Osmosdr_Signal_Source
SignalSource.item_type=gr_complex
SignalSource.sampling_frequency=2000000
SignalSource.freq=1575420000
SignalSource.gain=40
SignalSource.rf_gain=40
SignalSource.if_gain=30
SignalSource.AGC_enabled=false
SignalSource.samples=0
SignalSource.repeat=false
;# Next line enables the internal HackRF One bias (3.3 VDC)
SignalSource.osmosdr_args=hackrf,bias=0
SignalSource.enable_throttle_control=true
SignalSource.dump=false
SignalSource.dump_filename=./signal_source.dat

;######### SIGNAL_CONDITIONER CONFIG ############
SignalConditioner.implementation=Signal_Conditioner

;######### DATA_TYPE_ADAPTER CONFIG ############
DataTypeAdapter.implementation=Pass_Through

;######### INPUT_FILTER CONFIG ############
InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.decimation_factor=1
InputFilter.input_item_type=gr_complex
InputFilter.output_item_type=gr_complex
InputFilter.taps_item_type=float
InputFilter.number_of_taps=5
InputFilter.number_of_bands=2
InputFilter.band1_begin=0.0
InputFilter.band1_end=0.85
InputFilter.band2_begin=0.9
InputFilter.band2_end=1.0
InputFilter.ampl1_begin=1.0
InputFilter.ampl1_end=1.0
InputFilter.ampl2_begin=0.0
InputFilter.ampl2_end=0.0
InputFilter.band1_error=1.0
InputFilter.band2_error=1.0
InputFilter.filter_type=bandpass
InputFilter.grid_density=16
InputFilter.dump=false
InputFilter.dump_filename=../data/input_filter.dat

;######### RESAMPLER CONFIG ############
Resampler.implementation=Pass_Through

;######### CHANNELS GLOBAL CONFIG ############
Channels_1C.count=8
Channels.in_acquisition=1

;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.pfa=0.01
Acquisition_1C.doppler_max=5000
Acquisition_1C.doppler_step=250
Acquisition_1C.max_dwells=1
Acquisition_1C.dump=false
Acquisition_1C.dump_filename=./acq_dump.dat

;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
Tracking_1C.extend_correlation_symbols=10
Tracking_1C.early_late_space_chips=0.5
Tracking_1C.early_late_space_narrow_chips=0.15
Tracking_1C.pll_bw_hz=40
Tracking_1C.dll_bw_hz=2.0
Tracking_1C.pll_bw_narrow_hz=5.0
Tracking_1C.dll_bw_narrow_hz=1.50
Tracking_1C.fll_bw_hz=10
Tracking_1C.enable_fll_pull_in=true
Tracking_1C.enable_fll_steady_state=false
Tracking_1C.dump=false
Tracking_1C.dump_filename=tracking_ch_

;######### TELEMETRY DECODER GPS CONFIG ############
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false

;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
Observables.dump=false
Observables.dump_filename=./observables.dat

;######### PVT CONFIG ############
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=Single
PVT.output_rate_ms=100
PVT.display_rate_ms=500
PVT.iono_model=Broadcast
PVT.trop_model=Saastamoinen
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
PVT.rtcm_tcp_port=2101
PVT.rtcm_MT1019_rate_ms=5000
PVT.rtcm_MT1077_rate_ms=1000
PVT.rinex_version=2

PVT.enable_monitor=true
PVT.enable_protobuf=true
PVT.monitor_client_addresses=127.0.0.1
PVT.monitor_udp_port=1112

Monitor.enable_monitor=true
Monitor.enable_protobuf=true
Monitor.decimation_factor=1
Monitor.client_addresses=127.0.0.1
Monitor.udp_port=1111
@ampledata
Copy link
Author

ampledata commented Jan 20, 2022

Bumping the buffers up to 5000 fends off the 'freeze' problem for a little while, still happens eventually, still not showing lat/lon from fix however. Will report back if that changes.

@vladisslav2011
Copy link

vladisslav2011 commented May 4, 2022

Hello.
Your machine is not fast enough. Try setting Monitor.decimation_factor to 4 at least.
And enable PVT clock correction PVT.enable_rx_clock_correction=true.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants