BXF USB Data Interface

This project has been an idea of mine for a while and it took me a little while to get the oomph to start on it. Start I did, slowly at first then once in the swing of it I finished it in a few days.


The project outline was to replace my current homebrew isolated data interfaces which only had a single serial port for CI-V and PTT plus audio in and out isolation for a new fully USB version which has 2 serial ports and a soundcard. My new requirement was for 2 serial ports per interface so I was able to use one for CI-V commands and PTT and have a second port for PTT only. This allows say WSJT to use one port for PTT while allowing HRD to connect on the other for CI-V information to be passed to my logbook. I also wanted input and output audio level controls by means of some variables on the front panel.

So I started buying the bits for 2 interfaces, most were off-the-shelf USB parts. I grabbed two 4 port USB hubs off eBay for £5 then four USB to TTL modules based upon the Silabs CP2102 chip for £22. I had a few USB soundcards sitting about which were ideal for the job but they are the £3 ones off eBay, so far each of the interfaces had cost £16.50 in [USB] bits.

One of the first hurdles I came over was the fact that the USB to TTL modules didn’t actually have any output pins on the PCB for the DTR are RTS line, the 2 lines normally used for PTT control by software. A quick look at the datasheet and it was found these were on pins 28 and 24 respectfully which were accessible with a soldering iron as you can see… A dob of hot-melt glue fixed and supported the wires in place after soldering to the pins.

View of the RTS (yellow) and DTR (blue) connections to pins 24 and 28.

The 4 USB to TTL modules with the RTS and DTR wires soldered on.

So now that the USB to TTL modules had been modified for PTT output lines it was time to combine the RTS and DTR lines, remember there are 4 of them, RTS and DTR from each of the 2 USB to TTL modules per interface. I started playing with transistor switching but soon found that it was going to get too convoluted with all 4 lines – the RTS and DTR outputs are active low which meant building inverter circuits for each. Plan B was swung into action and involved a PICAXE-14 chip which has 5 input pins and 6 output pins. A very simple bit of code was written which basically looks for a change in any of the input pin states connected to the RTS and DTR lines (J2) and then toggles and output pin for PTT which drives an opto-isolator (Opto 1) and a red LED (D2) if a change is seen, if the RTS and DTR lines (J2) indicate the state is RX then a separate PIC output pin is set high to light a green LED (D1) to indicate RX.   The 5v to drive the PIC is taken of the 5v USB so no external power is needed.  It takes about 38mA when in TX with the Opto and TX LED on.  I’ve added a switch, SW1, which when pressed ignores any PTT lines active, this is handy if the software sets either the RTS or DTR lines high with no user prompt


A future idea is to upgrade the PIC to a PICAXE-14M chip which supports ADC inputs to I can add VOX from the TXD line to PIC which can also be used to trigger TX.

BXF USB Data Interface_v1.0

After testing the PTT unit and the CI-V communication from the USB to TTL module it was time to get them and the USB hub ready for mounting in the box. All connectors were removed from the USB hub and USB to TTL modules so all could be hard wired with a USB type B socket for the input USB cable.  The USB-B socket was mounted on a bit of PCB which would be used for mounting in the box as I was unable to find any reasonable chassis mount versions.

Note the pins and cut in the PCB tracks for the USB-B socket

The box was chosen to be large enough to contain all the USB parts which by this point was becoming interesting to arrange so it all fitted in. Both boxes were made together and had holes drilled for each of the connectors, the potentiometers and LED. I decided to leave some empty uncut space on the front and back of the box for future expansion, a switch to toggle VOX for example. At this point the USB sound card was stripped of all its connectors and was added to the USB hub. This left a spare USB port which I’ve added a USB-A socket to and attached a 256MB flash drive internally so the data interface has the drivers and various data software available internally.

Here you can see the final assembly of one of the units, both differ slightly on layout.  Here the USB port is on the top left and the USB hub beneath. The 2 [red] USB to TTL modules sit to the right of this then sits the PIC PTT module with the soundcard below [blue]. Finally 2 audio isolation transformers, one for input and one for output are hot-melt glued down and everything wired up to a 6 pin mini-DIN connector on the back which follows the normal pin-outs of most modern radios using this port so an off the shelf PS2 cable can be connected between the radio and interface. CI-V is on a stereo 3.5mm socket with tip being TXD and ring RXD, you might recall CI-V is a single bus, well I put both RXD and TXD onto the plug in case I was to use this interface with a Yaesu or similar radio which works on separate RXD and TXD lines. For Icom CI-V or similar I just short the RXD and TXD lines in the 3.5mm plug which goes into the interface (that end is marked up) and all works fine.

IMG_20110604_173730 IMG_20110604_172749 IMG_20110604_172755

%d bloggers like this: