Photonicat 2 固件 Changelog:修订间差异

来自Photonicat Wiki
跳转到导航 跳转到搜索
C2h2留言 | 贡献
C2h2留言 | 贡献
第82行: 第82行:


=== MCU Changes ===
=== MCU Changes ===
* '''Lss standby power''' — Standby current drops from roughly 2.6 mA to about 1.1 mA, so a charged pack now holds its charge for weeks rather than days when the device is off. Achieved by properly powering down the current monitor, accelerometer and flash, and by making sure the fan actually stops when the main board is off.
* '''Less standby power''' — Standby current drops from roughly 2.6 mA to about 1.1 mA, so a charged pack now holds its charge for weeks rather than days when the device is off. Achieved by properly powering down the current monitor, accelerometer and flash, and by making sure the fan actually stops when the main board is off.
* '''A more accurate battery percentage''' — The fuel gauge has been reworked end to end with temperature compensation, self-learned internal resistance and periodic re-anchoring. The reading no longer jumps (for example 40% to 80% after a firmware update),  survives reboots and firmware updates, and reports true learned capacity and cycle count. Behaviour is now much closer to a phone's.
* '''A more accurate battery percentage''' — The fuel gauge has been reworked end to end with temperature compensation, self-learned internal resistance and periodic re-anchoring. The reading no longer jumps (for example 40% to 80% after a firmware update),  survives reboots and firmware updates, and reports true learned capacity and cycle count. Behaviour is now much closer to a phone's.
* '''New LED behaviour''' — MacBook-style indicator: the colour tells you the charge state and the motion tells you what the device is doing, with smooth gamma-corrected breathing while charging and a continuous red flash when the battery is low. Several cases of a false pure-red flash at power-on or when the pack was full have been fixed.
* '''New LED behaviour''' — MacBook-style indicator: the colour tells you the charge state and the motion tells you what the device is doing, with smooth gamma-corrected breathing while charging and a continuous red flash when the battery is low. Several cases of a false pure-red flash at power-on or when the pack was full have been fixed.
* '''Raise-to-wake improved''' — Rebuilt as a proper gesture detection, similar to a phone. It no longer wakes by itself when the device is stood upright and left alone, and it responds faster when you do pick it up.
* '''Raise-to-wake improved''' — Rebuilt as a proper gesture detection, similar to a phone. It no longer wakes by itself when the device is stood upright and left alone, and it responds faster when you do pick it up.
* '''Stability and power-on speed''' — Fixed the random freeze after extended running and the rarer permanent lockup that could only be cleared by removing the battery. Power-on is quicker because the main board is powered as soon as the button has been held 200 ms, overlapping with the long-press window. Beeper timing is corrected, including the charger-plugged beep that could arrive 40–50 s late, and reset and update operations now play a short confirmation melody.
* '''Stability and power-on speed''' — Fixed the random freeze after extended running and the rarer permanent lockup that could only be cleared by removing the battery. Power-on is quicker because the main board is powered as soon as the button has been held 200 ms, overlapping with the long-press window. Beeper timing is corrected, including the charger-plugged beep that could arrive 40–50 s late, and reset and update operations now play a short confirmation melody.

2026年7月29日 (三) 18:20的版本

2025-08-22

  • initial release

2025-09-19 r7612

  • Simplified multi-WAN routing, disabled mwan3.
  • Built-in Docker packages by default.
  • Bumped kernel version to 6.12.45.
  • Applied PCIe patches from upstream.
  • Added USB hub reset timing and watchdog.
  • Status LED and beeper can be disabled by the user.
  • Improved mini display performance.
  • Added LED, beeper, and fan control with over-temperature protection algorithm.
  • Simplified network WAN interface selection: auto, eth_only, cell_only, all_off.
  • Added /update management interface.
  • MCU: Optimized coulomb counting algorithm.
  • MCU: Fixed occasional issue where charging indicator light did not display.

2025-12-12 r7618

  • Improved bootup speed by removing unnecessary network resets.
  • Updated OpenWrt netifd to improve NFA765 wifi module compatibility.
  • Improved fan control strategy and overall thermal behavior.
  • Improved intelligent fan speed adjustment logic. smart_quiet, smart_cool, manual.
  • Fixed UI crash when network mode was set to Cellular Only.
  • Fixed an issue where 4G/5G band information was not displayed in the UI.
  • Fixed missing information in the with some 5G module information page.
  • Fixed 5G Signal not displaying error.
  • Fixed the Remember Me login option not working after a system restart.

