Arduino-based soundcard interface for packet radio transmissions
git clone git://
Log | Files | Refs | README

commit ce33a8819ffe379b9fed12656e8f01870f894aa8
parent 16e0316e87b2b9227c4c55d96ac43674bc0dcaa4
Author: Josh <>
Date:   Fri, 19 Jul 2019 11:01:47 -0400

Diffstat: | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+), 0 deletions(-)

diff --git a/ b/ @@ -0,0 +1,55 @@ +# packet_interface + +This Arduino sketch was written to create an interface between my computer and +radio for packet radio transmissions. Feel free to get in touch with any +questions you may have. + +The interface functions primarily as a switch and a voltage amplifier. Direwolf +already generates AX.25 packets in audio form, so this interface serves as a +converter from the 3.5mm aux output from the computer to the RJ12/6 input of my +Yaesu FT-2980R radio. + +If you want to build something similar to this for your radio, here are some +tips: + +* Connect pin 2 to the PTT line in your radio input cable. For some reason, + my radio's PTT engages when pin 2 is set to LOW, and disengages when pin 2 + is set to HIGH. If this is not the case for your radio, invert the values of + the digital writes to pin 2 in the sketch. + +* Run the left channel (usually the white wire) from the stripped end of a + 3.5mm aux cable into the TX line of your radio. The other end of the cable + should be plugged into your soundcard's LINE OUT. + +* Also run the signal from the left channel into a voltage amplifier, and from + the voltage amplifier into the A0 input pin of the Arduino. + +* I built a voltage amplifier by running the +5V pin of the Arduino into a + simple resistor voltage divider. You can easily find schematics for this + online. The idea is that you want the signal into the A0 pin to be centered + around ~2.5V, instead of around 0V (which is how it comes from the computer's + audio output jack). The Arduino's analog input pins cannot detect negative + voltage, so it is necessary to offset the audio signal from the computer in + this way. + +* Make sure to consult the schematics in your radio's manual to determine which + wires in the radio input cable correspond to PTT, TX, and GND. + +That is a general summary of how this can be built. It may take some tweaking +and experimentation to get it to work correctly. Basically, the sketch turns +PTT on when it detects signals in the aux cable that deviate from strongly from +the baseline voltage. This works fairly well for my setup, but your results may +vary. + +If you find that your radio is transmitting when it shouldn't be, you can tweak +VOLTAGE_LOW_BOUND and VOLTAGE_HIGH_BOUND at the top of the sketch until you've +found the appropriate range for your particular setup. It may be useful to use +the Serial Monitor to observe the values of A0 when no signal is being +transmitted, as well as during signal transmission, to determine the correct +range. + +Note that this interface only handles data transmissions; my Yaesu FT-2980R has +a 3.5mm audio output jack, so I'm able to just run a 3.5mm cable from the radio +to my soundcard's LINE IN in order to receive data packets. + +I hope these ideas are of some help to your own projects.