A Better HF SDR Than RTL-SDR?

The idea is simple: build a low-cost, purpose-built HF receiver around a cheap high-speed ADC instead of repurposing an RTL-SDR. An RTL-SDR is an excellent general-purpose radio tool, but it was not designed as a high-dynamic-range HF receiver. A direct-sampling design with proper HF preselection, controlled gain, a stable sampling clock and FPGA-based digital down-conversion should make a more interesting homebrew receiver. The goal is not to claim IC-7300-class performance from a $25 design. The goal is to explore the same broad receiver architecture at a much lower cost and to measure honestly how well it works. ...

July 23, 2026 · 13 min · 2753 words · Dhiru Kholia

VHF APRS Beacon Ideas

This is an early design sketch of VHF (2m - 145 MHz) APRS beacons that are small and can be placed in vehicles like ambulances or fire trucks. Key Points Si5351 module powered by the usual 25 or 26 MHz 0.5 ppm TCXO. Si5351 generates 145 MHz Two-Tone APRS RF output directly! Using an Si5351 for APRS (Automatic Packet Reporting System) transmission via FSK (Frequency Shift Keying) allows us to generate highly accurate AX.25 packets directly at the RF frequency (e.g., 144.390 MHz), eliminating the need for a separate modulator and VCO.Since APRS typically uses AFSK (Audio Frequency Shift Keying) fed into an FM transmitter, generating FSK with an Si5351 means directly shifting the carrier frequency or the VFO instead of modulating an audio tone. ...

July 8, 2026 · 2 min · 226 words · Dhiru Kholia

WSPR Beacon Ideas for UHF

This is an early design sketch of a UHF (70cm - 440 MHz) WSPR beacon. This design comes from Ismo (OH2FTG). Key Points 10 MHz OCXO TCXO powering the Si5351 module instead of the usual 25 or 26 MHz 0.5 ppm TCXO. Si5351 generates 217 MHz output, which we double to ~434Mhz using the https://techlib.com/files/diodedbl.pdf technique. Use 440 MHz SAW filter at the output (from LCSC) ONSEMI MMBD701LT1G RF Schottky diodes - locally available ...

July 3, 2026 · 1 min · 141 words · Dhiru Kholia

1€ TRX - One Euro TRX

I learned about the Sub-1€ TRX challenge from Ismo (OH2FTG) - thank you (maybe for getting me addicted?). The constraints Sub-1€ TRX, with LCSC parts. This excludes the PCB, so it can be 10x10 2-layer or 5x5 4-layer. My Design WIRELESS WL4456 (TX) and WIRELESS WL550 (RX) pair - 17 cents T/R switch: TECH PUBLIC TPAS169-73LF - 16 cents 13.56 MHz crystals (HY13560M49SBSMDOB1R30 / 8DSC135G0012L) - 5 cents * 2 MCU: PY32F002AL15S6TU SOP-8 from Puya - ~11 cents ...

June 28, 2026 · 1 min · 200 words · Dhiru Kholia

Generating 1W RF from 5V - Redux

The constraints 5V (~500mA) power from mobile phone 1W RF output required Very compact with less "moving" parts 14 MHz capable The design We use INNOTION YG401530VB MMIC in this design. 100n Si5351 CLK 0 --||----+---------+ | MMIC | | IN | | | | OUT +----||---- RF OUT ---- LPF ---- 50R dummy load +----+----+ 100nF | 10uH RFC | |---100n---GND | +5V Note: No explicit 'special' matching required it seems ;) This seems to be an extremely broadband circuit which should cover all HF! Results 10 dBm from Si5351 and 13.8 dB gain of the INNOTION MMIC gives ~9.8Vpp output theoretically. ...

June 28, 2026 · 2 min · 383 words · Dhiru Kholia

Generating 1W RF from 5V

