Uberlogger firmware update v1.3.4

==========================
==	IMPORTANT	==
==========================
This update requires at least v1.0.3 on your board! DO NOT FLASH FROM THE WEB PORTAL IF v1.0.0 IS INSTALLED!

- Fixed: CSV logging at high sample rates (e.g. 8 NTCs at 250 Hz) no longer stops with error 8.
- New live data view: one fast chart with voltages, temperatures and digital inputs, the live value of each channel under the chart, click to pin a moment, "Back to live", and save the chart as an image.
- View CSV log files: open or drop a CSV file on the Live data page to view it in the same chart, also very large files.
- Clearer top bar: logging status, SD card space with an eject button, errors shown in red, and a green/red Start/Stop logging button on every page.
- Dark mode, a redesigned Files page and a reorganised manual.
- Firmware update: the page now checks which firmware runs after the update, and the update files are removed from the SD card afterwards.

==================================
==	How to update 		==
==================================
You should always update the Uberlogger using the web interface if possible.

IMPORTANT: disconnect all sensors and signals from the inputs (AIN / NTC and DIO) before updating. Signals on the inputs can stop the support chip from being updated. If the update page says "Update failed", disconnect the inputs, switch the Uberlogger off and on again and retry.

Go to Configuration > System in the web interface. Click "Update firmware" and follow the instructions

== Update by wire ==
IMPORTANT: updating the Uberlogger by wire will not completely update the Uberlogger. Only use this method in case of bricked devices or when updating is not possible for some reason!

You have to do an update through the web UI yourself using the same files again to complete it.

- For Windows users: unzip the files and execute update_firmware.bat
- For Linux users: unzip the files, make sure the file update_firmware.sh can be executed by using chmod +x ./update_firmware.sh. Then execute the file.

This will show the the following instructions:
- Connect Uberlogger to USB port on your pc and do -not- use a USB hub in between. Turn on the Uberlogger so that the Uberlogger green LED turns on.
- Hold the mode button pressed, and briefly press the reset button while holding. The green LED should turn off. Release all buttons; the green LED should remain off. The logger is now in firmware update mode.
- Press [ENTER] to start flashing, or enter the COM-port to skip the search.
- The updater will search for the correct port, and might try them all. Just have some patience.
- Do not power off the Uberlogger while updating it; this might brick your device.
- After the updater is done, please manually reset the Uberlogger by pressing the reset button.

In case of problems, please contact Uberlogger customer support.


=== Change log ===

v1.3.4

Fixes
- CSV logging at high sample rates no longer stops with error 8 (faulty data
    from the support chip). CSV rows are written to the SD card per batch
    instead of one by one, and number formatting is faster. The files are
    byte-for-byte the same as before.
- Firmware update no longer hangs when the support chip does not respond;
    it stops and restarts the logger instead.
- The update files (ota_*.bin) are removed from the SD card after a
    successful firmware update.
- Deleting a file now reports an error when it fails. File names with
    special characters (e.g. # or spaces) can be downloaded and deleted.
- The firmware version reported by the logger is correct (it could show the
    previous build).

Web interface
- New live data view based on uPlot: one full-width chart with voltages on
    the left axis, temperatures on the right axis and digital inputs as
    lanes below. The live value of each channel is shown under the chart.
    Hover to read values, click to pin a moment, drag or scroll to zoom,
    "Back to live" to follow the newest data. Save the chart as PNG.
- CSV viewer: open or drop a CSV log file to view it in the same chart. The
    file is processed in the browser; gaps in the timestamps are marked.
- Top bar with logger status, SD card capacity bar and eject icon, logger
    time, errors in red, and a Start/Stop logging button on every page.
- Dark mode (follows the system setting, toggle in the top bar).
- Redesigned Files page with folders, sizes and free space.
- Reorganised manual with categories and a working table of contents.
- The firmware update page warns to disconnect the inputs and checks the
    firmware version after the restart.
- Web files are stored compressed, so pages load faster.

v1.3.3

Improvements & fixes
- Live data viewer now displays the configured channel labels
    ("Label (channel)", e.g. Inlet (T1)) in both the value list and the chart
    legend, and refreshes them when you open the live view after renaming.
- Hover a signal on the chart to read its exact value at the cursor; added
    crosshair spikelines to the time and value axes.
- Digital inputs now render their state (0/1) in the value list and on the
    chart (previously they were not shown).
- The Clear button keeps the signal labels visible — the legend no longer
    blanks until the next sample arrives.
- Mobile layout: fixed horizontal overflow that pushed the live chart and
    tables off-screen, and long channel labels now wrap inside the value cards.
- Automatic time synchronization (NTP) now defaults to disabled, matching the
    hotspot-only factory configuration.
- Removed a duplicate "last sync:" prefix in the NTP status label.

v1.3.2

New features
- Automatic time synchronization (NTP) the logger can keep its clock
    correct automatically from an NTP server (default pool.ntp.org) when
    connected as a Wi-Fi client. Configurable server, a "Sync now" button
    and a "last sync" status on the Network tab. The time is stored to the
    on-board real-time clock; if a recording is in progress the corrected
    time is applied once logging stops so an ongoing log is never disrupted.
- Live data viewer improvements selectable live time window
    (1m / 5m / 15m / 1h / All), about 6 hours of per-channel history that is
    stored in the browser and survives page refreshes and switching tabs, a
    Clear button to reset the history, a live/paused indicator and a
    green/red connection dot. Mouse-wheel zoom on the chart.
- Hide hotspot SSID option to stop broadcasting the device's own Wi-Fi
    hotspot name (Network tab).

Improvements & fixes
- Reliable Wi-Fi mode switching changing the Wi-Fi mode and saving now
    restarts the device (about 10 seconds) so the new mode is applied
    cleanly, instead of leaving the web interface unreachable. The page
    reconnects automatically when the device stays at the same address, or
    tells you exactly where to reconnect otherwise.
- "Client mode only" is now fully selectable and saved from the web UI.
- Atomic settings save an invalid value in a save request no longer
    leaves a half-applied configuration; the previous settings are kept.
- Internal stability fix for settings persistence.

v1.3.1

New features
- Wi-Fi "Client mode only" (STA) the logger can join an existing
    Wi-Fi network as a client without running its own hotspot. Selectable
    on the Network tab.
- Longer Wi-Fi client password Wi-Fi client passphrases up to 64
    characters are now supported (full WPA2).

Improvements & fixes
- Full credential reset holding the "mode" button for 5 seconds now
    resets all credentials (Wi-Fi client password, hotspot password and
    web-interface password) and falls back to an open hotspot in every
    Wi-Fi mode. The status LED blinks to confirm the reset.
- Saving settings no longer drops your connection the hotspot is only
    restarted when its channel or password actually changes.
- Web interface stability hardened the HTTP server so a single stalled
    browser connection can no longer make the whole web interface hang;
    it now recovers and the page can be reloaded.
- Removed harmless but confusing GPIO interrupt log messages around
    logging start/stop.

v1.3.0

New features
- Hotspot security secure the device's WiFi access point with
    WPA2/WPA3 password (configurable on the Network tab, leave blank for
    open).
- Web interface login optional username/password protection for the
    web UI (HTTP Basic Auth; username `admin`).
- Redesigned configuration page settings split into 5 tabs —
    Channels, Acquisition, Files, Network, System — for faster navigation.
- Firmware update page dedicated update flow with live progress bars,
    per-file validation, and automatic reconnect after the device reboots.

### Improvements
- Smoother UX around password fields: open/secured mode selector instead
    of the old checkbox pattern.
- Faster, lower-memory live polling
- Quick user manual updated for the new security and firmware features.
- Other minor improvements

v1.2.1
Fix:
- Comma in CSV was not always written correctly when disabling channels.

v1.2.0
New features:
- New logging frequencies: 1 Sample/hour, 1 Sample/10 minutes, 1 Sample/5 minutes, 1 Sample/minute, 1 Sample/10 seconds.
- Averaging function for these new frequencies
- External trigger and external control mode for triggering or controlling the logger using a digital input
- Channels can have custom labels
- Updated user interface styling

v1.1.4
New features:
- Raw logging for reduced data files
- File splitting and naming options
- Channel enabling in log file
- Different separator and decimal separator option in CSV

Changes:
- Different API responses and methods added / changed
- Added options to file splitting and channel enabling

Fixes:
- Temperature printed in correct digits in CSV
- Analog value printed in correct significant number in API getValues endpoint
- Fixed stability issues with HTTP connections

v1.0.3
- Fixes bug where 12 bits CSV files show incorrect values
- Firmware updates through web UI not always working correctly
