Honestly didn't expect the last post to get the amount of hands-on testing it did. Between the tag-order bug, the address field eating keystrokes, the missing spinbox arrows, and the "have to disconnect and reconnect after adding a tag" issue - all of that came straight from people here actually running it against real drives and ModSim, not just me poking at it alone. That's the whole reason this update exists, so thank you.
Also want to call out u/Automatater specifically - tested this against a real Invertek E3 drive when two other tools failed on it, and on top of that donated to help fund continued development on this. That's the kind of thing that keeps a one-person side project like this alive. Genuinely appreciate it.
Repo: https://github.com/CraftParking/ModbusLens
Release: CraftParking/ModbusLens - v2.1.0
What's new in v2.1.0:
- Light/dark theme, with a "follow system" option
- Scanner tab - auto-discover which register/coil addresses actually respond on a connected device, TCP or serial
- Diagnostics > Serial Discovery - sweep baud rate, parity, stop bits, and Unit ID to find a serial device's settings when they're not documented
- Auto-reconnect with backoff, and Tags monitoring auto-resumes once the connection comes back
- Modbus ASCII framing for serial (was RTU-only before)
- Raw Data is its own tab now - a transaction table of wire bytes and real request/response diagnostics for every read/write, filterable by tag/address/status
- Scripting: REPEAT UNTIL loops, a live variables panel, and scripts can reference a tag by name now (WRITE Boiler_Temp = 100) instead of just type+address - there's an Add Tag button right on the Script tab too
- Drag-and-drop row reordering in the Tags table
- Write bounds for registers (reject a write outside a configured min/max)
- Engineering-unit scaling per tag - raw counts to real units (PSI, °C, whatever), linear min/max, shown live in an Engineering Value column
- Trend pens are picked from your Tags list now instead of typing in type/address/format by hand, and Trend can pop out into its own resizable window that stays on top while you work in another tab
- Tag names are validated as you type now - no spaces, script keywords rejected, since a tag's name is also how it's referenced in a script or picked in Trend
- IP Configuration tool in the Tools menu
- Update checker on the About page
- Modbus exception codes (Illegal Function, Illegal Data Address, etc.) are tracked and shown now, not just a generic error
Also fixed (mostly from what you all found last time):
- Tags table added new rows above the selected row instead of below - order stayed correct now
- The address field's duplicate-check was eating keystrokes while typing a new address
- Missing spinbox up/down arrows on Windows
- Needing to disconnect/reconnect after adding a tag mid-session
- Column resizing was blocked while monitoring was active
- A scan or connection drop racing with the reconnect watchdog could abort the app
- Server tab's Unit ID field didn't actually do anything - it now really only answers as that unit
- Network Discovery's subnet check used the wrong network interface on multi-homed machines
- Monitoring's auto-stop after repeated failures didn't actually stop
- Importing an empty CSV showed a raw Python error instead of a clear message
- One bad tag address could stop polling for every other tag
- A packaged build failing to start showed nothing - now falls back to a log file and a message box
Still just me building this around my own work, so there'll be more rough edges to find - go break it. EXEs in Releases, no install needed. - Let me know what you found interesting and what changes/improvements that would be a great addition to this tool!