Skip to content
View in the app

A better way to browse. Learn more.

Ham Radio Base -Powered By Ham CQ DX

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Solar
SFI 128
SN 73
A 6
K 1 Quiet
X-Ray B6.4
Wind 390.4 km/s
Aurora 2
Updated 02:30 UTC HamQSL · N0NBH
Day 80/40m Fair 30/20m Good 17/15m Good 12/10m Fair
Night 80/40m Good 30/20m Good 17/15m Good 12/10m Poor

Callsign Lookup
_
Vanity Call Signs Available
Enter filters above and click Search.
ⓘ Callsign lookups are in real time via the FCC database. Vanity callsign availability is refreshed daily at 6:00 AM CST. The vanity search may be unavailable for a few minutes during this update.
Live DX spots
Live DX Spots — 70cm via PSKReporter · scroll or pinch to zoom
Band
Mode
Time
Loading map data…
MHz DX Spotter Info
Recent spots
Select a band above to load spots
Ready — select a band to fetch live spots

Home Ham Tools Logging CQRLog
📋

CQRLog on Linux — Complete Ham Radio Logging Setup and Operating Guide

CQRLog is the most full-featured ham radio logging application for Linux. This complete guide covers installation on Ubuntu and Debian, MariaDB database setup, Hamlib rig control for popular radios, DX cluster integration, LoTW and eQSL upload, DXCC and WAZ award tracking, integration with Fldigi and WSJT-X, and troubleshooting the most common problems.

Most popular Linux logger apt install cqrlog Actively maintained

What is CQRLog and who it is for

CQRLog has been the standard ham radio logger for Linux since 2008. Written in Free Pascal/Lazarus by OK2CQR and maintained by an active development community, it stores QSOs in a MariaDB database rather than flat files — giving it significant advantages over simpler loggers in terms of search speed, data integrity, and the ability to manage large logs efficiently.

The application integrates everything a serious HF operator needs into one interface: real-time DX cluster telnet with callsign lookup, automatic country and continent resolution using the OK1RR DXCC database, grayline map, QSL management for paper and electronic QSLing, direct LoTW and eQSL upload, Hamlib rig control, and award tracking for DXCC, WAZ, WAS, and IOTA.

CQRLog vs Xlog: CQRLog is for operators who log dozens or hundreds of QSOs per month and want integrated award tracking, DX cluster, and automatic LoTW upload. Xlog is for operators who want simple, fast logging without the complexity. Both are good programs — the right choice depends on how seriously you chase awards and DX.

Installation on Ubuntu and Debian

Ubuntu 22.04, 24.04 and Debian 11, 12

Terminal
sudo apt update sudo apt install cqrlog

This installs CQRLog and its dependencies including MariaDB, Hamlib, and all required libraries.

Install the latest version from GitHub

The repository version may lag the latest release. Download the current .deb from the CQRLog GitHub releases page:

Terminal
wget https://github.com/ok2cqr/cqrlog/releases/latest/download/cqrlog_amd64.deb sudo apt install ./cqrlog_amd64.deb

Build from source

Terminal — install build dependencies
sudo apt install git fpc lazarus mariadb-server \ libhamlib-dev libssl-dev
Terminal — clone and build
git clone https://github.com/ok2cqr/cqrlog.git cd cqrlog make sudo make install

Raspberry Pi

CQRLog runs on Raspberry Pi 4 with Raspberry Pi OS. Use the apt install method. Performance is adequate for normal logging use though the startup time is longer than on a desktop machine due to MariaDB initialization.

Verify installation

Terminal
cqrlog --version

Database setup and first launch

CQRLog uses an embedded MariaDB database that it manages itself. You do not need to configure a database server manually — CQRLog handles all of this on first launch.

First launch procedure

  1. Launch CQRLog from your application menu or run cqrlog in a terminal
  2. On first run CQRLog checks for the database and prompts to create it — click Create
  3. CQRLog starts the embedded MariaDB instance and creates the logging database
  4. The New Log wizard opens — enter a log name (your callsign is common) and your station details
  5. CQRLog opens the main logging window

