op25 (boatbod) update

Status
Not open for further replies.

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
Last night I posted some updates to the boatbod fork of op25. The changes are all bug fixes and include an important change to the c/c++ library code. After performing a "git pull" please run the install.sh script or make/sudo make install from the build directory.

Fixed:
- failure to raise a control/voice channel timeout under weak signal conditions where no valid data is being decoded
- corruption of terminal display (curses and http) when scanning between multiple NACs.
- improper startup when trunk.tsv has multiple systems defined.
 

ATCTech

Active Member
Joined
Aug 13, 2002
Messages
1,857
Seems to be working great & the display looks much cleaner, thanks!
 

maus92

Member
Premium Subscriber
Joined
Jun 23, 2004
Messages
7,971
Location
The OP
What are the exact commands to run for us Linux noobs?
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
What are the exact commands to run for us Linux noobs?

There's lots of ways to slice and dice, but about the most compact and simplest would be as follows:
Code:
cd ~/op25
git pull
./install.sh

Under the covers the essential non-python piece is a change to p25_frame_assembler_impl.cc which requires a 'make' and 'sudo make install' from inside the ~/op25/build directory. All of that is readily accomplished by running ./install.sh
 

maus92

Member
Premium Subscriber
Joined
Jun 23, 2004
Messages
7,971
Location
The OP
There's lots of ways to slice and dice, but about the most compact and simplest would be as follows:
Code:
cd ~/op25
git pull
./install.sh

Under the covers the essential non-python piece is a change to p25_frame_assembler_impl.cc which requires a 'make' and 'sudo make install' from inside the ~/op25/build directory. All of that is readily accomplished by running ./install.sh

Thank you (from the rest of us who don't live and breathe Linux.) Eventually we'll learn.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
Thank you (from the rest of us who don't live and breathe Linux.) Eventually we'll learn.

Sure thing!

My time with unix/linux started back in '92 with early NetBSD (on x86 hardware) and Sun Solaris (on Sparc) and kinda progressed from there. Been involved with some form of software development both professionally and personally pretty much since the first microcomputers became generally available back in the 80's.
 

Mudary

Member
Joined
Jun 8, 2003
Messages
101
Thanks Boatbod, using on both Raspberry PI 3 and Ubuntu 18, working with no problems.
 

chksmithcis

Member
Premium Subscriber
Joined
Jul 10, 2006
Messages
7
Location
San Jose, CA
Last night I posted some updates to the boatbod fork of op25. The changes are all bug fixes and include an important change to the c/c++ library code. After performing a "git pull" please run the install.sh script or make/sudo make install from the build directory.

I performed an install of op25 for the first time today on Linux Mint 19. The installation instructions went off superbly. gqrx is seeing my R820T2. However, since I am a noob at the rx.py syntax, I think I may be doing something wrong.

When trying to find the control channel for Silicon Valley Regional Communications System (Santa Clara County, CA), I am using the following command line:

./rx.py -P fft --args "rtl=0" --gains 'lna:36' -S 2400000 -v 1 -q 0 -f 772.30625e6 -2 -U 2>stderr.2

GnuPlot shows there is something at that frequency. However reviewing the log file I get the following:

--------
gr-osmosdr v0.1.x-xxx-xunknown (0.1.5git) gnuradio 3.7.11
built-in source types: file osmosdr fcd rtl rtl_tcp uhd plutosdr miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesr$
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
[R82XX] PLL not locked!
[R82XX] PLL not locked!
Using two-stage decimator for speed=2400000, decim=25/4 if1=96000 if2=24000
--Snip--
op25_audio::eek:pen_socket(): enabled udp host(127.0.0.1), wireshark(23456), audio(23456)
p25_frame_assembler_impl: do_imbe[1], do_output[0], do_audio_output[1], do_phase2_tdma[1], do_nocrypt[0]
audio device: default
Allocating 15 zero-copy buffers
p25_framer::rx_sym() tuning error +1200
p25_framer::rx_sym() tuning error +1200
------

My questions are the following:

1) PLL not locked! Is this an issue? Did I miss a command?
2) Is there a document that explains the 'tuning error +1200'?

I have tried two different RTL2832U R820T2 version 3 dongles with the same results. I have also installed op25 on a second Mint 19 machine and I get the exact same errors.

Can someone point me to where I may have gone wrong or at least what the errors mean?

Thanks in advance for any clues provided.

Chuck Smith
 

SDRPlayer

