Skip to content

Release notes

What changed in each released version of HMI Forge.

3 September 2026

KAREL variable tags. A new KAREL tag kind binds a control to a variable inside a KAREL program — named by program and variable, with array elements and structure fields supported. Pickers list the controller’s programs and variables, and the Validation panel checks every KAREL tag against the controller: program loaded, variable present, types matching. See Tags.

Lock operators out of the editor with FANUC Password Protection (J541). Diagnostics now shows the pendant screen ids the editor and runtime are registered under, and builds a ready-to-import passlvl.xml for the FANUC Password option — operators land on the runtime and cannot open the editor, with no hand-written XML. See Password Protection (J541).

The 3D View can be display-only, and can open already framed. A new Respond to touch toggle makes the embedded 3D robot view ignore touches while still following the robot live. Capture view in Preview stores your framing as the view’s starting camera; at runtime the view shows a loading spinner and then appears directly in the captured framing. See 3D View.

The number keypad refuses an out-of-range entry instead of rewriting it. OK is disabled while the entry is outside Min–Max and the range readout turns red — the keypad never silently writes a value the operator did not enter.

Diagnostics opens from a toolbar button in the editor’s top bar, replacing the tap-the-version-number-five-times gesture.

  • A slow or broken FANUC plugin API no longer freezes live signals: screens fall back to polling and move back to push updates the moment the plugin recovers.
  • Preview can scroll to the bottom of a full-height screen on the tablet.
  • Spaces no longer corrupt to + in saved documents with long text.
  • USB text exports (the log CSV among them) show real =, % and + characters instead of escape codes.

27 August 2026

Long alarm messages read in full. A message wider than the banner scrolls across it — holding at the start, then at the end — instead of being cut off, and a history row whose message does not fit expands on tap to show the whole thing. See Alarm banner.

The alarm history survives a restart. The history now keeps the last 500 events — up from 50 — and they are stored on the tablet, so what fired overnight is still there in the morning. The newest 50 show first; Show older reveals the rest. Simulated alarms in preview stay out of the operator’s record.

20 August 2026

Preview no longer reaches the robot. Preview held tag writes locally but let everything else through — running a program, selecting one, reset, pause, abort, a controller backup. Preview is now a true sandbox: tags are held locally, no programs are actually run, etc. Go live opts into an intentionally live mode where writes reach the controller, program selections work, etc. — reads are live either way.

A position in the active user frame. You can now choose to show a position control with respect to the current user frame, not just WORLD. See Position.

Custom page sizes. If you are using a non-standard tablet, you can create HMI documents at custom sizes. Validate now reports controls that fall outside the page, which the runtime clips. See Page size.

Two-state buttons. A button can show different text while lit — START/STOP, OPEN/CLOSE — without a second control. See Button.

Dropdowns can run actions when an operator picks an item, using the same action list a button has. See Dropdown.

Run a program in the background is a new action. This allows you to run a TP program concurrently without requiring the current program to abort. This is for logic that runs beside the job. Programs that use a motion group are refused.

Number input takes a disabled expression, so a setpoint can be locked while a program runs.

System values need no tag. {robot_running} and the rest work by name in any document. Declare one only to rename it. The Tags panel lists the ones a document uses, and the Sim panel can force them. If you’d previously defined system tags, the validation panel will warn you that your custom tags of the same name are unnecessary and can be safely deleted. If you’ve shadowed a system tag that points somewhere else (e.g. you have a custom tag named override that points at R[1]), you will see a validation error, and you’ll have to rename your tag. See System values.

uframe_num and utool_num are now available as system values.