2026-03-06 r7660

  • Kernel & system updates — Updated kernel to 6.12.74, mac80211 to 6.12.61, python3 to 3.13.9 with related packages (PAM-based auth replacing deprecated spwd), and system version to 26.04, fixed several CVEs.
  • Fibocom FM350-GL 5G modem support — Full support including signal strength, temperature monitoring, IMEI, carrier/operator display, serving cell info, roaming preference, 4G/5G network mode and band selection, WWAN power off toggle via rfkill, network stats tracking, and hex-encoded operator name decoding.
  • SMS reliability — Switched to PDU mode for all modems, fixed FM350-GL serial port handling, prompt detection, and response timeouts.
  • Web terminal — Added web-based terminal (/terminal) with persistent PTY sessions, fullscreen toggle, disconnect/reconnect, JetBrains Mono font, and mobile viewport optimization.
  • Direct Power Mode & TCP BBR v3 — Added power-on mode options for battery-free and quick-response applications (auto power-on when adapter connected, no battery required). Added TCP BBR v3 support with congestion control configuration in General Settings.
  • Battery history & power event logging — Battery history chart with SQLite storage, fixed voltage scale, area fill, watt display, and power on/off event timeline. Persistent power event logging with voltage, current, SOC data, and DC plug/unplug tracking.
  • Idle & low battery shutdown — Live idle shutdown countdown timer, low battery shutdown support, WiFi client idle monitoring (OR mode), battery-only auto-shutdown option, and 2% SOC tolerance for SOC estimation jumps.
  • General Settings & timer page redesign — New General Settings page with language, timezone, hostname, and LuCI sync. Redesigned timer page with modern split-panel layout, compact full-width panes, and clarified Car/UPS mode descriptions.
  • Dashboard & header improvements — Active WAN shown first, public IPv6 detection, modem temperature display, 5G/4G indicator in network icon row, status-aware rendering, gateway underline, and optimized mobile header layout.
  • Performance & UI/UX polish — Native Python ubus/uci wrappers, non-blocking IO caching, CPU powersave disabling big cores (A72), 3-month static asset caching, temperature and wattage charts, tab state preserved across refresh, single-language notifications, improved icons, Wiki and Community footer buttons, smart phone formatting, and verbose firmware upgrade progress.

2026-06-15 r7714

  • Kernel & system updates — Updated kernel to 6.12.91, fixed some recent critical security problems. Updated mac80211 to 6.18.26. fixed several CVEs.
  • OpenWRT base system - Updated base system and LuCI to 25.12. Added IEEE80211.BE support (Allow to enable 6GHz channels on QCNCM865 and MT7925).
  • Smart WAN (WiFi-as-WAN) — New Smart WAN mode turns the onboard radio into an upstream WiFi client with automatic Ethernet → WiFi → Cellular failover. Phone-like auto-reconnect to known upstream WiFi, robust scan-device resolution, and a confirmation dialog before switching. The disabled STA radio is shown correctly with a dedicated "WAN (WiFi)" status.
  • WiFi 7 (802.11be) & WPA3 — Added WiFi 7 (BE) and WPA3-SAE support for PCIe cards, with correct htmode/channel handling for 5GHz BE and 6GHz BE, PCIe card-name detection, and normalized encryption values in the UI.
  • Dashboard & header improvements — Active egress is now highlighted live (only the active WAN row lights up); exposes WiFisignal, active egress, and network mode; status-aware network icons with gateway underline, accurate WAN underline, red-cross for disabled links, and tooltips. Added public IPv6 / public-IP aliases.
  • Battery & charge control — Added a battery charge-limit slider (80–100%) on the Device Control page, made charge-limit the single source of truth, fixed the battery icon to show the true charge percentage, and robustly default to 100% when never set.
  • Screen visual editor — New Figma-style visual layout editor for the device display, merged with the JSON view into a single Editor tab. Add/remove pages, per-element position reset, center & snap tools, reset-layout, live JSON diff, label/data-key canvas toggle, and a coordinate fix mapping editor coords to the device content region. Fixed the graph element type rendering on device.
  • Screen custom data sources — Added custom metrics (command / uci / env / json_file / HTTPS) in the editor with on-device examples, one-click Save & Restart, live value preview on Refresh, duplicate-key warnings, clearer data_key guidance, Gold/AAPL examples via the official Photonicat market API, and flicker-free live preview.
  • Device Control & network modes — Reordered network modes with composite WAN icons; consolidated the charge-limit setting onto the Device Control page.
  • FM350-GL roaming — Enabled automatic roaming via AT+COPS=0 and hid the unenforceable "no roaming" option; fixed band selection being overwritten by polling refresh; removed the USB 3.12 10Gbps option that caused LAN/WAN failures.
  • Security hardening — Added a socketio_auth_required decorator for WebSocket endpoints, added auth to /switch_locale and low-battery-shutdown routes, and removed unused/over-permissioned API endpoints.
  • Performance — Reduced idle CPU usage (file-only logging by default, fewer select wakeups and uci forks), cached data_stats.json and aligned dashboard caching to the display poll, dropped a no-op screen thread, and read WWAN rfkill state directly from sysfs.
  • Mini-display performance — Major CPU reduction on the display loop (static-page CPU ~3.2% → ~1.4%, roughly 55% less): skip re-render/SPI blit on unchanged frames via a data-epoch gate, byte-compare before transferring pixels, and halve polling cadences. Fonts (incl. the ~37MB CJK collection) are now parsed once and cached/preloaded, and network lookups (wireless SSID, iwinfo client enumeration, public IP) are cached to cut process forks (~3.8/s → ~1.7/s).

