Skip to content

What's new in test builds

Plain-language highlights for each test-channel release. Nodes on the Beta channel also receive every stable release — see What’s new.

  • Jasper can now find a device on an RS-485 serial line, not just over the network, and can try many combinations of speed, parity and address in one go instead of one guess per question — which is what identifying an unknown meter or drive usually takes. On a serial line the probe is refused while a Modbus RTU connector is using that port; disable it first. Update the Modbus connector to get this.
  • The IDE has a new look, matching the JasperX website and cloud app, and the code editor now follows it in both light and dark. It also no longer loads its fonts from the internet, so a node on a plant network with no outside access renders correctly instead of falling back to whatever fonts the browser happens to have.
  • Updating to this version downloads about half of what an update used to, and every update after it downloads about 43 MB instead of about 290 MB. The program on disk is half the size. Nothing changes in what the node does.
  • When you ask Jasper about a connector, it now sees the readings that connector publishes about itself, not just the four the node always knew about. An EtherCAT bus running in diagnostic mode is no longer reported as simply connected.
  • A bus scan now flags each device whose process data could not be read, so Jasper knows to give it a mapping instead of copying numbers that will not work.
  • When you scan an EtherCAT bus, a device whose process data the connector cannot read is flagged on the scan itself, so Jasper knows to give it a PDO assignment instead of copying numbers that will not work. When the bus refuses to start, the error now says what to change next. Start-up settings you put in initSdos are sent at their real width, and one the device rejects stops the start with the reason instead of being dropped quietly. If you already use initSdos, re-check each value’s length after updating: 2, 4 or 8 hex characters for an 8, 16 or 32-bit object — anything else shows as a config error until you fix it, and a value shorter than its object (say 4 characters on a 32-bit setting) is now sent at that shorter width, which the device may refuse — the start then fails with the reason in the connector’s last error. A connector held in a diagnostic state says so in its stats. Update your EtherCAT connector to get this.
  • When you approve a deploy on the red card, the Approved line in the chat now lists each script with whether it is enabled and what triggers it, so Jasper no longer spends turns re-reading what it just deployed.
  • In the EtherCAT scan view, a PDO the connector could not read is flagged “not sizeable”, with a tip on what to give the device instead.
  • The AI usage meter shows as soon as you open a chat again. On a node still running beta.16 or earlier it stays blank until your first reply once the cloud side updates — update the node to fix it.
  • When Jasper removes one entry from a connector’s configuration list, the list now closes up instead of leaving an empty slot that stops the connector from starting. An edit that would leave such a slot is refused and says which position to use. If a removal finds nothing at the path it was given, it now says so instead of reporting success.
  • Jasper can once again delete a whole section of a connector’s configuration that contains a password, when deleting it is what you asked for. It is still stopped from quietly wiping a password any other way.
  • Pressing Scan (EtherCAT), Probe (Modbus) or Discover (JasperMate) twice in quick succession now tells you the second press was too soon, instead of waiting out a timeout and blaming the device. Update those three connectors to get this.
  • If your MQTT broker URL carries a username and password, connection errors no longer show them — on the connector card, in the node log, or to Jasper. Update the MQTT connector to get this.
  • Saving a bad mapping on a Modbus TCP server that is already running no longer stops it serving its clients; it keeps the last good configuration and shows the error. Update the Modbus Server connector to get this.
  • If the IDE cannot reach the node when you flip a connector on or off, the switch goes back and a message says nothing was changed, instead of showing a state the node never took.
  • When Jasper tests a set of scripts, it now has to say in advance what each step should produce, and the node checks the run against that. A test with nothing to check no longer counts as passing. If a script is edited after its test, the old pass no longer applies.
  • When Jasper deploys scripts it is one approval for the whole set. New logic on a development node deploys as soon as its test passes. Anything that changes logic already running, or touches a tag wired to a device, asks you first: an amber Consent card in the chat on a development node, and the red Deploy Gate card on a commissioning or production node. You switch the node’s mode from the status bar.
  • When Jasper tests scripts against a copy of your live program, the test behaves much more like the real thing. A script can tell which tag triggered it, it remembers its own state between steps, and on-delay timers actually elapse instead of being stuck. Previous values and timestamps show what was really there when the copy was taken, rather than zeros.
  • An EtherCAT slave can now be told which PDOs to use when the connector starts. That is the missing piece for CiA402 servo drives such as the Leadshine LC10E: with its default PDOs written at start-up the drive comes up to Op alongside the I/O terminals. The bus scan also marks each slave as a drive or an I/O device.
  • After updating to this version, the Connector Manager will show an update available for every connector you have installed. That is expected — all of them were rebuilt so they carry the latest shared fixes. “Update all & restart” installs them together.
  • While a deploy card waits for your Approve or Reject, Jasper now stops instead of checking on scripts it cannot change. Chats with an approval in them are shorter and cheaper.
  • When Jasper tests scripts on a commissioning or production node, the result now names any downstream script the deploy will also require. It gets tested in one go instead of being refused and retested.
  • Jasper pulls in less reference material it is not going to use, so answering a question about existing scripts costs less.
  • Jasper is now only shown the tools your node can use. On a node with no InfluxDB or JasperMate, those tools are simply not offered — which makes every message in a chat cheaper and keeps Jasper’s attention on what is actually there.
  • Checking whether a script is running cleanly and reading its code are now the same tool, so Jasper asks once instead of twice. It reports the tag’s value too, so after a deploy Jasper can see the value moved without a second look, and it tells Jasper when the Logic Cycle is stopped so a healthy script is not mistaken for a broken one.
  • Checking a connector and scanning an EtherCAT bus give Jasper short answers now instead of pages of configuration, and Jasper stops re-enabling a connector that keeps failing for the same reason — it asks you to check the device instead.
  • A boolean tag that receives something it cannot read now reads as off, not on. Before, a bad reading could switch a flag on and every piece of logic downstream would act as if the condition were true. If you have logic that behaved as though a signal was on when its source was faulty, that is why.
  • A script asking for a tag’s previous value now gets it. It used to come back empty on most tags.
  • A node connected to the cloud no longer creeps up in memory the longer it stays connected. On a long-running node this amounted to tens of megabytes a day.
  • Writing to a built-in connector’s enabled tag can no longer stop it. Previously that was possible, and there was no way to turn it back on from the interface.
  • When you Accept one of Jasper’s proposed actions, Jasper now knows you approved it, rather than assuming it ran on its own.
  • Jasper’s tool cards now open showing a plain-language summary of what happened, instead of raw data. The full detail is still one click away.
  • Testing scripts that read binary tags no longer moves far more data than the tag holds. On a small node this was the difference between a test running smoothly and the interface stuttering.
  • When an EtherCAT bus refuses to start, the connector’s error now names the slave that refused and the reason the slave gave, instead of a bare “rc=-3”. If no slave refused, it says the master gave up and why.
  • The EtherCAT connector’s “start state” setting now does what it says: choosing PreOp or SafeOp holds the bus at that state for diagnosis without exchanging process data, instead of being ignored.
  • When Jasper changes a script it now writes a draft rather than editing the running code. It can test a whole set of drafts together against a copy of your live program — real values, no effect on the machine — and then deploy them in a single step where either every script lands or none does. Nothing runs on the node until you approve that deploy.
  • Updating a node is now something you can walk away from. The download continues in the background, and reopening the update window — or reloading the IDE entirely — shows the real progress instead of starting over or hanging. When several connectors have updates, “Update all & restart” installs them together with one restart, and you get one notification for the batch instead of one per connector.
  • Jasper can no longer quietly write a connector’s trigger tag to make something happen on the bus. Anything a connector declares as reaching the physical equipment is refused, and Jasper is pointed at the proper tool for it, which asks for your approval and tells you what will physically happen first. Update your EtherCAT, Modbus and JasperMate connectors to get this.
  • Jasper can no longer start a network test by writing to a settings tag behind your back. It has to use the network diagnostics tool, which asks for approval and says what it will run.
  • The IDE now works on a phone screen. Chat opens full-screen from the side rail, and tapping a tag opens its properties over the full width. It is a basic pass — enough to look at a node and talk to Jasper from your phone.
  • The node’s built-in services no longer appear in the Connector Manager as something you can install, delete or switch off. They are part of the node, and deleting one over the API used to take that service down — that now refuses with a clear message.
  • Jasper cannot overwrite a script it has not actually read. Seeing a tag in a list is no longer enough — it has to fetch the code first, so a replacement is always written against what is really on the node.
  • Linux nodes no longer get the permission file /etc/sudoers.d/jaspernode. Earlier installs created it to let the node’s service account start and stop its own service without a password. It never actually worked — the service is locked down in a way that blocks it — and nothing on the node ever used it, so installing or repairing now removes it. Updating over the air replaces the program but not system files like this one, so a node you updated that way still has it. It does nothing where it sits and is safe to leave. To clear it, re-run the installer on the node: curl -sL https://dl2.jasperx.io/jn/install.sh | sudo -E bash -s — —repair
  • A degrading EtherCAT bus no longer risks stalling its own real-time cycle through the node’s error logging. Error lines are still recorded in order and with the time they happened.
  • A node with plenty of normal logic no longer knocks out its own Logic Cycle at boot. Previously enough healthy scripts running back to back could freeze the cycle’s heartbeat long enough for the node to restart it, which left every OT connector stopped and needing a manual re-enable.
  • Disabling or removing a connector with a lot of tags no longer freezes the IDE and AI chat while it tears down.
  • A node could show as Online while Remote Access said it was not enabled, until someone restarted it. The node now notices the dead connection and reconnects on its own.
  • Updating a node is now verified against exactly the file that gets installed, not just the one that was downloaded, and the check no longer needs hundreds of megabytes of memory to run. If something is wrong with the staged file the update refuses rather than installing it, and tells you whether you need to download again or just retry.
  • Downloading an update on a small node no longer eats memory in proportion to the file size. On a JasperMate a 292 MB update used to push the node to within 362 MB of its memory limit.
  • Closing the tab while Jasper is waiting on a tool no longer breaks the conversation. The node reports the outcome itself, so the chat can always be continued.
  • In auto-run mode, Jasper waits for a full set of proposed actions before running any of them, so a batch that includes something needing your approval always stops and asks. Switching out of auto-run mid-reply now shows the Accept button instead of leaving the card stuck.
  • You can now test what a script does when an input goes missing by giving it no value, instead of the test refusing to run.
  • Asking the API for one folder of tags now returns that folder instead of every tag on the node.
  • A connector created outside the IDE — by Jasper, or over the API — can now be switched on instead of reporting that it does not exist.
  • You can now write your next message while Jasper is still replying, and switch between Ask, Agent (with approvals) and Agent (auto-run) at any time instead of waiting for the reply to finish. Your draft is kept until the reply ends, then Enter sends it. Switching to auto-run mid-reply will not silently run a tool that is already waiting for your approval — that one still needs your click. Leaving a chat while a tool is waiting for approval now asks first, so a conversation can’t be left in a state Jasper is unable to continue.
  • The Overview page now shows a card for each connector instead of just its name, so you can see what an instance is connected to and how it is doing at a glance. The HMI card links straight to its dashboard.
  • Jasper can now read or change many tags in a single step. Applying the same change to several tags — the same script across three chambers, say — takes one approval instead of one per tag, so a rollout is quicker to review and quicker to run.
  • Nothing user-facing on the node; this changes how JasperNode itself is released, so a version can no longer go out pointing at connector or AI-assistant updates that were never published.
  • When you deploy a script whose triggers would make it fire itself in a loop, the editor now warns you before it is armed. If scripts start triggering each other faster than the Logic Cycle can keep up, a warning appears rather than the node quietly falling behind.
  • The built-in MQTT broker now enforces the connection and message limits you set, and supports shared ($share) subscriptions so several clients can split a topic’s load.
  • A connector that keeps hitting the same fault no longer buries its error log in duplicates. Repeats are counted into one line with a “×N” marker and the time it last happened, so the log stays readable and asking Jasper about a connector costs a fraction of what it did.
  • When Jasper reports on a connector it now shows the most recent errors and says how many it left out, instead of pasting the entire error history into the reply.
  • If you use the built-in MQTT broker, open its configuration page and save it once after updating. A setting that never had any effect was removed and another was renamed, so the old configuration will be flagged until you re-save it.
  • A script tag can no longer be saved with no code in it. Previously an empty script could be created and armed, which looked like it was running when there was nothing to run.
  • The Stop button in AI chat is now a neutral circle instead of a red one. Stopping a reply is a normal action, not a fault, so the button no longer competes for attention while Jasper is working.
  • A faulty script can no longer take the whole node down. If the Logic Cycle stops, it restarts straight away, the script responsible is named, and outputs are held until the cycle is confirmed running again rather than being driven by a cycle that is not there.
  • Ask mode is now enforced when a tool actually runs, not only when Jasper is told which tools exist. Previously a change Jasper proposed while in Agent mode could still be carried out after you switched to Ask. Tool cards the current mode won’t allow no longer show an Accept button.
  • If a device sends the same message twice in a row — an identical serial frame, or the same MQTT payload republished — the second one now wakes your scripts. Previously it could be treated as “nothing changed” and silently dropped.
  • A connector fault that keeps happening now keeps showing in the log with an up-to-date count, instead of going silent after the first line. A fault that comes back later reports itself again rather than being swallowed.
  • A connector no longer shows as connected straight after a restart before it has actually started — that was a stale value restored from the database. Connector statistics are also no longer saved to disk, which removes a steady stream of writes to the node’s storage.
  • After a restart the node runs the scripts you deployed, not an unsaved draft left open in the editor.
  • Asking Jasper about a large program no longer produces an enormous answer or a stalled reply. It now reads up to a sensible limit and tells you plainly which parts it did not read.
  • On JasperMate hardware the node sometimes came up not knowing what it was running on. It now waits for the answer instead of guessing once at boot.
  • Nothing user-facing; an internal check that was passing without actually testing anything now works.
  • When the AI assistant mentions one of your tags or connectors in chat, the name is now a clickable chip — click a tag to jump to it in the tag tree, hover it to see its current value, or click a connector to open its page.
  • The tag tree now hides the __sys system folder by default — it is only needed for deep troubleshooting. Toggle it back on from the tree’s ⋮ menu; searching won’t surface system tags while hidden, but clicking a direct reference to one (a chat chip, a script trigger) still reveals it.
  • Rebooting a node no longer replays latched outputs: script-computed tags and OT outputs now start from a defined start value at boot (like a PLC warm start), so a motor that was commanded on before a power cycle stays off until your logic decides again. Plain tags still keep their values. A new per-tag retain option (IDE Advanced tab) lets a totalizer or setpoint deliberately survive reboots — set it on any computed tag whose value genuinely must carry across a power cycle.
  • The AI assistant can no longer see your credentials: passwords, tokens and secrets embedded in connector configs or URLs are structurally removed from everything shown to the model, and its write tools refuse to echo them back. Tool results are also restructured so the assistant reads exactly the data it needs, which makes it faster and more reliable on large projects.
  • The JasperX connector’s is_connected status now reflects the whole cloud link — previously a node could keep reporting connected for hours (even across restarts) after silently losing the cloud, sending every diagnosis down the wrong path. A stuck reconnect attempt now times out and retries instead of wedging.
  • Long AI replies no longer freeze the IDE while streaming — a big answer used to stall the browser for tens of seconds and could even drop the IDE’s live connection. Chat rendering is also hardened against a reply injecting HTML or unsafe links.
  • AI chat tool cards now show real values in their titles — “Reading 12 Tags” instead of the literal text “{tagIds.length}”.
  • A connector mapping whose tag name contains a forbidden character (like /) now fails with a message naming the rule and the offending name, instead of the cryptic “could not link mapping tag (rc=-2)”.
  • The AI assistant now handles tags that hold large JSON documents: it sees an outline of the structure and reads just the part it needs, instead of failing or flooding the chat with the whole document.
  • The Flow view can now be dragged around like a map and remembers your position and zoom, instead of snapping back or drifting when you switch tabs or reopen it.
  • A Modbus byte-order probe can no longer write its test value to a device an enabled Modbus connector is driving — the probe is refused and names the instance to disable first, while read-only probes keep working. When the AI assistant asks for a probe that writes, you now get an Approve/Reject card showing the device, the registers touched and the exact request before anything is sent. Note the protection matches the address as written in the connector config, so probe the device by that same name or IP.
  • Two Modbus instances addressing the same device — one writing the port as :502, the other leaving it blank — could silently drive the same output register. The second instance now stops with a conflict message naming the register instead of double-driving the point. If your node was running such a pair, keep one instance or split the registers between them, then re-enable.
  • The AI assistant’s InfluxDB query tool now asks for your confirmation before running — a query it passes can overwrite the instance’s saved query, and on InfluxDB v2 the query language itself can modify data, so it is no longer treated as read-only.
  • A latched LiDAR profile alarm can now be acknowledged with nobody watching the tag: each profile gets a new alarm_ack tag — write 1 to it from a script, an HMI button or the AI assistant and the alarm clears. Writing 0 to the old alarm tag no longer acknowledges, so anything that cleared alarms that way must point at alarm_ack instead.
  • An MQTT mapping pointed at an existing tag of the wrong type (a text tag where the mapping wants a number, say) is now refused with a message naming the tag, instead of attaching anyway and failing every read and write with misleading “tag was deleted” errors. An instance that has been running in that state now stops until the tag is renamed or removed — its other mappings were never moving data anyway.
  • The node now logs a warning when its own heartbeat runs more than two seconds late and an error past three seconds — the exact window in which a field connector drops to its safe state, which until now left no trace in the log at all. The worst gap seen since start-up is kept in the node’s system tags, under __sys/node/stats/liveness.
  • The first-time setup page now shows the JasperNode version, so you can tell which build a fresh node is running before you configure it.
  • Tag names and folder names now accept only letters, digits, underscore and hyphen — up to 64 characters per level and 255 for the whole path. Human-friendly text belongs in the description field. This is a breaking change for existing test projects: a tag whose name breaks the rule is skipped at start-up rather than deleted, and the start-up log names it with a ready-to-paste repair command — rename it and it comes back with its values and history. The IDE and the AI assistant now refuse a bad name up front and suggest a valid one.
  • MQTT tag names built from live data — Sparkplug group, node, device and metric names, and subscriber captures — are now converted into valid tag names automatically, with a short suffix when a name had to be changed so two different sources never merge into one tag. Names you type into the connector config are checked when you save, with a suggested valid name. The MQTT topics themselves are untouched.
  • The Modbus Server connector has been rebuilt in Rust. Your existing configuration carries over unchanged, and the server now answers the standard Modbus exceptions instead of the previous library’s improvisations: a write to a read-only mapping is refused (0x02) rather than silently accepted, a wrong unit id answers 0x0B rather than nothing, response delay works, and wide coil scans are served up to the Modbus limits. A running server with no clients connected now shows as connected once its listener is up.
  • The MQTT connector has been rebuilt in Rust, and its Sparkplug B support is now complete — births and deaths, commands, sequence numbering, Host Application state, and buffering of values recorded while the broker was unreachable. Your existing configuration carries over unchanged.
  • The HMI connector has been rebuilt in Rust and the operator interface now ships inside the connector package itself, so the screens always match the connector serving them. Your existing configuration and pages carry over unchanged. Several faults are fixed along the way: a panel whose page tag was broken no longer breaks a freshly opened tab, layout edits now reach panels that are already open, a signed-out tab lands on the sign-in screen instead of spinning forever, and two panels can no longer fight over the same momentary button.
  • The InfluxDB connector has been rebuilt in Rust. Your existing configuration carries over unchanged, and a historian can now watch any part of your tag tree without altering the tags it records. An InfluxDB server that stops answering entirely now fails quickly instead of hanging.
  • When a connector drops to its safe state because the runtime looked dead, the message now says which heartbeat went stale — the engine host or the Logic Cycle — and how old it was, instead of only reporting a lost supervisor. A connector that drives field equipment stays in its safe state until you re-enable it; connectors that only serve data resume on their own.
  • The IDE’s code editor has been rebuilt. Opening a code editor for the first time now downloads about 0.5MB instead of about 10.8MB, so it appears almost immediately — the difference is largest over remote access and other slow connections. The Compare-to-live diff no longer opens blank now and then, and diff views now have a side-by-side / unified toggle.
  • The IDE now serves its files compressed, so pages load faster — most noticeably over remote access and other slow connections.
  • Remote access now compresses traffic between the node and the relay — a 1MB file that previously crossed the link larger than its original size now crosses at under a fifth of it. The node also reports how much data remote access has sent and received, and the Remote Access status is correct straight after a reboot instead of reading as disabled until the first connection.
  • Opening a large tag tree and starting a connector that owns hundreds of tags are now near-instant instead of costing hundreds of milliseconds of engine time each.
  • Working in the IDE on a node with a large tag list no longer starves the runtime. Switching between the tags and connectors views used to block the node for seconds at a time, long enough that EtherCAT and JasperMate concluded the runtime had died and dropped their outputs to the safe state — from browsing alone. The tag list now subscribes in batches, the node serves those subscriptions without stalling, and the Logic Cycle produces its own heartbeat, so a busy screen can never look like a stopped runtime.
  • At start-up, connectors now wait until the Logic Cycle is listening before they publish their first values. A value that arrived in that gap used to be lost, leaving any script that depended on it running on the value stored before the restart until that input happened to change again.
  • Remote access now recovers on its own when the node’s internet connection switches over — for example WiFi to mobile. The old session used to stay half-open: the node reported the tunnel as connected and every open-tunnel command reported success while nothing came through, and only a restart cleared it. The node now checks the link every 10 seconds, drops a session silent for 35 seconds, and a fresh Remote Access click replaces a stale one.
  • Web apps reached through remote access — for example the Cockpit system page on a Linux node — no longer come up as a white screen after login. Compressed files were forwarded with the wrong headers, so the browser rejected them.
  • Remote access no longer loses data on a slow connection. Once the link filled up the node used to throw frames away, which left the IDE showing stale values and could wedge a transfer; it now slows the source instead of dropping anything.
  • Downloading a large file through remote access no longer freezes live tag values until the transfer finishes. Bulk transfers and live data now share the link instead of the download starving the display.
  • When a connector fails to apply part of its configuration, the tags it had already claimed are released again. They used to keep showing a link to a connector that was no longer there, and on JasperMate the undo could delete a tag that existed before the connector ever touched it.
  • The Modbus connector’s raw-offset help text now says what the connector actually does — the offset is added to the raw value, not subtracted.
  • A connector configuration that fails validation no longer takes the running connector down. It keeps running on the configuration it last accepted and reports the problem on its status, instead of stopping and staying stopped until you re-enabled it — which for an HMI panel or a fieldbus master meant one typo took it offline.
  • When a connector fails to apply a configuration, the message in the log now names what failed and what to do about it, instead of a raw internal error code — and it no longer repeats a message the connector had already reported in plainer words.
  • A connector’s Connected, Status and Errors tags now carry their descriptions again. They had been showing blank in the IDE on every connector.
  • Tags belonging to a network connector such as MQTT or the Modbus Server are no longer described as wired sensors and actuators in the Connections and Flow Exploration views.
  • A node that is connected to the cloud no longer reports the connection as down. On a busy node the status could latch to disconnected at start-up and stay there while the connection was in fact live.
  • Saving in the IDE no longer ignores a click when the button had not yet noticed your edit. Saving a connector configuration now says it has been saved and is being applied, and points you at the connector’s status — it used to claim the change was already applied, which could appear next to an error saying it had failed.
  • When the AI assistant gets a tool argument wrong, the error now says in plain language which field was wrong, what it sent, and what is accepted — so it corrects itself instead of repeating the mistake.
  • Pulling the JasperNode container image always gets the newest release — re-publishing an older build can no longer make latest serve it.
  • A node installed from a local file now records the version it is actually running, so an automatic rollback after a failed update returns to a build the node can name.
  • The AI assistant now tells you when a connector update is available, and applying an update to a connector that drives field equipment always waits for your Approve in the chat.
  • You now see a badge and a notice when a JasperNode update is available, and System Updates walks you through downloading and installing it safely.
  • The Connectors page is easier to scan — active connectors first, tidier cards, clearer states.
  • Leaving the IDE open across a node restart can no longer cause actions to land on the wrong tags.
  • When a connector change needs a restart, the message now tells you exactly where to restart: the System Config menu.
  • Running JasperNode in Docker or Podman no longer shows permission errors at startup, and update guidance now matches how containers actually update.
  • Setting a tag’s type via the API now accepts the same codes reads return, and errors list exactly what is accepted.
  • Small gauges on HMI screens keep their value text readable, and trend charts no longer clip their axis labels.
  • Connectors are now installed on demand instead of shipping inside JasperNode. Open Connectors to see what is installed and what you can add — installing one takes about a second and usually needs no restart. New connectors appear without updating JasperNode itself.
  • You can now name the connectors you want when installing JasperNode — for example CNTR=modbus,s7 — and the node installs them for you on first start. Everything else is added later from the Connectors page.
  • Restoring a program onto a new node now brings its connectors with it — they are downloaded, installed and configured for you, and left switched off so nothing moves until you turn it on.
  • If a connector keeps crashing and there is no older version to fall back on, JasperNode now switches it off and explains why, instead of restarting it forever.
  • Upgrading from an earlier beta: your program and connector settings are kept, but the connectors themselves now live in the catalogue. Open Connectors after the upgrade and click Recover on each — it downloads, installs and reconnects in seconds.
  • If a project restore fails part-way, the Logic Cycle now always starts again. Previously it could stay stopped — even after a reboot — with nothing saying why.
  • A bad entry in a connector’s version box can no longer break your backups.
  • Packet capture with a filter like “tcp port 502” now shows both the requests and the replies.
  • Installing JasperNode with a chosen connector set (CNTR=) no longer logs errors saying those connectors do not exist moments before installing them.
  • Diagnostics, Connector Manager and EtherCAT pages no longer show blank fields or ghost entries until you refresh the browser.
  • The Linux installer now sets up real-time scheduling for fieldbus connectors automatically.
  • Reinstalling JasperNode no longer silently discards a node’s saved settings.
  • A node installed from the Beta channel now shows and follows Beta, so it actually receives beta releases.
  • If a tag behind a Modbus Server mapping is deleted, the server now returns an error instead of reporting 0 as a real value, and says so.
  • Deleting a tag fed by MQTT no longer stops that topic being received until a restart.
  • If an HMI button’s interlock tag is missing or unreadable, the button is now blocked instead of allowed through.
  • A packet capture with an unsupported filter now tells you, instead of quietly returning all traffic as though it were filtered.
  • ARP scan, ping, traceroute and discovery now work on hosts that do not have libpcap installed.
  • Deleting a tag that InfluxDB was writing no longer leaves NaN values arriving in the historian forever.
  • If the connection that keeps a node visible in JasperX dies, the node now notices within about two and a half minutes and reconnects on its own, and tells you it lost the cloud. Previously it could stay invisible in JasperX until someone restarted it.
  • On older Linux systems the network tools (ARP scan, ping, traceroute, discovery, interface list) now start instead of failing with a GLIBC version error.
  • JasperNode has a new logo.
  • The user docs now include a “What’s new” page describing each release in plain language.
  • The user documentation site has a refreshed look and updated content.
  • In Docker, the network tools (ARP scan, ping, traceroute, discovery, interface list) now start instead of failing to load.
  • When the network tools can’t get raw network access, the node now reports it — with the cause, the affected tools, and how to fix it — instead of silently returning nothing.
  • A network tool that fails (unreachable target, bad interface, blocked socket) is now reported as failed, instead of looking like it ran and found nothing.
  • Choose your update channel (Stable or Beta) right in System Config.
  • macOS and Windows are now supported by running JasperNode in Docker.
  • Fixed the Linux install command that failed to download.