The constraints 5V (~500mA) power from phone 1W RF output required Very compact with less "moving" parts 14 MHz capable The design We purposefully utilize "high Rds" EPC GaN parts with very low Qgs. Simulation Results Power consumption: Around 300mA @ 5V. pout: AVG(v(out)*i(r3))=1.0606 FROM 5e-05 TO 0.0001 pin: AVG(-5*i(v3))=1.38209 FROM 5e-05 TO 0.0001 isupply: AVG(-i(v3))=0.276418 FROM 5e-05 TO 0.0001 eff: pout/pin*100=76.7393 Cost Cost: < 500 INR. ...

June 27, 2026 · 4 min · 798 words · Dhiru Kholia

DDX-UNO: The HF Radio You Actually Carry

Photographers often say: The best camera is the one you have with you. DDX-UNO ("Digital Pixie") applies the same philosophy to amateur radio. The best HF transceiver isn't necessarily the most powerful one. It's the one you remembered to bring. Most HF stations remain at home. Portable radios often require batteries, coax cables, antenna tuners, protective cases, and a backpack full of accessories. The result is that many operators leave their radios behind. ...

May 26, 2026 · 5 min · 937 words · Dhiru Kholia

HAM Radio Is NOT Just for Talking

It's a Training Ground for Engineers (And We've Been Ignoring It) Let's drop the nostalgia and say something uncomfortable: If you think ham radio is just people talking into microphones, you're not just wrong - you're overlooking one of the most hands-on, intellectually rigorous engineering playgrounds still accessible to individuals. Because amateur radio isn't about conversation. It's about understanding how information survives reality. And reality is hostile. Signals Don't Care About Your Abstractions Modern software engineers live in a world of clean abstractions: APIs work (until they don't), packets arrive (until they don't), networks are "just there." ...

May 4, 2026 · 4 min · 815 words · Dhiru Kholia

Modding Debian binary packages

The problem Debian binary packages often require dependency patching, especially when installing on different Linux distributions. The script #!/bin/bash if [ "$#" -ne 1 ]; then echo "Usage: $0 <package.deb>" exit 1 fi INPUT_DEB="$1" if [ ! -f "$INPUT_DEB" ]; then echo "Error: File $INPUT_DEB not found." exit 1 fi PACKAGE_NAME=$(basename "$INPUT_DEB" .deb) TMP_DIR=$(mktemp -d) OUTPUT_DEB="${PACKAGE_NAME}_no-deps.deb" # Ensure cleanup on exit trap 'rm -rf "$TMP_DIR"' EXIT echo "Extracting $INPUT_DEB..." dpkg-deb -R "$INPUT_DEB" "$TMP_DIR" || exit 1 echo "Zapping dependencies..." # Remove the Depends line. # We use a regex that matches 'Depends:' at the start of the line. sed -i '/^Depends:/d' "$TMP_DIR/DEBIAN/control" echo "Repackaging to $OUTPUT_DEB..." dpkg-deb --root-owner-group -b "$TMP_DIR" "$OUTPUT_DEB" || exit 1 echo "Done! Created $OUTPUT_DEB" Usage $ ./zap-deps.sh wsjtx_3.1.0_improved_PLUS_260418_amd64.deb Extracting wsjtx_3.1.0_improved_PLUS_260418_amd64.deb... Zapping dependencies... Repackaging to wsjtx_3.1.0_improved_PLUS_260418_amd64_no-deps.deb... dpkg-deb: building package 'wsjtx' in 'wsjtx_3.1.0_improved_PLUS_260418_amd64_no-deps.deb'. Done! Created wsjtx_3.1.0_improved_PLUS_260418_amd64_no-deps.deb Notes Before installing the modded package run the following command. ...

April 21, 2026 · 1 min · 165 words · Dhiru Kholia

Easy and Quick Thermal Simulation of PCBs

I could NOT get the Open-Source Thermal Simulation of PCBs technique to work with my 4-layer PCB board at all, even after spending some days on it. To make things worse, I was NOT able to get useful debugging feedback from the involved patchy toolchain. Getting access to the TRM software by ADAM Research turned out to be a sort of very bureaucratic and slow process - I never ended up using it. ...

April 11, 2026 · 2 min · 361 words · Dhiru Kholia