QRV · Bengaluru

VU2CPL
Manoj Ramawarrier

MK83TE · Bengaluru, Karnataka · Licenced 1993

FLEX-6600 · RGO One · IC-705 9 BDXCC DXpeditioner Remote Ops
1.5 KFA
SPE Expert Amp
9 BDXCC
Awards
VU7T · AT5P
DXpeditions

01 · About

The Operator

VU2CPL QSL card — Taj Mahal, India

Located in the garden city of India, Bangalore. Licensed since 1993, I started operations in Thrissur, Kerala with a simple homebrew QRP rig following VU2VWN OM Vasanth (SK)'s circuit — the most popular design of those days.

Later graduated to SSB with the help of an old exciter originally made by VU2UCY Om Bhasi (SK). Went through different iterations of 807 tube QRO and some military surplus gear (Redifone GR 345) during the 1990s. Shifted to Bangalore in early 2003.

I travel extensively for work and mostly operate remote during free time. The shack runs a fully automated setup including remote antenna switching and lightning protection.

DXpeditions
VU7T / VU7MSKavaratti Is, LakshadweepOct 2017
AT5PRameshwaram Is, IOTA AS-173May 2015
AT3N · ARSI HilltopNelliyampathy, Kerala — 4,417 QSOs, 261 DXCCJan 2024
ARSI Hilltop 2025Vayalada Hills, Kozhikode MK71WMJan 2025
ARSI Hilltop 2023Kulamavu, Idukki MJ89KT — HF/VHF/UHFFeb 2023
CallsignVU2CPL
GridMK83TE
LocationBengaluru, KA 562157
Licenced1993
ModesSSB · FT8 · CW
Bands160m – 6m incl. 60m
QSLLOTW · Clublog OQRS
Awards
5BDXCC160m DXCC30m DXCC17m DXCC12m DXCC
Photos by Girish, VU2KGB · hamphotos.com

02 · Station

Equipment

Radios
FlexRadio FLEX-6600 (SDR)
RGO One
Icom IC-705
Amplifier
SPE Expert 1.5 KFA
RX Antennas (Low Band)
350 ft 2-wire reversible Beverage (N/S) — winters only
N6RK Loop
K9AY Loop
Antennas
Hex beam — 20m to 6m
Vertical — 30m
Inverted Vee — 80m & 40m
Inverted L — 160m (hairpin matched, 2 elevated radials)
4 ele LFA Yagi — 6m
Band Allocation Notes
80m: 3500–3700 kHz
160m: 1800–1825 kHz
60m: QRV from Dec 2018
FT8: split needed within VU allocation

03 · Logbook

Operating Dashboard

DX Dashboard · Clublog Live
QSL Policy: Preferred route is LOTW or direct via Clublog OQRS. No bureau (stopped March 2019). For VU7MS and VU7T QSLs, use Clublog OQRS only. No IRC accepted.
Full log search →

04 · Projects

Shack Automation & Utilities

