Skip to content

GregTroar/OpsLog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

OpsLog

A modern, fast ham-radio logger for Windows — Log4OM-style entry, real-time CAT for OmniRig, native FlexRadio/SmartSDR, native Icom CI-V (USB and remote-over-internet, replacing RS-BA1) and TCI (SunSDR / Expert Electronics), DX cluster with spot alerts, awards tracking, maps, contest logging, QSL management and a QSL-card designer. Built with Wails v2 (Go backend + React/TypeScript frontend), pure Go (no CGO): SQLite for configuration, optional shared MySQL for the logbook so several operators can run one log. Fully themeable and bilingual (English / French).

Developed by F4BPO.


Logging

  • Log4OM-style entry strip: callsign, RST tx/rx, name/QTH/grid, band/mode, TX/RX frequency (split), start/end time, comment/note. The contacted entity's flag is shown large next to the RST fields.
  • Callsign lookup (QRZ.com / HamQTH) with photo, auto-fill of name/QTH/grid and the QRZ.com tab.
  • Offline DXCC resolution from cty.dat (country, CQ/ITU zones, continent), with /MM /AM /B (beacon) and call-area (/8, /W6) handling, plus ClubLog DXpedition date overrides.
  • Recent QSOs, Worked-before matrix (per band/mode slot), bulk re-resolve from cty/QRZ/ClubLog, bulk send to QSL services.
  • Advanced QSO filter builder (field / operator / value, AND / OR, saved presets) with filtered- and selected-row ADIF export.
  • Find duplicates (Tools) — groups QSOs by same call + band + mode (optionally same day / minute) and lets you pick which to delete.
  • ADIF 3.1.7 compliant import/export: a full field dictionary, 30 promoted columns, a generic "extra fields" editor and standard/all export modes.
  • Profiles: every setting is per-profile; each profile can point its logbook at the local SQLite file or a shared MySQL database (multi-operator).

Maps & antenna

  • Main view = two configurable panes (per profile, Settings → General → Main view): great-circle map, locator (street) map, the cluster grid, the worked-before grid, recent QSOs, the FlexRadio controls, the Icom console or the Net control panel.
  • Great-circle map with short/long-path distance & azimuth, selectable basemaps (Light / Voyager / Street / Satellite, all key-free and labelled) and the antenna beam lobe(s) drawn from the rotor azimuth.
  • Rotor compass (azimuthal-equidistant, click-to-turn) driven by PstRotator.
  • Ultrabeam support (Normal / 180° reverse / Bidirectional): the radiating direction is shown in green and the mechanical boom in grey, on both the compass and the map, so you never lose track of where the antenna points.

DX Cluster

  • Multiple cluster servers with auto-reconnect, a master for commands.
  • Filter sidebar (callsign search, hide-worked, group duplicates, band / mode / status / source) shared by the Cluster tab and the Main-view cluster pane, with a show/hide toggle.
  • Per-spot status (new / new-band / new-slot / worked), click-to-tune the rig, and a multi-band Band Map (panadapter-style strips).
  • POTA spots are tagged with their park reference (via api.pota.app).
  • Spot alerts (Log4OM-style): rules on call / country / band / mode / spotter, with sound, visual and e-mail notification (Tools → Alert management).

CAT control

Four native backends (Settings → CAT), each with auto-reconnect and a fast, non-blocking connect so a powered-off radio never freezes the app:

  • OmniRig (Rig 1/2, hot-swap) — works with any OmniRig-supported rig.
  • FlexRadio (SmartSDR) over the radio's TCP API — real-time slice freq / mode / split, UDP discovery, and panadapter spots (cluster spots pushed to the Flex display, click → fill the call).
  • Icom CI-V — native, over the radio's USB port or over the internet via the radio's built-in LAN server (see Remote Icom below). No RS-BA1 or Remote Utility needed.
  • TCI (WebSocket) — SunSDR / ExpertSDR2 and any TCI-compatible server: freq / mode / PTT / split, plus optional panorama spots.

Mode is taken from the radio; the digital sub-mode (FT4 vs FT8) is inferred from the frequency. Per-band Flex RX/TX antennas can be configured and are applied automatically on band change.