Database location

CQRLog stores its database in ~/.config/cqrlog/database/. This directory contains all your QSO data. Back it up regularly — see the Backup section below.

Multiple logs

CQRLog supports multiple separate logs within the same database — useful for contest logs, club callsign operation, or /P and /MM operation. Create additional logs via File → New Log. Switch between logs from the same menu. Each log has its own station settings, DXCC statistics, and QSL status tracking.

MariaDB startup time: CQRLog takes 10–30 seconds to start on the first launch of the day because it starts the MariaDB service. Subsequent launches in the same session are faster. This is normal behavior.

Station configuration

Configure your station details under Settings → Station Info. These values are used for DXCC lookups, award tracking, and QSL cards.

Essential station settings

  • Callsign — your full callsign including any portable suffix
  • Name — your name as it appears on QSL cards
  • QTH — your location city and country
  • Locator — your Maidenhead grid square (4 or 6 characters)
  • IARU Region — 1 (Europe/Africa), 2 (Americas), or 3 (Asia/Pacific)
  • CQ Zone and ITU Zone — used for WAZ and other awards

Country file — keeping DXCC data current

CQRLog uses the cty.dat file to resolve DXCC entities from callsigns. Update it regularly to ensure new entities and changes are reflected correctly:

Terminal — download latest cty.dat
wget https://www.country-files.com/cty/cty.dat \ -O ~/.config/cqrlog/cty.dat

Then in CQRLog go to Settings → Country Files → Update to reload the new file.

Rig control with Hamlib and rigctld

CQRLog uses Hamlib to read your radio's frequency and mode automatically, filling them in when you log a contact. Configure it under Settings → TRX Control.

Method 1 — Direct Hamlib connection

  1. Go to Settings → TRX Control
  2. Select your rig model from the Rig dropdown
  3. Set the Device to your serial port — usually /dev/ttyUSB0
  4. Set the Baud Rate to match your radio's CAT baud rate
  5. Click Connect — CQRLog starts polling the radio every 2 seconds

Method 2 — Via rigctld (recommended for shared rig control)

If you also run Fldigi or WSJT-X, use rigctld as a shared rig control daemon so all applications access the same serial port through one broker:

Terminal — start rigctld for IC-7300
# -m 3073 = Icom IC-7300 Hamlib model number # -r /dev/ttyUSB0 = serial port # -s 19200 = baud rate rigctld -m 3073 -r /dev/ttyUSB0 -s 19200 &

In CQRLog Settings → TRX Control: set Rig type to rigctld, Host to localhost, Port to 4532.

Serial port permissions

Terminal
sudo usermod -a -G dialout # Log out and back in, then verify: groups | grep dialout

Hamlib model numbers for popular radios

RadioHamlib modelBaud rateNotes
Icom IC-7300307319200Built-in USB audio — most popular for Linux
Icom IC-7610307819200Dual receiver, excellent for SO2R
Icom IC-705308519200QRP portable with built-in USB
Icom IC-9700308119200VHF/UHF/satellite
Yaesu FT-991A103538400All-band including VHF/UHF
Yaesu FTDX-10105038400SDR-based HF rig
Yaesu FTDX-101D105738400High-end HF transceiver
Kenwood TS-890S2044115200High-end with roofing filters
Kenwood TS-590SG2033115200Popular mid-range HF rig
Elecraft K3/K3S202938400High-performance HF rig
Elecraft KX3203138400QRP portable

DX cluster integration

CQRLog has a built-in DX cluster telnet client that shows live spots from the worldwide DX cluster network. Clicking a spot tunes your radio to that frequency via rig control automatically.

Connecting to a DX cluster

Go to Settings → DX Cluster and configure:

  • Host — cluster server address
  • Port — cluster port (usually 7300 or 23)
  • Callsign — your callsign for cluster login

Popular DX cluster nodes

ClusterAddressPortCoverage
DX Spider (worldwide)dxspider.co.uk7300Global aggregator
AR-Clusterwa9pie.net23North America
CC Clusterdf2mz.de8000Europe
VE7CCcc.ve7cc.net23North America, filtered
DX Summitdxsummit.fi7300Europe/global
RBN (Reverse Beacon)telnet.reversebeacon.net7000CW and digital skimmers

