1. Overview and Purpose
ScannerFreakDB is a Python-based database application built to log, organize, and manage radio scanning information. Most off-the-shelf logging tools are either too generic or too rigid, making it difficult for hobbyists and professionals to track detailed frequency data. ScannerFreakDB is designed to fix this by providing a customizable and easy-to-use solution for radio enthusiasts—whether focused on ultralight DXing, UHF monitoring, or general scanning.With ScannerFreakDB, users can quickly store, search, and categorize frequency data, making it a long-term, flexible tool for anyone serious about scanning.
2. Objectives
- Customizable Fields – Include frequency-specific details while supporting further expansion.
- User-Friendly Interface – Simple, intuitive entry and search options for all users. Android compatiable.
- Efficient Data Retrieval – Fast, flexible search and filtering functions.
- Long-Term Usability – Scalable design with no unnecessary complexity.
3. Scope
ScannerFreakDB covers:- A lightweight, local database for managing radio frequency logs.
- Input fields designed specifically for monitoring and scanning.
- A simple GUI for data entry, search, and filtering (time/resources permitting).
- Export functionality for backups, analysis, or sharing.
4. Key Features and Functional Requirements
1. Data Entry Fields
- Covers all required information, such as:
Frequency
Name
Mode (drop down)
CTCSS/DCS,
Group (drop down)
Date,
Notes
Programmed (drop down)
2. User Interface
- Search & Filter – By frequency, date, user, or log type.
- Quick Entry & Edit – Fast adding and updating of records.
- Sorting – By frequency, date, or user for streamlined review.
3. Data Management
- Local Database – Lightweight SQLite (or equivalent) for portability and speed. This syncs between Windows and Android versions automatically.
- Export Options – CSV/JSON for archiving, analysis, or sharing.
- Data Integrity – Validation to reduce errors and duplicates
4. Database Schema
id
Type: INTEGER PRIMARY KEY AUTOINCREMENT
Use: Unique identifier for each record in the database.
Notes: Automatically increments with every new entry.
frequency
Type: REAL
Use: Stores the radio frequency in MHz (e.g., 145.025, 477.425).
Notes: The core field for logging what frequency was observed.
name
Type: TEXT
Use: The name or identifier associated with the frequency.
Examples: Station name, amateur radio callsign, service type (“Police Dispatch”, “Airband”).
mode
Type: TEXT
Use: The modulation mode used on this frequency.
Examples: FM, NFM, AM, SSB.
ctcss_dcs
Type: REAL
Use: Stores sub-audible tone information for squelch access.
Examples: CTCSS tone in Hz (e.g., 123.0), DCS code (sometimes represented as a number like 023).
group_name
Type: TEXT
Use: Logical grouping or category for the frequency.
Examples: Airband, Amateur, Emergency Services, Business.
date
Type: TEXT
Use: Date when the entry was logged or last updated.
Format: Typically stored as a string (e.g., 2025-09-15).
notes
Type: TEXT
Use: Free-text field for extra details.
Examples: Signal strength, language, call signs heard, activity type.
programmed
Type: TEXT
Use: Indicates whether this frequency has been programmed into a scanner or radio.
Examples: Yes, No, Pending.
-----------------------------------------------------------------------------------
Data Entry Screen
Records Screen
Software – ScannerFreakDB
I am an amateur radio operator (HAM) from Launceston Tasmania - VK7AAL. I am also a keen software developer, in both JustBasic and Python.
vk7aal.blogspot.com

Software – ScannerFreakDB
I am an amateur radio operator (HAM) from Launceston Tasmania - VK7AAL. I am also a keen software developer, in both JustBasic and Python.