OP25 Trying To Update OP25 Osmocom Version

CanesFan95

Analog already is interoperable.
Joined
Feb 14, 2008
Messages
3,331
Location
FL
I want to thank you for taking the time to post all those instructions & screenshots. Just installing Virtual Box seems to run into a couple snags, though. Is there anything I need to change at this prompt:

1738444628247.png

During the install, I get a prompt saying I'm missing something:

1738444670253.png

Then after the install is done, I get an error on the right side, even after installing the extension pack:

1738445764003.png

When installing the extension pack, all I get is a prompt to agree to the license, but there's no progress bar or anything that loads when it installs. Do I need to be concerned about these errors before creating the VM?
 

Attachments

  • 3.PNG
    3.PNG
    62.5 KB · Views: 5
Last edited:

CanesFan95

Analog already is interoperable.
Joined
Feb 14, 2008
Messages
3,331
Location
FL
Even though both Airspy dongles show in the Windows device manager

1738446558550.png

VirtualBox doesn't have 'em to where I can add 'em

1738446646198.png


And it doesn't even let me open the VM

1738447836260.png
 
Last edited:

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,319
Location
Lafayette County, FL
You may have to boot into your UEFI interface (BIOS), and enable virtualization options. The exact name may vary depending on manufacturer. Also, you will need the VirtualBox Extension Pack for things like USB 3.0.
 

CanesFan95

Analog already is interoperable.
Joined
Feb 14, 2008
Messages
3,331
Location
FL
Virtualization is already enabled. I think at this point it's becoming a goose chase and will opt to just use the RTS-SDRs since they do work.

Which brings me to my next question. :)

In my .json file, the only gain setting that will work is 28. If I put in anything other than 28, the program won't run. I need a lower gain setting than that and have tried the values that DSD+ shows 15.7 16.6 19.7 20.7 22.9 25.4 when you type 'g', but none of those work in OP25.
 

wgbecks

Active Member
Joined
Jan 17, 2005
Messages
1,063
Location
NE Wisconsin
Oops! A little gotcha with VirtualBox 7.1.6 where Oracle introduced the capabilities to control VB via python scripting. You may be alright
to continue on to building your Linux VM, but to be safe, I would uninstall VirtualBox and reinstallation.

Upon the reinstallation, expand out the Python VirtualBox Support at the bottom of the tree where you can click on an option to skip
python support. Now create your Ubuntu VM per my previous post.
 
Last edited:

wgbecks

Active Member
Joined
Jan 17, 2005
Messages
1,063
Location
NE Wisconsin
Upon the reinstallation, expand out the Python VirtualBox Support at the bottom of the tree where you can click on an option to skip
python support. Now create your Ubuntu VM per my previous post.
Don't forget to double click on the Extension Pack after reinstalling VirtualBox. Then do a reboot of your PC before attempting
to create and install the VM.
 

wgbecks

Active Member
Joined
Jan 17, 2005
Messages
1,063
Location
NE Wisconsin
So, I installed VirtualBox 7.1.6 and was able to build a Ubuntu VM but am finding the new version somewhat buggy in the virtualization
of the PC sound device and with the USB bus. I have OP25 up and running, but had to reboot the VM a couple of times to clear missing
audio or broken data transfer to/from the Airspy. I am going to uninstall 7.1.6 and go back to an old version that was stable.
 
Last edited:

wgbecks

Active Member
Joined
Jan 17, 2005
Messages
1,063
Location
NE Wisconsin
....... I am going to uninstall 7.1.6 and go back to an old version that was stable.
Well, that didn't go well. I had to blow out a bunch of registry keys before I could achieve a clean installation and working 7.1.6 version.
All seems well now, and I was able to spin up a fresh Ubuntu 22.04.5 VM, then build op25 without issues.
 

CanesFan95

Analog already is interoperable.
Joined
Feb 14, 2008
Messages
3,331
Location
FL
Success! Got the VM set up and OP25 working on the Airspies. Yes!!!! Finally. (y)

I think what maybe did it was re-booting before creating the VM. I wasn't doing that before.