Understanding cluster spot colors

CQRLog color-codes DX cluster spots based on your log status:

  • Red — new DXCC entity not yet worked on any band or mode
  • Orange — new band or mode slot for an entity you have worked
  • Yellow — worked but not confirmed on LoTW or paper QSL
  • Green — worked and confirmed — already counts for DXCC
  • Grey — worked and confirmed on this specific band/mode

Focus on red spots when chasing new DXCC entities — they represent countries you have never worked before.

Setting cluster filters

On busy days the cluster can be overwhelming. Set filters to show only what matters:

DX cluster filter commands
# Show only spots on specific bands set/filter band=20m,15m,10m # Show only spots not yet confirmed set/filter new dxcc # Show spots from specific regions set/filter spotter=EU

Callbook lookup — QRZ and HamQTH

CQRLog can look up callsign details automatically when you enter a callsign — filling in the station's name, QTH, grid square, DXCC entity, and other details. Configure under Settings → Callbook.

QRZ.com XML lookup

QRZ.com provides an XML API for callsign lookups. You need a QRZ.com account (free) and for full data access a QRZ.com XML subscription ($30/year). Enter your QRZ credentials in Settings → Callbook → QRZ.com.

HamQTH (free alternative)

HamQTH.com provides a free callsign lookup API with no subscription required. Register at hamqth.com and enter your credentials in Settings → Callbook → HamQTH. Coverage is slightly less comprehensive than QRZ but excellent for most callsigns.

Local cty.dat lookup

Even without a callbook subscription CQRLog resolves DXCC entity, CQ zone, and ITU zone from the local cty.dat file. This is the minimum needed for award tracking and is completely free.

Operating guide — logging contacts efficiently

Basic contact logging workflow

  1. Enter the callsign in the Callsign field and press Tab
  2. CQRLog resolves the DXCC entity, CQ zone, and ITU zone automatically from cty.dat
  3. If callbook is configured, name and QTH fill in automatically
  4. The Band and Mode fields fill from rig control if active
  5. Enter RST sent and received — default is 59/59 for phone, 599/599 for CW and digital
  6. Add any notes in the QSL field if needed
  7. Press Enter or click Save — the contact is logged and CQRLog checks for duplicates

Duplicate checking

CQRLog automatically checks your log for duplicate contacts when you enter a callsign. A yellow indicator means you have worked this station before on the same band and mode — potentially a duplicate. A red indicator means you have a confirmed QSL for this contact. You can log duplicates if needed (for example, making another contact during a different contest period) but the warning helps during busy pileup operating.

Using the DX cluster during an operating session

Keep the DX cluster panel open during operation. When an interesting spot appears:

  1. Click the spot — CQRLog sends the frequency to your radio via rig control
  2. The radio tunes to the spotted frequency automatically
  3. Listen and work the station if the propagation is there
  4. When the QSO completes, the callsign is pre-filled in the log entry from the cluster spot

Logging split frequency contacts

For DX stations running split operation (listening on a different frequency from where they transmit), log the DX station's transmit frequency — the one they are broadcasting on. Enter it in the QRG field manually if it differs from your current rig frequency.

Speed logging during a contest

For contest operating, set up exchange macros and keyboard shortcuts. CQRLog supports serial number assignment for contests — it automatically increments the serial number with each logged contact. Use Tab to move between fields quickly and Enter to log without touching the mouse.

Searching and editing past contacts

Access your full log via Log → Browse Log. Search by:

  • Callsign — find all contacts with a specific station
  • Date range — show contacts from a specific period
  • Band and mode — filter by operating parameters
  • DXCC entity — find all contacts with a specific country
  • QSL status — find unconfirmed contacts for follow-up

Double-click any contact to open it for editing. Changes are saved to the database immediately.

LoTW setup and automatic upload

ARRL's Logbook of The World (LoTW) is the most widely accepted electronic QSL system for DXCC credit. CQRLog can upload contacts to LoTW automatically after each QSO.

Installing TQSL

Terminal
sudo apt install tqsl

Getting your LoTW certificate

  1. Register at lotw.arrl.org if you have not already
  2. Open TQSL and go to File → Request New Station Location
  3. Enter your callsign — ARRL verifies your license and issues a certificate by post
  4. When the certificate arrives by email open TQSL and install it via File → Load Certificate from File
  5. Create a Station Location in TQSL for each callsign/location combination you operate from

Configuring LoTW in CQRLog

  1. Go to Settings → LoTW
  2. Set the TQSL binary path — usually /usr/bin/tqsl
  3. Enter your LoTW callsign
  4. Select your certificate from the dropdown
  5. Enable Upload QSOs to LoTW after logging for automatic upload

Batch LoTW upload

To upload all unconfirmed contacts at once go to Awards → LoTW → Upload All Unconfirmed. CQRLog exports the contacts, signs them with TQSL, and uploads to LoTW in one operation. Allow 24–48 hours for LoTW to process and update your confirmations.

Checking LoTW confirmations

Download new confirmations from LoTW via Awards → LoTW → Download New Confirmations. CQRLog marks newly confirmed contacts in the log and updates your DXCC totals automatically.

Certificate per location: Your LoTW certificate must match the callsign and location you are logging under. If you operate portable (/P) or from a different country, you need a separate certificate for that callsign/location. ARRL issues as many certificates as you need for legitimate operating locations.

eQSL configuration

eQSL.cc is a free electronic QSL system popular among digital mode operators. Configure it under Settings → eQSL.

Setup

  1. Register at eqsl.cc (free)
  2. In CQRLog Settings → eQSL enter your eQSL username and password
  3. Enable Upload QSOs to eQSL after logging for automatic upload
  4. Download incoming eQSLs via Awards → eQSL → Download New

eQSL vs LoTW

For DXCC credit only LoTW confirmations count — ARRL does not accept eQSL for DXCC. However eQSL is accepted for some other awards and is a good backup QSL system. Many operators upload to both simultaneously. There is no reason not to use both — the overhead is minimal.

DXCC, WAZ and award tracking

CQRLog tracks your progress toward major amateur radio awards automatically based on your log contents and QSL confirmations.

DXCC tracking

Go to Awards → DXCC to see your DXCC breakdown by band and mode. The display shows:

  • Worked — number of DXCC entities you have made at least one contact with
  • Confirmed — confirmed via LoTW, eQSL, or paper QSL
  • Needed — entities you have not yet worked on each band/mode

Click any entity to see all contacts with that country. The Needed list at the bottom shows which countries to prioritize for new DXCC or new band/mode slots.

WAZ (Worked All Zones) tracking

Go to Awards → WAZ to see your progress toward working all 40 CQ zones. WAZ requires confirmed contacts from all zones — CQRLog shows which zones you have worked and which are confirmed on each band.

WAS (Worked All States) tracking

Go to Awards → WAS for US state tracking. CQRLog resolves the state from callsign prefixes and shows your progress toward the 50-state award on each band and mode.

IOTA tracking

Enter IOTA reference numbers in the IOTA field when logging island contacts. CQRLog tracks your IOTA references and shows total island groups worked and confirmed.

Keeping the country database current

DXCC entity status changes occasionally — new entities are added (country splits, new administrations) and old ones are deleted. Keep your cty.dat file updated to ensure CQRLog correctly identifies new entities. Download the latest from country-files.com and update via Settings → Country Files → Update.

Contest logging in CQRLog

CQRLog supports contest logging with serial number tracking, exchange handling, and Cabrillo export for log submission.

Setting up a contest log

  1. Create a new log via File → New Log
  2. Give it a descriptive name — "CQWW-SSB-2026" for example
  3. In the log settings enable contest mode and select the contest type
  4. CQRLog automatically assigns and tracks serial numbers for sent exchange

Supported contests

CQRLog includes exchange templates for major contests including CQWW SSB and CW, CQ WPX, ARRL DX, ARRL 10m, WAE, and others. Select the contest type when creating the log and CQRLog configures the exchange fields appropriately.

Cabrillo export for submission

After the contest export your log in Cabrillo format for submission: File → Export → Cabrillo. The exported file is ready for submission to the contest organizer. Review it before submitting to verify callsigns and exchanges are correct.

After the contest — importing to main log

After submitting the contest log, import the contacts into your main log via File → Import → ADIF to keep your overall log complete for award tracking. CQRLog's duplicate detection ensures contacts already in your main log are not duplicated.

Integration with Fldigi and WSJT-X

Fldigi integration

CQRLog can receive completed contacts from Fldigi in real time via Fldigi's built-in logging interface:

  1. In CQRLog go to Settings → TRX Control → Fldigi
  2. Enable the Fldigi connection on port 7362
  3. When you save a contact in Fldigi it appears in CQRLog automatically

With rig control shared via Flrig, both Fldigi and CQRLog read frequency and mode from the same rig control daemon — ensuring your log entries have accurate frequency information without manual entry.

WSJT-X integration

CQRLog can monitor WSJT-X's log file and import new contacts as they are logged:

  1. In CQRLog go to Settings → Log → WSJT-X log file
  2. Set the path to ~/.local/share/WSJT-X/wsjtx_log.adi
  3. CQRLog checks for new contacts every few seconds and imports them automatically

Alternatively use WSJT-X's UDP logging interface — enable it under File → Settings → Reporting → UDP Server in WSJT-X and point CQRLog at the same UDP port for real-time contact delivery.

JTDX integration

JTDX integration works the same way as WSJT-X. Set the log file path to ~/.local/share/JTDX/jtdx_log.adi in CQRLog's settings. If you use both WSJT-X and JTDX, point CQRLog at whichever one you are currently using — or set up two separate monitor paths.

Backup and restore

Your CQRLog database is irreplaceable — back it up regularly. A lost log cannot be recovered from LoTW or eQSL alone.

Built-in backup

Use File → Backup to create a compressed archive of your entire CQRLog database. Store this file in at least two locations — local and cloud storage or an external drive.

Manual database backup

Terminal — backup CQRLog database
# Stop CQRLog first, then backup the database directory cp -r ~/.config/cqrlog/database/ ~/cqrlog-backup-$(date +%Y%m%d)/ # Or create a compressed archive tar czf ~/cqrlog-backup-$(date +%Y%m%d).tar.gz ~/.config/cqrlog/

Automated backup with cron

Terminal — add to crontab
# Run "crontab -e" and add this line: # Backup CQRLog database weekly on Sunday at 2am 0 2 * * 0 tar czf ~/backups/cqrlog-$(date +\%Y\%m\%d).tar.gz ~/.config/cqrlog/

Restore from backup

Terminal — restore from backup
# Close CQRLog first, then: tar xzf ~/cqrlog-backup-20260101.tar.gz -C ~/ # Start CQRLog — it should find the restored database

Troubleshooting common problems

CQRLog won't start — database error

  • CQRLog requires MariaDB to start — check if it is running: sudo systemctl status mariadb
  • Start MariaDB if stopped: sudo systemctl start mariadb
  • Check disk space — MariaDB fails if the filesystem is full: df -h ~
  • Check CQRLog log file for specific error: cat ~/.config/cqrlog/cqrlog.log
  • Delete the lock file if CQRLog crashed: rm ~/.config/cqrlog/database/mysql.sock.lock

Rig control not working

  • Check dialout group: groups | grep dialout
  • Verify serial port exists: ls /dev/ttyUSB*
  • Check baud rate matches radio's CAT baud rate exactly
  • If using rigctld, verify it is running: ps aux | grep rigctld
  • Test Hamlib independently: rigctl -m [model] -r /dev/ttyUSB0 -s [baud] f
  • Check that Fldigi or another application is not already holding the serial port

DX cluster connection fails

  • Test the connection manually: telnet dxspider.co.uk 7300
  • Check firewall rules — some networks block outgoing telnet connections
  • Try a different cluster node from the table above
  • Verify your callsign is entered correctly in DX cluster settings

