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.
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 | ||||||
|---|---|---|---|---|---|---|
| ID | Reference | Name | Source | Cost | Qty | Cost Tot. |
| #1 | A1 | Arduino Nano V4 | Reichelt | 8.15 € | 1 | 8.15 € |
| #2 | C1, C2, C3, C4, C5, C6, C7, C8 | 100nF 0603 SMT | Reichelt | 0.02 € | 8 | 0.16 € |
| #3 | D1, D2, D3 | 1N4148 SOD-123 | Reichelt | 0.03 € | 3 | 0.09 € |
| #4 | D4, D5 | R/G LED Wuerth 150141RV731 | Reichelt | 0.29 € | 2 | 0.58 € |
| #5 | D6, D7 | LED 0402 (optional) | - | 0.20 € | 2 | 0.40 € |
| #6 | J1, J2, J3, J4, J5, J6, J8, J9, J12, J13 | Jack 3.5mm Kycon STX-3000 | Digikey | 0.67 € | 10 | 6.70 € |
| #7 | J7, J10, J11, J14, J15 | 2.54mm pin headers | Reichelt | 0.25 € | 1 | 0.25 € |
| #8 | K1, K2, K3 | Relay Omron G6K-2F-Y | Reichelt | 1.20 € | 3 | 3.60 € |
| #9 | Q1, Q2, Q3, Q4 | BSS138 FET | Reichelt | 0.05 € | 4 | 0.20 € |
| #10 | R1, R2, R3, R4 | Resistor 0603 5K6 | Reichelt | 0.02 € | 4 | 0.08 € |
| #11 | R5, R6, R7, R8, R11, R12 | Resistor 0603 10R | Reichelt | 0.02 € | 6 | 0.12 € |
| #12 | R9, R10 | Resistor 0402 5K6 (optional) | - | 0.10 € | 2 | 0.20 € |
| #13 | RV1 | Potentiometer 10k RK09K1110A0J | Digikey | 1.35 € | 1 | 1.35 € |
| #14 | TR1, TR2, TR3, TR4 | Transformer Bourns SM-LP-5001 | Digikey | 1.94 € | 4 | 7.76 € |
| #15 | Housing | E20-35-03_100x100x40 | KN Electronic | 7.95 € | 1 | 7.95 € |
| #16 | Screws + Nuts | M3 x 10mm | Rei chelt | 0.10 € | 3 | 0.30 € |
| #17 | Spacers | M3 x 2mm | Reichelt | 0.21 € | 3 | 0.63 € |
| #18 | J0 | 2.54mm female header 1x16 (BKL 10120953) | Reichelt | 0.50 € | 2 | 1.00 € |
| #19 | - | LED light guide MEN 12711004 | Reichelt | 0.99 € | 1 | 0.99 € |
| Sum | ~41 € | |||||
The BOM contains links to DigiKey and Reichelt for convenience. The cost of the PCB is not included.
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.
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.
k3ng_keyer\k3ng_keyer.inokeyer_features_and_options_yccc_so2r_mini.h
uncomment the line #define FEATURE_POTENTIOMETERkeyer_pin_settings_yccc_so2r_mini.h change the
port pin for the potentiometer from A7 to A0: #define
potentiometer A0Once 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.
Hover over the pictures to enlarge.
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.