FlexRadio control tab (SmartSDR-style)

Shown only when the CAT backend is a FlexRadio:

  • Transmit: RF power, tune power, TUNE, MOX, speech processor (NOR/DX/DX+), VOX (+ level + delay), monitor (+ level), mic gain.
  • Receive (active slice): AGC mode/threshold, audio level, NB / NR / ANF.
  • Antenna tuner (ATU): tune / bypass / memories.
  • Amplifier: PowerGenius XL operate/standby + fault.
  • Live meters over the UDP VITA-49 stream: S-meter (S-units), forward power (W), SWR, ALC, PA temperature, voltage, plus the amplifier's meters.

Icom control tab

Shown when the CAT backend is Icom (USB or network). A full RS-BA1-style console:

  • Twin VFO readout (MAIN / SUB) with the big tabular frequency, mode badge, band and RIT/ΔTX offset, and a mode-button row (SSB / CW / RTTY / PSK / AM / FM).
  • Spectrum scope + waterfall (panadapter): ON/OFF, CTR/FIX, double-click to tune, and ◀ ⊙ ▶ buttons to centre the scope on the current frequency (±50 kHz) and pan left/right.
  • Live meters always visible: S-meter (click → fill RST), power in watts, SWR.
  • Receive DSP: AF / RF gain, squelch, AGC, preamp, attenuator, filter (FIL1/2/3), NB, NR, ANF and — on CW only — the APF (audio peak filter).
  • Passband / notch: Twin PBT (inner / outer), manual notch + position.
  • Transmit: RF power, MOX, TUNE, split with an automatic offset (+5 kHz on SSB, +1 kHz on CW), and monitor. On voice modes only: mic gain, speech compressor, VOX (+ gain + anti-VOX). Controls that don't apply to the current mode are hidden automatically.
  • Bands & antenna: one-touch band buttons and ANT1/ANT2 selection.
  • Clarifiers: RIT and ΔTX with wheel / ± tuning (Ctrl+←/→ nudges RIT).
  • Power ON / OFF buttons (manual by design — the app never wakes the rig on connect).
  • CW keying can run through the radio's own keyer (see Keyers below).

Remote Icom (over the internet, no RS-BA1)

OpsLog speaks the IC-7610's built-in network protocol directly — it replaces both the Icom Remote Utility and RS-BA1. Enter the radio's IP, the Network User1 name/password and the CI-V address, and the whole Icom console works over the LAN/internet: login + token (auto-renewed), CI-V tunnel, receive-side retransmit for a rock-solid link even with the panadapter streaming, and manual power ON/OFF. (Audio is out of scope — use the radio in USB + a voice link such as Mumble.)