Member
Premium Subscriber
Joined
Jul 22, 2016
Messages
185
does it make any difference if you add "-o 50000" to your commands"?
 

chksmithcis

Member
Premium Subscriber
Joined
Jul 10, 2006
Messages
7
Location
San Jose, CA
SDRPlayer,

Thanks for the feedback. And to answer your question, adding '-o 50000' causes an exception:

++++++++++++
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
[R82XX] PLL not locked!
[R82XX] PLL not locked!
Using two-stage decimator for speed=2400000, decim=25/4 if1=96000 if2=24000
Project 25 IMBE Encoder/Decoder Fixed-Point implementation
Developed by Pavel Yazev E-mail: pyazev@gmail.com
Version 1.0 (c) Copyright 2009
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; see the file ``LICENSE'' for details.
op25_audio::eek:pen_socket(): enabled udp host(127.0.0.1), wireshark(23456), audio(23456)
p25_frame_assembler_impl: do_imbe[1], do_output[0], do_audio_output[1], do_phase2_tdma[1], do_nocrypt[0]
audio device: default
Allocating 15 zero-copy buffers
terminal: exception occurred (132, 25)
terminal: exception:
Traceback (most recent call last):
File "/home/chksmith/op25/op25/gr-op25_repeater/apps/terminal.py", line 293, in run
if self.process_q_events():
File "/home/chksmith/op25/op25/gr-op25_repeater/apps/terminal.py", line 276, in process_q_events
return self.process_json(msg.to_string())
File "/home/chksmith/op25/op25/gr-op25_repeater/apps/terminal.py", line 211, in process_json
s = 'NAC 0x%x' % (int(current_nac))
ValueError: invalid literal for int() with base 10: 'None'
+++++++++++

Chuck
 

SDRPlayer

Member
Premium Subscriber
Joined
Jul 22, 2016
Messages
185
interesting. we have swapped one error for another. i was comparing your start command to mine and that seemed to be a difference. with any luck, Boatbod or Max will be along to guide you.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
The "tuning error" means you are close to having the system tuned and just need to adjust your ppm correction (-q) a little but up or down.

Use plot #5 to center the peak of the mixer output by adjusting -q. Once you get -q close enough you can use the fine tuning ('<', '>') to make any final adjustments.
 

chksmithcis

Member
Premium Subscriber
Joined
Jul 10, 2006
Messages
7
Location
San Jose, CA
The "tuning error" means you are close to having the system tuned and just need to adjust your ppm correction (-q) a little but up or down.

Use plot #5 to center the peak of the mixer output by adjusting -q. Once you get -q close enough you can use the fine tuning ('<', '>') to make any final adjustments.

Ahh. OK. I am getting closer, but still no joy. Using the following command line:

"./rx.py -P fft --args "rtl=0" --gains 'lna:36' -S 2400000 -v 1 -q 1 -f 772.30625e6 -2 -U 2>stderr.2"

The best I can get is -1200 or +1200 in the stderr output. Adjustment using '< or >' causes '-/+ 2400' or an exception. 'q' is '1' to get the peak of plot #5 as close to the center as possible. Adjustment with ',' or '.' does not help. As soon as I center, I get an exception and everything goes away.

The attached is about the best I can get before an exception. Stderr still states 'tuning error +1200'. Is the value of '-q' limited to an whole integer?

Thank you for your assistance.

Chuck
 

Attachments

  • Screenshot at 2018-11-12 08-17-23.jpg
    Screenshot at 2018-11-12 08-17-23.jpg
    18.6 KB · Views: 211

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
I usually recommend to keep fine tuning +/- 350 or less. Higher values usually indicate that you should increment/decrement -q 1 (ppm) instead. In the plot you posted you have a fine tune correction of 900, which is already a lot, yet the mixer hump could still move left a little so you might actually be closer to 1200 or more before you get it centered.

Reset fine tune (-d) to 0 and adjust -q iteratively until you get it close, then finish it up with fine tune. You'll know when it's correct because the tsbk counter (top right of terminal) will start incrementing.

Note: after adjusting fine tune using "," or "." you need to wait a second or so for things to settle down. Using "<" and ">" makes coarse 1200 adjustments whereas the "," and "." only change by 100 each time.
 

maus92

Member
Premium Subscriber
Joined
Jun 23, 2004
Messages
7,971
Location
The OP
My mixer is never that low (varies ~ 100-200) but the program works for me. Lowering the LNA helped, but the fine tuning works best at about 25 or so for me.
 
Status
Not open for further replies.
Top