2026-06-16 r7715

  • Mini-display SPI clock reliability — Lowered the display SPI clock from 120 MHz to 50 MHz to eliminate visual glitches or display problems at the higher rate; the conservative timing trades a negligible refresh-latency increase for a stable, artifact-free image.
  • Serial-number validation fix — Valid device serials were incorrectly shown as (invalid) on-device because the signature check depended on the cryptography module, which is not installed on the target OpenWrt image.

2026-06-23 r7720

  • OpenWRT base system — Updated routing and telephony packages to OpenWRT 25.12 branch. Switch default firewall to fw4.

2026-07-29 r7800

  • Boot time cut by 59% — 17.4 s → 7.2 s — A full reboot cycle is now 16.6 s instead of 28.0 s. The largest single cause was a phantom storage entry left in fstab, which made every unit wait each boot for an external disk that was never fitted. Also: root filesystem recompressed from xz to zstd, squashfs re-tuned to 256 KiB blocks with direct reads, U-Boot no longer scans USB and the network looking for something to boot from, the boot logo is painted in a single SPI transfer instead of 110,080 one-byte ones, and the failsafe window is 300 ms instead of 1 s.
  • Optional services now ship idle — Docker, Samba, collectd, aria2, nlbwmon, watchcat, frp, filebrowser, rclone, adbyby, OpenAppFilter, Tailscale and ZeroTier are still installed but no longer start on their own (73 → 59 running services). Enable any of them with one click in System → Startup. vnstat and the web terminal are deliberately left running.
  • WAN priority table replaces Smart WAN mode — The Smart WAN switch introduced in r7714 has been folded into a single metric-based priority table that lists every enabled uplink — Ethernet, upstream WiFi, PPPoE and Cellular — in a fixed slot order, and simply falls back down the list. This replaces mwan3 entirely. Wired WAN now fails over immediately on carrier loss rather than waiting for a probe to time out, and PPPoE is correctly reported as the active egress.
  • Upstream WiFi (WiFi-as-WAN) — Joins the stronger band automatically when the same SSID is broadcast on both 2.4 and 5 GHz; roams to a saved network that comes back into range while still associated; rejoins known networks faster after roaming away; correctly reports live association and standby state with per-radio icons; and stops scanning so aggressively when no saved network is nearby.
  • New /dev diagnostics page — A live 3D model of the device driven by the built-in G-sensor, with guided orientation calibration; a 2S2P 18650 pack diagram showing per-stage voltages; the MCU fuel-gauge log; and a modem dial log viewer.
  • New /buzzer page — Tone tests and MIDI playback for the internal beeper.
  • Fibocom FM350-GL 5G modem — The dialer has been rewritten from Python to native C for reliability. It now honours the network-mode preference set in the web UI, correctly locks to 4G when asked and climbs back to 5G when available, falls back from 5G to LTE if a 5G dial fails, and watches the data plane to catch a connection that is up but not passing traffic. Fixed a case where a 4G-only SIM caused the modem to power-cycle forever, and another where automatic mode was reported as 5G when it was not. Modem firmware version is now displayed, with a firmware-update dialog.
  • Modem dial log — The last 16 MB of modem dialling activity is kept in memory and viewable from the web UI, so an intermittent connection problem can be diagnosed after the fact.
  • Battery charge limit — 1% resolution slider, synchronised to the MCU with debounced saves and re-read live so the UI always reflects what the hardware is actually enforcing. The limit now survives an MCU restart.
  • Firmware and MCU update flow — Version dropdowns with per-version changelogs and downgrade support, MCU and firmware updates can no longer run at the same time, no update is offered when the installed MCU is newer than the server's, and OTA now defaults to sysupgrade -c -p with the individual flags exposed as tick boxes.
  • PhotonDNS — A new high-performance DNS forwarder written in Rust: sharded LRU cache, serve-stale, prefetching, cache persistence, UDP/TCP/DoT/DoH upstreams and hedged-racing failover with per-upstream health tracking, plus China-list and ad-list helpers. Installed with its own LuCI page but disabled by default.
  • Security hardening — CSRF is now enforced, the LuCI password is no longer leaked to the page, all API routes require authentication, state changes are POST-only, developer endpoints are gated, an open-redirect was closed, and Remember Me now uses proper SQLite-backed tokens.
  • Captive portal — One-tap accept, portal URLs that work without DNS, branded error pages, serialised enable/disable so rapid toggling cannot leave it half-configured, and failures are now surfaced instead of silently ignored.
  • Lower idle CPU and less flash wear — Heavy modem AT queries only run when the modem page is open, usage statistics are batched to flash with retention and indexing, PMU settings poll every 60 s instead of continuously, public-IP probes back off, and hidden browser tabs stop polling altogether.
  • Mini display — New cat wake-up boot animation. Per-page refresh rates (2 Hz on the clock and CPU pages, 1 Hz while pinging) instead of one fixed rate. Per-core CPU bars, a memory bar with the value inside it, and per-disk usage bars. Scrolling SSID ticker. iStat-style bar styling with supersampled anti-aliasing and softer text. Battery remaining-time slot and a WAN mode line. True physical-zero backlight when brightness is set to 0. Configurable public-IP lookup. Standby when the upstream link is not associated.
  • WiFi fixes — Fixed the intermittent failure where the access point came up but did not broadcast its SSID after boot. Fixed WLAN-enabled detection under the new OpenWrt, where a radio only works if both the interface and the device are enabled. Added a reset WiFi to defaults button to recover from a bad configuration.
  • eMMC compatibility — Internal storage is now pinned to HS200 at 52 MHz in both the bootloader and the kernel, matching the two and eliminating a class of intermittent storage errors.
  • Assorted fixes — CPU powersave setting now persists across reboot; manual fan speed survives a page refresh; the battery correctly shows as discharging while powering an external device over USB Type-C; PPPoE keepalive relaxed to 5 5 to stop spurious drops; irqbalance removed in favour of static Ethernet IRQ pinning after it was found parking both NIC interrupts on the same core; missing English strings added; Alpine.js updated to 3.15.12.

