Releases: JohnSL/Bowties
Bowties v0.2.0
Bowties 0.2.0
Bowties 0.2.0 makes Bowties much more useful away from the layout. You can now capture a layout, work with it offline, and come back later to sync those planned changes safely to the live bus.
Highlights
Capture a layout and take it with you
You can now save a live layout as a reusable layout file and reopen it later without needing to stay connected to the LCC bus.
That means you can:
- browse captured nodes and configuration offline
- review bowties and event relationships away from the layout
- keep a durable snapshot of the system for later work
Plan changes offline instead of rushing at the layout
Offline edits can now be saved as planned changes in the layout itself.
This makes it practical to:
- prepare configuration changes at home
- review and refine changes before touching hardware
- save your progress and reopen it later exactly where you left off
Sync planned changes back to the bus with review and control
When you reconnect, Bowties now compares your saved offline changes with the live bus before applying anything.
This adds a safer workflow for real-world layouts:
- conflicts are shown clearly and must be reviewed
- clean changes can be applied in bulk
- already-applied changes are recognized automatically
- missing nodes stay pending instead of blocking everything else
The result is less guesswork and much less risk of pushing the wrong change to the wrong layout state.
Why this matters
This release turns Bowties from a live-session-only tool into a much more flexible layout workflow tool.
You can now:
- capture a layout during a club or on-site session
- take that layout elsewhere for planning and review
- return later and apply only the changes you still want
- keep your work even if some nodes are unavailable or some changes need to wait
Reliability and workflow improvements
Alongside the offline workflow, this release also improves day-to-day usability:
- better handling of reconnect and sync flow edge cases
- improved preservation of pending changes across save, discard, and reopen paths
- safer handling of read-only or rejected writes
- stronger behavior around discovery, config reads, and layout lifecycle transitions
Documentation
The user documentation has been updated to cover the new offline save/open workflow and the sync-back-to-bus flow, so the release is easier to adopt without trial and error.
Platform availability
Bowties releases continue to provide installers for:
- Windows x86-64
- Linux x86-64
- Linux ARM64
macOS builds are still not included.
Bowties v0.1.8
Reliable CDI Downloads and Improved Node Detection
What's Fixed
CDI downloads no longer silently corrupt data. Some users experienced
intermittent failures when downloading node configuration — especially over
TCP or with USB-to-CAN adapters under load. The downloaded XML would be
garbled, requiring a retry or reconnect. This is now fixed.
What's Improved
Nodes that come online are noticed immediately. If a node appears on the
layout while Bowties is downloading CDI data, reading configuration, or doing
anything else, it is automatically added to the node list. Previously, nodes
could be missed unless you ran a fresh scan after everything else settled.
The UI is more responsive during network activity. Sending and receiving
LCC traffic no longer block each other, so the node list and configuration
screens stay responsive even while downloads or queries are in progress.
Bowties v0.1.7
See the assets below to download and install this release of Bowties.# Release Notes — v0.1.7
Bug Fixes
Configuration not loading on some nodes
When reading configuration from certain nodes — particularly Tower LCC and other nodes with limited memory — Bowties would sometimes display incomplete settings or fail silently with no indication that anything went wrong. This has been fixed. Configuration data now loads reliably from all tested node types.
Bowties disappears from other nodes' view after a hub restarts
If a hub or gateway was restarted, other nodes and tools on the layout would sometimes lose track of Bowties and it would appear to have gone offline. Bowties now responds correctly to all the ways other devices can ask "who's connected?", so it stays visible on the network at all times.
Improvements
Node information refreshes automatically after a reboot or factory reset
If you reboot a node or perform a factory reset from another tool, Bowties now detects that the node has restarted and automatically refreshes its name, description, and protocol information in the node list. Previously you had to disconnect and reconnect to see the updated state.
More reliable connections through hubs and gateways
Bowties was connecting too eagerly — it would start communicating before some hubs and bridges were fully ready, and it wasn't waiting long enough to settle in with the rest of the network. This occasionally caused nodes to appear missing right after connecting, especially when going through JMRI's LCC Hub or a Wi-Fi bridge. Bowties now pauses briefly after connecting and takes a moment to establish itself, which should make these "invisible node" problems much less common.
Dropped connections are now detected
If the device you're connected to (a hub, bridge, or computer running JMRI) loses power, drops off Wi-Fi, or otherwise goes silent, Bowties will now detect this and report the connection as lost. Previously, Bowties would wait indefinitely with no feedback, leaving you wondering whether it was still working.
Better compatibility with older and simpler nodes
Some older or simpler nodes respond to certain network queries with a "not supported" reply rather than just staying silent. Bowties now recognizes these replies and moves on immediately, instead of waiting for a timeout. This makes the node discovery process faster and less error-prone on layouts with mixed hardware.
Bowties v0.1.6
See the assets below to download and ins## v0.1.6 — Bug Fixes
Bug Fixes
Improved reliability when reading node configuration over TCP
Reading a node's configuration over a TCP connection (e.g. via JMRI) would sometimes silently stall or produce incomplete results due to dropped frames. The connection now retries automatically on timeout, and if reading still cannot complete, it stops immediately and reports a clear error message ("Configuration read failed: … Check your connection and try again.") rather than returning partial data that the UI cannot usefully display.
All-zeros event IDs are now flagged as invalid in the CDI editor
If a node reports an all-zeros event ID, the CDI configuration panel now highlights the field as invalid and shows the message "00.00.00.00.00.00.00.00 is not a valid event ID". Typing all-zeros into an event ID field is also blocked with the same message, preventing accidental saves of that value.tall this release of Bowties.
Bowties v0.1.5
What's New in v0.1.5
Reliability Improvements
-
TCP second probe — After connecting via TCP/IP, Bowties now fires a second node probe 2 seconds after the first. This catches nodes that were slow to respond to the initial probe and would previously appear missing until the next manual refresh.
-
Fixed idle timeout during config reads — The memory-read loop now grants the full timeout budget to each individual response frame rather than sharing a single shrinking wall-clock window across all frames. Large configuration reads on slow or busy networks no longer time out prematurely.
-
Guard on "config read" status — A node is now only marked as fully read when zero read failures occurred. Previously, a partial read caused the node to appear fully loaded, suppressing any retry. Nodes with failed reads now stay in the
failedstate so the issue is visible.
Bug Fixes
- New Connection dialog too short on Ubuntu — The New Connection dialog was clipped on Linux, cutting off controls near the bottom. The dialog height is now sufficient on Ubuntu.
Diagnostics
-
Copy Diagnostic Report (Tools menu) — Copies a JSON diagnostic report to the clipboard. The report includes:
- Discovery statistics (nodes found, probe timing)
- Per-node CDI download timing
- Per-node configuration read statistics (batches, bytes, failed reads, total duration)
- Event-role exchange statistics
- A timestamped internal log (last 500 entries)
-
Internal diagnostic log — Key operations (discovery, CDI download, config reads, event-role queries, TCP probe) are now logged to a 2 000-entry ring buffer, visible via the diagnostic report.
Bowties v0.1.4
Bowties v0.1.4
What's Changed
- Linux packages now support Ubuntu 22.04 and newer — The
.deband AppImage packages are now built on Ubuntu 22.04, ensuring compatibility with Ubuntu 22.04 LTS and all later releases. - Layout file format documented — The internal layout file format is now documented for contributors and advanced users.
- CI/CD improvements — Resolved GitHub Actions deprecation warnings to keep the build pipeline clean.
Installation
Download the appropriate package for your platform from the assets below:
| Platform | Package |
|---|---|
| Windows | .exe (NSIS installer) |
| Linux x86_64 | .deb or .AppImage |
| Linux ARM64 | .deb |
Full Changelog: v0.1.3...v0.1.4
Bowties v0.1.3
What's Changed
Bug Fixes
-
Fixed erratic reads when CDI is not cached. Previously, clicking "Read Node Configuration" with no cached CDI would show the CDI download dialog, but after the download completed the progress dialog never appeared — leaving the Read button visible and clickable. Clicking it again started a second competing read, causing erratic progress bar behavior. The progress dialog now appears immediately after the CDI download finishes, blocking further interaction until the read completes.
-
Single-node CDI missing now prompts for download. Clicking a node's orange indicator or "Read Configuration" button when no CDI is cached for that node now shows the download dialog (as it does for batch reads) instead of displaying a silent error message.
-
"Read Node Configuration" button shown in Bowties tab when nodes are unread. The button was incorrectly hidden in the Bowties view when a layout file with existing bowties was open, even if node configuration had never been read.
-
"Read Configuration" button no longer shown for nodes that don't support CDI (e.g. JMRI LccPro). The per-node read prompt is now suppressed for nodes where PIP has confirmed no CDI support.
-
Clearer message when configuration hasn't been read yet. Expanding a node before reading its configuration now shows "Configuration has not been read from this node yet" rather than the misleading "Configuration not supported by this node."
Improvements
- Per-node CDI download progress. The CDI download dialog now shows a live status indicator next to each node — a spinner while downloading, a checkmark on success, and an error indicator on failure.
Bowties v0.1.2
Switching to an older version of Ubuntu to build for Pi OS 12.
Bowties v0.1.0
See the assets below to download and install this release of Bowties.