OP25 VirtualBox Project - Run OP25 on Windows 7

Status
Not open for further replies.

PiccoIntegra

Member
Premium Subscriber
Joined
Dec 19, 2002
Messages
530
Location
North Texas
OK, last attempt for today: I have it running, using the following command:
./scope.py --args "rtl=0" -N 'LNA:46' -f 774.41875 -S 2400000 -q 67 -v5
Watch that -v5.. you need a space in there. :lol:
You only need to use 0, 10, >10 for the debug levels. A level of 10 will print out the decoded packets in hex form with some detail. Anything greater than 10 will be quite noisy with some low level stuff you probably don't want to see anyway.

Just for clarification, you won't hear any voice decoding with the above command like. That was just a test to see if it can decode the control channel.

To hear voice transmissions, your command line would look like this: (Phase I)
./scope.py --args "rtl=0" -N 'LNA:46' -f 774.41875 -S 2400000 -q 67 -v 0 -V -T trunk.tsv

For Phase II:
./scope.py --args "rtl=0" -N 'LNA:46' -f 774.41875 -S 2400000 -q 67 -v 0 -2 -T trunk.tsv

The trunk.tsv file is a tab delimited file that specifies the system(s) you want to monitor. Open it up in a text editor for syntax... it's easy.

On the Spectrum tab, I see no activity.
With your mouse over the spectrum plot, scroll up on your wheel to scale it properly.

On the C4FM tab I see plenty of activity. Same for Datascope, constellation, and symbols.
Traffic shows nothing.
Correlation is set to P25P1, but had no effect.
FAC shows nothing.
Some screenshots would help here. It's pretty much the same process as Windows. Alt-Print Screen for the active window. Check your Documents or Pictures directories. Not sure how Kali has things configured.

It sounds like you're not quite tuned on center. If you're close, you should see "tuning error +1200/-1200", or "tuning error +2400/-2400". Use the Fine Tune slider to center things up.

I know this thing is close... again I think it just doesn't want to play nicely in a VM session along with bunches of Windoze stuff running too on this machine. But I'd like to make sure I'm not doing something else wrong first before I go the route of building a machine just to have that not work either.
Well, before trashing what you've already spent time on, it would be worth it to keep trying until we can be sure you're tuned right. I promise you, it will be worth all this once you see it work for yourself.
 

PiccoIntegra

Member
Premium Subscriber
Joined
Dec 19, 2002
Messages
530
Location
North Texas
Speaking of, can anyone share what the minimum hardware specs should be for OP25? I want to make sure the new machine surpasses the minimums by a large margin. I'm thinking it shouldn't take TOO much horsepower and that a typical PC by today's standards should be plenty to run it.
Absolute bare minimum I would recommend, quad core with 4GB of ram.

I run OP25 on a dual core laptop with 4GB of ram. I can run two instances at once, but it pegs the CPU. I still can use the laptop to browse the web, edit files, etc. The system does degrade over time though, but I think it's due to the OS, not so much GNR/OP25.
 

PiccoIntegra

Member
Premium Subscriber
Joined
Dec 19, 2002
Messages
530
Location
North Texas
I figured out why it runs like crap at lower sample rates. The RTL input buffers are too large. There is a delay in processing the samples because they aren't filling up fast enough.

Code:
#define DEFAULT_BUF_LENGTH (16 * 32 * 512)
The default buffer length is 262144 bytes. You can divide by 2, or divide by 4 when running low sample rates. It's important to note that this setting needs to be a multiple of 512. Any error in calculating this will result in setting this at default value.

Here are two examples:

./scope.py --args 'rtl=0,buflen=131072' -N 'LNA:46' -S 288000 -q 47 -f 853.3e6 -v 0
./scope.py --args 'rtl=0,buflen=65536' -N 'LNA:46' -S 288000 -q 47 -f 853.3e6 -v 0

The lowest sample rate of 288000 is a multiple of 96k. Therefore it's the lowest you can use with an RTL device.

This may help you run it in a VM... trial and error.
 

AZScanner

Member
Joined
Dec 19, 2002
Messages
3,342
Location
Somewhere in this room. Right now, you're very col
Bah... I still need help. This thing is so unintuitive it took all I had in me not to uninstall this whole mess and go back to Windows.

OK, when I try to use my own edited trunk.tsv file, it bombs out on the NAC (ironically I have no idea WHAT our NAC is out here, adding to the fun) and I can't seem to give it a value it likes. Anyone have a value I can try that will work, or even better an actual working tsv file for Phoenix?

