MMDVM Display Changelog
=======================

v0.0.2.2
--------
DVSwitch WATCH, dashboard data and SSH controls

- [Added] DVSwitch as an independent WATCH/HEARD source with selectable LIVE and HEARD views, WATCH popup integration and boot-page choices.
- [Added] Configurable DVSwitch Dashboard host/base URL plus last-heard and status paths, with HTML parsing for callsign, mode/timeslot, target/source, duration, loss, BER and the active digital mode.
- [Added] Dedicated DVSwitch Web UI at /app/dvswitch with separate save handling, dashboard endpoints, SSH login, switch-script path and four target-preset slots.
- [Added] Touchscreen DVSwitch mode switching over SSH for DMR, D-STAR, YSF, P25 and NXDN, including confirmation/status feedback and optional sudo handling.
- [Added] Four configurable DVSwitch ACTIONS buttons for saved remote target/tuning commands on the LIVE page.
- [Improved] DVSwitch uses the existing responsive LIVE/HEARD layouts, DMR timeslot handling, callsign/target lookups and detail popups.
- [Improved] Configuration persistence, import/export and desktop config snapshots now include all DVSwitch dashboard, SSH and preset settings.
- [Improved] WATCH/source cycling and startup-page validation fall back safely to MMDVM when DVSwitch is disabled or not configured.

Focus: first-class DVSwitch monitoring and control, including dashboard-backed LIVE/HEARD data, independent Web UI configuration, SSH mode switching and reusable target presets.

v0.0.2.1
--------
Responsive flags/logos, screensaver polish and readable text fixes

- [Added] PNG flag support with /flags and SD-root fallback lookup, including optional _64 assets where larger flag boxes are available.
- [Added] BMP dimension detection and scaled 24-bit BMP drawing so legacy flag BMPs can be centered and fitted into responsive UI areas.
- [Improved] Live panels, country popups, screensaver badges and SVXLink last-heard cards now use responsive flag sizing, centered placement and proper background-aware drawing.
- [Improved] Normal screensaver weather and last-heard badges now use wider centered layouts on the black screensaver background and allow longer target details before clipping.
- [Improved] ADSB airline-logo handling now supports _64 logo assets, responsive logo boxes and centered drawing in aircraft lists, info popups and the ADSB live card.
- [Improved] RadioID lookup names/locations, target-list names, weather summaries/locations and civil-alert toast text are normalized to readable ASCII, including German umlauts and degree symbols.
- [Fixed] WS8048S070C RGB panel pixel clock increased to 15 MHz for improved display timing stability.
- [Fixed] SSH channel write helper now uses a generic channel handle internally for better SSH build compatibility.

Focus: sharper flag and airline-logo rendering across display sizes, cleaner normal screensaver layout, safer readable text from lookups/weather/alerts, and small hardware/build stability fixes.

v0.0.2.0
--------
SD file explorer, screen mirror, safer OTA and desktop/config fixes

