Open Source Hamradio Transceiver for Arduino

The ArduTrx Shield with an Arduino and a display board mounted in a self made wooden case. Completed with a 2S lipo battery, an antenna and a Kenwood-compatible hand mic ready for its first QSO.


The ArdTrx project consists of two parts: the ArduTrx shield and the software. Both parts can be used independant from each other.

The ArduTrx shield is an Arduino shield with a HF module and surrounding circuitry. The shield plugs directly into the pin header of the Arduino Uno or compatible board and forms a stack with it. Other shields can be plugged on top or in between.

The ArduTrx software utilizes this shield but could also be used with a compatible HF module on a breadboard. To get a useful HMI it is suggested to plug a SainSmart 1602 LCD Keypad Shield ( on top.

ArduTrx shield (the hardware)


The hardware is built around the popular HF modules from Dorji or NiceRF and utilizes all necessary circuitry to get the module running and audio in and out of it.

Description of circuit

HF module (U1)

A HF module from Dorji or NiceRF is used on the shield. 2 meter (144 MHz) or 70 centimeter (440 MHz) modules can be soldered.

HF filter (L1..L3 and C1..C4)

Unfortunatelly these HF modules produce spurious emissions. Therefore a HF filter is implemented on the shield. It is a chebyshev low pass filter and has a cutoff frequency of 185 MHz.

voltage regulator LT1085 (U2)

The HF modules allow a maximum voltage of 4.5 V (Dorji) or 5.5 V (NiceRF). Arduinos usually don't provide these voltages. But you only get the maximum HF power if you go to the voltage limits. Therefore ArduTrx uses a adjustable power regulator LT1085. The desired voltage can be set with the resistors R15 and R17. Additionally the modules draw up to 750 mA while transmit. This is too much for the voltage regulators on the Arduinos. The LT1085 on the ArduTrx shield can provide up to 3 A.

audio driver LM4871 (U3)

To make the audio output of the HF module hearable you need a speaker and an audio driver. ArduTrx shield uses a LM4871 which is optimal for battery powered circuits with low voltage and can drive high power with its differential output. The speaker can be connected to CN6. It is also possible the drive single ended loads like head phones on CN4.

level shifter SN74LVC1T45 (U4, U5)

ArduTrx can be used with 3.3V and 5V arduinos and these level shifters guarantee the right voltage level on the transmission lines.

rotary encoder (SW1)

The rotary encoder is only connected to the pins of the arduino and has no connection to the HF module. It can be used in Arduino programs to set the frequency of the HF module.

programming switch (S1)

The HF module needs a serial input from the arduino to change its configuration. Unfortunatelly this serial port of the Arduino is also used during programming of the Arduino and generates programming errors if it is also connected to HF module. So ArduTrx has a switch to open the serial connection to the HF module and allow programming (switch in off position). The switch has to be turned on if settings to the HF module have to be made.

external power connector (CN7)

This connector has the same function as the coaxial power connector on the Arduino board. It only uses an industrial connector and allows a safer connection. The input voltage can be measured with R35 and R36.

antenna connector (CN1)

The antenna connector is a SMA connector like it is used on many Hand-helds.

hand mic connector (CN3 and CN4)

CN3 and CN4 form a hand mic connector which is compatible to Kenwood or Baofeng.

Arduino pin usage

Arduino pindirection on Arduinousage
0/RXinputserial communication with HF module
Attention: also used for programming the Arduino
1/TXoutputserial communication with HF module
Attention: also used for programming the Arduino
2inputsquelch. low=RX active; high=no RX
3outputanalog / pwm audio output; for example for 1750 Hz tone.
4-not used
5-not used
6-not used
7-not used
8-not used
9-not used
10-not used
11outputPTT: low=no TX (RX); high=PTT active
12outputPower down: low=sleep mode; high= normal mode
13outputOutput power: low=1W; high=0.5W
A0-not used
A1inputmeasurement input for VIN or serial input of GPS
A2inputaudio input to Arduino
A3inputrotary encoder signal A
A4inputrotary encoder signal B
A5inputrotary encoder switch
AREF-not used
SCL-not used
SDA-not used
RESET-not used
IOREF-reference voltage for level shifters (U4 and U5)
VIN-input voltage for voltage regulator (U2)
3.3V-not used
5V-supply voltage for CN5 (GPS connector)


There exists two versions of the hardware which are both software compatible: The hardware is released under CERN OHL v1.2


HF module

Compatibility with the following HF modules has been tested. There may be more compatible modules but these have not been tested yet and so they are not on this list.


Compatibility with the following Arduino boards has been tested. There may be more compatible boards but these have not been tested yet and so they are not on this list.

Bill of material for ArduTrxShield 1.1

DesignatorPackageQuantityValue / Manufacturer and PartnumberReichelt order numberother order number
C1,C4C_0603230pKEM C0G0603 30P
C13C_060311uKEM X5R0603 1,0U
C15c_elec_8x10.51470uHA-V 470U 16
C2,C3C_0603247pKEM C0G0603 47P
C5,C7,C8,C10,C11,C12,C14,C16,C17,C18,C19,C20C_060312100nKEM Y5V0603 100N
C6,C9C_0805210uKEM X5R0805 10U
CN1WR-SMA-PCB160312202114509RND 205-00509
CN2ARDUINO1ARDUINOConrad 1516613-62
CN31503_071Lumberg 1503-07LUM 1503-07
CN41501_031Lumberg 1501-03LUM 1501-03
CN5Pin_Header_Straight_1x031CONN_01X03MPE 087-1-003
CN6Pin_Header_Straight_1x021CONN_01X02MPE 087-1-002
CN7WR-TBL_6913223100021691322310002AKL 382-02
D1LED_06031Led redSMD-LED 0603 RT
D2LED_06031Led yellowSMD-LED 0603 GE
D3LED_06031Led greenSMD-LED 0603 GN
L1,L2,L3WE-CAIR_42483744912156Farnell 2431629
Q1,Q2,Q3SOT-2332N70022N 7002 SMD
R1,R6,R7,R8,R10,R14,R16,R24,R25,R26,R31R_0603111kSMD-0603 1,0K
R12,R13,R21,R27,R2,R33,R34R_060374k7SMD-0603 4,7K
R15R_06031121SMD-0603 120
R17R_06031300RND 0603 1 300
R19,R20,R36R_0603320kRND 0603 1 20K
R23R_060312kRND 0603 1 2K
R3,R9,R11,R18,R22R_06035100SMD-0603 100
R35R_06031100kSMD-0603 100K
S1dip_1-3001SW_DIP_x1RND 210-00162
SW1WE_4312x6xxx7x61TAST_HORTASTER 3305
U1DRA8181DRA818box73 DRA818V
U2TO-263-3Lead1LM1085IS-ADJFarnell 1469038
U3SOIC-8_3.9x4.9mm_Pitch1.27mm1LM4871LM 4871 M
U4,U5SOT-23-62SN74LVC1T45Farnell 1470916

DNI means do not install. Leave this part unpoplated.


ArduTrx software

The software utilizes the ArduTrx shield on any compatible board. Together with an HMI board it creates a complete hamradio transceiver.

You can find the software on github:
The software is released under GPL v2


The fully assembled shield ready to plug into an Arduino board

Close-Up of the display and HMI with keys and rotary encoder

This was the first prototype

If you have any questions contact me via email at, make an issue at github or send me a message at twitter (

Last update: 02. dec. 2018