SimpleUSB Channel Driver: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
chan_simpleusb is ideal for smaller computers and those systems that do not need the chan_usbradio driver. | chan_simpleusb is ideal for smaller computers and those systems that do not need the chan_usbradio driver. | ||
You must enable | You must enable chan_simpleusb.so load in modules.conf. | ||
=simpleusb.conf= | =simpleusb.conf= | ||
Line 13: | Line 13: | ||
[usb_<node#>] | [usb_<node#>] | ||
eeprom=0 | eeprom = 0 ; EEPROM installed: 0,1 | ||
; 0 = no (default) | |||
; 1 = yes | |||
hdwtype = 0 ; Leave this set to 0 for USB sound fobs modified using | |||
; | ; the instructions from usbfob.pdf. Use a setting of | ||
; 1 is for Dingotel/Sph interfaces. | |||
rxboost = 0 ; 0 = 20db attenuator inserted, 1= 20db attenuator removed | |||
; Set to 1 for additonal gain if using a low-level receiver output | |||
carrierfrom = usbinvert ; no,usb,usbinvert | |||
; no - no carrier detection at all | |||
; usb - from the COR line on the USB sound fob (Active high) | |||
; usbinvert - from the inverted COR line on the USB sound fob (Active low) | |||
ctcssfrom = usbinvert ; no,usb,usbinvert | |||
; no - CTCSS decoding, system will be carrier squelch | |||
; usb - CTCSS decoding using input from USB sound fob (Active high) | |||
; usbinvert - from the inverted CTCSS line on the USB sound fob (Active low) | |||
deemphasis = no ; enable de-emphasis (input from discriminator) | |||
plfilter = yes ; enable PL filter | |||
invertptt=0 | rxondelay = 0 ; Number of 20mSec intervals following the release of PTT. | ||
; Uncomment and/or adjust for simplex nodes to eliminate "Ping Ponging" | |||
; | ; or "Relay Racing". A positive value here will instruct the usbradio | ||
; driver to ignore the COR line for a specified number of 20mSec | |||
; intervals following the release of PTT. Use this ONLY on simplex | |||
; nodes, and leave commented out for repeaters or other full duplex nodes. | |||
txoffdelay = 0 ; Ignore the reciever for a specified number of 20 millisecond | |||
; intervals after the transmitter unkeys. | |||
; This is useful when setting up a half-duplex link with an existing | |||
; repeater, where you need to ignore the repeater's hangtime. | |||
txmixa = voice ; Left channel output (A): no,voice | |||
; no - Do not output anything | |||
; voice - output voice only | |||
txmixb = no ; Right channel output (B): no,voice | |||
; no - Do not output anything | |||
; voice - output voice only | |||
txboost = 0 | |||
invertptt = 0 ; Invert PTT: 0,1 | |||
; 0 - ground to transmit | |||
; 1 - open to transmit | |||
preemphasis = 0 ; Perform standard 6db/octave pre-emphasis | |||
; pager = no ; no,a,b (e.g. pager = b means "put the normal repeat audio on channel A, and the pager audio on channel B") | |||
duplex3 = 0 ; duplex 3 gain setting (0 to disable) | |||
; when enabled, connects the receive audio from the sound card directly to the transmit audio. | |||
</pre> | </pre> | ||
=Configuration= | |||
== | ==Parallel Port== | ||
When setting chan_simpleusb to use a parallel port for I/O you must set a definition for the port address in rpt.conf: | When setting chan_simpleusb to use a parallel port for I/O you must set a definition for the port address in rpt.conf: | ||
Line 74: | Line 100: | ||
== | == Node Number Configuration == | ||
When configuring your simpleusb radio node you '''''MUST''''' ensure that the name of the radio is the same in both rpt.conf and simpleusb.conf. | When configuring your simpleusb radio node you '''''MUST''''' ensure that the name of the radio is the same in both rpt.conf and simpleusb.conf. | ||
The system looks inside the file SimpleUSB.conf for the match of the node# to be configured (i.e. usb_1234). | The system looks inside the file SimpleUSB.conf for the match of the node# to be configured (i.e. usb_1234). | ||
Line 88: | Line 114: | ||
If you are reusing the simpleusb.conf file from an older installation (i.e., ACID), take special note of the change in naming. When a exact match is not made, the settings that follow will not be loaded. | If you are reusing the simpleusb.conf file from an older installation (i.e., ACID), take special note of the change in naming. When a exact match is not made, the settings that follow will not be loaded. | ||
==Sound Card Audio Buffers== | |||
On some systems, the sound card driver buffers may need to be adjusted. If you see messages like ''soundcard_writeframe: Channel usb_1999: Sound device write buffer overflow - used 6 blocks'', the number of allocated buffers is not sufficient. Increasing the '''queuesize''' may be needed. | |||
The following entries can be added to usbradio.conf. | |||
<pre> | |||
queuesize = 20 ; number of buffers | |||
frags = 1966092 ; request 30 buffers (fragments) of size 4096 | |||
</pre> | |||
'''queuesize''' specifies the maximum number of driver buffers that can be used before reporting a buffer overflow. This value should be 1 less than the number of buffers requested with '''frags'''. The default value is 20. | |||
'''frags''' specifies the number of buffers and buffer size to allocate. This is a 4-byte value. The first 2-bytes specify the number of buffers. The second 2-bytes specify the size of the buffer. The buffer size is 2 raised to the value specified. | |||
The default frags value is '''001E000C''' hex (1966092 decimal). '''001E''' is 30 decimal. This asks for 30 buffers. '''000C''' is 12 decimal. This requests 2 raised to the power of 12, which is 4096 bytes. The value 1966092 decimal (001E000C hex) requests that the sound card driver give chan_simpleusb 30 buffers that are 4096 bytes in length. | |||
The '''queuesize''' should always be greater than 1. | |||
=Miscellaneous= | =Miscellaneous= |
Revision as of 01:15, 22 January 2024
chan_simpleusb is ideal for smaller computers and those systems that do not need the chan_usbradio driver.
You must enable chan_simpleusb.so load in modules.conf.
simpleusb.conf
The configuration of chan_simpleusb is done with the simpleusb.conf file and is self explanatory:
; SimpleUSB configuration ; [general] [usb_<node#>] eeprom = 0 ; EEPROM installed: 0,1 ; 0 = no (default) ; 1 = yes hdwtype = 0 ; Leave this set to 0 for USB sound fobs modified using ; the instructions from usbfob.pdf. Use a setting of ; 1 is for Dingotel/Sph interfaces. rxboost = 0 ; 0 = 20db attenuator inserted, 1= 20db attenuator removed ; Set to 1 for additonal gain if using a low-level receiver output carrierfrom = usbinvert ; no,usb,usbinvert ; no - no carrier detection at all ; usb - from the COR line on the USB sound fob (Active high) ; usbinvert - from the inverted COR line on the USB sound fob (Active low) ctcssfrom = usbinvert ; no,usb,usbinvert ; no - CTCSS decoding, system will be carrier squelch ; usb - CTCSS decoding using input from USB sound fob (Active high) ; usbinvert - from the inverted CTCSS line on the USB sound fob (Active low) deemphasis = no ; enable de-emphasis (input from discriminator) plfilter = yes ; enable PL filter rxondelay = 0 ; Number of 20mSec intervals following the release of PTT. ; Uncomment and/or adjust for simplex nodes to eliminate "Ping Ponging" ; or "Relay Racing". A positive value here will instruct the usbradio ; driver to ignore the COR line for a specified number of 20mSec ; intervals following the release of PTT. Use this ONLY on simplex ; nodes, and leave commented out for repeaters or other full duplex nodes. txoffdelay = 0 ; Ignore the reciever for a specified number of 20 millisecond ; intervals after the transmitter unkeys. ; This is useful when setting up a half-duplex link with an existing ; repeater, where you need to ignore the repeater's hangtime. txmixa = voice ; Left channel output (A): no,voice ; no - Do not output anything ; voice - output voice only txmixb = no ; Right channel output (B): no,voice ; no - Do not output anything ; voice - output voice only txboost = 0 invertptt = 0 ; Invert PTT: 0,1 ; 0 - ground to transmit ; 1 - open to transmit preemphasis = 0 ; Perform standard 6db/octave pre-emphasis ; pager = no ; no,a,b (e.g. pager = b means "put the normal repeat audio on channel A, and the pager audio on channel B") duplex3 = 0 ; duplex 3 gain setting (0 to disable) ; when enabled, connects the receive audio from the sound card directly to the transmit audio.
Configuration
Parallel Port
When setting chan_simpleusb to use a parallel port for I/O you must set a definition for the port address in rpt.conf:
iobase=0x378 ; Parallel port address (using for cor/ptt & switches +dh-rbi - 378,278,3bc common Lpt 1,2,3
You must then define the parallel port pins used for I/O in simpleusb.conf:
[usb_<node#1>] ( ie [usb_1234] ) pp6=ptt pp15=ctcss (valid ctcss signal from ext hardware 0/5v) pp11=cor carrierfrom=ppinvert (could also be ctcss or ctcssinvert or pp) ...(+ additional info for this nodes usb config)... [usb_<node#2>] pp7=ptt pp12=cor pp14=ctcss carrierfrom=ctcss
...(+ additional info for this nodes usb config)...
Node Number Configuration
When configuring your simpleusb radio node you MUST ensure that the name of the radio is the same in both rpt.conf and simpleusb.conf. The system looks inside the file SimpleUSB.conf for the match of the node# to be configured (i.e. usb_1234).
Node names are in format of usb_<nodenumber>. Where <nodenumber> = the AllStar Link node of your system. Note that usb and the node number are separated by an underscore (_) character.
Example:
Your simpleusb.conf file defines your usb radio as [usb_1000]. Your rpt.conf file would then have:
rxchannel = SimpleUSB/usb_1000
If you are reusing the simpleusb.conf file from an older installation (i.e., ACID), take special note of the change in naming. When a exact match is not made, the settings that follow will not be loaded.
Sound Card Audio Buffers
On some systems, the sound card driver buffers may need to be adjusted. If you see messages like soundcard_writeframe: Channel usb_1999: Sound device write buffer overflow - used 6 blocks, the number of allocated buffers is not sufficient. Increasing the queuesize may be needed.
The following entries can be added to usbradio.conf.
queuesize = 20 ; number of buffers frags = 1966092 ; request 30 buffers (fragments) of size 4096
queuesize specifies the maximum number of driver buffers that can be used before reporting a buffer overflow. This value should be 1 less than the number of buffers requested with frags. The default value is 20.
frags specifies the number of buffers and buffer size to allocate. This is a 4-byte value. The first 2-bytes specify the number of buffers. The second 2-bytes specify the size of the buffer. The buffer size is 2 raised to the value specified.
The default frags value is 001E000C hex (1966092 decimal). 001E is 30 decimal. This asks for 30 buffers. 000C is 12 decimal. This requests 2 raised to the power of 12, which is 4096 bytes. The value 1966092 decimal (001E000C hex) requests that the sound card driver give chan_simpleusb 30 buffers that are 4096 bytes in length.
The queuesize should always be greater than 1.
Miscellaneous
Parallel Port Addressing:
A line is required in your node stanza in RPT.conf to access the parallel port in the software.
iobase=0x378 ; Parallel port address
Settings are 0x378 = LPT1, 0x278 = LPT2, 0x3bc = LPT3
You can have more than one, but you need to place them in other node stanza's addressed separately. Note: Some older systems plug and play can have issues addressing these. If so, go to bios setup and address them manually. This will prevent the system from changing the address.
Parallel Port Pin Numbers
Additional note on parallel port pin numbers:
When you are looking at the pp# addressing, the actual hardware pin numbers are in computer natural logical format.
So hardware pin D0 on the LPT port is equal to pp1 in the software configuration.
"0" is the first number to a computer as seen at the BIOS and/or hardware addressing.
Be sure you are testing/setting/attaching the correct pin number.
Here is a listing of hardware pins and the software setup equivalents:
Hardware pin | Software equivalent |
---|---|
D0 | pp1 |
D1 | pp2 |
D2 | pp3 |
D3 | pp4 |
D4 | pp5 |
D5 | pp6 |
D6 | pp7 |
D7 | pp8 |
Allstar denoted pins pp9 through pp12 are 'Input pins' listed as 'A#' in the parallel port scheme.
Special note: All these pins require 'buffering' by adding a transistor to do the actual switching. They will not sink much current on their own. While these port pins vary, most will only sink about 20ma-50ma of current. In the case of some older radios you might interface, you might need to buffer with a transistor (2n2222 / 3904/3906) AND/OR a relay actuated by the buffer transistor. Mainly the PTT lines.
The best design is with optically-coupled transistors to prevent voltages and/or rf from running back through this port. The unused output pins can be applied to switch things at the site. i.e. fan/light/alarm or even switching off other equipment. It is not advisable to work a relay coil directly with a PP pin. It is a coil and susceptible to absorbing RF and there is no quicker way to lock a computer up than to bugger this input/output with a stray signal.
Final Note: If you think you might be adding a Doug Hall RBI-1 Remote base later, Start populating pins 'above' pp3 reserving the 1st 3 pins.
Check command tables for info, not related to simple_usb.conf.