More of the controller’s own messages are translated — a pressed E-STOP, the teach pendant switch left on, a faulted controller, USB and backup failures. The event log stays English so a diagnostics export can be read by whoever supports the cell. See Languages.

  • The editor no longer loads every document at startup, only the one being opened. On a controller holding several documents it starts in a fraction of the time.
  • A progress overlay covers the document load and document switching.
  • The Documents panel and the runtime’s launcher list documents much faster now.
  • Deleting an image asks for confirmation rather than reading every document to decide whether to ask.
  • Gauge thresholds color correctly in any order.
  • Inserting a tag or an operator chip lands where the cursor is, even after you move the cursor with the touch selection handle.
  • A dropdown with two options sharing a value no longer crashes the screen, and a selection writes a number where the tag holds numbers.
  • Moving or removing an indicator, label, or image state while editing it kept showing the field you were in with another state’s text behind it. Rows now move with their state.

14 August 2026

Language packs. The text HMI Forge puts on a screen itself — button confirmations, the number keypad, alarm severities, backup progress, error messages — can come from a language pack. A pack is a plain text file, so any language can be added. See Languages.

The language is set per document, so two documents on one controller can run in different languages. Untranslated text stays English, so a pack written for an older version keeps working. Packs are included in a backup. For now, the editor is not localized.

Diagnostics now opens by tapping the version number five times, instead of a button action.

  • Renaming a document did not save the new name. (reported on 1.7)
  • A whole-number register is now written as an integer. TP code using it as a FOR loop bound failed with “value type is not integer”. (reported on 1.7)
  • Backup could stall on small files.
  • A backup can be stopped while it runs, and one failed file no longer ends the run.
  • Saving the diagnostics log to USB could write a truncated file.
  • Tag names are limited to letters, digits and underscores. Existing names keep working; the Validation panel reports them.

12 August 2026

USB problems now explain themselves. Backing up, restoring or importing from a USB stick used to fail with a message about the document being copied, whatever the real cause was. Each case is now named: no stick in the port, a stick the controller cannot read, or a file that is genuinely missing.

HMI Forge requires a FAT32 stick. exFAT and NTFS will not mount, and the message now says so instead of leaving you to guess. Note that Windows only offers FAT32 when formatting drives of 32 GB or smaller.

A Position control is no longer inserted too short. Dropping one onto a screen gave a box a row shy of the six values it shows, so the last row was cut off with nothing to indicate it. New ones are taller; any already on a screen are untouched and can be dragged taller.

No document or setting is changed by this update.

10 August 2026

Back up the controller to a USB stick from a button. A new Back up controller to USB button action copies the controller’s programs, registers and system files onto the stick, into a dated folder. It asks before starting, shows progress file by file, and reports what was copied and what was not — the pendant menu chore an operator can now be talked through in one press.

Rectangle, Ellipse and Line. Decorative controls for giving a screen visible structure: box a related group of buttons, rule off a zone, mark a spot. They never intercept a press, so a panel drawn behind a row of buttons cannot swallow their taps. Lines work at any angle, with exact horizontal and vertical.

Borders and underline on labels. A heading can now frame itself: border color, width, corner radius and padding, plus an underline toggle. Both are off by default, so existing documents are unchanged.

Better behavior across versions. A control a build does not recognize now costs only that one control instead of the whole screen. The editor flags it so it can be selected and deleted, validation reports it, and the runtime leaves it out and tells the operator how many controls could not be drawn.

7 August 2026

Change the selected program from the HMI. A dropdown or a new Select program button action changes which program the controller has selected. If a program is running or paused, the operator is asked first and it is aborted before the change.

Run now selects what it runs, so a Run button no longer leaves the screen naming a different program than the one executing.

Pick a TP program from a list. A List button beside every program-name field offers the programs actually on the controller. Typing still works, for documents authored before the program is loaded.

Attention flash. Buttons and indicators can pulse to pull an operator’s eye. The fill never changes, so a flashing control never momentarily reads as the opposite state.

Controls no longer show stale state at startup. A control bound to a signal that was already on when the screen opened used to read the wrong state until that signal happened to change. This affected indicators, button lit state, label text, visibility and — most importantly — alarm conditions, which would not fire for a condition that was already true at boot.

Faster. Loading a large document is about three times quicker, and the TP program list roughly twenty.