When I just park it on a control channel, I'm still not getting any data or other indication that I'm doing ANY of this correctly. So who knows what the hell I'm doing wrong, but it's got to be something because so far I haven't decoded a damned thing.

Going to go play around some more with GNURadio itself and see if I can get it talking to DSD because I'm pretty much stuck/lost/doomed with this OP25 thing for now.

-AZ
 

PiccoIntegra

Member
Premium Subscriber
Joined
Dec 19, 2002
Messages
530
Location
North Texas
Don't worry about the trunk.tsv file or the NAC at this point. You're trying to run before you've learned to walk. This isn't any more difficult then running DSD, so stop over thinking it.

Post the command line you're trying to execute, and we'll go from there.
 

rrbum

Member
Premium Subscriber
Joined
Feb 28, 2012
Messages
165
Don't give up AZ...

Keep pluggin AZ. This thread has inspired me to reload linux and try the information provided by pico. I think when you build the dedicated linux box you will have much better luck, as I was able to follow pico's instructions and everything actually worked. The trunk.tsv file blew my mind as it caused the program to scan a bunch of systems from Ontario/New York. Unfortunately for me I have no P25 signals of any quality available where I am so I cannot go any further, but I do realize that if I had the signals here it would have worked and I could have progressed further. But, alas.
I realize it is not the original intent of your thread but if you end up experimenting with GnuRadio by setting up some sort of reciever please post about it as I would like to be able to do something with the GnuRadio.

Big thanks to pico for providing the info as it was fun to watch the programs load and actually start up and run, even though the P25 signals around me are just too weak to process.
 

AZScanner

Member
Joined
Dec 19, 2002
Messages
3,342
Location
Somewhere in this room. Right now, you're very col
Don't worry about the trunk.tsv file or the NAC at this point. You're trying to run before you've learned to walk. This isn't any more difficult then running DSD, so stop over thinking it.

Post the command line you're trying to execute, and we'll go from there.

Thanks, I tend to do that from time to time.

I've actually taken a step back from this and have set up a dedicated machine. I got GNURadio installed over the weekend but not OP25 yet. Hoping to get that done later today and then I think I'll be ready to try to decode something. Hopefully I'll be back on here tonight with some progress to speak of.

Thanks for all the help so far,
-AZ
 

AZScanner

Member
Joined
Dec 19, 2002
Messages
3,342
Location
Somewhere in this room. Right now, you're very col
That process just take a few minutes, it's pretty painless to do as you will see for yourself.

What hardware(processor/RAM) are you testing with?

Bare minimum really... it's a puny little Dell laptop with an Intel Celeron dual core processor and 4 gigs of ram. I don't expect whiz-bang performance from this machine, as I'll be building one that is much better in the coming months for actual daily use. Really the purpose of trying this laptop is to get the process down for installing and running the software. I can fine tune things and start tweaking stuff once I've got the software installed on the "real" computer later on. If it works well on the laptop also, then I'll consider that a bonus. ;)

-AZ
 

PiccoIntegra

Member
Premium Subscriber
Joined
Dec 19, 2002
Messages
530
Location
North Texas
I'm essentially running the same setup. You will be more then satisfied with the results.

You didn't by chance install the Kali GNU Radio package did you? Hope not...
 

AZScanner

Member
Joined
Dec 19, 2002
Messages
3,342
Location
Somewhere in this room. Right now, you're very col
Well.... still stuck. Getting this error when trying to run the scope.py script:
Code:
psmalley@dms1:~/pybombs/src/gr-op25/op25/gr-op25_repeater/apps$ ./scope.py --args "rtl=0" -N 'LNA46' -f774.89375 -S 2400000 -q 67
linux; GNU C++ version 4.7.2; Boost_105300; UHD_003.008.000-37-g7866b665

gr-osmosdr v0.1.4-4-gaa4094b3 (0.1.5git) gnuradio 3.7.6git-196-g4c9ef31d
built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf rfspace 
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Detached kernel driver
Found Rafael Micro R820T tuner
gain: name: LNA range: start 0 stop 0 step 0
Traceback (most recent call last):
  File "./scope.py", line 2817, in <module>
    app = stdgui2.stdapp(p25_rx_block, "APCO P25 Receiver", 3)
  File "/home/psmalley/target/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 46, in __init__
    wx.App.__init__ (self, redirect=False)
  File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 7981, in __init__
    self._BootstrapApp()
  File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 7555, in _BootstrapApp
    return _core_.PyApp__BootstrapApp(*args, **kwargs)
  File "/home/psmalley/target/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 49, in OnInit
    frame = stdframe (self.top_block_maker, self.title, self._nstatus)
  File "/home/psmalley/target/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 76, in __init__
    self.panel = stdpanel (self, self, top_block_maker)
  File "/home/psmalley/target/lib/python2.7/dist-packages/gnuradio/wxgui/stdgui2.py", line 98, in __init__
    self.top_block = top_block_maker (frame, self, vbox, sys.argv)
  File "./scope.py", line 151, in __init__
    name, gain = tuple.split(":")
