RadioReference on Facebook   RadioReference on Twitter   RadioReference Blog
 

Go Back   The RadioReference.com Forums > Computer Aided Monitoring and Programming > Voice/Control Channel Decoding Software


Voice/Control Channel Decoding Software - For discussion of software applications which decode digital voice formats and trunking control channels. Please use the HF Digital Signals forum for anything below 30MHz.

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #281 (permalink)  
Old 05-23-2018, 3:15 PM
Member
  Premium Subscriber
Premium Subscriber
 
Join Date: Apr 2018
Location: Oxford, GA
Posts: 10
Question headless operation?

I have SDRtrunk running on a slightly overclocked Rpi3+ using 3x RTLSDR dongles monitoring a P25 Phase 1 system and providing a feed to broadcastify. It is running very well but I am trying to get the setup to be more robust. I understand that it won't run headless because it needs various GUI bits to work right. I use RealVNC to access the Pi and minimize the waterfall GUI after I manually run the command line. Minimizing the GUI window saves about 100% on the top cpu counter. ((190% with GUI up, 90% minimized, then about 100+% for each call).

Is there any method by which I could start SDRtrunk up at boot or am I completely limited to manually typing in the command line from a GUI window every time? Is there a way that say VNC server starts up the GUI interface and would give SDRtrunk what it needs? Would screen work? I have it set to boot to GUI. But I need a way to put the command line in rc.local or similar. Can I fire off a VNC connection from the pi in which SDRtrunk runs and to which I could connect? If I plugged a monitor into it would that solve the problem? It ability to access the waterfall from a running program is useful. I also want to be able to monitor if the program has crashed (low cpu) and autorestart.

ECR
Reply With Quote
Sponsored links
  #282 (permalink)  
Old 05-23-2018, 3:55 PM
Member
  Premium Subscriber
Premium Subscriber
 
Join Date: Apr 2018
Location: Oxford, GA
Posts: 10
Lightbulb nearly headless

Ok this time the google came through. I had to figure out what to ask it.

I have my pi boot to GUI.
You can autostart programs in the GUI by placing them in the appropriate autostart folder.

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

add:
@/home/pi/projects/sdrtrunkguistart.sh

nano /home/pi/projects/sdrtrunkguistart.sh

put this into the file:
#!/bin/bash
sleep 10
java -jar /home/pi/sdr-trunk-all-0.3.4-beta.2.jar &
sleep 30
xdotool getactivewindow windowminimize

then:
chmod +x sdrtrunkguistart.sh

to get the xdotool:
sudo apt-get install xdotool

This will start up sdrtrunk in the gui at boot and then minimize the window. You can then connect to it with RealVNC.

Next monitor cpu usage and restart upon low usage. Occasionally SDRtunk will stop trunking but will still be running.

ECR
Reply With Quote
  #283 (permalink)  
Old 06-21-2018, 9:07 PM
Newbie
  Premium Subscriber
Premium Subscriber
 
Join Date: Oct 2008
Location: Woonsocket, RI
Posts: 1
Default

Wicked pissa!

Finally, I can decode Rhode Island Statewide Communications Network (RISCON) P25 without spending half a stack on a digital trunking scanner!

Thanks Denny!
Reply With Quote
  #284 (permalink)  
Old 06-21-2018, 10:23 PM
Member
   
Join Date: Mar 2015
Location: Canal Winchester, OH
Posts: 67
Default

Quote:
Originally Posted by DSheirer View Post
Do each of your tuner's have a different name/label? The software remembers the tuner configuration settings for each tuner by name.

You can use the scroll wheel on your mouse to zoom in/out on the spectral display. Zoom in on the channel that you're trying to decode and align the signal to the expected frequency value on the display using the +/- PPM settings. As slicerwizard stated, let your dongle's warm up before you make your final corrections.
i guess I need to subscribe to this thread or I missed the email message.

When I fire up SDR#, there are two RTL-SDR(USB) dongles that show. Both are listed as "Generic RTL2832U OEM but one has a (0) and the other a (1). Running SDR# in two instances, one of each SDR I tuned a close control channel. They are both plugged in all the time with a blue light lit. I ran them both about 5 minutes and saw no noticeable drift. However the (0) needs a PPM of 47 while the (1) needs a PPM of 55 (really I think 54.5 but SDR# doesn't offer that kind of granularity).

If I were to open Unitrunker, I get two dongles labeled "R820T-1" & "R820T-2". In Unitrunker each receiver has a unique device description "RTL2838UHIDIR:00000001" & "RTL2838UHIDIR:6&2A0D8868&0&5". Using the app as a reference.