LoTW upload fails

  • Verify TQSL is installed: which tqsl
  • Check TQSL path in CQRLog Settings → LoTW
  • Test TQSL from terminal: tqsl — it should open without errors
  • Verify your certificate is not expired — open TQSL and check certificate validity
  • Check internet connectivity and that LoTW servers are not down

Callbook lookup not working

  • Check your QRZ or HamQTH credentials in Settings → Callbook
  • QRZ.com XML requires a paid subscription for full data — the free account has limited access
  • Check internet connectivity
  • Try HamQTH as a free alternative to QRZ XML

DXCC counts seem wrong

  • Update the cty.dat file — an outdated country file may misidentify entities
  • Check that LoTW confirmations have been downloaded recently via Awards → LoTW → Download New Confirmations
  • Verify your log entries have correct callsigns — a typo can cause misidentification
  • Run Awards → DXCC → Rebuild Statistics to recalculate from scratch

Frequently asked questions

Is CQRLog free?

Yes — CQRLog is completely free and open-source software released under the GNU GPL license. There are no subscription fees, no premium features, and no limitations. The only potential cost is a QRZ.com XML subscription ($30/year) if you want automatic callsign lookup from QRZ — but HamQTH provides the same service for free.

Can I import logs from other software into CQRLog?

Yes — CQRLog imports standard ADIF files via File → Import → ADIF. This covers logs from virtually any other logging software including Ham Radio Deluxe, Log4OM, DXKeeper, MacLoggerDX, and any other ADIF-compatible logger. CQRLog handles duplicate detection during import — contacts already in your log are identified and can be skipped.

Does CQRLog work with the IC-7300?

Yes — the IC-7300 is one of the most popular radios with CQRLog on Linux. Connect via USB and in CQRLog Settings → TRX Control select Icom IC-7300, set the serial port to /dev/ttyUSB0, and baud rate to 19200. Make sure your user is in the dialout group for serial port access. CQRLog reads frequency and mode from the IC-7300 automatically and fills them in each new log entry.

How do I set up CQRLog for LoTW?

Install TQSL (sudo apt install tqsl), get your LoTW certificate from ARRL, then in CQRLog Settings → LoTW set the TQSL path (usually /usr/bin/tqsl), enter your callsign, select your certificate, and enable automatic upload. CQRLog signs and uploads each contact to LoTW automatically after logging. Download confirmations periodically via Awards → LoTW → Download New Confirmations.

Can CQRLog run multiple logs for different callsigns?

Yes — CQRLog supports multiple logs in the same database installation. Create additional logs via File → New Log and give each one a different name and station configuration. Switch between logs from the File menu. This is useful for operating under a club callsign, /P portable operation, or keeping a separate contest log from your general operating log.

How do I back up my CQRLog database?

Use File → Backup for the built-in backup function, or manually copy the directory at ~/.config/cqrlog/database/ to a safe location. Set up a weekly cron job to automate backups. Store backups in at least two locations — on the local machine is not sufficient since a drive failure would destroy both your log and its backup. Cloud storage or an external drive are essential for a log you cannot afford to lose.

What is the difference between CQRLog and Xlog?

CQRLog is a full-featured logger with DX cluster integration, award tracking, automatic LoTW upload, callbook lookup, and contest support. It requires a MariaDB database and takes 15–30 minutes to configure fully. Xlog is a lightweight logger that does basic QSO recording and ADIF export with no database, no DX cluster, and no award tracking — it installs in under a minute and is ready to use immediately. Choose CQRLog if you chase DXCC and DX awards seriously; choose Xlog for portable operation, field day, or if you just want a simple contact log.


Affiliate Disclosure: As an Amazon Associate, Ham Radio Base earns from qualifying purchases. Some links throughout this website may be affiliate links. If you purchase a product through one of these links, we may earn a commission at no additional cost to you. Your support helps us continue creating free articles, tutorials, reviews, and resources for the amateur radio community. N0TLB © Ham Radio Base - Powered by the Ham CQ DX Community. All rights reserved.

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.