ValueError: need more than 1 value to unpack
Reattached kernel driver

I'm almost there... I can feel it. Just need one last little push (hopefully). The good news is I've got the next 5 days to figure it out - gotta love the holidays! :)

Thanks again for all the help, guys.
-AZ
 

PiccoIntegra

Member
Premium Subscriber
Joined
Dec 19, 2002
Messages
530
Location
North Texas
from
./scope.py --args "rtl=0" -N 'LNA46' -f774.89375 -S 2400000 -q 67

to
./scope.py --args "rtl=0" -N 'LNA:46' -f 774.89375e6 -S 2400000 -q 67

That command will allow you to see the control channel being decoded. You won't hear any voice.

./scope.py --args "rtl=0" -N 'LNA:46' -f 774.89375e6 -S 2400000 -q 67 -v 10

Use the -v 10 parameter to watch for TSBK's fly by in the terminal window. Play around with the Fine tune while watching the Constellation scope. Once you know you're decoding the CC, click the Traffic tab to see what NAC is used on that system. I noticed the RRDB doesn't contain that info in their site detail pages.

Use that NAC to create the TSV file for that system. See the other TSV files for syntax...

./scope.py --args "rtl=0" -N ''LNA:46' -f 774.89375e6 -S 2400000 -q 67 -v 0 -V -T site.tsv

You'll hear voice with the above command.
 
Last edited:

KA1RBI

Member
Joined
Aug 15, 2008
Messages
799
Location
Portage Escarpment
./scope.py --args "rtl=0" -N 'LNA:46' -f 774.89375e6 -S 2400000 -q 67

Thx Scott - that should indeed fix the crash that AZ got. In addition I would only add one thing - there's a pesky issue that affects all SDR's to a greater or lesser degree- the spike that appears at zero IF (a.k.a. the DC offset). If you unplug the antenna and set the gain to the lowest possible value you can still see a spurious "signal" at zero Hz. To get around this when running scope in manual mode I suggest you add an offset - the idea is to move the spike out of the way since it will cause trouble if left at 0 Hz.

Accordingly you can add the
Code:
-o 50000
option at the end of the command.

Separately - AZ, don't worry about the TSV file until after you've successfully tuned the CC in manual mode. That's enough to worry about at the moment - once you get the CC the "traffic" tab will have the data that you'll need to go to that step. The most likely things that will also need adjustment are in the frequency tuning (via the '-q' program option and/or the fine tune).

Piccointegra said:
You will be more then satisfied with the results.

Only as long as all the system voice channel frequencies are within a 2.4 MHz band (-S parameter) all should be OK...

BTW, here's an exclusive OP25 tip for RR readers. Assumes firefox / linux / gedit

You can easily populate the talkgroup alpha tag TSV file direct from RR.

1. Go to the RR page that lists the talkgroups for your trunked system.

2. Click "List All in one table"

3. Use the mouse to select (highlight) all the rows in the Talkgroups table that's shown.

4. In firefox, click Edit, then choose Copy (or just hit Ctrl+C)

5. Open gedit on a new, blank file

6. In gedit, click Edit, then Paste (or CTRL+V)

7. Save the file (as temp.tsv, for example)

8. We need only columns one and four from this temp.tsv file:
Code:
cut -f1,4 temp.tsv > talkgroups1.tsv
You might confirm this file is valid (for example, by viewing the file in gedit or in oocalc). If you'd prefer, it should be possible to use 'oocalc' instead of ''cut' to a. load the temp.tsv file, b. drop all but columns one and four, and c. save the result.

9. Repeat the steps above for each trunked system. The overall trunk.tsv file contains one row for each system - the "TGID tags file" column is where you plug in the name(s) of these talkgroup tags file(s).
 

AZScanner

Member
Joined
Dec 19, 2002
Messages
3,342
Location
Somewhere in this room. Right now, you're very col
Well, it's working finally, and it is doing GREAT on the RWC. The decoding so far has been excellent.

A couple of questions:
Is there any particular reason it won't lock on to a specific talkgroup? The local pd dispatch is tgid 2980, but op25 won't stop on it. So strange! I'm locked on to the talkgroup with my 436 and am hearing traffic while op25 is silent. Is there a way to force it to hold on that id?

