Skip to content

Releases: strulock/m550-analyzer

v0.10.9

Choose a tag to compare

@github-actions github-actions released this 01 Nov 04:55
31194c6

Drive health, and the fixes from the review of 31 Oct (#135–#143).

  • Health tab: the logger page's new Health tab scores each warm drive's channels (fueling, ignition and knock, temperatures and oil, boost, misfires, electrical) against the channel's own last ten healthy drives, cell by RPM and load, as a heatmap with a drill-down to the trend, the cells and the raw log. The trend shows the channel's own units, a tick per drive and a line per day. drive_health in MCP lists the newest drives first and never more than a reply holds.
  • App, batching and sync: one unanswered batch no longer turns a DME's batched reads off for the session; a timeout rests them 30 s. A cloud secret saved on another PC reads as empty and asks to be entered again, rather than stopping Settings and sync. Unexpected sync errors are shown and the sync carries on; History's scan shows its errors instead of hanging.
  • App, gateway refusals: a module the gateway turns away (0x0045 just after ignition-on) rests like a silent one instead of ending a watch or forcing a reconnect. While logging, only a connection error reconnects.
  • App, saves: every save writes its own temporary file, so two History scans at once can't collide, and a failed write leaves nothing behind.
  • Worker: the board's token is pinned and limited to what the board needs; firmware is published only by a person's login or a listed token. Uploads and the logger page read much less (series pieces keep their first and last values; Health rescoring runs from the changed drive on). The "Never changed" and "Only goes up" filters leave out what the board, tanks, fault dates and Health read.
  • Firmware: an update is kept only once it checks in; a power cut can no longer leave an upload, a .done or channels.csv stuck for good; a check-in reply can't change the Worker host; held check-ins live in PSRAM, away from the memory TLS needs.

v0.10.8

Choose a tag to compare

@github-actions github-actions released this 30 Oct 18:41
5dda014

Fault dates, Wi-Fi diagnosis and sturdier saves (#127–#133). Firmware 20261030-1836-a0ef298, published for over-the-air updates.

  • Saves: the app's settings, cloud state, history and map saves are tried again for half a second while Windows (a scanner or the indexer) holds the file, instead of failing "Access is denied".
  • Fault dates: the head unit's and gateway's snapshots are now read through to the odometer; drive odometers that can't be right are left out of the dating, and a fault older than the drives reads "by" the first one.
  • Fault list: codes from modules past the DSC (cut off by the board's check-in) are filled in from fault history, so their dates show again.
  • Wi-Fi: the board says why Wi-Fi wouldn't join (missing network, wrong password) and the logger page shows it; offline check-ins carry the fault codes only when they change.
  • Value filters: "Never changed" and "Only goes up" on the logger page, and values for logger_channels and logger_set_tiers.
  • Review fixes: logger_publish with no name and a malformed logger_set_tiers range are refused; the TLS memory check and handshake can't race; a trial firmware is proved only with Wi-Fi or the car's link up; provision.py sends a line at a time.

v0.10.7

Choose a tag to compare

@strulock strulock released this 29 Oct 07:14
b0db4ab

Fixes from the code review of 29 Oct (#123), and a tidier logger page (#122). Firmware 0.10.7, published for over-the-air updates and flashed.

  • Firmware publishing: the Worker refuses firmware from the board's own Access token, and any direct write to the firmware's storage, so a token taken from a board can't put code on it. publish_firmware.py publishes with the app's token (Settings > Cloud).
  • Uploads: a file the Worker refuses or fails on is skipped, and the files behind it still go; one that keeps failing is retried every couple of minutes instead of every 15 s.
  • Card errors: a drive file's retry after a failed write can no longer leave it out of step for the rest of the drive.
  • Board settings: a Wi-Fi change to the network the board is on is tried before it's kept; two changes made close together no longer lose one.
  • Logger page: Tanks, the channel sweep and Board settings fold away, with their state beside each heading; Board settings is at the bottom.

🤖 Generated with Claude Code

v0.10.6

Choose a tag to compare

@strulock strulock released this 29 Oct 06:54
023eb27

Firmware 0.10.6, published for over-the-air updates and flashed (#120, #121).

  • The logger board's setup page answers only over its own access point. Once the board is set up, the page no longer offers or accepts the Worker host or the Access token; those change over USB, or the token from the logger page. Before, a board that had opened its access point at boot could be pointed at another host from the home network, which would have handed that host its token.
  • Values in the setup form escape quotes.

🤖 Generated with Claude Code

v0.10.5

Choose a tag to compare

@strulock strulock released this 29 Oct 06:38
6bc04b9

The logger board's settings move out of the firmware (#118, #119); firmware 0.10.5, published for over-the-air updates and flashed.

  • The board keeps its Wi-Fi networks, setup access point password, Worker, Access token and time zone in its flash. A release builds without logger_secrets.h, and the image published to R2 holds no secrets.
  • Set once over USB with firmware/tools/provision.py --usb COM4, or from the board's access point page (http://192.168.4.1/) when it knows no network.
  • Changed afterwards from the logger page's Board settings (your Access login only): the board takes the change at its next check-in. A new token is tried before it's kept, so a wrong one can't lock the board out. No password is ever shown back.

Updating a board from 0.10.4 or earlier over the air: set it up with provision.py first, or it comes up without its Wi-Fi and token.

🤖 Generated with Claude Code

v0.10.4

Choose a tag to compare

@strulock strulock released this 29 Oct 06:11
eb54f37

The logger list of 29 Oct (#116); firmware 0.10.4, published for over-the-air updates and flashed.

  • Uploads: the check-ins report the uploads tried and failed this boot, the last failure and how long ago (up_tries, up_failed, up_error, up_error_min), and the oldest waiting file's age (oldest_pending_min).
  • Memory: the check-in is built in a buffer kept between them; its fault codes go only when they change (and at boot, offline and every 5 minutes); the Worker fills in the power-on's newest.
  • Transmission: the EGS's own input and output speeds (0xDA2A) in the medium tier; the cloud works out the converter's slip (TC_SLIP) and the gear ratio (GEAR_RATIO). The DME's input speed, which reads 0 on this car, is off in the Default preset.
  • Duplicate history: app logs named logs/<name> by one installation are stored and counted as <name>, like the others'; the 39 old logs/ copies and their rows were removed.

🤖 Generated with Claude Code

v0.10.3

Choose a tag to compare

@strulock strulock released this 29 Oct 04:36
133bef3

The logger board (firmware 0.10.3, published for over-the-air updates and flashed):

  • The logger page shows each channel's newest stored value, flagged when it looks wrong (#109).
  • Stalls and late answers no longer shrink request batches; the airbag module's temperature and voltage are asked alone (#110).
  • Uploads: the board hashes what it sends and accepts the Worker's matching answer; a file that fails no longer holds up the rest (#112). On 28 Oct one file had stopped all uploads for the evening.
  • Drive files are checked on the card at every flush; after a card error the file is opened again and the rows written again, noted in the drive and counted in the check-ins (card_errors). On 28 Oct two drives lost 7 and 15 minutes this way (#114).
  • plan.md: duplicate logs/ files in R2, MCP sign-in lapsing, what the card fix leaves to watch (#111, #113).

🤖 Generated with Claude Code

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 05:42
e827e82
Version 0.10.0

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 21:38
84c4789
Merge pull request #77 from strulock/release-0.9.0

Version 0.9.0

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 16:59
979807b
Merge pull request #69 from strulock/release-0.8.0

Version 0.8.0