Digital Command Center 0.8.1 - Development Release - by KM4SPL
WINDOWS PORTABLE EDITION

No installation or paid subscription is required to use this development release.

FIRST START
1. Download Digital-Command-Center-Windows.zip from https://km4spl.com/projects/.
2. Verify the ZIP against the SHA-256 checksum linked on that page.
3. Before extracting: right-click the ZIP > Properties. If Windows shows an
   Unblock checkbox, select it, click Apply, then OK. Only do this for the
   download you verified and trust. This does not turn off Windows security.
4. Choose Extract All and extract into a new folder on your local drive.
   Do not run the app from inside the ZIP or a network share.
5. Open the extracted folder and run DigitalCommandCenter.exe.
   Keep the entire _internal folder beside the executable.

If you already extracted the ZIP before step 3, close the app and extract
the unblocked ZIP into a new folder. Merely unblocking the EXE may not fix
blocked DLL files. A Python.Runtime.Loader.Initialize error can result from
Windows blocking the downloaded .NET bridge DLL.

REQUIREMENTS
Windows 10/11 x64, Microsoft .NET Framework 4.7.2 or newer, and Microsoft Edge
WebView2 Runtime. Python is included; you do not need to install Python.
Microsoft downloads:
https://dotnet.microsoft.com/download/dotnet-framework
https://developer.microsoft.com/microsoft-edge/webview2

OPEN IT EASILY
Move the complete extracted folder somewhere permanent on your local drive.
Right-click DigitalCommandCenter.exe > Show more options > Send to >
Desktop (create shortcut). Move a shortcut, not the EXE by itself.

RADIO SETUP
This development release starts receive-only. Hardware transmit is locked.
Configure your callsign, grid, radio connection and audio input in Settings.
WSJT-X is required for FT8/FT4/WSPR decoding; JS8Call for JS8; fldigi for
PSK31/RTTY. These decoder applications and Hamlib are separate downloads.
See RADIO_SETUP.md and DIGITAL_MODES.md for details.

IF THE APP DOES NOT OPEN
- Close any other copy first. Only one copy can use local port 8088.
- Keep _internal beside the EXE and extract every file from the ZIP.
- Check the Windows prerequisite downloads above.
- Read %LOCALAPPDATA%\DigitalCommandCenter\digital-command-center.log.
- If the app is running but the window is unavailable, try the local page:
  http://127.0.0.1:8088/
- This release is unsigned. Windows may still show a publisher or SmartScreen
  warning. Portable packaging does not remove that warning.

UPDATES AND YOUR DATA
Settings > Profiles now saves station identities and separate operators to
the local station database. Choose Use selected operator to switch operators.
Settings > System offers Export settings and Import settings. Import shows
a preview and requires confirmation; a pre-import database backup is kept in
%LOCALAPPDATA%\DigitalCommandCenter\data\settings-backups\.
These backups transfer profiles, operators and preferences, not machine-specific
radio/audio connections, passwords, decoder paths, or transmit authorization.
Contacts are transferred separately with the dashboard's ADIF import/export.

Check Settings > System > App updates and downloads for published releases.
Close DCC before running a newer copy. Extract new releases into new folders;
do not mix old and new _internal files.
Station settings, logs and browser storage are stored separately at:
%LOCALAPPDATA%\DigitalCommandCenter\
Back up that folder while DCC is closed. Removing the extracted app folder
does not remove your station data. Portable and installed copies on the same
Windows account share that data; they are not separate station profiles.

Help: https://km4spl.com/projects/help/
Feedback: https://km4spl.com/feedback/

PRIVATE REMOTE ACCESS (TAILSCALE)
Install Tailscale on the radio computer and remote device; sign into the same user.
In local DCC: Settings > System > Private remote access > Enable.
If Tailscale requires HTTPS permissions, complete that setup and try again.
Copy the private HTTPS address and test it from the second Tailscale device.
Remote browsers begin monitoring. When allowed locally, Claim receive control
enables frequency and radio-mode changes. Only one browser holds the 60-second
renewable lease. A local frequency/mode change releases remote control.

DCC uses private Tailscale Serve HTTPS port 8443 and loopback gateway port 8089.
It never enables public Funnel and preserves unrelated Tailscale services.
Only the station owner's signed-in Tailscale identity is accepted. Tagged devices
are not supported. Your Tailscale network policy must also permit the connection.
Hardware setup, credentials, imports/exports and updates remain local.
Transmit/tune remain locked. Remote audio listening is not included; the remote
dashboard provides waterfall, decoded activity and receive controls.
Keep DCC and the station computer running and awake. Closing DCC closes access.
Disable remote access locally to close the gateway and remove DCC's mapping.
No automatic Windows startup is configured.

ADVANCED STATION SERVER MODE
Windows: DigitalCommandCenter.exe --server
Runs without the native window. Manage locally at http://127.0.0.1:8088/.
Use Windows Task Manager to end the windowless server when finished.
Do not start a second DCC copy while a server instance is running.
Linux/Pi source: python run.py --server --port 8088
Keep its terminal open; Ctrl+C stops the server. Source dependencies still apply.
Test access from a second Tailscale device before relying on remote use.

WINDOWS USB RADIO CONNECTIONS
Install the official Windows x64 Hamlib package separately:
https://github.com/Hamlib/Hamlib/releases/tag/4.7.2
DCC detects rigctl/rigctld on PATH or under Program Files\hamlib*\bin.
Advanced users may set FT8_RIGCTL and FT8_RIGCTLD to the executable paths.
In Settings > Audio, open radio setup, select Icom IC-705, its CAT COM port
and USB receive audio input. Verify CI-V and baud settings match the radio.
DCC starts its own loopback-only, receive-only Hamlib process with PTT disabled.
It saves successful connections, retries if its Hamlib process exits, and
provides an explicit Disconnect action. USB audio capture retries on reconnect.
Hardware transmit and tune remain locked. No physical IC-705 has been tested yet.

QRZ LOGBOOK
Settings > Logging accepts your QRZ Logbook API key (not your QRZ password).
Select a saved user callsign for the current station. Test QRZ access, then click
Save QRZ settings. A green Accepted / Saved badge shows the last successful check.
Saved keys reload after DCC closes and are protected by Windows DPAPI encryption.
Each station profile, station callsign and user callsign has its own saved setup.
Use Profiles to set station callsigns and add users. Saved credentials are tied
to this Windows account and excluded from exported settings JSON/SQLite backups.
Test access, development release this station's contacts, then explicitly upload a batch of up to 10.
Uploads require a QRZ subscription and complete ADIF station/date/time/band/mode.
Successful contacts are recorded locally. Lost responses are held as uncertain;
check the correct QRZ logbook and use the review actions before retrying.
DCC never sends a REPLACE option and never uploads contacts automatically.
ADIF export remains available for manual upload without the API integration.

ARRL FIELD DAY
Settings > Contest now provides saved Field Day entries and manual contact logging.
Create an entry with callsign, class, section, operating period and power source.
Practice is selected by default and keeps contacts out of the general/QRZ log.
For actual logs, verify the operating period and published rules for the event year.
Phone/CW/digital duplicate checks, QSO points and power multipliers are calculated.
Bonuses are entered manually after checking eligibility and supporting proof.
Export ADIF, CSV, and an entry score/dupe sheet. Submit the official ARRL entry
form and bonus documentation separately; DCC does not submit anything to ARRL.
GOTA, satellite contacts, N3FJP and automatic decoder contest logging are pending.