MCU Changes

  • Less standby power — Standby current drops from roughly 2.6 mA to about 1.1 mA, so a charged pack now holds its charge for weeks rather than days when the device is off. Achieved by properly powering down the current monitor, accelerometer and flash, and by making sure the fan actually stops when the main board is off.
  • A more accurate battery percentage — The fuel gauge has been reworked end to end with temperature compensation, self-learned internal resistance and periodic re-anchoring. The reading no longer jumps (for example 40% to 80% after a firmware update), survives reboots and firmware updates, and reports true learned capacity and cycle count. Behaviour is now much closer to a phone's.
  • New LED behaviour — MacBook-style indicator: the colour tells you the charge state and the motion tells you what the device is doing, with smooth gamma-corrected breathing while charging and a continuous red flash when the battery is low. Several cases of a false pure-red flash at power-on or when the pack was full have been fixed.
  • Raise-to-wake improved — Rebuilt as a proper gesture detection, similar to a phone. It no longer wakes by itself when the device is stood upright and left alone, and it responds faster when you do pick it up.
  • Stability and power-on speed — Fixed the random freeze after extended running and the rarer permanent lockup that could only be cleared by removing the battery. Power-on is quicker because the main board is powered as soon as the button has been held 200 ms, overlapping with the long-press window. Beeper timing is corrected, including the charger-plugged beep that could arrive 40–50 s late, and reset and update operations now play a short confirmation melody.