Keyers & audio

  • CW keyer with macros and F-key macros. The keyer engine is selectable: WinKeyer (K1EL WK1/2/3 over a COM port), Icom (the radio's own keyer over CI-V — no extra hardware, works over the remote link too) or TCI.
  • Digital Voice Keyer (DVK): record F1–F6 voice messages and transmit them.
  • QSO audio recording: continuous rolling capture; on Log QSO the contact is saved to a per-QSO WAV (CALL_YYYYMMDD_HHMMSS.wav); mixes RX + mic.

Amplifiers & switches

  • PowerGenius XL (4O3A) amplifier — direct TCP: operate/standby, fan-mode selector and fault display.
  • Antenna Genius (4O3A) antenna switch over TCP/GSCP — a docked A/B antenna-switch widget.

QSL & awards

  • Awards engine: built-in + custom award definitions (shared globally across profiles) — DXCC, WAS / WAZ / WAC, WPX, IOTA / POTA / SOTA / WWFF, DDFM, worked/confirmed/validated by band & mode, OR rules and manual reference assignment, live reference detection on call entry, reference-list import for totals/names, and a Rescan that re-pulls the logbook (picks up fresh LoTW/QRZ confirmations).
  • QSL services: ClubLog (batched ADIF upload), LoTW, QRZ.com, eQSL — upload and confirmation download (which auto-refreshes the award stats).
  • QSL Card Designer (see below).
  • E-mail eQSL: right-click a QSO → Send eQSL by e-mail via the configured SMTP account. (Outlook/Hotmail disable basic-auth SMTP — use Gmail with an app password, or a Microsoft app password.)

Contest logging

  • Contest tab: pick a contest (built-in ADIF CONTEST_ID list) and an exchange (running serial or a fixed exchange). OpsLog auto-fills CONTEST_ID and the sent/received serials (STX / SRX), enforces a window start/end, flags dupes and keeps a live scoreboard.

Multi-operator live status (special events)

For a multi-op special-event call on a shared MySQL logbook (e.g. TM74TFR): Settings → General → Publish live operator status. Each OpsLog instance heartbeats its current activity (operator call, band, frequency, mode) into a live_status table every ~15 s. A small PHP renderer (docs/livestatus/tm74-status.php) on your own web server reads that table and produces a live page/image you can embed on the station's QRZ.com bio (<img src="…/tm74-status.php?img=1">). OpsLog only writes to the DB — it is not a web server.

Net control

  • Directed-net logging (Tools → Net): a global roster (nets.json) plus an in-memory active session — check stations in, then log the whole net at once using the CAT frequency.

Appearance & language

  • Themes: four complete themes (Warm light, Warm dark, Graphite dark, High contrast) plus Auto (follows the OS light/dark preference), selectable in Settings → General. Every panel and every AG-Grid table follows the theme.
  • Bilingual: full English / French UI, with a first-run flag chooser and a switcher in Settings → General.

Security

  • Secret vault: opt-in passphrase encryption of the stored passwords (AES-GCM + PBKDF2). Encrypted values are portable; a single unlock prompt at launch decrypts them for the session.

Integrations (outbound)

  • UDP emitters: push the current frequency to PstRotator, radio info in N1MM RadioInfo format, or an ADIF record on each logged QSO — so external tools (rotator control, digital apps, other loggers) stay in sync.

Other

  • Autostart: launch external programs (WSJT-X, JTAlert, rotator control…) at OpsLog startup, skipping any already running.
  • Backup: optional database + ADIF backup at shutdown.
  • Update check at startup with a toast (toggleable).
  • Anonymous usage telemetry (a once-a-day heartbeat: random install ID + version + OS — no callsign or QSO data; opt-out in Preferences).

QSL Card Designer

Tools → QSL Card Designer… turns a few photos into a polished eQSL card:

  1. Pick 1–6 photos (jpeg/png). OpsLog analyzes them offline (detail/luminance grid) and proposes 3 designs — callsign in the calmest zone of the best photo, operator name, CQ/ITU zones + locator line, country flag, the other photos as bordered inserts, and a per-QSO confirmation box.
  2. Pick a proposal and fine-tune it: click an element to select, drag to move, change font / style preset (gel gold, gel silver, classic white outline, script, flat) and per-preset knobs in the right panel.
  3. Save the template (photos are copied into data/qsl/templates/<id>/, so the originals can move). One template can be the default per profile.

Sending: right-click a QSO → Send eQSL by e-mail. The card is rendered with that QSO's data, rasterized to a ≤ 800 KB JPEG, archived in data/qsl/outbox/ and sent through the configured SMTP account to the address found by the QRZ/HamQTH lookup. On success the QSO is stamped EQSL_SENT=Y (ADIF). The e-mail subject/body templates live in the designer ({CALL} {DATE} {BAND} {MODE} {MYCALL} variables).

Fonts: Archivo Black, Lilita One, Baloo 2, Oswald, Great Vibes, Allura (all OFL, embedded — licenses in internal/qslcard/assets/fonts/); Cooper Black is offered when MS Office installed it. Flags: flag-icons (MIT), embedded for the commonly-worked DXCC entities.


Data & storage

  • Config (settings, profiles, rigs/antennas, cluster nodes, lookup cache, award lists, QSL templates) always lives in the local SQLite file under data/ — instant even when the logbook is on a far-away MySQL.
  • Logbook (QSOs) lives where the active profile points it: the local SQLite file or a per-profile shared MySQL database.

A French version of this document is available in README.fr.md.

About

Logbook for Ham Radio Operators.

Resources

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors