Jump to content
  • 0

CM108 (small USB Dongle) audio and PTT interface for the Pi and connecting to a radio.



The CM108 is a very inexpensive replacement for the RTCM interface that is used for AllStar and the myGMRS linked repeater systems.

Going into this, I will say that if you can't solder, are not computer savvy, and don't have some sort of test equipment, it will make doing this EXTREMELY hard to accomplish and you will fight with getting the audio at an acceptable level.

The CM108 (which is actually the part number for the USB chip) is a USB audio interface with I/O (inputs and outputs) that can be used for connecting a radio to a Raspberry Pi.  I am not going to go through all the soldering and wiring stuff since it's WELL documented on the web.  I will tell you that you will need the PTT output and the COR input for interfacing to a system.  While the speaker level output voltage is very close to what is needed to drive a LINE input on a radio (not a direct Microphone input) the Microphone INPUT will need a voltage divider network to get the output from basically ANY radio down to a level that it can process.  I set the interfaces BOTH to a -10dBm level into a 600 ohm load on a TIMS set.  And while a TIMS set is not 100% needed, it is MUCH easier to get a fixed level to start with before connecting the interface to a repeater for final adjustment.  With a -10dBm signal being generated into the mike input, you will need a 20 to 1 voltage divider or a 50K pot on the input.  The two resistors to use for a 20 to 1 divider would be a 20K ohm and a 1k ohm.  The 1K resistor and the 20K resistor get wired in series.  One end of the 1K resistor gets grounded and the floating end of the 20K resistor is fed the incoming audio.  The connection point between the two resistors feeds the input of the CM108.  This is fed from the RX audio from the repeater,  it's best to just use unfiltered audio and allow the Pi and the CM108 to process the audio.  For the TX audio, for the -10dBm I mentioned before the setting on the CM108 configuration is 990 in the simpleusb-tune-menu.  Which I will get to in a minute.  But that provides a good relative level to feed into a repeater.  The repeater I interfaced to was an MTR2000.  I did NOT use the wireline interface with the CM108 because true wireline is a balanced input, meaning there is no real ground and 'positive'.  Like a twinlead antenna cable.  The output of the CM108 is unbalanced, meaning it has a ground wire and a 'positive' wire that the audio rides on.  connecting a balanced input or output to a balanced input or output WILL cause hum, noise and headaches that you will NEVER solve with your audio quality.  The RTSM does have balanced outputs and WILL work with the wireline interface to a repeater.  But if your repeater doesn't have a wireline input, it can also cause hum and other issues.   So remember that all inputs and outputs need to be balanced or not, mixing them is NEVER a good idea.   You can do it via impedance matching transformers, but that further complicates the build. 


These are two files that are in the distribution for Asterisk that setup the actual CM108 interface.  And they can bring you heartache and pain.  The first issue that you will encounter is that the interface will not accept audio without BOTH a core input and a PL being received on the audio line.  These settings are in the simpleusb.conf file in the /etc/asterisk directory.  To edit the simpleusb.conf file you will log into the Pi and type 'sudo nano /etc/asterisk/simpleusb.conf  . This should bring up a test file that willhave a number of different things in it.  The parts that you are looking for are the 'rxboost = ', and the 'ctcssfrom = '.  These need to be set to rxboost = 0 and ctcssfrom = no.  The one that will give you headaches is the 'ctcssfrom=no' because it's set for 'ctcssfrom=usb' which means it REQUIRES the PL or CTCSS tone be present on the input audio line (receive audio).  If you have filtered audio and not discriminator (flat) audio coming from the repeater, and have the CTCSS tone set elsewhere in the configuration of the Asterisk, it will NOT receive.  Setting that to NO turns that function off and allows the 'carrierfrom ='  setting to control the RX from the repeater into the interface.  THIS IS REALLY IMPORTANT because it don't work if you don't change this.

You are advised to use 2n2222 transistors to invert and isolate the inputs to the CM108.  The information on doing this is again on the web in a number of places.  But they will protect the interface board that can't deal with the 5 volt output from the repeater to the CM108 that should only ever see 3 volts input. 

These little interfaces will allow you to connect to many different repeaters besides Motorola units that have a wireline interface and will also also allow you to connect to an MTR repeater that doesn't have the wireline card installed in it.  These are getting harder to come by since they haven't been made in a number of years. 

I am FAR from a guru on this.  But i have worked on countless numbers of MTR's over the 15 years of being a two-way tech.  Feel free to ask questions and I will do my level best to answer them.  But there are others here that know FAR more than me about the Linux image and other parts of the myGMRS network of repeaters. 

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Guidelines.