- [Added] SD files Web UI at /app/files with a full-width Name / Type / Size browser, folder navigation, refresh/back controls and a selected-item popup.
- [Added] SD file actions for upload, download, create folder, rename and recursive delete, with normalized paths, safe file names and protected config-file deletion checks.
- [Added] Browser text editor for small SD-card text files up to 64 KB, saving through a temporary replacement file before overwriting the original.
- [Added] Optional ZIP upload and extraction support for SD-card packages, including stored/deflated entries, CRC validation, path traversal protection, skip rules, a 512-entry cap and a 32 MB extraction limit.
- [Added] Automatic CYD OTA squeeze mode that disables ZIP extraction on ESP32-2432S028R builds to save flash/RAM while keeping the file manager available.
- [Added] Screen Mirror WATCH source and /app/screen-mirror settings page with configurable WebSocket port, frame size, JPEG size limit and refresh interval.
- [Added] JPEG frame receiving/drawing for Screen Mirror, including status overlay, frame requests and touch forwarding to the active WebSocket sender.
- [Improved] Start-page and WATCH handling so Screen Mirror can be selected like SVXLink, APRS, Weather, HAMQSL and ADSB, with safe fallback if the feature is disabled.
- [Improved] OTA page now shows sketch size/free OTA space, sends the browser file size, validates .bin uploads, checks the ESP32 app-image magic byte and reports size mismatches or missing OTA partition space more clearly.
- [Improved] Weather icon lookup now tries _64, _32, normal and _24 PNG fallbacks, with larger icons and full weekday labels on larger displays where available.
- [Improved] Normal screensaver can show a compact weather badge when Weather is enabled and configured; the existing full Weather screensaver option was renamed to "Use Weather for Screensaver".
- [Fixed] CYD/ESP32 DRAM-saver builds allocate heard-record lists from heap instead of .bss, helping builds with SSH stay within DRAM limits.
- [Fixed] Desktop configuration saving now writes a full config snapshot, including Wi-Fi profiles, theme, quick actions, alerts, target lists, weather, Screen Mirror and hardware options.
- [Fixed] Corrected the default color inversion setting for the Waveshare/LCDwiki ESP32-S3 2.8 touch backend.
- [Changed] Sidebar/app routes were simplified: Screen Mirror and SD files were added, while embedded Diagnostics, Device log, FAQ/About and Web UI Changelog pages were removed; this text changelog remains the release-history source.
- [Changed] Version updated to 0.0.2.0 and desktop builds can default to USE_DESKTOP automatically outside Arduino builds.

Focus: browser-based SD-card management, safe text/ZIP package handling, PC-to-display Screen Mirror over WebSocket/JPEG, safer OTA validation/status, more reliable desktop configuration saves, weather/screensaver polish and memory savings for constrained CYD builds.

v0.0.1.9
--------
Alerts Web UI save button, device info boxes and Windows PNG loading

- [Fixed] Alerts Web UI now shows a visible Save alerts option near the top of the page.
- [Added] Device board information to the Web UI status boxes so users can see which display firmware target is installed, for example Device: 2432S028R.
- [Fixed] Fixed PNG load for Windows.

Focus: clearer Alerts configuration saving, visible installed-board information in the Web UI status boxes and Windows PNG loading compatibility.

v0.0.1.8
--------
Alerts, MeteoAlarm, APRS/ADSB radar, responsive UI and CYD stability

- [Added] KATWARN/NINA, NOAA and MeteoAlarm alerts share the structured PREV / CLOSE / NEXT popup with wrapped details and configurable source URLs.
- [Added] MeteoAlarm public Atom feed support plus optional token-ready EDR settings, country-code-to-feed mapping and redirect-safe fetching.
- [Added] APRS Radar station popups with callsign, distance, position, speed/course, altitude, comment/status and path.
- [Added] ADSB Radar aircraft details with the compact popup layout and airline-logo/aircraft-icon box.
- [Improved] MMDVM and SVXLink Heard keep the compact QSO detail popup with country flag so the HEARD page remains quick to browse.
- [Improved] Popup layout, wrapping and font sizing scale across 320×240, 480×320 and 800×480 displays.
- [Added] APRS Area Radius, APRS Radar, OpenWeather forecast/cast page and Weather screensaver support.
- [Fixed] CYD / ESP32-2432S028R build and runtime stability issues including DRAM saver paths, forecast parsing and Wi-Fi retry behavior.

Focus: local alert popups, public MeteoAlarm support without a token, APRS/ADSB detail access, compact HEARD popups, forecast/weather screensaver work, responsive display behavior and CYD stability while staying on version 0.0.1.8.

v0.0.1.7
--------
SVXLink weather GPS, Waveshare SD-card and Wi-Fi profile fixes

- [Added] Added SVXLink GPS coordinates for weather information.
- [Fixed] Fixed the SDCard for Waveshare 7 Inch displays.
- [Fixed] Fixed saved Wi-Fi profiles with SSIDs or passwords containing spaces.

Focus: SVXLink GPS-based weather location support, Waveshare 7-inch SD-card reliability, and safer Wi-Fi profile handling for network names and passwords that contain spaces.

v0.0.1.6
--------
Elecrow ESP32 Display 7.0 Basic support

