SO2R MiniPlus - A simple and low cost SO2R controller



Introduction

This page describes my clone of the SO2R controller SO2R Mini developed by Marty, NN1C. It used to be available as a kit for a very attractive price ($50 + S/H) but does not appear to be sold any more (as of early 2025).

I called my clone SO2R MiniPlus because it has some minor improvements over the original. The differences to Marty's design are described below:

As a consequence of using low cost connectors instead of the "stacked" 3.5mm TRS of the original, and my desire to put everything into a small 10cm x 10cm housing, I had to use stereo TRS connectors sharing the CW and PTT outputs. When the device is used for CW only, it is possible to repurpose the microphone outputs as PTT, too.

Circuit, PCB and BOM

The circuit diagram of the SO2R MiniPlus is available in PDF format. It closely follows the original, with the added LEDs and potentiometer, and some additional test points and jumpers.

A simple two sided PCB was designed to fit into a small 10cm × 10cm aluminium housing by "KN-Electronic" (DL2AZK).

The full KiCad project can be found at https://git.fkurz.net/dj1yfk/so2rminiplus/.

SO2R MiniPlus BOM
IDReferenceNameSourceCostQtyCost Tot.
#1A1Arduino Nano V4Reichelt8.15 €18.15 €
#2C1, C2, C3, C4, C5, C6, C7, C8100nF 0603 SMTReichelt0.02 €80.16 €
#3D1, D2, D31N4148 SOD-123Reichelt0.03 €30.09 €
#4D4, D5R/G LED Wuerth 150141RV731Reichelt0.29 €20.58 €
#5D6, D7LED 0402 (optional)-0.20 €20.40 €
#6J1, J2, J3, J4, J5, J6, J8, J9, J12, J13Jack 3.5mm Kycon STX-3000Digikey0.67 €106.70 €
#7J7, J10, J11, J14, J152.54mm pin headersReichelt0.25 €10.25 €
#8K1, K2, K3Relay Omron G6K-2F-YReichelt1.20 €33.60 €
#9Q1, Q2, Q3, Q4BSS138 FETReichelt0.05 €40.20 €
#10R1, R2, R3, R4Resistor 0603 5K6Reichelt0.02 €40.08 €
#11R5, R6, R7, R8, R11, R12Resistor 0603 10RReichelt0.02 €60.12 €
#12R9, R10Resistor 0402 5K6 (optional)-0.10 €20.20 €
#13RV1Potentiometer 10k RK09K1110A0JDigikey1.35 €11.35 €
#14TR1, TR2, TR3, TR4Transformer Bourns SM-LP-5001Digikey1.94 €47.76 €
#15HousingE20-35-03_100x100x40KN Electronic7.95 €17.95 €
#16Screws + NutsM3 x 10mmRei chelt0.10 €30.30 €
#17SpacersM3 x 2mmReichelt0.21 €30.63 €
#18J02.54mm female header 1x16 (BKL 10120953)Reichelt0.50 €21.00 €
#19-LED light guide MEN 12711004Reichelt0.99 €10.99 €
Sum~41 €

The BOM contains links to DigiKey and Reichelt for convenience. The cost of the PCB is not included.


Construction notes

Populating the PCB is straight forward - refer to the assembly diagram and/or the images below for the correct placement and orientation of the parts.

Start with the capacitors and resistors, then place the diodes and transistors, the LEDs, followed by the relays and transformers. Then mount the through-hole components (jacks, potentiometer and female headers for the Arduino).

The following components are not populated by default: J7 (audio ground), J10 (extension header), J11 (serial port), J14/J15 (route PTT to mic out), D6/D7+R9/R10 (LEDs for CW debugging).

The front of the housing requires seven holes: One for the potentiometer (7mm), two for the LEDs (3mm) and four for the 3.5mm jack connectors (7mm). This drilling template may be helpful and it is highly recommended to use a drill press. The rear plate of the housing can be left away/open.

The PCB is mounted to the housing with three M3 screws and spacers to elevate it about 2mm from the mounting rails of the case. Add e.g. an adhesive bump on the bottom side of the main PCB under the Arduino to ensure it does not touch the housing.

Programming

I used Arduino Nano V4 compatible clones from Joy-IT for this project. The following steps will give you a fully working device with enabled Speed potentiometer.

  1. Install the Arduino IDE
  2. Download and unzip the preconfigured Arduino Sketch by NN1C
  3. Launch the Arduino IDE and open k3ng_keyer\k3ng_keyer.ino
  4. In the file keyer_features_and_options_yccc_so2r_mini.h uncomment the line #define FEATURE_POTENTIOMETER
  5. In the file keyer_pin_settings_yccc_so2r_mini.h change the port pin for the potentiometer from A7 to A0: #define potentiometer A0
  6. Arduino IDE settings:
  7. Connect the Arduino to your system, select the device in the Arduino IDE
  8. Press Ctrl-U (compiles and uploads)

Once that's done, configure DXlog to use the SO2R Mini and enable the speed potentiometer in the Winkey configuration.

The status line of DXlog should now say "SO2R compatible device detected: SO2R Mini 2019.12.17.01" and the device is ready to use.

All steps above can be performed with the pure Arduino Nano, without it being installed in the device.

Pictures

Hover over the pictures to enlarge.

The assembled SO2R Mini Box

Errata

2025-12-18: The LED part number was errorneously given as 150141M1731 but the correct number is 150141RV731. The KiCad project, schematics and website was updated accordingly.

2025-12-28: Pins 4 and 7 on Relay K3 were swapped in the schematics, leading to microphone switching not working. This was fixed in the KiCad project and schematics. If you have an existing PCB, you can fix it by adding two wire bridges, as shown in this picture of the SO2R MiniPlus PCB.

  1. Carefully cut the PCB traces at the two places indicated with a red X.
  2. Solder a wire from the Relay pin 7 to the rectangular pad of J14 (yellow wire)
  3. Solder a wire from Relay pin 4 to the "Shield" pad of connector J3 on the backside of the PCB.
Thanks to Peter, LA7WRA / LZ1VPC for finding this!

Miscellaneous



Last modified: Saturday, 03-Jan-2026 14:43:10 CET