Changelog
2.3.1
Released on May 8, 2026
Fixed
STM32 SWD
- STM32 G0 (G0B0xE on ST-Link V2-1): fixed the recurring "OBL_LAUNCH recovery failed" error when writing option bytes. Connecting to a running controller is now reliable: core halt goes directly via DAP-AP instead of the old reset path; OBL_LAUNCH recovery now goes straight to USB reconnect + system reset + halt, skipping the in-session attempt (about 170 ms faster per cycle). Verify respects the writable mask and the RDP=Level1 protection level. Validated on STM32G0B0xE + ST-Link V2-1.
- STM32 G0/G4: mass erase under active write protection (WRP) previously returned
WRPERRif any page was protected via WRP1AR/BR/2AR/2BR. The driver now clears WRP before erasing; the final option-bytes write phase restores WRP from the buffer. Clone flow (Read from chip A → Write to chip B) is preserved — WRP is reproduced.
Lua / IPC
mp.memory.load_file/save_file:get_all_dataafterwards returned0xFFbecause the buffer had not yet been populated. The GUI event queue is now flushed after the dispatcher, so subsequent reads see the actual data.- Improved AI-agent operation with the following buffer-read functions:
read_byte/_at,read_range/_at,read_bytes,read_hex,read_string/_at/_until_null,region_size,get_region_data,get_all_data,export_region/all,compare. mp.memoryimport/export: on a real error they now return(false, err)instead of always(true, "").mp.utils.bytes_to_string: rewritten via the native Lua API, without sol2 wrappers.
Other
- The Checksum scripts settings dialog crashed on paths with Cyrillic characters in
%USERPROFILE%. The script is now read viaQFile+luaL_loadbuffer, bypassing CRTfopen.
Added
- VGBN (
Ctrl+0) can now obtain the zero-block size from the family settings, not only from the specific target. If the target has no size set — it falls back to the family; if neither is set —1024with a warning in the log. The target database now includes the zero-block size for the NEC_78K0R (2048), NEC_78K0_xx2 and RL78 (1024) families. Settings → Debug mode— a toggle in Settings that enables SWD driver diagnostic logs ([g0-diag],[swd-diag]and others) on the fly, without restarting the application. Messages go to the regular MultiProg log.
2.3.0
Released on May 6, 2026
System requirements
Version 2.3.0 ships on a new architecture:
- 64-bit build on Qt 6 (instead of 32-bit on Qt 5).
- Windows 10 and Windows 11 only.
- Installer goes to
C:\Program Files(x64) and writes settings to the 64-bit registry hive.
If you are on Windows 7 or 8.x — stay on the 2.2.x branch.
Added
Lua scripting engine
- Built-in Lua engine (5.5.1) with the full MultiProg API — about
235 functions across 12 modules (
mpcore,mp.backend,mp.config,mp.memory,mp.file,mp.checksum,mp.targets,mp.target_builder,mp.log,mp.ui,mp.utils,mp.app). - Script Console — separate window with code editor, syntax highlighting, autocomplete, debugger (breakpoints, step-by-step execution), and an interactive REPL.
- Lua scripts as user-defined checksum calculators with the result
shown in the status bar (marker
-- @checksum-script). - Script API version control (
SCRIPT_API_VERSION). scripts/examples/folder with ready-to-use samples.- Watchdog for external scripts — a hung script is auto-stopped after 10 minutes.
Themes
- Four themes — Light, Dark, Telegram, Night — with on-the-fly switching via Settings > Theme.
- User theme editor in settings.
- Correct rendering of window title (DWM), icons, hex viewer, logger, dialogs, scrollbars, and tabs across all themes.
- Hex Buffer Colors editor — dedicated hex-buffer color editor with mini-previews and live theme preview.
HEX buffer compare (Ctrl+M)
- Two HEX viewers side by side with diff highlighting.
- Import from file or current buffer, synchronized scrolling.
- Diff navigation (forward/back) across tabs and regions.
- Color-coded diff summary.
HEX buffer editing
- Undo/Redo via the edit menu.
- Highlighting of changed bytes.
- Buffer backup when entering edit mode.
- Edit / Fill context menu in the hex buffer; Fill dialog with live hex validation and address hint.
Connection image for every MCU
- Package support: QFP/LQFP/TQFP/QFN/PQFP/PLCC/SOIC/SSOP/LSSOP/TSSOP/DIP/BGA + Connector1Row/Connector2Row/AbstractTable, rectangular packages (e.g., PQFP 14×20 mm for M16C), and BGA layouts.
- Visual pinout editor (
PinoutEditorDialog) with a live preview — edit pin assignments directly in the GUI. - Connection table programmer↔target (
AbstractTable) — alternative tabular view of the pin mapping. - Package rotation to align the diagram with the physical chip orientation on the board.
- NC pins — visual landmarks for non-programmable package pins (pin labelled on the package but not routed to the programmer).
- Auto-generated wiring diagram from the JSON pin description of the target device; users can build their own diagram for a new chip by editing the pin description.
- Pinout Export / Import — export and import a pinout through the configurator.
Hotkeys
Ctrl+H— history of recently selected target devices.Ctrl+U— quick access to favorites.Ctrl+T— target search.Ctrl+M— HEX buffer compare mode.
ST-Link
- New in-house SWD backend (
KT SWD) — replaced the external backend with our own library, written from scratch. Shipped in this release: STM32 — 9 families (F0, F1, F2, F3, F4, F7, G0, G4, H7); Infineon FM3 / FM4 — 2 families; NXP MKE — 4 families (MKE02Z, MKE04Z, MKE14Z, MKE15Z); NIIET K1921VK. Our own code instead of a third-party stack — we now fix and extend it without depending on external libraries. - Fast write via SRAM routines — for STM32 F0/F1/F2/F3/F4/F7/G0/G4/H7, NXP MKE02/04/06, and Infineon FM4 MB9B560 we run our own microprogram in SRAM (previously: byte-by-byte through DAP). Throughput on par with J-Flash / J-Link.
- Resilient connect:
- double-read transfer verification (catches short USB transfers);
- per-chunk operation status check (
GETLASTRWSTATUS2); - auto-reconnect on a stale SWD session after target power-cycle;
- timing-based polling on writes with tolerance for transient bus errors.
- On connect — raw
VTREFADC counts logged (debug for "target not seen" / "low voltage" cases). - Firmware and Voltage rows in the programmer panel — shows the firmware version and the current target voltage.
- Minimum firmware required: V2J44S7+ (clear refusal if lower).
- STM32 G0 — proper support with Option Bytes read/write
and
OBL_LAUNCHafter write. - STM32 G4 — new family: Option Bytes read/write,
OBL_LAUNCHafter write, OB read from flash storage area (compatible with the J-Link save format). - STM32 H7 — new family: Option Bytes write, erase progress.
- NXP MKE — two in-house flash drivers: FTFE (for KE14/KE15) and FTMRH (for KE02/KE04). 4 families enabled: MKE02Z, MKE04Z, MKE14Z, MKE15Z. FTFE supports EEPROM Config, FlexRAM Set, FlexNVM partition restore, Read Resource, Erase All Unsecure, Program Partition, Option Bytes; FTMRH provides SRAM-stub fast-write.
USBDM
- USBDM JS16 support — new programmer added + BDM error decoder.
- Freescale HCS08 is now in the free version of MultiProg — with automatic TRIM.
- Supported HCS08 targets: MC9S08AC60 / AC96 / AC128, MC9S08GB (including GB60A — Arcadia 1).
- Paged-flash for AC96/AC128 — firmware format compatible with the Orange-5 programmer: the same file works on our tool and on O5.
- RAM-routine fast programming (~50× faster than byte-program).
- Pre-write blank check (skips already-matching bytes).
ESP32
- ESP32 is now in the free version of MultiProg.
- Connection image for all ESP targets; the Auto family is shown first in the selector.
- Byte-level progress for large flash operations — exact byte counts in the progress bar instead of KB/MB, more responsive on big images.
TGSN
- Toshiba TMPM470 — new family in the TGSN backend.
- NEC 78K0 Kx1+ (
NEC_78K0_Kx1plus) — new family; auto-baud ladder 153600 → 38400 → 9600. - NEC 78K0 xx2 (
NEC_78K0_xx2) — new family. - Renesas M16C — new family; lock-bits support via
MP_PROG_ARG_SET; CE/EPM pins on all subfamilies and packages (including rectangular PQFP 14×20 mm). Baud list:auto / 9600 / 38400 / 57600; 115200 is not used (unstable on M16C);autowalks the fixed values and locks on the first one that responds. - Renesas R32C — new family; separate erase modes —
mass for Flash, block for Data Flash; VDD pinned at 5 V.
Baud list:
auto / 9600 / 38400 / 57600 / 115200;autowalks the fixed values and locks on the first one that responds. - R8C — entry mode selection MODE3 from MultiProg.
- Bundled Lua script
renesas_nec_checksum.lua— built-in SUM-RL78 checksum calculator for Renesas RL78 (range0x0000–0x03FF, 1 KB) and NEC 78K0R / 78K0 (range0x0000–0x07FF, 2 KB). Wired in via Settings > Checksum Settings > Script, result shown in the main-window status bar.
Mismatch navigation
- Mismatch navigation panel during verify (forward/back, cyclic).
External AI agent integration (preview)
- IPC bridge (Inter-Process Communication) for driving MultiProg from external AI agents: read/write memory, target selection, programming operations, log retrieval — over a secured channel.
- Token authentication (
agent_tokenin%APPDATA%/KuragaTech/MultiProg/). --agent-modeflag — start with IPC enabled out of the box.- Settings dialog: Settings > AI Agent Integration — enable/disable, view/regenerate token.
- "Copy starter prompt for external agent" button — a ready-made prompt describing the API for paste into an external agent (Claude, Cursor, etc.).
Checksums
- Full rework of the Checksum Settings dialog — new dialog with profiles, consistent styling with other settings.
- +16 new CRC algorithms; renamed
KERMIT → CCITT. - Full preset set from
crccalc.com.
Misc
- Single-region save: filename carries the region's checksum stamp.
- Settings > Debug mode — runtime flag for extended operation
logging (
[read-diag]/[trim-diag]markers in the log), no application restart required. - Select Range — dialog for selecting a hex-buffer fragment by offset.
- Log terminal — context menu with search, error filter, and save-to-file.
- Ctrl+F context-aware — searches the log if the log has focus, otherwise searches the hex buffer.
- Favorites: Notes column — editable notes attached to favorite targets.
- All standard SREC extensions supported:
.s28,.s37,.sx,.s,.s2,.s3. The S19 parser is now resilient to non-contiguous records (previously crashed).
Changed
- TGSN Installer: clear distinction between network failure and license error, Back buttons, unified progress dialog for slow steps.
- Save names and JSON paths sanitized for the filesystem (Unicode names supported without breaking paths).
Fixed
- MultiProgSetup: clear error when HWID is bound to another account, improved registration flow.
- ST-Link V3: explicit refusal with a message (V3 support in development).
2.2.57
Released on February 10, 2026
Added
- Checksum display in the status bar with CRC algorithm selector.
- SUM-RL78 checksum algorithm; Checksum-16, Checksum-16 Inv.
- Checksum stamp in the save/export filename.
- Ctrl+0 hotkey for quick RL78-NEC checksum calculation.
- Cross version control between TGSN firmware and MultiProg.
Changed
- Configuration and log files moved to user directory (
%AppData%) with automatic migration on first run. - CRC16-CCITT set as default checksum algorithm.
- Updater now requests administrator privileges on Windows.
Fixed
- 32-bit start address truncation in
read_region(all bits ofstart_addrare now preserved). - Block and sub-block sizes refactored to
uint32_tto prevent overflow. tgsn_programmer_write_dumpwrite errors.- Double clipboard lock when copying hex/text from buffer.
- Missing error return in
tgsn_programmer_get_programmer_info. - Minimum TGSN firmware version check with user-friendly error message.
2.2.56
Released on February 3, 2026
Added
- TGSN Open/Full: support for HART-m300 and HART-i900 target families.
- HART targets: automatic detection of controller model (i910, i910z, m300).
Changed
- Auto-rename of legacy HART target JSON files (HART-M300 → HART-m300).
- Baud rate selector hidden for HART-m300 targets (fixed baud).
2.2.55
Released on January 31, 2026
Added
- Read ID Code from hex buffer (ID from buffer).
- SpecialRead for R8C targets.
Changed
- TGSN Full actions and dialogs are now restricted to TGSN Full license only.
- Lock TGSN Installer and Read Backup buttons during active programming.
2.2.54
Released on January 24, 2026
Added
- TGSN module download and upload (firmware modules management).
- Authorization dialog before accessing TGSN Installer.
- Blank check for all TGSN targets.
- Beta-test firmware download from server (context menu on Flash button), verified against online record.
- R8C: added arguments for 21254-58 and BA variants.
Changed
- Save/Load functions refactored for consistency.
- Error handling: new
statusToQStringhandler, improved error messages. - TGSN Installer requires active license to open.
- Firmware upload uses chunked protocol (
prot_write_file).
Fixed
- TGSN special error handler cleanup.
2.2.53
Released on October 16, 2025
Added
- MKE02Z EEPROM support.
Fixed
- TMPM370 flash size correction.
- Progress bar display.
- Increased timeout on mass-erase (tested on 212BA).
2.2.52
Released on October 15, 2025
Added
- TGSN Open/Full: support for the R8C family.
- New target selector with search, favorites, and configurator.
- Configurator: configuration subroutine for families (R8C, TMPM370) to add the controller.
Changed
- CRC8_LTE when reading each block in loader-e RL78 (TGSN).
- Automatic authorization during installation.
Fixed
- FM4 Infineon - HALT when reading D-Flash (IROM2).
2.2.51
Released on August 13, 2025
Added
- TGSN Full: support for reading closed RL78.
- TGSN Open/Full: support for TMPM370 + I2C/SPI EEPROM via UART RAM loader.
- ST-Link support for Infineon FM3, NIIET K1921BK035.
Changed
- TGSN supports auto-target from JSON configuration file.
- tgsn-installer — auto-upload startup bootloader (verified by CRC32), auto login on Wi-Fi/server from NVS.
Fixed
- TGSN: fixed USB library.
2.2.32
Released on January 31, 2025
Added
- start changelog
Changed
- UI - scrolling buffer, TGSN - set Current_ID after connection in ID Selector;
Fixed
- tgsn-installer,WiFi - parse some symbols in password;