For several years I've built home-brewed repeater controllers from custom DIY Arduino controllers to ID-O-MATIC kits, to NHRC controllers. Although these all work as a repeater 'controller',
they are rather limited in what they can do. The NHRC-4 is probably the most versatile of the above listed controllers with native support for a link radio.
But, I wanted the ability to link a repeater over IP and have voice responses, such as time announce or temperature readings triggered through DTMF codes. Plus I wanted to easily customize this with some simple shell scripts or Python code.
So I recently started playing around with the hamvoip.org implementation of the Allstar controller image for Raspberry PI. It really is amazing...I'm surprised I did not play with this earlier!
Bought a handful of cheap CM108 based USB FOBs from Amazon. For around $9 a piece, pretty low cost. I've seen them even cheaper on ebay, especially in larger orders.
The Raspberry PI 4B is fairly reasonable in price, with the Canakits being on sale from time-to-time for about $70 for the 2GB RAM version (kit includes case, microSD card, heatsinks, Powersupply, HDMI cable, etc.)
To start with, the USB FOB needs a few components removed. With a Hot Air rework station and a pair of tweezers, its pretty straightforward on removing the two 1/8" jacks, and R6 which is the bias resistor. Probably the hardest part is soldering a connection on pin 48 of the CM108 chip for COS signal and pin 13 for the PTT signal. Some folks will also solder on a lead to pin 39 for CTCSS. But for my use case, I do the encode/decode on the receiver and transceiver...so I only wanted COS which was enabled on successful decode. So I only used pin 48 & 13 off the chip.
I found the easiest is just to super glue a section of perf board on the back edge of the FOB that I can use that to solder on some of the components along with a 6pin header.
Some folks like to solder on a pigtail lead off the back of the FOB. Personally, since I have a mix of repeaters with different interfaces, I like the header pins so I can swap out to whatever repeater interface I need to use.
Here is a picture of the finished project.
There are a mix of mods out on the internet. What I ended up doing is using a schottky diode (BAT43) on the COS input to protect from any positive voltage going back to the chip. If you also need CTCSS, you'll have to front end pin 39 with a BAT43 too.
Since I use, in some cases Maxtrac Radios for repeaters, the MIC input on the Maxtrac/Radius radios has DC power for the hand-held Mic. So I put a 10uF cap on each of the audio outputs from the FOB to decouple the DC.
To attenuate the Mic input, a simple divider circuit with an 18K resistor and 1K to ground. That appears to work ok.
For PTT...you have to buffer that output. A simple NPN transistor with the emitter to ground is sufficient. A 4.7K resistor on the base is a good choice.
Here is a diagram with my scribbled notes that you might find useful:
The picture was borrowed from Gary Dion's site (Call sign: N4TXI)
http://www.garydion.com/projects/usb_fob/
Repeater Builder site has some good documents worth referencing too if you are interested in building one yourself.
http://www.repeater-builder.com/projects/fob/startech-fob.html
Overall, I'm pleased with how well this is working for such a small monetary expense. It works well and with a Linux distribution, it provides a lot of expandable options. Additionally, I have all the GPIO pins available on the Rasberry Pi that I can use to interface with external sensors, controls, etc.