
Dogrudan sdr A
kocer/direct-sampling-sdr
Direct-sampling SDR transceiver with four phase-coherent channels, and a class-A power amplifier for 1.8 to 54 MHz.

Direct-sampling SDR transceiver with four phase-coherent channels, and a class-A power amplifier for 1.8 to 54 MHz.
Dogrudan sdr C is an open-source printed circuit board by kocer, from the kocer/direct-sampling-sdr repository on GitHub. It is a 2-layer board of 350 × 235 mm with 406 parts on 402 nets, routed with 4 tracks and 0 vias.
It is built around the PE4312C-Z, DRV8833PWPR and TPS62130RGT, with the 74HC595D, G6KU-2F-Y-3V and 1N4148WS among its other parts. Its parts include 140 capacitors, 80 resistors, 73 inductors, 28 ICs and 28 switches. It belongs with the radio and wireless and audio and music boards of this library.
A direct-sampling software-defined radio transceiver and its power amplifier for the amateur bands from 1.8 MHz to 54 MHz.
The receiver samples the antenna signal directly. It does not use a mixer and it does not use an intermediate frequency. Four receive channels operate at the same time. The four channels use one clock. Thus the channels keep a constant phase relation.
The transmitter uses the same four channels in the opposite direction. The power amplifier increases the transmit power to a maximum of 100 W.
| Item | Value |
|---|---|
| Frequency range | 1.8 MHz to 54 MHz |
| Receive channels | 4, phase coherent |
| Transmit channels | 4 |
| ADC | AD9251BCPZ-80, 14 bit, dual, 80 MSPS |
| DAC | AD9767, 14 bit, dual, operated at 80 MSPS |
| FPGA | Lattice ECP5 LFE5U-25F, BG256 |
| Filter bands | 7 for each channel |
| Amplifier power | 5, 10, 25, 50, 75 and 100 W |
| Amplifier class | A, at all power levels |
| Host interface | 2 x gigabit ethernet |
| Sample clock | 80.000 MHz VCXO, ABLNO-V |
| Clock jitter | 81 fs narrow band, 162 fs wide band |
| Reference | 10 MHz external, or GPS |
| Board | Function | Size | Layers |
|---|---|---|---|
| A | Main board: ADC, DAC, FPGA, ethernet | 235 x 225 mm | 6 |
| C | RF board: filters, transmit/receive relays | 350 x 235 mm | 2 |
| D | Power amplifier: driver, finals, low-pass filters | 275 x 185 mm | 2 |
Board B does not exist. The first design had a separate clock board. The clock circuit is now on board A, because the distance from the clock to the ADC controls the phase accuracy.
The receive path:
The transmit path:
A superheterodyne receiver mixes the input signal to a lower frequency. The mixer makes unwanted products. The local oscillator adds noise. Each conversion stage adds distortion.
A direct-sampling receiver has none of these stages. The ADC samples the antenna signal. The remaining signal path is digital, thus it is exact and it does not change with the temperature.
The clock sets the limit at high frequency. The jitter of the clock gives this maximum signal-to-noise ratio:
SNR = -20 x log10(2 x pi x f x t_jitter)The VCXO contributes 60 fs and the fan-out buffer adds 54 fs in a narrow band or 150 fs in a wide band. Together they give 81 fs and 162 fs.
| Input frequency | Jitter | SNR limit | What limits the result |
|---|---|---|---|
| 30 MHz | 81 fs | 96 dB | The noise of the ADC |
| 500 MHz | 81 fs | 72 dB | At the limit |
| 500 MHz | 162 fs | 66 dB | The jitter of the clock |
In the amateur bands the noise of the ADC is the limit and the clock is not. The clock becomes the limit only when the receiver undersamples near 500 MHz. A better clock part costs ten times more, and 66 dB is still 11 effective bits.
Four channels that share one clock keep a constant phase relation. This makes these functions possible:
A receiver with one channel cannot do these functions.
| Content | License |
|---|---|
| Hardware design | CERN-OHL-S-2.0 |
| Software and scripts | GPL-3.0 |
| Documentation | CC-BY-SA-4.0 |
| Directory | Content |
|---|---|
hardware/kicad/A_main | Board A: schematic, PCB, generator scripts |
hardware/kicad/C_rf | Board C |
hardware/kicad/D_pa | Board D |
hardware/kicad/lib | Symbols and footprints |
gateware/rtl | Verilog source for the ECP5 |
gateware/sim | Test benches |
gateware/sentez | Synthesis and place-and-route scripts |
docs | Design documentation |
The schematics are not drawn by hand. Python scripts make them. Each
script writes one sheet. To change a sheet, change the script and run
it again. The document docs/TOOLS.md gives the procedure.
The three schematics are complete. The electrical rule check finds no errors on the three boards. The placement is complete. The routing is in progress. No board is ready for manufacture.
The gateware operates in simulation. 21 test benches pass. The design fits in the ECP5-25F and it meets the timing of all five clocks. The receive chain, the transmit chain, the packet interface and the control interface are complete. The SDRAM interface and the digital predistortion do not exist.
Verification tools examine the boards and the schematics. They find faults that the electrical rule check cannot find. An example: a symbol pin number that does not agree with a footprint pad number makes a net that goes nowhere, but the rule check sees a correct wire. The commit messages give the details of each fault.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 41 | 0R | R_0603_1608Metric | R107, R108, R116, R117, R125, R126, R134, R135, R607, R608, R612, R613, R617, R618, R622, R623 +25 |
| 29 | 10k | R_0603_1608Metric | R400, R401, R402, R403, R404, R405, R406, R409, R410, R411, R412, R413, R414, R415, R418, R419 +13 |
| 28 | G6KU-2F-Y | Relay_DPDT_Omron_G6K-2F-Y | K11, K12, K13, K14, K15, K16, K17, K21, K22, K23, K24, K25, K26, K27, K31, K32 +12 |
| 25 | 100nF | C_0603_1608Metric | C600, C601, C602, C603, C604, C605, C606, C611, C616, C621, C626, C631, C636, C641, C646, C651 +9 |
| 16 | 10nF | C_0603_1608Metric | C609, C614, C619, C624, C629, C634, C639, C644, C649, C654, C659, C664, C669, C674, C679, C684 |
| 16 | 1uH | L_1210_3225Metric | L1000, L1002, L1006, L1008, L1036, L1038, L1042, L1044, L1072, L1074, L1078, L1080, L1108, L1110, L1114, L1116 |
| 16 | 2.2uF | C_0603_1608Metric | C610, C615, C620, C625, C630, C635, C640, C645, C650, C655, C660, C665, C670, C675, C680, C685 |
| 16 | 270pF | C_0603_1608Metric | C1025, C1027, C1031, C1033, C1061, C1063, C1067, C1069, C1097, C1099, C1103, C1105, C1133, C1135, C1139, C1141 |
| 16 | DRV8833PWPR | HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.46x2.31mm_ThermalVias | U70, U71, U72, U73, U74, U75, U76, U77, U78, U79, U80, U81, U82, U83, U84, U85 |
| 12 | 1N4148WS | D_SOD-323 | D102, D105, D106, D111, D114, D115, D120, D123, D124, D129, D132, D133 |
| 8 | 100nF | C_0402_1005Metric | C407, C408, C416, C417, C425, C426, C434, C435 |
| 8 | 1200pF | C_0603_1608Metric | C1007, C1009, C1043, C1045, C1079, C1081, C1115, C1117 |
| 8 | 150nH | L_0603_1608Metric | L1024, L1026, L1060, L1062, L1096, L1098, L1132, L1134 |
| 8 | 220nH | L_0603_1608Metric | L1018, L1020, L1054, L1056, L1090, L1092, L1126, L1128 |
| 8 | 33nH | L_0603_1608Metric | L1030, L1032, L1066, L1068, L1102, L1104, L1138, L1140 |
| 8 | 390pF | C_0603_1608Metric | C1005, C1011, C1041, C1047, C1077, C1083, C1113, C1119 |
| 8 | 470nH | L_0805_2012Metric | L1012, L1014, L1048, L1050, L1084, L1086, L1120, L1122 |
| 8 | 470pF | C_0603_1608Metric | C1019, C1021, C1055, C1057, C1091, C1093, C1127, C1129 |
| 8 | 6800pF | C_0603_1608Metric | C1001, C1003, C1037, C1039, C1073, C1075, C1109, C1111 |
| 8 | 680pF | C_0603_1608Metric | C1013, C1015, C1049, C1051, C1085, C1087, C1121, C1123 |
| 7 | 74HC595D | SOIC-16_3.9x9.9mm_P1.27mm | U60, U61, U62, U63, U64, U65, U66 |
| 4 | 1.5uH | L_1210_3225Metric | L1022, L1058, L1094, L1130 |
| 4 | 100k | R_0603_1608Metric | R104, R113, R122, R131 |
| 4 | 12pF | C_0603_1608Metric | C1035, C1071, C1107, C1143 |
| 4 | 180pF | C_0603_1608Metric | C1017, C1053, C1089, C1125 |
| 4 | 18uH | L_1210_3225Metric | L1004, L1040, L1076, L1112 |
| 4 | 1k | R_0603_1608Metric | R103, R112, R121, R130 |
| 4 | 2.2uH | L_1210_3225Metric | L1016, L1052, L1088, L1124 |
| 4 | 2N7002 | SOT-23 | QT1, QT2, QT3, QT4 |
| 4 | 3.3uH | L_1210_3225Metric | L1010, L1046, L1082, L1118 |
| 4 | 56pF | C_0603_1608Metric | C1029, C1065, C1101, C1137 |
| 4 | 680nH | L_1210_3225Metric | L1028, L1064, L1100, L1136 |
| 4 | 68pF | C_0603_1608Metric | C1023, C1059, C1095, C1131 |
| 4 | 820nH | L_1210_3225Metric | L1034, L1070, L1106, L1142 |
| 4 | G6K-2F-Y | Relay_DPDT_Omron_G6K-2F-Y | KT1, KT2, KT3, KT4 |
| 4 | GDT 90V | GDT_Disc_D12mm_W3.9mm_P7.5mm | E100, E109, E118, E127 |
| 4 | PE4312C-Z | TQFN-20-1EP_4x4mm_P0.5mm_EP2.1x2.1mm | U40, U41, U42, U43 |
| 4 | SMBJ20A | D_SMB | D101, D110, D119, D128 |
| 3 | MountingHole_3.2mm_M3 | MountingHole_3.2mm_M3 | H2, H3, H4 |
| 3 | FID | Fiducial_1mm_Mask2mm | FID1, FID2, FID3 |
| 2 | 22uF | C_0603_1608Metric | C80, C81 |
| 1 | 105k | R_0603_1608Metric | R80 |
| 1 | 10uF | C_1206_3216Metric | C83 |
| 1 | 2.2uH | L_Taiyo-Yuden_NR-30xx | L80 |
| 1 | 20k | R_0603_1608Metric | R81 |
| 1 | A kartina | PinHeader_2x10_P2.54mm_Vertical | J80 |
| 1 | A kartina #2 | PinHeader_1x06_P2.54mm_Vertical | J81 |
| 1 | D kartina | PinHeader_1x06_P2.54mm_Vertical | J90 |
| 1 | MountingHole_3.2mm_M3_Pad | MountingHole_3.2mm_M3_Pad | H1 |
| 1 | RX1 -> A | SMA_Amphenol_132289_EdgeMount | J82 |
| 1 | RX2 -> A | SMA_Amphenol_132289_EdgeMount | J83 |
| 1 | RX3 -> A | SMA_Amphenol_132289_EdgeMount | J84 |
| 1 | RX4 -> A | SMA_Amphenol_132289_EdgeMount | J85 |
| 1 | SMA anten 1 | SMA_Amphenol_132289_EdgeMount | J1 |
| 1 | SMA anten 2 | SMA_Amphenol_132289_EdgeMount | J2 |
| 1 | SMA anten 3 | SMA_Amphenol_132289_EdgeMount | J3 |
| 1 | SMA anten 4 | SMA_Amphenol_132289_EdgeMount | J4 |
| 1 | TPS62130 | VQFN-16-1EP_3x3mm_P0.5mm_EP1.68x1.68mm | U90 |
| 1 | TX1 <- A | SMA_Amphenol_132289_EdgeMount | J86 |
| 1 | TX2 <- A | SMA_Amphenol_132289_EdgeMount | J87 |
| 1 | TX3 <- A | SMA_Amphenol_132289_EdgeMount | J88 |
| 1 | TX4 <- A | SMA_Amphenol_132289_EdgeMount | J89 |
| 1 | +3V3 | TestPoint_Pad_D1.5mm | TP2 |
| 1 | +5V | TestPoint_Pad_D1.5mm | TP1 |
| 1 | RX1_OUT | TestPoint_Pad_D1.5mm | TP4 |
| 1 | RX2_OUT | TestPoint_Pad_D1.5mm | TP5 |
| 1 | RX3_OUT | TestPoint_Pad_D1.5mm | TP6 |
| 1 | RX4_OUT | TestPoint_Pad_D1.5mm | TP7 |
| 1 | VIN_PROT | TestPoint_Pad_D1.5mm | TP3 |

kocer/direct-sampling-sdr
Direct-sampling SDR transceiver with four phase-coherent channels, and a class-A power amplifier for 1.8 to 54 MHz.

kocer/direct-sampling-sdr
Direct-sampling SDR transceiver with four phase-coherent channels, and a class-A power amplifier for 1.8 to 54 MHz.




DRWJSCHMIDT/T41
This is the repository for the officially released V10, V11, and V12 versions of the T41 Software Defined Transceiver hardware and kits.

LadyRoninEngineer/Si473x
Data Supporting development of Si473x series radios


K0RGI/T41-K9HZ
This is the repository for the officially released V10, V11, and V12 versions of the T41 Software Defined Transceiver hardware and kits.

It measures 350 × 235 mm and has 2 copper layers, 1.6 mm thick.
406 parts, built around the PE4312C-Z, DRV8833PWPR, TPS62130RGT and 74HC595D. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the kocer/direct-sampling-sdr repository on GitHub, at the commit this page was made from: the board is hardware/kicad/C_rf/dogrudan_sdr_C.kicad_pcb and its schematic hardware/kicad/A_main/01_power.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask kocer before reusing the design.