v1.4.6 latest
2026-06-06
  • fix Plot: fix a 500 error when opening /plot directly (hard refresh or a pasted link) β€” the zoom/pan plugin was being loaded during server-side rendering, where its browser-only dependency has no window and crashed. It now loads in the browser only; zoom/pan is unchanged
v1.4.5
2026-06-03
  • fix Plot: fix derived-signal formulas (e.g. delta = a βˆ’ b) showing phantom spikes β€” signals sampled in the same frame are now evaluated together, so each timestamp produces one correct value
v1.4.4
2026-05-31
  • feat Plot: Formulas β€” define derived signals as arithmetic expressions (a*0.1, aβˆ’b, (a+b)/2, …); formulas can chain (reference other formulas) and expand per-node via an "N*" placeholder
  • feat Plot: formulas persist locally and export with the chart-layout YAML
v1.4.3
2026-05-28
  • feat Plot: CSV export β€” toolbar format selector (long / wide node:signal / wide signal:node) plus an "All signals" option; export stays available whenever data exists
  • feat Plot: live signal recording β€” stream decoded samples to a .csv as frames arrive, with a "Selected only" toggle; recording buttons are now "Record raw frames" / "Record signals"
  • feat Program: "custom (raw frame)" Send option β€” enter raw hex bytes to send arbitrary CAN frames without defining a YAML message first
v1.4.2
2026-05-26
  • feat Messages: per-signal unit picker β€” pick a display unit (rad/s ↔ rpm, K ↔ Β°C ↔ Β°F, m/s ↔ km/h, …) that propagates to Decode, Plot and Encode; preferences persist per signal
  • fix Codec: disambiguate messages sharing the same base ID and DLC by matching `constant: true` signal bits (e.g. the vesc.yaml messages all at base 0x000 / DLC=8). Python and TS codecs updated
v1.4.1
2026-05-19
  • feat Plot: "Load File" button in paste mode β€” pick a candump .log or ZLG USBCAN(FD) .csv export from disk; CSV is auto-detected by header and converted in-browser to cansend-format lines, then run through the existing decode path
v1.4.0
2026-05-17
  • feat Program: new page for building and running multi-step CAN command sequences β€” statements (send, wait, repeat, every, sweep, group, set, bind, read), notebook-style cells with persistent variables, expressions in any field, closed-loop Bind/Read control, and per-node broadcast editing
  • feat Web: site-wide EN / δΈ­ζ–‡ i18n with a nav language toggle (defaults to the browser language)
  • feat Plot: human-friendly zoom/pan gestures β€” scroll, Shift/Ctrl+scroll, drag, double-click-to-fit and pinch β€” with a ? cheat-sheet
  • feat Plot: TX frames from Program / Encode are tagged separately from RX in the raw log and tooltips
  • feat Encode: shared bus connection across Plot / Program β€” connect once, all three pages see live frames
v1.3.0
2026-05-12
  • feat Plot: Timeline t=0 origin β€” right-click any data point to set as the time reference; all charts shift accordingly
  • feat Plot: A/B timeline markers with Ξ”t readout β€” click to place up to two markers on the timeline chart and see the time difference
  • feat Plot: Apply timing origin and markers to all views simultaneously via the "Apply to all" toggle
  • fix Codec: corrected 0xFF broadcast decode disambiguation between WriteRegUint8 and SwitchMode messages sharing the same node_id
v1.2.0
2026-05-06
  • feat Web: per-message signal filtering β€” expand any message row to filter by node ID, signal name, or enum value
  • feat Web: enable/disable all configs or all messages per device in one click
  • feat Plot: live data controls β€” Clear, pause/resume, and panel/series/layout state that persists across navigation
  • feat Plot: export/import chart layout as YAML, plus a "Matched only" record filter that skips undecodable frames
  • fix Config: resolve $parameter references in signal min/max/scale/offset fields
v1.1.0
2026-04-20
  • feat Plot: Timeline and Interval views (per-message event timing and per-signal delta-time), with drag-to-reorder panels
  • feat Plot: raw CAN frame log with click-to-copy candump lines, and streaming to a .log file during capture
  • feat Serve: --source LAN relay and --interface USB-adapter support (SLCAN CAN FD, PCAN, …), now on a zero-dependency stdlib WebSocket + candump backend
  • feat Web: candump-to-cansend converter page
  • feat Web: mux_signal support to disambiguate register-based messages in the plot
v1.0.0
2026-04-01
  • feat Initial release
  • feat Browser-based CAN/CAN-FD encode/decode with YAML config files
  • feat Live plot page with WebSocket streaming from can_ws_server.py
  • feat Multi-node messages: node_count, node_id_offset, node_id_start
  • feat Broadcast mode (broadcast_node_id) β€” single frame addresses all nodes
  • feat Signal types: unsigned, signed, float32/float64, enum, bitfield
  • feat Linear mapping (linear_map) β€” auto-calculate scale/offset from physical min/max
  • feat Web UI: Messages, Decode, Encode, Plot pages
  • feat CLI: list, describe, decode, encode, monitor subcommands
  • feat Python API: Codec class for programmatic encode/decode