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.
- What is CQRLog and who it is for
- Installation on Ubuntu and Debian
- Database setup and first launch
- Station configuration
- Rig control with Hamlib and rigctld
- DX cluster integration
- Callbook lookup — QRZ and HamQTH
- Operating guide — logging contacts efficiently
- LoTW setup and automatic upload
- eQSL configuration
- DXCC, WAZ and award tracking
- Contest logging in CQRLog
- Integration with Fldigi and WSJT-X
- Backup and restore
- Troubleshooting common problems
- Frequently asked questions
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.
Installation on Ubuntu and Debian
Ubuntu 22.04, 24.04 and Debian 11, 12
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:
wget https://github.com/ok2cqr/cqrlog/releases/latest/download/cqrlog_amd64.deb
sudo apt install ./cqrlog_amd64.deb
Build from source
sudo apt install git fpc lazarus mariadb-server \
libhamlib-dev libssl-dev
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
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
- Launch CQRLog from your application menu or run
cqrlogin a terminal - On first run CQRLog checks for the database and prompts to create it — click Create
- CQRLog starts the embedded MariaDB instance and creates the logging database
- The New Log wizard opens — enter a log name (your callsign is common) and your station details
- 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.
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:
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
- Go to Settings → TRX Control
- Select your rig model from the Rig dropdown
- Set the Device to your serial port — usually
/dev/ttyUSB0 - Set the Baud Rate to match your radio's CAT baud rate
- 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:
# -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
sudo usermod -a -G dialout
# Log out and back in, then verify:
groups | grep dialout
Hamlib model numbers for popular radios
| Radio | Hamlib model | Baud rate | Notes |
|---|---|---|---|
| Icom IC-7300 | 3073 | 19200 | Built-in USB audio — most popular for Linux |
| Icom IC-7610 | 3078 | 19200 | Dual receiver, excellent for SO2R |
| Icom IC-705 | 3085 | 19200 | QRP portable with built-in USB |
| Icom IC-9700 | 3081 | 19200 | VHF/UHF/satellite |
| Yaesu FT-991A | 1035 | 38400 | All-band including VHF/UHF |
| Yaesu FTDX-10 | 1050 | 38400 | SDR-based HF rig |
| Yaesu FTDX-101D | 1057 | 38400 | High-end HF transceiver |
| Kenwood TS-890S | 2044 | 115200 | High-end with roofing filters |
| Kenwood TS-590SG | 2033 | 115200 | Popular mid-range HF rig |
| Elecraft K3/K3S | 2029 | 38400 | High-performance HF rig |
| Elecraft KX3 | 2031 | 38400 | QRP 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
| Cluster | Address | Port | Coverage |
|---|---|---|---|
| DX Spider (worldwide) | dxspider.co.uk | 7300 | Global aggregator |
| AR-Cluster | wa9pie.net | 23 | North America |
| CC Cluster | df2mz.de | 8000 | Europe |
| VE7CC | cc.ve7cc.net | 23 | North America, filtered |
| DX Summit | dxsummit.fi | 7300 | Europe/global |
| RBN (Reverse Beacon) | telnet.reversebeacon.net | 7000 | CW 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:
# 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
- Enter the callsign in the Callsign field and press Tab
- CQRLog resolves the DXCC entity, CQ zone, and ITU zone automatically from cty.dat
- If callbook is configured, name and QTH fill in automatically
- The Band and Mode fields fill from rig control if active
- Enter RST sent and received — default is 59/59 for phone, 599/599 for CW and digital
- Add any notes in the QSL field if needed
- 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:
- Click the spot — CQRLog sends the frequency to your radio via rig control
- The radio tunes to the spotted frequency automatically
- Listen and work the station if the propagation is there
- 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
sudo apt install tqsl
Getting your LoTW certificate
- Register at lotw.arrl.org if you have not already
- Open TQSL and go to File → Request New Station Location
- Enter your callsign — ARRL verifies your license and issues a certificate by post
- When the certificate arrives by email open TQSL and install it via File → Load Certificate from File
- Create a Station Location in TQSL for each callsign/location combination you operate from
Configuring LoTW in CQRLog
- Go to Settings → LoTW
- Set the TQSL binary path — usually
/usr/bin/tqsl - Enter your LoTW callsign
- Select your certificate from the dropdown
- 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.
eQSL configuration
eQSL.cc is a free electronic QSL system popular among digital mode operators. Configure it under Settings → eQSL.
Setup
- Register at eqsl.cc (free)
- In CQRLog Settings → eQSL enter your eQSL username and password
- Enable Upload QSOs to eQSL after logging for automatic upload
- 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
- Create a new log via File → New Log
- Give it a descriptive name — "CQWW-SSB-2026" for example
- In the log settings enable contest mode and select the contest type
- 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:
- In CQRLog go to Settings → TRX Control → Fldigi
- Enable the Fldigi connection on port 7362
- 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:
- In CQRLog go to Settings → Log → WSJT-X log file
- Set the path to
~/.local/share/WSJT-X/wsjtx_log.adi - 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
# 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
# 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
# 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.