Secondly, i am still trying to understand how i could decode multiple channels simultaneously. Is there a way to do that in op25? I want to build something like Luke Berndt's DC fire scanner for the Phoenix RWC.

I'm sure i'll have plenty of additional questions as i get more into this, but overall I'm really impressed with how well op25 is working here in Phoenix. I recommend taking the plunge - it's well worth the time and effort to set up! Thanks again to all involved.

-AZ
 

PiccoIntegra

Member
Premium Subscriber
Joined
Dec 19, 2002
Messages
530
Location
North Texas
Well, it's working finally, and it is doing GREAT on the RWC. The decoding so far has been excellent.
Cool, post some screenshots of the Constellation and Symbol scopes, as well as the traffic tab.


Is there any particular reason it won't lock on to a specific talkgroup? The local pd dispatch is tgid 2980, but op25 won't stop on it. So strange! I'm locked on to the talkgroup with my 436 and am hearing traffic while op25 is silent. Is there a way to force it to hold on that id?
Is that TG specific to one particular site? You didn't blacklist by accident it did you? Post the contents of your TSV file, not the TG tsv if you created one.

Secondly, i am still trying to understand how i could decode multiple channels simultaneously. Is there a way to do that in op25? I want to build something like Luke Berndt's DC fire scanner for the Phoenix RWC.
The scope app doesn't really work like that in it's current form. At the moment, the scope app simply decodes the control channel, then changes the frequency once a voice grant is seen, then back to the CC. Much like a current scanner does it...

What you're wanting to do will be relegated by hardware limitations. The usable RTL bandwidth is limited to 2.4MHz. If your site fits within that limit, you're good to go. You would need a dedicated CC monitor, and however many voice channels your CPU can handle all at once. It's a complicated process, but it's achievable.
 

KA1RBI

Member
Joined
Aug 15, 2008
Messages
799
Location
Portage Escarpment
Is there any particular reason it won't lock on to a specific talkgroup? The local pd dispatch is tgid 2980, but op25 won't stop on it. So strange! I'm locked on to the talkgroup with my 436 and am hearing traffic while op25 is silent. Is there a way to force it to hold on that id?

one possible reason for this is the 3-second pause that occurs after a talkgroup has finished before it resumes scanning for new activity. Or, you might have defined multiple trunked systems and it happens to be listening to a different system at that instant. Also be sure to look for any error messages in the console window.

Anyway, here are two ways to hold on one specific talkgroup (your choice)
1. set up a "white list" of talk groups (or instead, as an option you can blacklist what you don't want)
2. wait for activity to appear on that talkgroup, then click the "Hold" box.

Secondly, i am still trying to understand how i could decode multiple channels simultaneously. Is there a way to do that in op25? I want to build something like Luke Berndt's DC fire scanner for the Phoenix RWC.
Other than just recording the entire spectrum, not at present. Another person who may be working on this too is Rachelbythebay.

I'm sure i'll have plenty of additional questions as i get more into this, but overall I'm really impressed with how well op25 is working here in Phoenix. I recommend taking the plunge - it's well worth the time and effort to set up!

Great! it would be very interesting to have you run a few tests, such as
- comparison of OP25 vs. the uniden x36hp on simulcast
- using the "constellation" display (and be sure to select "differential") how difficult is it to aim the antenna for perfect reception?
- now that you've gotten over the initial installation, *without* pain if possible (and forget-about-it if not!) can you duplicate the working setup inside your windows VM? Or was that really the problem all along? Just asking b/c it'd be interesting to rule out what was and what wasn't the trouble, and would also be interesting not to have to drag a linux box around everywhere ...

Best

Max

p.s. (apols, OT; Scott could you please PM me with your email addr - I have a tuning patch I'd like you to play with)
 

rjdj2000

Gone Cuckoo
Feed Provider
Joined
Jan 24, 2011
Messages
347
Location
Central NY
Well after reading through this thread I am now intrigued on how this all works. Currently have a Win 7 box that is running Unitrunker and using DSD+ for 2 voice channels for my online feed (new Apco P25 system that launched this year) and the decoding isn't the greatest when the system gets really loaded up. AZ, or anyone for that matter, how is the decoding through OP25? I have to fiddle with everything from the PPM on the dongles to the VBC level of audio going to DSD+. I haven't tried the new DSDtuner on the new version of DSD+ yet, that may happen this weekend, but I installed Ubuntu 14.4 on my laptop to try this. Now I have to install the wireless drivers as apparently they don't come installed like they once did (tried running Linux a few years ago on it) So now to get the Broadcom drivers installed so I can go ahead with the rest of this.
 
Status
Not open for further replies.
Top