Building your own USB Radio Interface
Thanks to the hard work of Steven Henke, W9SH and Jim Dixon, WB6NIL, Asterisk/app_rpt can be used with USB sound fobs which have a C-Media electronics CM-108, CM-108AH, or CM-119 USB interface chips. The sound fob will require some modifications to bring out PTT, block DC on the audio outputs, and attenuate the receive audio to match the microphone levels. This article deals only with the specifics of the CM-108 chip. We welcome others to explore modifying USB sound fobs containing the other supported chips.
You might ask, why would I want to use the Quad Radio PCI card when it costs more? -or- Why should I use the Quad Radio PCI card when the modified USB sound fob using the app_rpt usbradio interface is much less expensive?
The differences between the two interfaces boil down to reliability, how valuable your time is, and the type of system to be deployed.The commercially made DMK Engineering URI, and the modified USB sound fob do not scale very well in systems where multiple radios need to be interfaced to one machine running Asterisk, especially when the system has limited computing power. Support both the modified USB fob and the URI are limited to asking the community questions on the mailing list. You may or may not get the answer you are looking for. In short, if you are a tinkerer or Amateur Radio Operator with more time on your hands than money, the the modified USB sound fob is probably the avenue to persue.
Linux distributions compatible with USB Sound fobs
A version of Limey Linux (which is a Compact flash based distribution) is available which provides support the modified USB sound fob. We have found that most of the VIA Mini-ITX boards are not powerful enough to support the demands of the DSP code for the USB channel driver. Version 1.0.6 of Limey Linux has been released to support newer Intel Mini-ITX motherboards which are more capable of handling these DSP tasks. All builds of Limey Linux are configured for the usbradio interface except for the VIA build. The VIA build is not fast enough to support the DSP overhead in the usbradio driver.
ACID, an automatic install of Centos which downloads all of the necessary files and automatically builds Asterisk and app_rpt is downloadable from here. Everything is taken care of by install scripts, so users with little or no Linux system integration skills can get up and running quickly. ACID is configured for the usbradio interface by default. This is a hard disk based distribution.
There is an Asterisk channel driver called chan_usbradio.c. This driver and the xpmr library source files contains all of the interface code to interface app_rpt to a CM108 based USB sound fob. In addition these files contain DSP code to do CTCSS encoding and decoding, squelch, pre-emphasis and soft limiting, de-emphasis, and audio level adjustments. Basically, you only need to make 3 or 4 connections to your radio:
Discriminator audio, de-emphasized audio, or speaker audio. Transmit audio (direct to modulator, or microphone) PTT
You can opt not to use the DSP-based squelch and, and bring a COR line in if that is what you want to do. However if you don't use discriminator audio, you will not be able to use the DSP-based CTCSS decoder.
Audio level adjustments, and CTCSS are done with commands from the Asterisk CLI. More details about these commands are available in the Adjusting Audio Levels HowTo.
The step-by-step hardware modification procedure is documented in a .pdf format here: USB FOB Modification Instructions. As of late, USB FOB's with CM-108 chips have been getting harder to find, you need to make sure that the FOB you modify does indeed us a CM-108 chip, or your time will be wasted. Also the PC boards can be a little different from FOB to FOB. You will need to study the modification procedure and see where it might differ from the FOB you have.