- [Feature] Added support for ELECROW CrowPanel 7" Basic, 800×480 TN RGB panel with GT911 touch.
- [Added] Added Elecrow Basic RGB pin map, GT911 I2C touch pins, SD-card SPI pins and GPIO2 PWM backlight handling.
- [Fixed] Fixed custom callsign lookup URLs, including plain http:// endpoints and plain-text name responses.

Focus: adding the Elecrow 7-inch ESP32-S3 Basic display and making custom callsign lookup sources work while keeping the existing 800×480 UI layout.

v0.0.1.5
--------
Wi-Fi profiles and WS8048S070C hardware support

- [Added] Added support for up to 5 Wi-Fi profiles.
- [Feature] Initial support for WS8048S070C hardware.
- [Added] APRS icons to APRS Page.
- [Added] Retries per WiFi profile.
- [Removed] Removed “Start Page after boot” from the APRS and SVXLink page.

Focus: saved Wi-Fi profile handling with retry control, WS8048S070C hardware support, APRS page icons, and cleaner APRS/SVXLink page options.

v0.0.1.4
--------
APRS.fi, SVXLink and hardware updates

- [Feature] Initial support for WS8048S043C hardware.
- [Added] APRS.fi as an optional WATCH source that can be enabled or disabled from the Web UI.
- [Added] Configurable Start Page after boot for MMDVM, SVXLink and APRS when SVXLink or APRS is enabled.
- [Added] Application > APRS settings for the APRS.fi API key and refresh interval.
- [Added] APRS lookup from the latest LIVE/last-heard callsign, including coordinates, last seen time, speed, course, altitude, comment/status and path on the display.
- [Added] SVXLink WATCH APRS button. The button is shown only when aprs.fi has data for the current SVXLink callsign and opens a popup with the latest comment/status, path and position fallback.
- [Fixed] SVXLink URL / Dashboard HTML reflector status detection so EchoLink “Not connected” does not override the ReflectorLogic state.
- [Fixed] Dashboard handling where the static HTML can show “No status” while reflector/TG activity proves the reflector is connected.
- [Improved] SVXLink JSON bridge compatibility for reflector status when using display-json.php as the source.
- [Improved] APRS polling safety with cached results, minimum request spacing, failure backoff and a 60-minute wait after aprs.fi rate-limit responses.
- [Fixed] Removed the unused SVXLink API token field from the Web UI and configuration import/export.

Focus: WS8048S043C hardware support, optional APRS.fi lookup with a SVXLink APRS popup button, safer APRS request timing, corrected SVXLink reflector detection for both Dashboard HTML and JSON bridge sources, and cleaner SVXLink settings.

v0.0.1.3
--------
SVXLink, WPSD and target-list update

- [Improved] SVXLink monitor handling and display behavior for the optional WATCH source.
- [Added] Pagination to the SVXLink HEARD screen so older SVXLink entries can be browsed from the touchscreen.
- [Fixed] WPSD mode enable/resume actions by using the Pi-Star/WPSD-compatible mode manager command and Enable/Disable arguments.
- [Improved] WPSD mode toggles to stop/start the matching gateway services around pause/resume actions where possible.
- [Improved] Replaced the old About page with a practical FAQ for setup, Actions and SVXLink.
- [Added] DMR duplex LIVE display support: TS1 and TS2 are shown side-by-side only when both timeslots have recent active traffic; otherwise the original single-panel LIVE style is used.
- [Added] SD-card target-name lookup files for DMR, D-STAR, YSF, P25 and NXDN so talkgroup, reflector and room numbers can show readable names.
- [Added] Target lists Web UI page for saving source URLs and manually downloading/updating lookup files on the SD card.

Focus: clearer help, better SVXLink browsing, more reliable WPSD mode control, smarter DMR duplex LIVE display behavior and optional SD-based target-name lists.

v0.0.1.2
--------
SVXLink monitor and scrolling polish