When I run SDR Trunk it detects two SDR dongles both named the same and the same serial number. When I run the program tonight I got 700 and 800 decoding pretty well, it wasn't perfect. So how to set the different PPM for each dongle? I still think there's some crazy thing going on in the tuner setup. I couldn't find a manual and I tried looking on YouTube for a walk through.I might entertain doing a team viewer with someone if they think they could walk me through it?
Reply With Quote
  #285 (permalink)  
Old 06-23-2018, 6:03 AM
Member
  Audio Feed Provider
Audio Feed Provider
Amateur Radio Operator
Amateur Radio
 
Join Date: Feb 2010
Location: Fulton, NY
Posts: 434
Default

Quote:
Originally Posted by amcferrin90 View Post
i guess I need to subscribe to this thread or I missed the email message.

When I fire up SDR#, there are two RTL-SDR(USB) dongles that show. Both are listed as "Generic RTL2832U OEM but one has a (0) and the other a (1). Running SDR# in two instances, one of each SDR I tuned a close control channel. They are both plugged in all the time with a blue light lit. I ran them both about 5 minutes and saw no noticeable drift. However the (0) needs a PPM of 47 while the (1) needs a PPM of 55 (really I think 54.5 but SDR# doesn't offer that kind of granularity).

If I were to open Unitrunker, I get two dongles labeled "R820T-1" & "R820T-2". In Unitrunker each receiver has a unique device description "RTL2838UHIDIR:00000001" & "RTL2838UHIDIR:6&2A0D8868&0&5". Using the app as a reference.

When I run SDR Trunk it detects two SDR dongles both named the same and the same serial number. When I run the program tonight I got 700 and 800 decoding pretty well, it wasn't perfect. So how to set the different PPM for each dongle? I still think there's some crazy thing going on in the tuner setup. I couldn't find a manual and I tried looking on YouTube for a walk through.I might entertain doing a team viewer with someone if they think they could walk me through it?
It seems as if both of your tuner dongles have the same serial number and SDR# and Unitrunker may both be creating a temporary ID for the second/duplicate tuner.

sdrtrunk attempts to use a separate configuration for each dongle using the dongle's serial number to uniquely identify each one. When both tuners have the same serial number, it uses the same configuration file for each. Any changes to the configuration for one will (eventually) be applied to both tuners once you restart the application.

I experimented with using the USB port number that the tuner is plugged into as a way to identify each dongle. But, that creates a problem when you move a tuner to a different/new USB port and the application thinks it's a new tuner (ie new port name) and loads a default configuration file.

The best solution is to rename each tuner to have a distinct serial number so that sdrtrunk can identify each one correctly and load/assign the correct settings for each tuner.

Denny
Reply With Quote
Sponsored links
  #286 (permalink)  
Old 06-25-2018, 2:36 PM
Member
   
Join Date: Mar 2015
Location: Canal Winchester, OH
Posts: 67
Default

Quote:
Originally Posted by DSheirer View Post
It seems as if both of your tuner dongles have the same serial number and SDR# and Unitrunker may both be creating a temporary ID for the second/duplicate tuner.

sdrtrunk attempts to use a separate configuration for each dongle using the dongle's serial number to uniquely identify each one. When both tuners have the same serial number, it uses the same configuration file for each. Any changes to the configuration for one will (eventually) be applied to both tuners once you restart the application.

I experimented with using the USB port number that the tuner is plugged into as a way to identify each dongle. But, that creates a problem when you move a tuner to a different/new USB port and the application thinks it's a new tuner (ie new port name) and loads a default configuration file.

The best solution is to rename each tuner to have a distinct serial number so that sdrtrunk can identify each one correctly and load/assign the correct settings for each tuner.

Denny
Thanks Denny. I found a way to change the serial numbers and that definitely got things moving. It's working, needs tweaking and I got to find the manual. It seems like the link in the wiki was bad.

Alan
Reply With Quote
  #287 (permalink)  
Old 06-25-2018, 3:01 PM
BM82557's Avatar
Member
   
Join Date: Aug 2006
Location: Berkeley Co WV
Posts: 2,401
Default

Manual for Version 3.0 is at - https://github.com/DSheirer/sdrtrunk...rManual_V0.3.0
Reply With Quote
  #288 (permalink)  
Old 08-01-2018, 4:02 PM
Member
  Premium Subscriber
