OP25 Fine Tuning Required Reminder

Status
Not open for further replies.

Carter911

Member
Joined
Aug 17, 2021
Messages
59
OP25 Double Success:

A big Thank You to the OP25 Developers! Nice Job!

I have a little experience with 8-bit microcontrollers, but I am a total novice to RPi’s and Linux.

I have an RTL-SDR V3 up and running on an RPi V3B+.

It was, for me at least, a steep learning curve for both learning the new OS and getting OP25 up and running. It now works very well for monitoring an 800 trunk tracking system on a very busy system, where the Talk Group’s literally just stream by continuously.

It will occasionally miss a transmission when compared side-by-side to my Fire/EMS Kenwood HT, but that is the nature of a trunked 800 system.

I then purchased a second RPi 3 B+ and “cheaper” RTL-SDR V3, (It looks the same, but it was from a different web site, perhaps a clone?), and it totally failed. Interestingly, it worked for ADSB receiving, and works for commercial FM radio stations, but not for the 800 MHz system.

I then purchased a third RTL-SDR V3 and went through my notes and found it would receive the 800 MHz trucked Talk Groups for a while, and then it would stop receiving them. “For a while” could be 10 minutes, or perhaps an hour or two. It would then work again, instantly, when restarted. (And was, therefore, not a thermal detuning problem.)

I spent days, on and off, over several months, trying to figure out why one system worked perfectly, and the other would only receive for a short while before stopping.

Bottom Line: The tutorial sites that I visited, and the “Op25 documentation, April, 2017” pdf, never mentioned the FINE TUNING, -d, option/argument, or explained it.

Many sites said: OK, now adjust the -q parameter, perhaps over a range of -10 to + 10, until the system works…

Yesterday, reading some forum posts, I learned about the -d fine tuning, performed after the -q option to tune until one is seeing the NAC and TGs listed.

I also learned, from forum discussions, that the Constellation Plot should look like four small, tight, clusters at 45 degrees off axis, and that one should adjust for the SMALLEST deviation on the Option #6 Tuner Plot.

It turns out my course range tuning, with the -q argument, was good enough to receive the control channel and get the NAC and see the TGs, and briefly listen in, but it was too far off to stay locked in.

Once I adjusted the Fine Tuning, with the “, “ and “.” keys, and then put the offset into the command line argument, the system has been receiving just fine, without stopping as it previously did.

It was truly frustrating to have two, side-by-side systems, one working well, and one totally failing.

