VOTER-Hardware
Introduction
This is the documentation page to support the through-hole implementation of the VOTER Hardware.
See the VOTER page for more information on the background/history. If you have bought or built a through-hole VOTER, this page is for you. If you have an RTCM, then you will want to reference the manual for the RTCM or our RTCM Client page. That said, most of the information here should be applicable too.
Firmware
See the firmware upgrade page for information on upgrading the firmware.
If you are building your own VOTER, or for some reason you need to replace U6, you will want to program in the bootloader in to the dsPIC to allow for remote firmware upgrades. See the Bootloader section on how to do that.
Board Layout
The through-hole board typically looks like this:
Connectors
J1 - 6 pin MTA-100 connector for PIC programmer (PICKit3 or equivalent). A reset switch may be placed across pins 1 and 3. J2 - Ethernet (10-Base-T). J3 - RS-232 (console 57600 bps 8N1, DCE) J4 - 5 pin MTA-100 connector for GPS (see below for pinout). P1 - Radio Connector (9 pin D-shell Male) (see below for pinout).
P1 - Radio Connector Pinout (DB9 Male)
1 - + VIn (6.5-30 Volts DC). 2 - Transmit Audio Out 3 - Receive (discriminator) Audio In 4 - External CTCSS Input (optional) 5 - Gnd 6 - Gnd 7 - /PTT Out (open-collector, active-low) 8 - Gnd 9 – Gnd
J4 - GPS Connector (5 Pin MTA-100 Male) Pinout
1 - Gnd 2 - 5 Volts DC Out (to power GPS device) 3 - GPS TXD (Gnd, actually) 4 - GPS RXD (in) 5 - GPS PPS (in)
LED Designations
LED designations (shown from right to left along front of VOTER board, see photo above):
LED1 - (Green) System Activity Indicator (should toggle every 500ms) LED5 - (Red) Transmit Indicator LED2 - (Green) Receive Signal Indicator (solid green is valid Rx signal, flashing is signal without CTCSS) LED3 - (Yellow) GPS Indicator (sold is GPS received and locked, flashing is GPS received, lock in progress) LED4 - (Yellow) Connection Indicator (indicates that connection was made with VOTER host)
Jumpers
JP1 - Discriminator Level Boost JP2 - 20dB Pad JP3 - Output Amp Power Source JP7 - Bootloader Programming JP8 - Initialize EEPROM JP9 - Squelch Calibration JP10 - Diode Calibration JP11 - LED3/4 Receiver Level Mode
JP1 - Discriminator Level Boost
Insert if low discriminator level. If squelch cannot self-calibrate with JP1 removed (too low), try with JP1 inserted.
Note: this jumper affects the squelch calibration circuit only. Not to be confused with JP2, which is the pad for the receive audio.
JP2 - 20dB Pad
Insert to attenuate discriminator input level by 20db. This pad affects the receive audio level. See the Receive Level Input Calibration section.
JP3 - Output Amp Power Source
Selects power source for output audio amplifier. 1-2 is to power it from the 5VDC power supply. 2-3 is to power it directly from Vin.
DO *NOT* CHANGE THIS JUMPER WITH POWER ON. DAMAGE MAY OCCUR IF YOU DO!!
JP7 - Bootloader Programming
This jumper only needs to be removed when programming the bootloader in the dsPIC using the ICSP header.
JP8 - Initialize EEPROM
Initialize the configuration parameters in EEPROM (factory reset). If JP8 is inserted when firmware starts, the operating parameters in the EEPROM will be set to default values. The system activity LED (LED1, Green) will stay off for approx. 4 seconds, then stay on steady to indicate that the initialization process is complete. Afterwards, the jumper may be removed and the system will continue running as usual.
Note, if JP10 is inserted during this procedure, the "Diode Calibration" process will also occur.
JP9 - Squelch Calibration
Insert to calibrate squelch. See below.
JP10 - Diode Calibration
Insert to perform "Diode Calibration". This is a form of temperature compensation, where a power supply voltage is sampled that is dependent on the temperature coefficient of a diode (D5).
This may only be done in conjunction with an EEPROM Initialization (see JP8, above), or a Squelch Calibration (see JP9, above).
JP11 - LED3/4 Receiver Level Mode
Insert this jumper to temporarily re-purpose LED3 and LED4 to allow for visual indication of RX input level (see Rx Level Calibration, below). Alternatively, you can use menu 97.
Potentiometers
R22 - Squelch adjustment R36 - Rx Input Level R61 - Tx Output Level
Initialization
Once you have verified that the firmware is running, place a jumper shunt on JP8 and JP10.
Be sure to do this at a reasonable human room temperature (like 60-80 deg. F). This is necessary because this procedure initializes the operating parameters in the EEPROM and also does a temperature compensation diode calibration, which needs to happen at room temperature.
Once the jumper shunts have been installed, power-cycle the board and wait for the system activity light to come on steady (about 4 seconds or so after the 5 second initial wait time).
Then, remove the jumper shunts, and proceed with Squelch Calibration.
Squelch Calibration and Setting
With the receiver connected and its antenna removed, insert JP9. In the next few seconds the "Receive Signal Indicator" (LED2, green) will flash on and off, then (hopefully) on steady.
This indicates that the squelch calibration has occurred successfully.
If unsuccessful, the LED will flash either fast to indicate that the discriminator noise level is too high, or slowly to indicate that the discriminator noise level is too low. If the discriminator level is too low, try inserting JP1 and try again.
Note, if JP10 is inserted during this procedure, the "Diode Calibration" process will also occur.
If you still have troubles calibrating the squelch, you may need to try the Baseband Examination Window (BEW) firmware.
Once the Squelch Calibration procedure has been performed, the squelch adjustment (R22) needs to be properly set. Make sure that the "External CTCSS" is set to "ignore" (value: 0).
12 - External CTCSS (0=Ignore, 1=Non-Inverted, 2=Inverted) (0)
Adjust R22 until the Receive Signal Indicator (LED2) is lit. Then, advance R22 clockwise until LED2 is no longer lit. That is the minimum squelch setting. You probably will want to crank it up at least another turn clockwise, because if you leave it there it will open on a REALLY low level signal.
After proper setting has been achieved, return the "External CTCSS" configuration to its original setting.
Menu 98 will show the settings of the Squelch Calibration, Diode Calibration, and Squelch Levels:
Squelch Noise Gain Value: 45, Diode Cal. Value: 60, SQL Level 675, Hysteresis 10
Receive Level Input Calibration
Place a full-quieting saturated signal on the receiver, modulated by 1000 Hertz sine wave at 3KHz deviation.
With JP11 inserted, LED3 will indicate (by brightness) if the RX level is too low, and LED4 will indicate (by brightness) if the RX level is too high. So the idea is to tune R36 so that there is minimal brightness on both LED3 and LED4 (like a null, more or less).
Alternatively, Menu 97 from the console menu gives a more graphical method of setting the Rx input level:
RX VOICE DISPLAY: v -- 3KHz v -- 5KHz |=================================>
Again, tune R36 until the input level matches 3kHz (since that is the deviation you are feeding in to the receiver).
Transmit Level Calibration
Transmit output level is adjusted with R63. Transmit Level Calibration is not required for satellite receiver sites, obviously.
This gets a little complicated, and will depend on how you have your system configured. This is a general guideline, adjust for your application. It assumes that you have a receiver co-located with a transmitter, and that this VOTER board is doing receive and transmit functions.
Once you have completed the Receive Level Input Calibration (above), that audio will be sent in one of two places. If the VOTER is connected to the host, it will be sent to chan_voter
and app_rpt/Asterisk
. If the VOTER is not connected to the host, and you have "offline repeat" configured in the VOTER, the receive audio will be looped back to the transmitter (with any additional configuration details from offline repeat mode).
The "easiest" way to set the transmit level is to configure offline repeat.
OffLine Mode Parameters Menu Select the following values to View/Modify: 1 - Offline Mode (0=NONE, 1=Simplex, 2=Simplex w/Trigger, 3=Repeater) (3) 2 - CW Speed (400) (1/8000 secs) 3 - Pre-CW Delay (4000) (1/8000 secs) 4 - Post-CW Delay (4000) (1/8000 secs) 5 - CW "Offline" (ID) String (N0CALL/R) 6 - CW "Online" String (OK) 7 - "Offline" (CW ID) Period Time (18000) (1/10 secs) 8 - Offline Repeat Hang Time (15) (1/10 secs) 9 - Offline CTCSS Tone (136.5) Hz 10 - Offline CTCSS Level (0-32767) (0) 11 - Offline De-Emphasis Override (0=NORMAL, 1=OVERRIDE) (1) 99 - Save Values to EEPROM x - Exit OffLine Mode Parameter Menu (back to main menu) q - Disconnect Remote Console Session, r - reboot system Enter Selection (1-9,99,c,x,q,r) :
Ensure that the Offline Mode is set to 3.
Offline CTCSS Tone doesn't matter but Offline CTCSS Level must be set to 0.
Offline De-Emphasis Override will depend on how you have your transmit audio coupled to your transmitter. If you are using microphone audio input (so that the audio gets pre-emphasized and splatter filtered), this would be set to 0. If, however, you are using an auxiliary modulation input that goes direct to the modulator (because you may want the VOTER to generate CTCSS), then this would be set to 1. In normal (0) mode, receive audio will be de-emphasized, as the VOTER is expecting the transmit audio to be connected to the microphone input. In override (1) mode, receive audio will not be de-emphasized, as the VOTER is expecting that the transmit audio is connected directly to the modulator (with no pre-emphasis); as such, the receiver audio would already be pre-emphasized (from the user's radio), and just needs to be sent to the transmitter (avoiding "double pre-emphasis"). If you are going to generate CTCSS in the VOTER (or chan_voter
), you will need to connect your transmit audio directly to the modulator... so for OffLine mode, you're probably going to want to set this to override (1).
With the Ethernet cable removed (so there is no connection to the host), applying a 1kHz tone at 3kHz deviation should cause the VOTER to key the transmitter (in offline mode).
Adjust R63 to set the transmitter deviation to 3kHz (3kHz in, 3kHz out).
Remove the receiver signal, and (optionally) set the Offline Mode back to 0.
At this point, if you have a properly configured AllStar host (including settings in voter.conf
), re-connect the Ethernet cable to the VOTER. Ensure that the connection to the host is established. Now, when you send your 1kHz at 3kHz deviation in to the receiver, it should come out the transmitter at 3kHz deviation as well.
CTCSS Level Setting
As noted above, if you have a direct modulator connection to your transmitter, and wish to have AllStar and the VOTER generate CTCSS for you on transmit, you will need to set the levels.
Offline Repeat CTCSS Level
Configure your offline repeat mode as noted above, and set the transmitter deviation.
Set the Offline CTCSS Tone for the desired tone. Save the settings (99).
Now, remove the 1kHz modulating tone from the audio you are injecting in to the receiver.
Adjust the Offline CTCSS Level until you get about 500Hz deviation of your CTCSS tone (check your filters on your service monitor, you probably want 300Hz LPF enabled to get an accurate measurement).
Remember to save the settings (99) and probably reboot (r) to ensure everything is playing nice.
voter.conf CTCSS Level Setting
Re-connect your VOTER to your host.
The requisite settings in your voter.conf
file are:
txctcss = 136.5 txctcsslevel = 47 ;***this is a calibrated value, DO NOT CHANGE*** txtoctype = phase
Set the transmitter deviation as noted above.
Set the txctcss and txtoctype options in voter.conf
as necessary for your application.
Any time you make a change to voter.conf
, you will need to do a voter reload
from the Asterisk console, or restart Asterisk.
Now, send a full-quieting, un-modulated signal in to the receiver (no modulating tone). Your transmitter should key.
Pick a value for the txctcsslevel and put it in voter.conf
. Do a voter reload
from the Asterisk console, and measure the CTCSS deviation on your service monitor (check your filters on your service monitor, you probably want 300Hz LPF enabled to get an accurate measurement).
Continue the process above of adjusting the txctcsslevel, until you get about 500Hz deviation of your CTCSS tone.
Console Connection
Serial Console access is provided by an RS-232 serial port (J3) at 57600 baud, 8 bits, No parity, 1 Stop Bit. It is also made available remotely (off-board) via TELNET. When TELNET-ing the default user is "admin" and the password is "radios".
VOTER System Serial # 1234 Remote Console Access Login: admin Password: radios Logged in successfully, now joining console session...
When done with the console session, please use the 'q' command to disconnect. The local serial port and the TELNET (remote) user share the same (and only) console session.
Console Menus
For a thorough explanation of the different menus, see the VOTER Menus page.
Debug Options
The VOTER/RTCM firmware supports some additional debugging information that can be turned on.
From the source code, the different Debug Options are listed as:
1 - Alt/Main Host change notifications 2 - Ignore HWlock (GGPS only) 4 - GPS/PPS Failure simulation (GGPS only) 8 - POCSAG H/W output disable (GGPS only) 16 - IP TOS Class for Ubiquiti 32 - GPS Debug 64 - Fix GPS 1 second off
Not sure what they all do, but that is what they are. Here are the most common ones used:
- Alt/Main Host change notifications shows when the connection to the Asterisk server changes state (when configured for redundant servers).
- IP TOS Class for Ubiquity in firmware >2.00, this disables marking the IP headers from the RTCM/VOTER TO the network with ToS C0/DSCP 48 (UBNT shows this as 802.1p Class 6 (Voice <10mS latency). Other sources show this as a Network Control TOS.) If you are using TOS, you also will want to have utos=y in your
voter.conf
to mark the packets from the network TO the RTCM/VOTER.
- GPS Debug will print NMEA or TSIP debug strings from the connected GPS.
- Fix GPS 1 second off this is for NMEA GPS only. It will add one second to the time.
The way this works is you add together the options you want to enable (it is a bitmask), and set the debug level accordingly.
For example, if you want to enable GPS Debug and disable IP ToS, set debug to 48.
If you just want to turn on GPS Debug, set debug to 32.
If you just want ToS disabled, set debug to 16.
Set debug back to 0 to clear all debug settings.