Premium Subscriber
 
Join Date: Apr 2018
Location: Oxford, GA
Posts: 10
Question 4.0 alpha

I am testing out .4.0 alpha release I am running on an rPi 3plus. I have 3 flightaware yellow dongles plugged in. The system I am attempting to monitor is a P25 Phase 1 (would really like Phase 2 decoder!). The control channel and other channel spacing is far enough apart that I need at least 2 dongles.

I have found that if I try to enable the tuners to receive more than around 3mhz combined of spectrum then sdrtrunk starts to error out, so I have the dongle assigned to the control at 0.288mhz and the other 2 at 1.2- 1.4mhz. I assume I start to overflow something, probably the usb 2 bus. The .4 alpha release seems to not like a setting other than 2.4mhz. Am I doing something wrong, or is there a formula I can follow as I attempt to optimize my system as cpu, system resources and dongles are at a premium.

here is some output:

at java.lang.Thread.run(Thread.java:745)
16:41:21.393 ERROR i.g.d.d.f.c.PolyphaseChannelManager - Error [162MB/212MB 76%]
java.lang.IllegalStateException: User count is below zero. This indicates that this buffer's decrement user count was invoked by more than the expected user count
at io.github.dsheirer.sample.buffer.AbstractReusableB uffer.recycle(AbstractReusableBuffer.java:118)
at io.github.dsheirer.sample.buffer.AbstractReusableB uffer.decrementUserCount(AbstractReusableBuffer.ja va:100)
at io.github.dsheirer.dsp.filter.channelizer.ComplexP olyphaseChannelizerM2.receive(ComplexPolyphaseChan nelizerM2.java:231)
at io.github.dsheirer.dsp.filter.channelizer.Polyphas eChannelManager$BufferSourceEventMonitor.receive(P olyphaseChannelManager.java:613)
at io.github.dsheirer.dsp.filter.channelizer.Polyphas eChannelManager$BufferSourceEventMonitor.receive(P olyphaseChannelManager.java:574)
at io.github.dsheirer.dsp.filter.channelizer.Continuo usBufferProcessor$Processor.run(ContinuousBufferPr ocessor.java:173)
at java.util.concurrent.Executors$RunnableAdapter.cal l(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(Future Task.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$S cheduledFutureTask.access$301(ScheduledThreadPoolE xecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$S cheduledFutureTask.run(ScheduledThreadPoolExecutor .java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
16:41:21.395 ERROR i.g.d.d.f.c.ContinuousBufferProcessor - Error while dispatching buffers to listeners [162MB/212MB 76%]
java.lang.IllegalStateException: User count is below zero. This indicates that this buffer's decrement user count was invoked by more than the expected user count
at io.github.dsheirer.sample.buffer.AbstractReusableB uffer.recycle(AbstractReusableBuffer.java:118)
at io.github.dsheirer.sample.buffer.AbstractReusableB uffer.decrementUserCount(AbstractReusableBuffer.ja va:100)
at io.github.dsheirer.dsp.filter.channelizer.Polyphas eChannelManager$BufferSourceEventMonitor.receive(P olyphaseChannelManager.java:626)
at io.github.dsheirer.dsp.filter.channelizer.Polyphas eChannelManager$BufferSourceEventMonitor.receive(P olyphaseChannelManager.java:574)
at io.github.dsheirer.dsp.filter.channelizer.Continuo usBufferProcessor$Processor.run(ContinuousBufferPr ocessor.java:173)
at java.util.concurrent.Executors$RunnableAdapter.cal l(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(Future Task.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$S cheduledFutureTask.access$301(ScheduledThreadPoolE xecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$S cheduledFutureTask.run(ScheduledThreadPoolExecutor .java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
16:41:22.379 ERROR i.g.d.d.f.c.PolyphaseChannelManager - Error [161MB/212MB 75%]
java.lang.IllegalStateException: User count is below zero. This indicates that this buffer's decrement user count was invoked by more than the expected user count
at io.github.dsheirer.sample.buffer.AbstractReusableB uffer.recycle(AbstractReusableBuffer.java:118)
at io.github.dsheirer.sample.buffer.AbstractReusableB uffer.decrementUserCount(AbstractReusableBuffer.ja va:100)
at io.github.dsheirer.dsp.filter.channelizer.ComplexP olyphaseChannelizerM2.receive(ComplexPolyphaseChan nelizerM2.java:231)
at io.github.dsheirer.dsp.filter.channelizer.Polyphas eChannelManager$BufferSourceEventMonitor.receive(P olyphaseChannelManager.java:613)
at io.github.dsheirer.dsp.filter.channelizer.Polyphas eChannelManager$BufferSourceEventMonitor.receive(P olyphaseChannelManager.java:574)
at io.github.dsheirer.dsp.filter.channelizer.Continuo usBufferProcessor$Processor.run(ContinuousBufferPr ocessor.java:173)
at java.util.concurrent.Executors$RunnableAdapter.cal l(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(Future Task.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$S cheduledFutureTask.access$301(ScheduledThreadPoolE xecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$S cheduledFutureTask.run(ScheduledThreadPoolExecutor .java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
16:41:22.381 ERROR i.g.d.d.f.c.ContinuousBufferProcessor - Error while dispatching buffers to listeners [161MB/212MB 75%]
java.lang.IllegalStateException: User count is below zero. This indicates that this buffer's decrement user count was invoked by more than the expected user count
at io.github.dsheirer.sample.buffer.AbstractReusableB uffer.recycle(AbstractReusableBuffer.java:118)
at io.github.dsheirer.sample.buffer.AbstractReusableB uffer.decrementUserCount(AbstractReusableBuffer.ja va:100)
at io.github.dsheirer.dsp.filter.channelizer.Polyphas eChannelManager$BufferSourceEventMonitor.receive(P olyphaseChannelManager.java:626)
at io.github.dsheirer.dsp.filter.channelizer.Polyphas eChannelManager$BufferSourceEventMonitor.receive(P olyphaseChannelManager.java:574)
at io.github.dsheirer.dsp.filter.channelizer.Continuo usBufferProcessor$Processor.run(ContinuousBufferPr ocessor.java:173)
at java.util.concurrent.Executors$RunnableAdapter.cal l(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(Future Task.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$S cheduledFutureTask.access$301(ScheduledThreadPoolE xecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$S cheduledFutureTask.run(ScheduledThreadPoolExecutor .java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
16:41:22.391 INFO i.g.d.a.b.AudioBroadcaster - [RPi] status: Connecting [162MB/212MB 76%]
16:41:22.408 INFO i.g.d.a.b.AudioBroadcaster - [RPi] status: Connected [163MB/212MB 76%]
16:41:28.523 DEBUG i.g.dsheirer.gui.SDRTrunk - Application shutdown started ... [179MB/212MB 84%]

Last edited by EdwardClerkRudolf; 08-01-2018 at 4:18 PM..
Reply With Quote
  #289 (permalink)  
Old 08-01-2018, 7:34 PM
Member
  Audio Feed Provider
Audio Feed Provider
Amateur Radio Operator
Amateur Radio
 
Join Date: Feb 2010
Location: Fulton, NY
Posts: 434
Default

Edward, I pulled/removed the 0.4.0 alpha 1 release until I can fix some errors that are causing problems for some folks, specifically P25 decoder performance and not all sample rates are supported on the R820T. I should have these resolved over the weekend and will publish a new 0.4.0 alpha 2 release for you to try.

cheers,
Denny
Reply With Quote
  #290 (permalink)  
Old 08-02-2018, 11:02 AM
Member
  Premium Subscriber
Premium Subscriber
 
Join Date: Apr 2018
Location: Oxford, GA
Posts: 10
Default

I look forward to it!

Is a tuner assigned exclusively to a radio system or if control channels for two different systems are within the bandwidth of one tuner, can two different systems use that one tuner for control or channel decode?
I am trying to buy fewer RTLsdrs.
Reply With Quote
  #291 (permalink)  
Old 08-03-2018, 4:17 AM
Member
  Audio Feed Provider
Audio Feed Provider
Amateur Radio Operator
Amateur Radio
 
Join Date: Feb 2010
Location: Fulton, NY
Posts: 434
Default

Quote:
Originally Posted by EdwardClerkRudolf View Post
I look forward to it!

Is a tuner assigned exclusively to a radio system or if control channels for two different systems are within the bandwidth of one tuner, can two different systems use that one tuner for control or channel decode?
I am trying to buy fewer RTLsdrs.
The tuners are treated as a pooled set of resources and each tuner can source as many channels as will fit within the bandwidth.
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -5. The time now is 7:58 PM.


Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
All information here is Copyright 2012 by RadioReference.com LLC and Lindsay C. Blanton III.Ad Management by RedTyger
Copyright 2015 by RadioReference.com LLC Privacy Policy  |  Terms and Conditions