One forum post for a similar problem suggested that the I/Q demod was locking onto the control channel signal, and then mis-synching when returning from a voice channel that was distant to the control channel. That, now, in retrospect makes good sense. (I'm using a single SDR dongle receiver on the RPi.)

In hind sight, now, I have a better understanding of how the system works, and how one should tune it, including the Fine Tuning.



Perhaps my Google Searches were missing the mark, but I kept finding a command line reference pdf from April 2017 that did not include the -d fine tuning option / parameter. And, unfortunately, the RPi – for – Idiots & OP25 tutorial I used, although incredibly helpful, didn’t mention the fine tuning process.

I did not find a more up to date reference for the command line arguments.

If there is one, perhaps it could be added to the WikiStart OP25 Wiki / Starting Points / Install Instructions list.

If not, perhaps one could be created and added.



It would also be very helpful, for the newbie, to have an explanation of the six GnuPlots, with diagrams, and a couple of sentences of what one is looking at. For example, I never paid any attention to the Tuner Plot, as I had no idea what information it was telling me, and I didn’t know if -1 was good, or if +1 was good, or (heaven forbid), if 0 was good. From one of the forum posts I noted that the SMALLER the deviations the better.

From my reading I understood that C4FM (etc) had four states, and therefor that the Constellation and the Symbol plots should likely have four values without a lot of in between values, but I didn’t know how to fine tune the system to optimize the data stream and minimize the data error rate.



It would be great if the Wiki Starting Points had even just a paragraph explaining the process of course tuning to see the NAK and TGs show up, followed by fine tuning to minimize the Tuning Plot bar graph deviation, to make the system work reliably.



It would be super-great if there was also a simple flow chart / box diagram of the signal processing, and where the various GnuPlots data comes from along the signal processing chain. That would help one with debugging their setup. It doesn’t have to include all of the nuances and inter-dependencies of the software, but the big picture. Something along the lines of: Antenna, Tunable RF Rx, I/Q Demod, Packet re-ordering / reconstruction, Packet interpretation, Talk Group White List / Black List / Encrypted check, IBME Audio decoder, Audio output routing.



The Starting Points could also have a short paragraph explaining that the RF Receiver is temperature dependent, and that one should let the receiver, (regardless of which model is being used), warm up to a stable operating temperature before attempting tuning. (I understood this, and it wasn’t my stumbling block for the above problem, but it seems to be useful info for many individuals who have a problem getting their system up and running.)

I noticed that the little RTL-SDR USB dongle was running very hot, too hot to comfortably hold one’s finger on the case. I put two heat sinks on the dongle, one on each side, held in place with a rubber band, and without bothering to use any thermal paste, and the dongle now runs much cooler, which is generally a good thing for electronics.



Also, for anyone else reading this, perhaps before the OP25 documentation is updated, I think that also the -q course tuning is given as an integer, -10 to 0 to +10, (or whatever range), and each unit represents 1200 Hz offset deviation, ( ? ), the -d arguments are actually listed as -100, or + 400, etc., in 100 Hz increments, and not as a multiplier for the number of 100 Hz offset units.



Once again, the fine tuning option got my second setup up and running perfectly, matching the first setup! It was, for me, a somewhat lengthy and frustrating process to determine that the solution was actually very simple and straightforward! Hopefully this comment will help others who have a similar issue with their setup, and perhaps the Wiki could have a few more comments, as suggested above, to help the true beginner get up and running smoothly.



I am truly impressed by OP25, and again want to say Thank You to the developers!
 
Last edited:

boatbod

Member
Joined
Mar 3, 2007
Messages
3,414
Location
Talbot Co, MD
Note that there are differences between osmocom and boatbod tuning controls with the "-d" command line option being boatbod-specific. As a general rule however, you adjust the tuning using the datascope plot with the goal of centering the plot vertically so that transitions occur at the +/-1 and +/-3 positions.
 

Attachments

  • Screenshot from 2020-11-15 19-52-21.png
    Screenshot from 2020-11-15 19-52-21.png
    50.5 KB · Views: 42

KA1RBI

Member
Joined
Aug 15, 2008
Messages
799
Location
Portage Escarpment
The current (rc2 beta) release of osmocom OP25 contains some automatic frequency fine-tuning enhancements (frequency error tracking) which are activated using the "-X" command option (there is no argument).

No one would be more pleased than I to consign manual fine-tuning to history. It would be good to get user feedback on how well 'rc2' achieves this objective.

The basic procedure is:
- use the "-q ppm" option as a coarse-tuning option to get the tuning as close as possible
- enable the "-X" option
- from the http console select "RX", then scroll to the end. The error tracking data
are shown for each active channel (note: rx.py defines only one channel).
- click GOTO and enter a talk group ID non-existent in the system. This will effectively pin the CC
- allow up to one minute to stabilize
- if the "error band" value is negative (tuning error +1200), reduce the PPM value
- if the "error band" value is positive (tuning error -1200), increase the PPM value
- when "error band" is zero (desired value), the ideal "freq corr" and "tuning error" values are "the
lower the better".

Max
 

Carter911

Member
Joined
Aug 17, 2021
Messages
59
Hello BoatBod and KA1RBI,
Thank you for the feedback, it is much appreciated.

I was sooo happy I had my second system up and running correctly that I scratched that project off my list!

I have limited tinkering time these days, but anticipate more beginning next summer!
I may well, however, grab another SD card and see if I can get the rc2 Beta up and running, but it likely won't be this week.
I am such a neophyte that even simple tasks take forever, has I have to Google every step of the way, and then sort out the meaningful responses from all of the garbage or old, (and now obsolete), info.

I would, however, be glad to provide some feedback if I can make some time to give it a try.

Take care,

Jay
 

FPVDAD77

Newbie
Joined
Nov 16, 2017
Messages
1
Location
Huntington, WV
I had OP25 working from following OP25 for dummies but now I cant get it to work. this is what i get when i try to run the rx.py command. no box pops up just text. am I missing a file or program?

Using Python /usr/bin/python2
gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.13.4
built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
gain: name: LNA range: start 0 stop 0 step 0
setting gain LNA to 47
supported sample rates 250000-2560000 step 24000
Exact sample rate is: 2500000.107620 Hz
[R82XX] PLL not locked!
Using two-stage decimator for speed=2500000, decim=25/4 if1=100000 if2=25000
p25_frame_assembler_impl: do_imbe[0], do_output[0], do_audio_output[0], do_phase2_tdma[0], do_nocrypt[1]
metadata update not enabled
Allocating 15 zero-copy buffers
Flowgraph completed. Exiting
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,414
Location
Talbot Co, MD
I had OP25 working from following OP25 for dummies but now I cant get it to work. this is what i get when i try to run the rx.py command. no box pops up just text. am I missing a file or program?

Using Python /usr/bin/python2
gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.13.4
built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
gain: name: LNA range: start 0 stop 0 step 0
setting gain LNA to 47
supported sample rates 250000-2560000 step 24000
Exact sample rate is: 2500000.107620 Hz
[R82XX] PLL not locked!
Using two-stage decimator for speed=2500000, decim=25/4 if1=100000 if2=25000
p25_frame_assembler_impl: do_imbe[0], do_output[0], do_audio_output[0], do_phase2_tdma[0], do_nocrypt[1]
metadata update not enabled
Allocating 15 zero-copy buffers
Flowgraph completed. Exiting
Which version are you running? What are your command line options? Is there anything else in the log?
 
Status
Not open for further replies.
Top