Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1: −
The Radio Thin Client Module (RTCM) is commercially available hardware for interfacing radios to an AllStarLink computer.
+
[[Category:How to]]
 +
[[Category:Node Configuration]]
 +
[[Category:Hardware]]
 +
The Radio Thin Client Module (RTCM) is commercially available hardware for interfacing radios to an PTTLink computer.
   −
The Micro-Node RTCM and VOTER interfaces are typically used with AllStar in voting/simulcast applications. They MAY be used for ANY repeater interface application, through the chan_voter channel driver. The VOTER is the original through-hole board designed by Jim Dixon for this application. It is open-source, and the relevant Gerber files and BoM to build it are available. The [http://www.micro-node.com/thin-m1.shtml Micro-Node Radio Thin Client Module (RTCM)] is the commercial version of the VOTER. It uses surface mount parts (SMT), but is functionally equivalent to the original VOTER. In general, the two terms (RTCM/VOTER) are used interchangeably, as they operate the same, and use the same firmware (mostly, see below).
+
The Micro-Node RTCM and VOTER interfaces are typically used with PTTLink in voting/simulcast applications. They MAY be used for ANY repeater interface application, through the chan_voter channel driver. The VOTER is the original through-hole board designed by Jim Dixon for this application. It is open-source, and the relevant Gerber files and BoM to build it are available. The [http://www.micro-node.com/thin-m1.shtml Micro-Node Radio Thin Client Module (RTCM)] is the commercial version of the VOTER. It uses surface mount parts (SMT), but is functionally equivalent to the original VOTER. In general, the two terms (RTCM/VOTER) are used interchangeably, as they operate the same, and use the same firmware (mostly, see below).
   −
This page will highlight some of the operational concerns, quirks, bugs, and other items of interest that relate to these interfaces. Much of the information has been gleaned off the AllStar mail list, comes from personal experience, or comes from notes in the firmware source code.
+
This page will highlight some of the operational concerns, quirks, bugs, and other items of interest that relate to these interfaces. Much of the information has been gleaned off the PTTLink mail list, comes from personal experience, or comes from notes in the firmware source code.
 +
 
 +
=Testing=
 +
RTCM's come preconfigured to login to [http://voter-demo-pttlink.org voter-demo-pttlink.org] for out of the box testing.
 +
 
 +
=Factory Reset=
 +
A factory reset can be performed by setting SW 1 down and then applying power to the RTCM. Wait for the green LED to stop blinking, power off and set SW 1 back up.  
    
=Firmware=
 
=Firmware=
Line 18: Line 27:       −
The current bootloader (.cof file) is available here: https://github.com/AllStarLink/voter/tree/master/voter-bootloader (the -smt file is for the RTCM). It needs to be loaded with a PICKit programmer.
+
The current bootloader (.cof file) is available here: https://github.com/pttLink/voter/tree/master/voter-bootloader (the -smt file is for the RTCM). It needs to be loaded with a PICKit programmer.
      −
Current firmware (.cry file) is available here: https://github.com/AllStarLink/voter/tree/master/board-firmware . They are loaded with the EBLEX C30 Programmer.
+
Current firmware (.cry file) is available here: https://github.com/pttLink/voter/tree/master/board-firmware . They are loaded with the EBLEX C30 Programmer.
      Line 34: Line 43:     
==Compiling Environment==
 
==Compiling Environment==
If you look in the [https://github.com/AllStarLink/voter/blob/master/votersystem.pdf votersystem.pdf], you will find a procedure to modify and load the bootloader in to the dsPIC of a VOTER board.  
+
If you look in the [https://github.com/PTTLink/voter/blob/master/votersystem.pdf votersystem.pdf], you will find a procedure to modify and load the bootloader in to the dsPIC of a VOTER board.  
      Line 49: Line 58:  
Download MPLAB IDE 32-bit Windows v8.66:
 
Download MPLAB IDE 32-bit Windows v8.66:
 
:http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_IDE_v8_66.zip
 
:http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_IDE_v8_66.zip
:http://dvswitch.org/files/AllStarLink/Voter/MPLAB_IDE_v8_66.zip
+
:http://dvswitch.org/files/pttLink/Voter/MPLAB_IDE_v8_66.zip
       
Download MPLAB C Compiler for PIC24 and dsPIC DSCs v3.31 '''NOT v.3.25''':
 
Download MPLAB C Compiler for PIC24 and dsPIC DSCs v3.31 '''NOT v.3.25''':
 
:http://ww1.microchip.com/downloads/en/DeviceDoc/mplabc30-v3_31-windows-installer.exe
 
:http://ww1.microchip.com/downloads/en/DeviceDoc/mplabc30-v3_31-windows-installer.exe
:http://dvswitch.org/files/AllStarLink/Voter/mplabc30-v3_31-windows-installer.exe
+
:http://dvswitch.org/files/pttLink/Voter/mplabc30-v3_31-windows-installer.exe
      Line 65: Line 74:  
*Select Legacy Directory Name
 
*Select Legacy Directory Name
 
*'''Select Lite Compiler'''
 
*'''Select Lite Compiler'''
*Go to: https://github.com/AllStarLink
+
*Go to: https://github.com/pttLink
 
*Follow the links to: voter --> Clone or Download --> Download Zip. That will get you voter-master.zip which is a download of the whole VOTER tree from GitHub.
 
*Follow the links to: voter --> Clone or Download --> Download Zip. That will get you voter-master.zip which is a download of the whole VOTER tree from GitHub.
 
*Extract it somewhere (ie. in the XP Mode Virtual PC)
 
*Extract it somewhere (ie. in the XP Mode Virtual PC)
Line 151: Line 160:       −
Pre-compiled firmware versions including this option are available on [https://github.com/AllStarLink/voter/tree/master/board-firmware GitHub]. See above on how it is enabled/compiled, if you are rolling your own firmware modifications.
+
Pre-compiled firmware versions including this option are available on [https://github.com/pttLink/voter/tree/master/board-firmware GitHub]. See above on how it is enabled/compiled, if you are rolling your own firmware modifications.
    
   
 
   
Line 160: Line 169:       −
You may also want to consider the following changes in /etc/asterisk/voter.conf:
+
You may also want to consider the following changes in [[Voter.conf|/etc/asterisk/voter.conf]]:
 
<pre>
 
<pre>
 
;Comment out:
 
;Comment out:
Line 168: Line 177:  
linger = 0
 
linger = 0
 
</pre>
 
</pre>
      
=Squelch Issues=
 
=Squelch Issues=
Line 185: Line 193:  
*Don't "and" CTCSS with squelch. That may override the RTCM's squelch detection. Compare with CTCSS on and off to see effect if any.
 
*Don't "and" CTCSS with squelch. That may override the RTCM's squelch detection. Compare with CTCSS on and off to see effect if any.
    +
Also check the [[Quantar_RTCM|Quantar RTCM]] page for detailed interfacing and configuration information.
    
=RTCM/VOTER LED's=
 
=RTCM/VOTER LED's=
Line 276: Line 285:  
Enter Selection (1-9,99,c,x,q,r) :
 
Enter Selection (1-9,99,c,x,q,r) :
 
</pre>
 
</pre>
 +
 +
==Status Menu==
 +
This is what a typical Status Menu looks like:
 +
 +
<pre>
 +
S/W Version: 1.51 BEW 08/07/2017 Chuck
 +
System Uptime: 19569.3 Secs
 +
IP Address: 172.16.16.191
 +
Netmask: 255.255.255.0
 +
Gateway: 172.16.16.254
 +
Primary DNS: 172.16.16.254
 +
Secondary DNS: 0.0.0.0
 +
DHCP: 0
 +
VOTER Server IP: 172.16.16.164
 +
VOTER Server UDP Port: 667
 +
OUR UDP Port: 667
 +
GPS Lock: 1
 +
Connected: 1
 +
COR: 0
 +
EXT CTCSS IN: 0
 +
PTT: 0
 +
RSSI: 0
 +
Current Samples / Sec.: 8000
 +
Current Peak Audio Level: 58112
 +
Squelch Noise Gain Value: 45, Diode Cal. Value: 56, SQL pot 621
 +
Current Time: Mon  Dec 07, 2020  02:15:25.120
 +
Last Rx Pkt System time: 12/07/2020 02:05:32.340, diff: 592780 msec
 +
Last Rx Pkt Timestamp time: 12/07/2020 02:05:32.340, diff: 0 msec
 +
Last Rx Pkt index: 320, inbounds: 1
 +
 +
Press The Any Key (Enter) To Continue
 +
</pre>
 +
 +
Something to note about the "Last Rx Pkt" status. This is the last received packet '''from the network''', not over the air. As such, on your satellite voter receivers that are receive-only, you will likely see something like:
 +
 +
<pre>
 +
Last Rx Pkt System time: <System Time Not Set>, diff: 990080296 msec
 +
Last Rx Pkt Timestamp time: <System Time Not Set>, diff: 0 msec
 +
Last Rx Pkt index: 0, inbounds: 0
 +
</pre>
 +
 +
The Last Rx Pkt System Time is the last time a packet was sent to this device to be transmitted (diff: is how many msec ago that was).
 +
 +
The Last Rx Pkt Timestamp Time is what the timestamp embedded in that last TX packet was, and the diff: is the difference between the packet timestamp, and the system time.
    
=Configuration Options=
 
=Configuration Options=
Line 448: Line 501:  
*Menu 111 - show the "hidden" option values (normally they should all be 0).
 
*Menu 111 - show the "hidden" option values (normally they should all be 0).
   −
*Menu 11780 - set the "Elkes" value. Developed for Pete Elkes, this is for solar type sites. It shuts off the Tx after a period of no Rx activity.
+
*Menu 11780 - set the "Elkes" value. Developed for Pete Elke WI6H, this is for solar type sites. It shuts off the Tx after a period of no Rx activity.
    
*Menu 1103 - set the "Glaser" timer value? No idea what this does.
 
*Menu 1103 - set the "Glaser" timer value? No idea what this does.
   −
*Menu 1170 - set "Sawyer Mode". Developed for Tim Sawyer use on Yaesu VXR5000 repeater. It modifies de-ephasis behavior when on/off line.  
+
*Menu 1170 - set "Sawyer Mode". Developed for Tim Sawyer use on Yaesu VXR5000 repeater. Only applicable in OFFLINE mode. Disabled (default) when 0. When set to 1, it forces the PL filter OFF (bypassed) when in OFFLINE mode (not connected to the host), regardless of the state that it normally would be configured in voter.conf. Normally, the PL filter is IN during OFFLINE mode. That should effectively allow you to configure true pass-through (no PL filter or de-emphasis) audio through the device, if you set the rest of the options correctly.
 
      
=Audio=
 
=Audio=
Line 529: Line 581:     
The firmware is specifically written to talk to Trimble Thunderbolt receivers using Trimble's TSIP binary data interface, however, other Trimbles GPS receivers that talk TSIP are generally compatible.
 
The firmware is specifically written to talk to Trimble Thunderbolt receivers using Trimble's TSIP binary data interface, however, other Trimbles GPS receivers that talk TSIP are generally compatible.
 +
 +
 +
==RTCM GPS Connections==
 +
There are some quirks specific to the RTCM that are not well documented.
 +
 +
 +
The GPS connections for the RTCM are on the DB15 connector. Note that the labels for GTX and GRX are misleading. GTX is the data '''FROM''' the GPS '''TO''' the RTCM (GPS TX/RTCM RX). GRX is data from the RTCM to the GPS, but that is currently not used, so it does not need to be connected.
 +
 +
 +
PPS is obvious, that is your PPS signal from your GPS.
 +
 +
 +
Also note, inside the RTCM, there are jumpers to set for TTL or RS-232 data, depending on the type of GPS you are connecting. Set them accordingly. The RS-232 setting loops the data through a MAX3232 converter on the board.
 +
 +
 +
You will still need to set the data and PPS polarity, and baud rate in the configuration menus to get everything to work.
      Line 539: Line 607:  
$GPRMC
 
$GPRMC
 
</pre>
 
</pre>
 +
 +
 +
==TSIP Packets==
 +
If you are using a Trimble GPS that speaks TSIP, it needs to automatically send out the 0x8F-AB and 0x8F-AC timing packets. Such devices include the Thunderbolt, Resolution T, etc.
      Line 545: Line 617:       −
It is not unusual for it to take up to 20 mins to get a GPS lock LED (ie. using a Trimble Thunderbolt) after any reboot.  
+
It is not unusual for it to take up to 20 mins to get a GPS lock LED (ie. using a Trimble Thunderbolt) after any reboot. With the Trimble GPS', that is because it is waiting to complete the download of the almanac, and clear the status flags.  
      Line 556: Line 628:  
I found the debug setting of 32 useful in the RTCM, you can see a hex output of the GPS status.   
 
I found the debug setting of 32 useful in the RTCM, you can see a hex output of the GPS status.   
 
</pre>
 
</pre>
 +
 +
 +
That has also been observed when trying to use a cheap "patch" antenna in a high RF site (lots of TV/FM transmitters nearby). Switching to a "proper" (commercial) GPS antenna that actually has filtering in it resolved the issue.
      Line 578: Line 653:       −
We have added a brute-force fix starting in RTCM/VOTER firmware >=1.51. This fix adds 619315200 seconds (1024 weeks) to the time reported by the GPS. It fixes the Thunderbolts, we have not done extensive testing to see how it affects other TSIP receivers.
+
We have added a brute-force fix starting in RTCM/VOTER firmware >=1.51. This fix adds 619315200 seconds (1024 weeks) to the time reported by the GPS. It fixes the Thunderbolts, it breaks other TSIP receivers (Resolution T). A better fix is being tested.
 +
 
    
===Garmin===
 
===Garmin===
Line 620: Line 696:  
The VOTER is designed to accept both 3.3V or 5V signals, and ''should'' work fine.
 
The VOTER is designed to accept both 3.3V or 5V signals, and ''should'' work fine.
   −
* Some of the Garmin GPS's come with 4800 baud set as default. If you are getting a "Warning: GPS Data time period elapsed" error on your RTCM, change both the GPS and RTCM to use 9600 baud. To do this, interface the GPS to a DB9 connector as per page 8 of the [http://wiki.allstarlink.org/w/images/4/41/GPS_18x_Tech_Specs.pdf manual] (remembering to ONLY use 5V as the power source *facepalm*). Once done, download, extract and open [http://www8.garmin.com/support/download_details.jsp?id=4053 SNSRXCFG_330.exe] and run.
+
* Some of the Garmin GPS's come with 4800 baud set as default. If you are getting a "Warning: GPS Data time period elapsed" error on your RTCM, change both the GPS and RTCM to use 9600 baud. To do this, interface the GPS to a DB9 connector as per page 8 of the [http://wiki.pttlink.org/w/images/4/41/GPS_18x_Tech_Specs.pdf manual] (remembering to ONLY use 5V as the power source *facepalm*). Once done, download, extract and open [http://www8.garmin.com/support/download_details.jsp?id=4053 SNSRXCFG_330.exe] and run.
 
# Select your GPS (in most cases GPS 18x PC/LVC). Press F10 to switch to NMEA mode (Config > Switch to NMEA Mode)
 
# Select your GPS (in most cases GPS 18x PC/LVC). Press F10 to switch to NMEA mode (Config > Switch to NMEA Mode)
 
# Select Config > Setup and choose the COM port your GPS is connected too. Leave baud rate as auto for now, OK.
 
# Select Config > Setup and choose the COM port your GPS is connected too. Leave baud rate as auto for now, OK.
Line 630: Line 706:  
# File > Save to a different file than step 5.  
 
# File > Save to a different file than step 5.  
 
# Press F9 or Config > Send Configuration to GPS. This will then send all the changes you made to the GPS unit (including baud rate so a reconnect may be needed)
 
# Press F9 or Config > Send Configuration to GPS. This will then send all the changes you made to the GPS unit (including baud rate so a reconnect may be needed)
 +
 +
 +
===uBlox GPS===
 +
You can use uBlox GPS modules with the VOTER/RTCM. The ones readily available usually have a 5 pin header on them (5V, GND, TXD, RXD, PPS), as well as an integrated patch antenna, and a SMA connector for an external antenna.
 +
 +
 +
Data is TTL, so make sure to set the jumpers inside the RTCM for TTL data. Baud rate is 9600 by default, and uses NMEA. Set those accordingly in the configuration menu.
 +
 +
 +
The RTCM and VOTER require different settings for data and PPS polarity. The VOTER wants '''inverted''' for both, and the RTCM wants '''non-inverted''' for both.
 +
 +
 +
Make sure to save (99) and reboot (r) your VOTER/RTCM after making changes for them to be effective.
 +
 +
 +
===PPS Issues===
 +
If your VOTER/RTCM connects to your server, but it won't receive anything, check/toggle the PPS polarity, it may be incorrect.
 +
 +
 +
===NMEA <--> TSIP Mode Change===
 +
If you change from NMEA to TSIP (or vice versa), the VOTER/RTCM tries to be smart and change the baud rate for you. For TSIP, it sets it to 9600, and for NMEA it sets it to 4800. However, '''it also resets GPS and PPS polarity to 0'''! This WILL cause you confusion, if you are trying to find the right set of settings for your GPS. This will probably be removed in a future firmware version.
      Line 708: Line 805:       −
So, the 1 after ok is the "happy gps" flag. The other 5 bytes are supposed to be bytes 9-14 from the packet... sort of. They are bytes 9-14 of the buffer, but they are actually bytes 8-13 of the binary message.
+
So, the 1 after ok is the "happy gps" flag. The other 5 bytes are supposed to be bytes 9-14 from the packet... sort of. They are bytes 9-14 of the buffer, but they are actually bytes 8-13 of the binary message. '''Note that array byte 12 is Minor Alarm bits 0-7, and byte 11 is Minor Alarm bits 8-12.'''
      Line 723: Line 820:  
GPS-DEBUG: TSIP: ok 1, 9 - 14: 00 00 00 00 00 00 - everything is good in the 'hood, Doing Fixes, Phase Locking
 
GPS-DEBUG: TSIP: ok 1, 9 - 14: 00 00 00 00 00 00 - everything is good in the 'hood, Doing Fixes, Phase Locking
   −
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 00 18 08 06 - not happy, Not Tracking Satellites, Not Disciplining Oscillator (0x18 --> 0b000000011000), No Usable Sats, Inactive
+
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 00 18 08 06 - not happy, Not Tracking Satellites, Not Disciplining Oscillator (0x18 --> 0b00011000, Bits 7-->0 of Minor Alarms), No Usable Sats, Inactive
    
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 00 08 08 05 - not happy, Not Tracking Satellites, No Useable Sats, Compensating OXCO (holdover)
 
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 00 08 08 05 - not happy, Not Tracking Satellites, No Useable Sats, Compensating OXCO (holdover)
Line 732: Line 829:     
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 00 00 00 04 - not happy, Initializing Loop Filter
 
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 00 00 00 04 - not happy, Initializing Loop Filter
 +
 +
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 08 08 08 00 - not happy, Almanac Not Complete, Not Tracking Satellites, No Useable Sats
 +
 +
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 08 00 00 00 - not happy, Almanac Not Complete
 +
 +
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 08 08 01 00 - not happy, Almanac Not Complete, Not Tracking Satellites, Don't Have GPS Time
 +
 +
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 00 0A 08 00 - not happy, Antenna Open, Not Tracking Satellites, No Useable Sats
 
</pre>
 
</pre>
   Line 740: Line 845:  
*Any Critical Alarms.
 
*Any Critical Alarms.
 
*Any Minor Alarms.
 
*Any Minor Alarms.
      
=Ubiquity ToS=
 
=Ubiquity ToS=
Line 869: Line 973:  
Of course Duplex Mode 3 support can't be used with voting or simulcast. You also loose Touch Tone muting, Time Out Timer and Repeater Disable functions because the repeat path is not through app_rpt.
 
Of course Duplex Mode 3 support can't be used with voting or simulcast. You also loose Touch Tone muting, Time Out Timer and Repeater Disable functions because the repeat path is not through app_rpt.
    +
= Setting Voter Buffers =
 +
Voter ping is useful for end-to-end network evaluation when ICMP ping is turned off and/or the RTCM is behind a firewall and is not ICMP reachable. It can also help with finding the correct RTCM and voter.conf buffer settings.
 +
 +
=== Voter Ping Usage ===
 +
The voter ping asterisk CLI syntax is:
 +
*CLI>voter ping nameOfClient [packetCount]
 +
If packetCount is not specified 8 pings will be sent. Use packetCount of 0 to stop an in progress voter ping. Set packetCount to at least 100 when evaluating link quality.
 +
 +
The result will be similar to:
 +
...
 +
PING (nameOfClient): Packets tx: 100, rx: 100, oos: 0, Avg.: 26.710 ms
 +
PING (nameOfClient):  Worst: 38 ms, Best: 22 ms, 100.0% Packets successfully received (0.0% loss)
 +
The output above is self evident except for oos which is a count of out of sequence packets. Voter ping requires RTCM firmware 1.23 or newer and chan_voter 2013-08-04 or newer.
 +
 +
=== RX Buffer Size ===
 +
Ping all the receiver sites and look for the worst response of the worst client. As a rough rule of thumb the buflen setting in voter.conf should be set to the worst response + 40ms or 120 whichever is greater. Using the above case the buflen should be set to 120 (38+40
 +
 +
=== TX Buffer Size ===
 +
Ping all the transmitter sites and look for the worst response of the worst client. The RTCM TX Buffer Length should be set to (worst response + 40ms) * 8 or 480 whichever is greater. Using the above case the RTCM TX Buffer Length should be set to 624 ((38+40)*8).
 +
 +
=== Assumptions ===
 +
* The minimum TX buffer size is 480 (60ms) and the minimum RX buffer is 120ms. These were derived by testing on a LAN segment with chan_voter 2013-08-04 and RTCM 1.26.
 +
* The ping times are not round trip times but they are in fact round trip times. Therefore the worst response could (should?) be divided by 2. Ie RX buffer = 38/2+40=59 and TX buffer = (38/2 + 40) * 8 = 472. Minimums still apply.
 +
* The internet path to and from the RTCM under test is symmetrical.
 +
* The added 40ms pad is an estimate of buffer ingress and egress.
 +
As always your milage may vary. Some trial and error may be required to find the optimum settings.
 +
 +
=== Setup ===
 +
The RX buffer is set with buflen=120 in /etc/asterisk/voter.conf. The value is in milliseconds. The TX buffer is set in the RTCM with menu item 7. The value is in 125 microsecond increments. To match the size of the TX to the RX buffer, use the RX buffer * 8 to get the TX buffer size.
 
[[Category:How to]]
 
[[Category:How to]]
 
[[Category:Node Configuration]]
 
[[Category:Node Configuration]]

Navigation menu