Node-RED Flows
Shack Dashboard — Vue 3 SPA
Unified single-page dashboard for the whole shack, built in Vue 3 and served from Node-RED via uibuilder — replacing the legacy AngularJS /ui board. Twelve collapsible cards (FlexRadio, LP-700, SPE amplifier, rotator, lightning protection, power control, solar conditions, DXCC tracker, RBN skimmer, Raspberry Pi fleet, internet health, GPS NTP) lay out in a responsive masonry grid that adapts from phone to desktop with no build step. Each card polls flow context every 1–5 s, shows a colour-coded collapsed summary and expands for full telemetry. Top bar carries the callsign, a live/offline connectivity pill and four clocks (UTC / IST / sunrise / sunset). PWA-installable on iPad and iPhone via "Add to Home Screen".
Node-REDVue 3uibuilderPWAMQTTResponsive
View repo on GitHub
Active
FLEX-6600 State Monitor Dashboard
Real-time Node-RED flow tracking all four slice receivers via the FlexRadio TCP API, with dual SmartSDR client support (AetherSDR + iPad). Colour-coded active-slice indication — amber for RX, red for TX — now surfaced as the FlexRadio card in the Vue 3 shack dashboard above, and still on the legacy AngularJS /ui board.
Node-REDFlexRadio APISmartSDRMQTT
View repo on GitHub
Active
DXCC Tracker & DX Alert System
Pulls worked DXCC data from Club Log and monitors DX cluster spots via telnet. Compares each incoming spot against the worked log and alerts in real time — red for new DXCC entity, blue for new band, amber for new mode fill. Colour-coded dashboard panel with per-band and per-mode filtering. Club Log DXCC API integration with 24h refresh.
Node-REDClub Log APIDX ClusterTelnetMQTT
View repo on GitHub
Active
Lightning Antenna Protector
Automatically disconnects antenna and radio when lightning is detected within 25 km. Dual source: Open-Meteo lightning_potential API (polled every 5 min) + AS3935 local sensor via MQTT. Leaflet/OSM map with storm overlay. 20-min auto-reconnect timer. On disconnect it also sends a transmit set inhibit=1 command to the FLEX-6600 over the SmartSDR API, so the rig can't key up into a disconnected antenna — SmartSDR shows a red TX-Inhibit indicator and a Telegram alert fires. The inhibit clears automatically on reconnect, manual override or bypass; the radio stays powered and RX-capable throughout.
Node-REDOpen-MeteoTasmotaAS3935SmartSDR APITX inhibitLeaflet
View repo on GitHub ▶ YouTube demo
Active
Remote Shack Control
Full remote operation capability including antenna switching via Tasmota MQTT relays. Operates the FLEX-6600 via SmartSDR from anywhere. Integrated with the lightning protection system for safe unattended operation.
TasmotaMQTTSmartSDRNode-RED
View repo on GitHub
Active
Shack Firmware & Field Devices
Pi GPS NTP Server — shack stratum-1 timeserver
Stratum-1 GPS-disciplined NTP server on a Raspberry Pi 3B with a u-blox NEO-M8N. Kernel pps-gpio + chrony pulls PPS error down to ±171 ns — well below anything a userland NTP implementation can match. Publishes chrony status, satellite count and fix quality over MQTT to the shack dashboard, with an LWT offline marker. Production timeserver for the LAN.
Raspberry PiGPSNTPchronykernel PPSu-blox NEO-M8NMQTT
View repo on GitHub
Active
ESP8266 GPS-disciplined NTP server
PPS-disciplined NTP server on a NodeMCU ESP8266 with a Quectel L89 GPS. Captures the PPS edge on a GPIO interrupt for sub-microsecond second alignment, holds stratum 1 across short PPS dropouts via holdover logic, and falls back to NMEA-only timing (honest stratum 2) on full lock loss. Publishes status over MQTT with the same schema as the Pi NTP server and an LWT offline marker. WiFiManager captive-portal config — no compile-time secrets.
ESP8266PlatformIOGPSNTPPPSQuectel L89MQTT
View repo on GitHub
Active
vu2cpl-as3935-bridge — outdoor lightning sensor
ESP32 firmware bridging an outdoor AS3935 lightning sensor to the shack MQTT broker. Moving the sensor outdoors — battery + solar, IP65 enclosure — recovers the chip's rated ~40 km range that an indoor I²C bus eats. The full AS3935 register surface is exposed over an MQTT command channel, so noise floor, watchdog threshold and TUN_CAP calibration can be tuned live from the dashboard without opening the enclosure. WiFiManager captive portal for first-time setup.
ESP32PlatformIOAS3935MQTTLightningBattery + solarI²C
View repo on GitHub
Active
Utilities & Tools
spe-remote — SPE Expert remote control server
Modern Python 3 remote-control server for SPE Expert HF amplifiers (1.3K-FA / 1.5K-FA / 2K-FA). Runs on a Raspberry Pi over USB serial and serves both a built-in web dashboard and a WebSocket API. Implements the full SPE Application Programmer's Guide Rev 1.1 plus the undocumented RCU command set, so the amplifier's LCD can be mirrored frame-by-frame. Mixed-client broadcast — text JSON for browsers, binary RCU frames for the MacExpert companion app — over the same socket. Threaded reader + async writer survive the USB-serial poll glitches that crash naive serial_asyncio setups. Based on original work by OH2GEK, rewritten and extended.
Python 3WebSocketRaspberry PiUSB serialSPE ExpertRCU protocol
View repo on GitHub
Active
MacExpert — native SPE Expert control app for macOS
Swift / SwiftUI macOS app that mirrors and controls SPE Expert HF amplifiers over either local USB serial or remote WebSocket (via spe-remote). Two-way live mirror of the amp's LCD using RCU 0x6A frames — every sub-menu (CAT, CONFIG, TEMP/FANS, RX ANT, TUN ANT → PORT, ALARMS LOG, MANUAL TUNE, ANTENNA matrix, YAESU / TEN-TEC pickers, STANDBY banner) tracked with cursor-accurate state. Auto-detects the model (1.3K / 1.5K / 2K) from the status frame, auto-scales the power display to the LOW/MID/HIGH level, and offers tap-to-cycle status chips for STATUS / BAND / ANT / IN / LEVEL / MODE / CAT. Universal binary (Apple Silicon + Intel).
macOSSwiftSwiftUISPE ExpertRCUUSB serialWebSocket
View repo on GitHub
Active
LP-700-Server — Telepost LP-700 WebSocket bridge
Go WebSocket bridge for the Telepost LP-500 / LP-700 USB-HID power and SWR meter. Owns the meter's HID handle and fans live telemetry out to many concurrent clients — browsers, phones, logging PCs — while routing control verbs back. Cross-compiles to Linux (arm64 / armv7) and macOS; ships a systemd unit and udev rules for headless Raspberry Pi deployment. LAN-only, zero auth.
GoWebSocketUSB HIDRaspberry PiLP-700Telepostsystemd
View repo on GitHub
Active
LP-700-App — native macOS client for the LP-700
Native SwiftUI macOS client that talks to LP-700-Server over WebSocket. Live power / SWR / channel / alarm display, full control-verb support, settings persistence, a menu-bar glance-view, and macOS notifications for alarm states. Pairs with LP-700-Server so a single HID-attached meter drives operating positions, logging PCs and phones simultaneously.
macOSSwiftSwiftUIWebSocketLP-700Telepostmenu-bar
View repo on GitHub
Active
SO2R Box — macOS controller for the YCCC SO2R Box Plus
Native macOS controller for the YCCC SO2R Box Plus contesting switch. USB-HID to the box; live front-panel mirror in the SwiftUI UI (TX/RX, footswitch, speed pot) using the YCCC HID protocol — reverse-engineered and documented. Hosts OTRSP and Winkeyer TCP servers, so N1MM+, Win-Test, WriteLog and TR4W see it as a standard SO2R interface. Supports the default 2-radio SO2R mode and the 4-radio SO2R+ mode.
macOSSwiftUSB HIDOTRSPWinkeyerYCCCSO2RContesting
Active
DX Cluster Aggregator
Native macOS app (universal binary) that merges spots from multiple WSJT-X / JTDX UDP sources and several DX cluster telnet nodes into one unified feed, and re-serves it on a built-in telnet cluster server (port 7300) so loggers like Logger32, N1MM+, Log4OM, and DXKeeper can pick it up. ClubLog integration highlights New DXCC / New Slot / New Band / New Mode in real time; LoTW uploaders are flagged with a green dot from ARRL's user list. NCDXF/IBP and national beacon detection avoids false alerts. Telegram + macOS notifications with per-callsign cooldown. Live filters, sortable resizable columns, auto-clear with disk log, menu-bar background mode. Major rewrite of the original FT8 Cluster Aggregator concept by Vinod VU3ESV — now covers all DX cluster sources, not just FT8.
macOSSwiftDX ClusterTelnet serverClub LogWSJT-X / JTDXPSK ReporterTelegram
View repo on GitHub
Active
MSHV-Mac — native macOS port of LZ2HV/MSHV
Native macOS port of LZ2HV's MSHV multi-mode weak-signal program (FT8 / FT4 / Q65 / MSK144 / JT9 / JT65 etc.). Apple Silicon and Intel; verified end-to-end against a FlexRadio 6000-series via AetherSDR's TCI bridge for both RX and TX, with WSJT-X-compatible UDP broadcast feeding RUMlogNG's DXSpots window. Self-contained .app bundle: PortAudio audio backend with Float32/Int24/Int16 fallbacks, FlexRadio CommonRadioAudio + DAX support, real host_processor_info CPU sensor, in-bundle settings/log/wav directories, dark theme, app icon, font defaults. Patches sit on a _MACOS_-conditional macos-port branch on top of upstream main, so Linux and Windows builds remain untouched and new LZ2HV releases merge cleanly.
macOSQt5PortAudioFT8 / FT4MSK144FlexRadioTCIWSJT-X UDP
View repo on GitHub
Active
SkimServer Mac
Native macOS multi-band, multi-mode skimmer for CW + FT8 + FT4, built directly against the HPSDR / Hermes Protocol 1 over UDP. Tested with a Red Pitaya running Pavel Demin's HPSDR-compatible firmware. Up to 8 DDC receivers run in parallel with their own decode pipelines: a CW path (FFT → per-bin peak detect → envelope + Bayesian beam Morse decoder + Patt3Ch.lst callsign validator with confirm-before-emit) and FT8 / FT4 paths (NCO down-conversion → resample to 12 kHz → ft8_lib decode on UTC-aligned slots). Spots feed a built-in DX-cluster telnet server on port 7300, plus uploads to RBN (telnet) and PSK Reporter (UDP). SwiftUI menu-bar UI with live stats. Handles Pavel firmware quirks (rx-count in C4, frequency addressing offset, IQ sign, per-rx sample-rate sharing).
macOSSwiftHPSDRRed PitayaCW skimmerFT8FT4RBNPSK Reporterft8_lib
Work in progress
TimeSync — clock-drift watcher for macOS
Menu-bar macOS app showing system-clock drift against NTP servers and an attached USB GPS, with a one-click "step the clock now" via chrony. Built for digital-mode operators where ~1 s alignment matters and the LAN may not always reach an upstream NTP source. An optional bundled gpsd + chrony stack turns the Mac itself into a stratum-2 NTP server for the rest of the shack; a small privileged helper daemon lets the app talk to chrony without sudo each time.
macOSSwiftSwiftUINTPGPSchronygpsdmenu-bar
View repo on GitHub
Active
NanoVNASaver — packaged macOS .app
Self-contained NanoVNASaver v0.7.3 .app bundle for Apple Silicon. Upstream NanoVNASaver only ships Windows and Raspberry Pi binaries, so this build wraps a Python 3.12 virtual-environment with PySide6 / Qt and the NanoVNASaver package, behind a small bash launcher in Contents/MacOS/. Slimmed from ~1.3 GB to 253 MB by stripping unused Qt frameworks, qml, translations, metatypes, and lipo-thinning every Mach-O binary to arm64. Logs to ~/Library/Logs/NanoVNASaver/nanovnasaver.log for easy support.
macOS.app bundlePySide6 / QtApple SiliconNanoVNAVNA
View repo on GitHub
Active
VU DXCC Credits Tracker
Live, sortable tables of DXCC standings for every Indian (VU / AT / AU) callsign, from two data sources on one page. The LoTW tab parses all 17 ARRL DXCC Standings PDFs each month — Mixed / Phone / CW / Digital / Satellite / bands 160 m to 6 m / Challenge / Honor Roll. The Clublog tab scrapes the Asia Top-2000 Confirmed league every day and pulls out Indian prefixes. Both tabs share the same layout: green highlight for column leaders, red for changes since the last snapshot, click-through to QRZ.com on every callsign. Table layout adapted from the original VU DXCC list template by VU2DCC.
PythonpdfplumberreportlabGitHub ActionsARRL DXCCClublog
View live page →
Active