I did have to fight through some other issues, like copy/paste not working betwen host & guest. Got it working, but only for text and it won't lemme copy/paste files. Only dragging & dropping works. But still super glad to get this puppy workin', dog! :p

Now the audio quality is somewhat poor / quiet, but I've got a program called PulseEffects installed and will have to play around with the equalizer.
 

wgbecks

Active Member
Joined
Jan 17, 2005
Messages
1,063
Location
NE Wisconsin
I did have to fight through some other issues, like copy/paste not working betwen host & guest. Got it working, but only for text and it won't lemme copy/paste files. Only dragging & dropping works. But still super glad to get this puppy workin', dog! :p

Access the "Settings" for your VM and then go to the General>Advanced Tab where you can set "Shared Clipboard" & "Drag'n'Drop"
to Bidirectional that will allow you to copy and paste back and forth between Windows and the VM.

VB_Advanced.png

Now the audio quality is somewhat poor / quiet, but I've got a program called PulseEffects installed and will have to play around with the equalizer.

A couple of things. You may need to trim your Airspy(s) to bring them onto frequency. Go to the Configuration Tab in the GUI, then
way down on the bottom left side, you'll find a box labeled "RX Update". Place a check in that box, press "Save Display Settings" then
press "Load Settings". Now go back to the top of the screen and click on "RX" where you'll see frequency tracking data for your SDR.
(See screen capture below).

The object is to adjust the PPM "-q " to a value (plus or minus) that reduces the Tune Errors seen in the Events Window. In my case,
I ended up with -q 0.3 to bring my Airspy to within 20 Hz on the control channel frequency of the system that I am monitoring.

RX_Update.png

Verify you don't have too much, or too little signal. Observe the FFT Plot while tuned to the control channel of the
system you're monitoring. Enable the FFT Plot by adding "-P fft" to your rx.py command line. The spike at the center
of the FFT Plot (shown below) represents a control channel signal level that's approximately 28-30 dB above the noise
floor that is in the ideal range.

You'll likely need to adjust the LNA Gain, or move/change antennas, if you're unable to achieve a similar S/N ratio.

I' ve found experimentally, that best results are obtained while setting Mixer Gain to 12 and the IF Gain at 8, regardless
of where you end up having to set the LNA Gain.

IE: ./rx.py --args 'airspy=0,sensitivity=0,linearity=0,bias=0' -N 'LNA:15,MIX:12,IF:8'


FFT.png


Last thought, don't forget to set the VM's Master Volume Control. By default, it's quite low and usually needs to
be cranked up to about 85% to achieve decent loudness. BTW, I almost universally use Liquidsoap to process
audio for my various instances of op25, that among other things, allows me to do some gain compression that
serves to level out differences in digital audio.
 

CanesFan95

Analog already is interoperable.
Joined
Feb 14, 2008
Messages
3,331
Location
FL
Yeah, I had the "Bidirectional" thing enabled but had to run something called "Guest Additions" to get right-click copy/paste working. It works for text only, but not for files. I can only drag-and-drop, right-click copy/paste on files doesn't work.

My error rates look higher than yours:

1738719602885.png

My gain settings are LNA:12,MIX:10,IF:8

1738719652551.png
Do you know where in the .json file I enter the -q values:

1738719738572.png
 

wgbecks

Active Member
Joined
Jan 17, 2005
Messages
1,063
Location
NE Wisconsin
View attachment 177614

I can't tell for sure, but you may be getting some interference. It could be simple overload of the
LNA (front-end) of the SDR. Try reducing the LNA gain some. Shoot for a value that places the CC
sike at about 30 dB (or a little more) above the noise floor.

View attachment 177615

Do you know where in the .json file I enter the -q values:

It's the ppm field that is currently setting at "0" in the screen capture of your Device section.

Adjust the LNA gain per my comment above first, then observe the Tun Errors
and start making adjustments of the ppm from there.
 

wgbecks

Active Member
Joined
Jan 17, 2005
Messages
1,063
Location
NE Wisconsin
My error rates look higher than yours:

View attachment 177613

My error rates look higher than yours:

View attachment 177613

