This is a board I designed to interface my Yaesu FT-817 transceiver with my computer. This first board only interfaces the microphone jack. It has broken out I2C and UART pins to connect to other boards that will interface the ACC and DATA jacks to control the frequency. The board is simply a PIC controller with a 16 bit Delta-Sigma DAC that drives the microphone input with about 0.8 V peak to peak. The DAC output is decoupled from the microphone pin on the transceiver with a 4.7 uF capacitor so I don't have to worry about a DC offset from the microphone biasing. When transmitting with this board, you have to set the microphone gain in the transceiver to 1 or the ALC amplifier will add noise to your signal; the 0.8 volts is already more than enough signal to drive the input.
This first picture shows the device in action transmitting a RAW audio file with a python script over the COM port. The antenna I'm using is a homebuilt dipole with a current balun; the SW meter says it's a perfect match and the signal comes out good, but I'm not confident about the SW meter's accuracy and have yet to build an antenna analyzer.
Here is a close up of the board. The big SO-28 package is a dsPIC33FJ128GP802. There is also a 3.3v LDO regulator and an FT232RL USB-Serial converter chip. Due to the PICs UART clock generating circuitry, I had to set the COM speed to 500250. The FTDI also has a small problem: its default latency is 16 ms and I decided to use a 1000 Byte double buffer that requests the next 1000 Bytes every time the read buffers are swapped, so the 16 ms delay can be enough that the next buffer isn't filled by the time the DAC is ready to switch buffers. Because of this, you may have to go in and configure the drivers for the chip to 1 ms latency. Ubuntu didn't have'any problems off the bat but Windows did. I'm not 100% sure it's the FTDI; it also might be the Windows Python implementation of the serial port.
The current DAC speed is set to run at 8000 SPS. This is good enough for any radio transmissions; voice is clearly audible and 1200 AFSK packet data transmits well. With the DAC running at the speed it is, it could probably be increased to 16000 SPS, but you might run into problems with the buffer latency again. I made a few small mistakes on this first prototype. I forgot the 1K resistors from the microcontroller to the transistors on the PPT, UP, DOWN, and FAST buttons on the mic connector (I cut the traces with an exacto knife and dropped them in). Also, I initially designed it to draw its power from the radio, but I was having problems with the power supply being unstable (probably due to the fact that I used a 10 year-old Ethernet jack I pulled off of a combined video, networking, and audio PCI card that had corrosion on the pins, (Actually it turns out that the 5V output of the microphone jack on the radio is severely current limited)). So, I ended up using a small wire to jump the power from the USB to the 3.3v regulator and cut the 5v trace from the radio. It worked. The files available here have been corrected to those specifications.
If you would just like to order the board it's on OSH Park:
I personally love the way Batch PCB's boards come out. They are very clean, have the silk screen, tinned pads, and you can do traces down to 4 mils if you need to on the 4 layer boards. Unfortunately I'm really impatient and can't always wait 2 weeks for a PCB from China. This particular project was conceived when I discovered that I had mistakenly ordered the wrong microphone for my radio. I got it in the mail and was super excited, but then I found it didn't work which of course was my fault. So I designed, built, and programmed this from the hours of 7 PM to 5 AM because I really really really wanted to try transmitting with my new radio. As far as any construction tips go, I must say a hot air rework tool is indispensable; you can (and I have in the past) use a wavetip for soldering the sop-28 FTDI packages and the Mini-USB connectors, but I often have trouble because I end up putting on a tiny bit too much solder and end up with 3 fused pins, which I spend 30 minutes carefully trying to pull off the end of the chip with the wave tip. I find it's much easier to just flux and tin the pans, carefully position the IC with a toothpick, slowly lower the hot air iron down to the point where it's about 2 mm above the chip, hold it for about 20 seconds or until I see the solder melt and the chip move slightly to center, and then back off slowly with the iron. It takes me about 2 minutes and has never failed me. The bigger SO-28 I just did pin-by-bin with a small flat tip. I also did the mini usb with the hot air tip. For drilling the holes, I use a pin vice with some small bits.
As for the actual construction of the board itself, I use the magazine paper toaster method. I have it down to a fine art. What I find works best and has worked perfectly for every board I've done is the following. Start with a piece of magazine paper. Print the design on the paper. Cut it out, leaving a small flap to wrap around the edge of the copper clad board. Cut the copper clad board just above the size of the circuit. Also note that I always fill about 3-4 mm of black around my board design because usually it's the edges that fall apart when you peel the magazine paper. Then I sand the copper board on 220 grit sand paper, using a rotating scrubbing motion 50 times in each direction. I place the magazine paper around the copper board, fold the extra flap around the edge, and feed it through a laminator 10 times until it's hot and the paper is sticking to it. Then I sandwich it between 2 pieces of floor tile and bake it at 300 degrees in the toaster oven for 30 minutes. After I take it out of the toaster oven, I grab it with some paper towels and press the fiberglass side of the board against the side of my freezer until it cools down. Then I fill up the sink and submerge the board. Peel the magazine paper; most of it sticks to the board, so you have to scrub the excess off with your thumb until all the excess paper is gone and you have a nice strong trace. At this point, I take it outside and put it in a shallow container, pour a small amount of ferric chloride into the container, and use a foam brush to paint the board with the ferric chloride over and over. It usually only takes about 2 minutes to etch completely. Finally, I wash off the ferric chloride in the sink and use acetone and some paper towels to remove the toner. And presto you have a beautiful board. I have used this method to etch 10 mil traces with spacing as small as 4 mils and it has worked every time. Sometimes you can get fused traces if they are really close together. In that case, I inspect the board with an eye loop and carefully run an exacto knife between the fused traces.