- [Added] SVXLink Monitor as an experimental live monitor page.
- [Fixed] Network access is now serialized with a recursive mutex to prevent lwIP/FreeRTOS socket crashes when WebServer, HTTP/HTTPS and SSH features overlap.
- [Fixed] HTTP/HTTPS polling now closes sockets more aggressively, including RadioID, weather and Last Heard lookups.
- [Improved] Web UI scrollbars are now hidden while pages and sidebars remain scrollable.
- [Improved] Live page drawLiveInfoPanel status and target values now scroll when too long.
- [Fixed] Enabled WPSD Actions.
- [Improved] Increased the font size for the screensaver target display.
- [Improved] Status and target values stay inside their boxes, and longer text now scrolls.

Focus: experimental SVXLink monitoring, WPSD action fixes, network stability, cleaner browser UI, larger screensaver target text and long-text readability.

v0.0.1.1
--------
Live display readability and target display fixes

- [Improved] Live Info status and target boxes now use the same boxed display style as RX/TX with larger, easier-to-read text.
- [Improved] Removed the internal STATUS and TARGET labels so the live values have more room inside their boxes.
- [Improved] Moved the flag and callsign slightly upward to give the status and target area more room.
- [Improved] RX/TX now displays up to 8 characters instead of 7 and includes a small gap between the RX/TX label and the frequency.
- [Fixed] Fixed TG TG xxx by stripping already-present target prefixes before adding display labels.
- [Improved] Removed the ROOM prefix for YSF/Fusion target display across tabs.
- [Improved] Gave the Heard tab target/DG-ID field more horizontal space.
- [Fixed] Restored the top tab bar on the Info tab.
- [Fixed] Removed the old Info-tab “tap anywhere to go back” behavior so the visible tabs work normally.

Focus: easier live-screen reading, longer RX/TX labels and cleaner target/tab behavior.

v0.0.1.0
--------
CYD ST7789 touch orientation support

- [Added] Separate CYD touch transform settings for ILI9341 and ST7789 panels.
- [Added] Selectable CYD TFT_eSPI controller support for ILI9341 and ST7789 panels.

Focus: CYD panel and touch compatibility plus easier on-device browsing of recent traffic.

v0.0.0.9
--------
Fixes and Improved

- [Improved] Last Heard browsing with paging, filter and sort controls on the device.
- [Fixed] Web UI minor bug fixes.
- [Fixed] Stats fixed for DMR records.

Focus: CYD panel and touch compatibility plus easier on-device browsing of recent traffic.

v0.0.0.8
--------
OTA, logs and quick presets

- [Fixed] OTA Update.
- [Added] Device log.
- [Added] SSH quick action presets for TG, reflector and disconnect commands.

Focus: OTA update reliability, device-side logging and saved remote presets.

v0.0.0.7
--------
Remote control and maintenance tools

- [Added] SSH remote login to control DigiModes.
- [Added] OTA firmware update over Web UI.
- [Added] Diagnostics, About and Changelog to Web UI.

Focus: remote control, browser-based updates and runtime visibility.

v0.0.0.6
--------
Maintenance and UI update

- [Fixed] PNG transparency issues.
- [Added] New set of weather icons.
- [Improved] Touchscreen responsiveness (resolved 300ms delay).
- [Added] Import/Export functionality to the Web UI.

Focus: rendering fixes, better touch response and easier configuration backup/restore.

v0.0.0.5
--------
Weather expansion

- [Added] New weather icons.
- [Added] Weather configuration settings to the Web UI.

Focus: weather visuals and configurable weather support from the browser.

v0.0.0.4
--------
Stability update

- [Fixed] RadioID polling logic.

Focus: more reliable online callsign lookup polling.

v0.0.0.3
--------
Display and backend polish

- [Fixed] WPSD fetching issues.
- [Improved] GUI refresh performance and overall UI tweaks.
- [Added] New screensaver mode.

Focus: better WPSD communication, smoother rendering and improved idle behavior.

v0.0.0.2
--------
Hardware support

- [Feature] Initial support for JC3248W535C hardware.

Focus: bringing the firmware to the JC3248W535C platform.

v0.0.0.1
--------
Project start

- [Added] Initial release.

The first public baseline for the project.