I forgot to comment. It's apparent that you have the "-X" (Auto Tracking) option specified on your multi_rx.py command line.
The "Auto Tracking" can be valuable to bring the SDR to frequency, but does override your settings for PPM as specified in
your JSON file. Further, be advised that extended runtime with "-X" will eventually cause op25 to crash.

Remove the "-X" from your command line, restart op5 and adjust the LNA gain as described in Post #32, then while watching the
RX Updates in the Events Windows, start applying changes to PPM to dial the SDR onto frequency.

Once the LNA gain has been optimized, and frequency errors at +/- 100 Hz (or less), the audio quality should be quite excellent.
 

CanesFan95

Analog already is interoperable.
Joined
Feb 14, 2008
Messages
3,331
Location
FL
I lowered the gains and now get this, but I can't tell what the X and Y axis values/numbers mean:

1738803938366.png
And I've always found PPM confusing. How do I know which was to go, negative or positive. So if I see a tune error of -446 like above, does that mean the dongle is 446 Hz below frequency and I need a positive PPM value to bring it up? And, is there a way to change the PPM / -q value without having to keep closing the program and re-running it everytime I wanna try a new value?
 

wgbecks

Active Member
Joined
Jan 17, 2005
Messages
1,063
Location
NE Wisconsin
I lowered the gains and now get this, but I can't tell what the X and Y axis values/numbers mean:
The X-axis is relative to frequency, whereby the trace (spike) at the center is the frequency the SDR is currently tuned.
The Y-axis is relative to amplitude (signal level) expressed in decibels (dB).

In your screen capture (FFT Plot), the signal at the center or of the spectrum (tuned frequency) as a peak level of approximately
-38 dB as best that can be interpellated from the course "20" dB graduations of the Y-axis.

Of more importance, is the level of the signal above the noise floor. The noise floor in your case if the average horizontal trace along
the bottom of the graph at about -90 (ish) dB where its desirable to adjust the LNA gain such that the tuned signal is 30-25 dB above
the noise floor. This assumes the received signal strength lends itself to achieving this degree of S/N.

Excessive LAN gain can cause the SDR to overload in the presence of multiple stronger signals driving the RF Amplifier into clipping
whereby numerous unwanted spurious signal products mix and interfere with the desired signals. These artifacts definitely create bit
errors that disrupt decoding of the desired digital signals, that will among other things, cause poor quality decoded audio.

View attachment 177653
And I've always found PPM confusing. How do I know which was to go, negative or positive. So if I see a tune error of -446 like above, does that mean the dongle is 446 Hz below frequency and I need a positive PPM value to bring it up? And, is there a way to change the PPM / -q value without having to keep closing the program and re-running it everytime I wanna try a new value?
PPM is an acronym for "Parts Per Million" and is a unit that describes the degree of frequency error. In your case, a tune error of
-446 is an indication that the SDR's internal time base (Oscillator) is off frequency in the negative direction by 446 Hz.

While this is not horrible, it ideally trimmed to maintain a tolerance of +/- 100 Hz if at all possible. It really depends upon the ability of
the digital demodulator to phase lock onto the incoming signal. Other op25 repos such as Boatbod has a much wider acceptance range
and can tolerate greater frequency error.

Therefore, if the tuning error is a negative value (-446), then the PPM value needs to move in a positive direction from its current value.
Conversely, if the tuning error is a positive value (446), then the PPM value needs to move in a negative direction from its current value.

Keep in mind to make small incremental changes. This is especially true when you remove the "-X" frequency tracking in that you could
apply an overcorrection that will cause the total loss of Trunk Signaling Blocks (TSBK Count). Make notes of where you start that you can revert back if necessary.

The Osmocom GUI has no provisions to input PPM corrections on the fly. You'll have to make an adjustment in the JSON, then restart
the op25 application to observe the result.

I am assuming that perhaps you're typing the multi_rx.py command line string manually via a terminal session each time you run the
application and may want to write a script to run op25 that will shorten the process. Alternatively, the same script can be executed
or controlled via a system service control that is especially desirable for headless operation.

The following is an example op25.sh script that works with Osmocom's muti_rx.py application.
./multi_rx.py -c your_system.json -T trunk.tsv -l http:0.0.0.0:8080 -v 5 -M false 2>stderr.2
 
Top