05 · Writings & Field Reports

Articles & Contest Reports

Top Band
0–100 on 160m
My journey exploring the Gentleman's band from scratch — inverted L antenna, hairpin matching, beverage antennas, and chasing 100 DXCC on 160m from Zone 22.
102 countries worked 29 CQ zones 1,622 QSOs
Jan 2019 ↓ PDF
DXpedition
VU7MS — Lakshadweep DXpedition
Writeup of the VU7MS DXpedition to Kavaratti Island, Lakshadweep. Operations on HF with cubical quad and wire antennas from one of India's rarest DXCC entities.
2016 ↓ PDF
DXpedition
VU7T — A Sequel to VU7MS
The follow-up DXpedition to Kavaratti Island, Lakshadweep in October 2017. Expanded operations including first steps towards 160m activation from this rare entity.
Oct 2017 ↓ PDF
Contest Report
AT3N — ARSI Hilltop Contest 2024
Field report from team AT3N operating from Nelliyampathy, Kerala at 1,380m ASL. Multi-band HF/VHF/UHF operation — 4,417 QSOs, 261 DXCC entities, Category C winners.
4,417 QSOs 261 DXCC
Jan 2024 ↓ PDF
Contest Report
ARSI Hilltop Contest 2025
Report from Vayalada Hills, Kozhikode (MK71WM). Smaller team, new location. 160m Inverted L and 90m reversible Beverage installed. Experimenting with 10m delta loop and CQ160 contest entries.
763 QSOs 148 DXCC
Jan 2025 ↓ PDF
Technical
Interfacing the PA2500 with Modern Radios
How to interface the Furuno PA2500 linear amplifier with modern transceivers — Arduino band decoder customisation, direct LPF switching, ALC polarity conversion using LT7660, and automated 4:1 antenna switching.
2015 ↓ PDF

06 · Contact

Get in Touch

Location
Tarabanahalli, Chikkajala PO
Bengaluru, KA 562157

For sked requests, email via QRZ or WhatsApp. For QSL, use LOTW or Clublog OQRS — no bureau. 73 de VU2CPL.

Message sent! I'll get back to you soon. 73