For the complete documentation index, see llms.txt. This page is also available as Markdown.

Changelog (26)

Newest first. For earlier releases, see Changelog 2025, 2024, 2023 and 2022.

Cronus Zen™ firmware

v2.3.2 — August 18, 2026

Added

  • Trigonometry math functions: sin, cos, tan, asin, acos, and atan2

  • Support for the unified Zen Link™ v1/v2 firmware

Fixed

  • Clearing Bluetooth® did not fully clear or unpair a connected device

  • DualShock®4 and DualSense™ light bar and rumble behaviour is now consistent between USB and Bluetooth®

  • General bug fixes and improvements

v2.3.1 — July 9, 2026

Fixed

  • Slot 8 readback issue

v2.3.0 — July 2, 2026

Added

  • GameSir G7 Pro controller support

  • BVARS, giving each slot 1024 extra 16-bit persistent values for scripts

  • High-resolution Mouse Ballistics Curve

Improved

  • Audio handling

  • Elite Series 2 controller detection

  • General optimizations and minor bug fixes


v2.1.4 — August 20, 2026

Added

  • A quick tap of the config button cycles the LED brightness: dim → four steps → max → off → dim. Dim is the default — see Brightness

  • Holding the config button for more than five seconds enters BLE mode for changing the Wi-Fi settings. If the phone app is already running, restart it so it can detect the Zen Link™

  • BLE mode can be left at any time by tapping the config button again. Nothing is changed unless new Wi-Fi settings are submitted

Changed

  • The idle state is now a dim white LED, replacing the previous two white blinks

v2.1.3 — August 18, 2026

Changed

  • Unified firmware for Zen Link™ v1 and v2

Improved

  • LED status signals — see Status Light

  • General stability


Zen Studio Live

v1.0.8 — August 22, 2026

Added

  • Upload is blocked when the active script is blank or compiles to nothing, and the reason is named on the button and in the dialog

  • Open device confirmations — erase memory, clear Bluetooth®, factory reset, restart — close themselves when the Cronus Zen™ disconnects

  • GPC3020 warning for : used as a statement terminator

  • GPC5143 error when combo state slots exceed the available capacity

  • GPC6038 warning for an empty combo

Fixed

  • Undo in the OLED editor no longer leaves the selection pointing at an object that is gone

  • OLED image import and nudge refuse an unresolved selection instead of quietly editing the Background layer

  • Reads from the Cronus Zen™ retry on a transient integrity fault instead of failing outright

  • A connection that fails partway through startup no longer leaves the app showing a ready device

  • Folding of division, modulo, shift and clamp matches how the Cronus Zen™ evaluates them at runtime

  • Float literals round the way Zen Studio rounds them

  • The optimizer no longer drops side effects from the initializer of a removed for loop

  • Combo steps stay correct after the optimizer rewrites a combo body

  • Long flat operator chains count toward the expression nesting limit instead of slipping past it

  • sizeof() array sizes resolve correctly, and an unusable array size is reported once instead of twice

  • Device read timeouts no longer drift

  • Formatting a script is now stable — running it again on formatted code leaves it unchanged

Improved

  • Programming waits for the Cronus Zen™ to report erase completion before the first write

  • Disconnects are detected right away and carry a reason, so nothing is sent to a device that is already gone

  • General diagnostics, error handling, stability, and reliability

v1.0.7 — August 18, 2026

Added

  • QR code objects in the OLED Message Screen editor, re-editable after creation, with error correction and size options and a warning when a code will not fit the screen

  • Position anchor grid to snap any OLED object to one of nine spots on the canvas

  • Open tabs now talk to each other: when another tab is holding the Cronus Zen™, the in-use indicator can alert that tab with a title flash, a toast and an optional browser notification

  • Device Settings entry in the Device Management sidebar menu

  • Single-tab device lock setting for advanced users

  • Publish date shown on script cards in the Script Library

  • Combined GamePack sort choices in the slot list

  • Right-click a Device Monitor cell to copy its raw value

  • Automatic retry when slot programming is interrupted mid-write, with a cancellable wait

  • Zen Link™ status indicator in the status bar, with a popover showing the link's state, its own firmware version and serial, and a refresh button

  • Version history for Script Library scripts: Details and History tabs, switching to any earlier release, and a banner with Go to latest when viewing an older one

  • Stack budget meter in the Output panel, showing how much of the Cronus Zen™'s stack a script's variables and runtime cost use

  • Evaluate an expression or convert a number's radix straight from the editor's right-click menu

  • Editor settings to turn quick suggestions and parameter hints off

  • Live "too narrow" warning when the picture-in-picture Device Monitor is sized below what it can render

  • Trigonometry built-ins on the Zen32: sin, cos, tan, asin, acos, and atan2 — they take and return degrees, with values scaled by 10000

Fixed

  • GamePack options with more than one choice are now treated as multiple choice

  • Script Library upload rejects blank content instead of failing later

  • Attached Devices popover opened on the wrong surface in some places

  • Editor Settings dialog now keeps full height

  • SPVAR editor button labels and wording

  • Nintendo Switch® was not always detected as the connected console

  • MAX Combo defaulted its controller to PS3® instead of PS5®

  • Push and Pull labels in the editor's git bar were unreadable

  • Very large scripts could break the editor instead of loading with reduced features

  • Scripts saved as UTF-16 are now opened and decoded correctly, and files that are not source are rejected on every open path

  • Restore File Access kept asking after being declined

  • Merge conflicts are entered reliably, and conflict markers glued to code are put back on their own lines

  • A stalled git remote request now fails visibly instead of hanging

  • set_ps4_lbar took its colour parameters in the wrong order

  • wait() in an expression now reports an error instead of crashing the compiler

  • Calls with the wrong number of arguments to a built-in are reported instead of silently dropped

  • Variable slot usage reported the number of declarations instead of the slots actually used

  • Go to definition and Rename now anchor on the declaration's name

  • Formatter output stays plain ASCII and no longer leaves minified scripts on one line

Changed

  • Closing or reloading the page is now blocked while programming or updating the device

  • The Update Available banner can no longer be dismissed, and update notices are much harder to miss

Improved

  • Attached Devices popover reworked into a tree grid that shows how devices are connected

  • Editor dialogs now use Zen Studio Live's own window chrome, grow to fit their content, and wrap long text

  • Slots are verified against the Cronus Zen™ after programming, and slot backups check the size read back against the slot's own metadata

  • Connecting now gives up cleanly instead of hanging when the Cronus Zen™ stops responding

  • Clearing Bluetooth® no longer asks you to type a confirmation, and the remaining confirmations are quicker to get through

  • Device Monitor opens at the width needed for the PS5® adaptive trigger columns

  • Output panel filter badges now match what is actually filtered

  • Data section summary counts strings, images, and adaptive trigger tables as items

  • GamePack sort labels reworded to plain language

  • General diagnostics, error handling, stability, and reliability

Removed

  • Legacy PVAR_1 to PVAR_16 from the Zen and Zen32 built-ins

v1.0.6 — July 17, 2026

Added

  • Ternary conditional operator (condition ? a : b) in scripts

  • GPC2117 error for a ternary missing its :

  • GPC4032 error when a ternary is used as a standalone statement

  • Fix and Fix All buttons in the compiler output panel apply available quick fixes directly

  • Hovering an enum member or define now shows its resolved value

Fixed

  • Saved M&K profiles now store and restore ballistic curves correctly

  • Device Settings no longer shifts layout while values load from the Cronus Zen™

  • Restarting the Cronus Zen™ no longer loses settings applied just before the restart

  • Incorrect parameter-limit errors on some built-in functions

  • Fallthrough warning no longer appears on empty switch cases

  • Find References and symbol highlighting now respect scope and symbol type

  • Stray text cursor no longer appears over icons and read-only text

Improved

  • Firmware update wizard retries a failed update automatically, with the option to cancel while it waits to retry

  • Device settings changes apply without restarting the Cronus Zen™

  • Cronus Zen™ commands now retry automatically on recoverable communication errors

  • Sending a Library script directly to a slot no longer leaves its tab behind after a reload (editing the script keeps it)

  • Device Management moved into the sidebar Tools group

  • General diagnostics, error handling, stability, and reliability

v1.0.5 — July 12, 2026

Added

  • Every successful compile now shows slot, stack, and bytecode usage against your Cronus Zen™'s maximum limits

  • Lightbulb fixes are now driven by the real parser, allowing edits to land precisely without overlaps or duplicate suggestions

  • New fixes cover unused declarations, switch fallthrough, assignments inside conditions, unconsumed return values, and single or multi-variable for declarations

  • Hover, rename, references, cursor targeting, quickfixes, and the Problems panel now align correctly in scripts containing accents, symbols, or other non-ASCII text

  • The bug report dialog can now capture detailed Cronus Zen™ traffic for the current session

Fixed

  • Momentary device-state races no longer cause false "connection lost" disconnects

  • The Build button can no longer remain stuck after a failed compile

  • Tab menus now target the correct tab, Git files restore using the correct language, close buttons remain visible, and dialogs correctly handle Escape and Enter

  • Keyboard shortcuts no longer trigger while typing outside the editor

  • Invalid switch-case values no longer disrupt the remaining case labels

  • Multiline strings no longer shift diagnostic line numbers

  • Outline and analytics panels clear correctly when switching to an empty tab

  • Long usernames no longer break profile layouts on the Library page

Improved

  • Script flashing and device reads are now much more reliable when the Cronus Zen™ streams live data during an operation, preventing silent timeouts and corrupted reads

  • Ctrl + S now detects files changed outside the editor and handles them safely

  • Unsaved work is preserved when moving tabs between editor panes

  • Workspace saving now recovers gracefully when browser storage fails and flushes when switching away from the tab

  • Changes to the auto-save setting now apply immediately without requiring a reload

  • Messages for REMAP_NULL, switch-case traps, memory limits, and other diagnostics are now clearer and more actionable

  • Failed compiles now show an accurate summary that resets correctly before the next build

  • When a new update becomes available, Zen Studio Live now prompts you to reload instead of failing on stale application files

  • Broad reliability improvements across diagnostics, error handling, saving, tabs, and Cronus Zen™ communication

v1.0.4 — July 9, 2026

Fixed

  • Firmware updater getting stuck after downloading the firmware

v1.0.3 — July 9, 2026

Added

  • GPC3012–GPC3017: const-array narrowing warnings

  • New warnings for zero-folding division/modulo and "glued" negative numbers such as x -1

  • Restart your Zen directly from the app. Zen Studio Live also restarts the device automatically after writing output, PS4®, or Remote Play settings

  • Capture bindings by pressing a key, mouse button, or controller button on your connected device

  • Name mapped buttons inline. Labels save with your profile and .zmk exports

  • Exclude specific devices from capture, with quick-add options from the device tiles

  • Save, export, download, and profile actions now show confirmation toasts

  • Top Scripts on the Home page are now votable, with confirmation before each vote is submitted

Fixed

  • Duplicate tabs, cancelled-save tab closing, clipped hover tooltips and suggestions in split view, and a startup crash caused by duplicated tabs

  • Compile results now stay with the tab that compiled them, and stale compiles can no longer overwrite another tab's results

  • Diagnostic positions are now correct in scripts containing non-ASCII characters, including accents and emoji

  • The upload dialog now shows the correct active file name

  • Incorrect slot names in empty-readback errors, Flash All confirmation with no pending changes, and header wrapping

  • Live BALC dots, button-label length caps, device-tile layout issues, and label caption clipping

  • The PS5® ADT column font size now matches the rest of the monitor

  • The downvote tally is now hidden while vote buttons remain available

  • A Script Library upload issue that could occur in Brave

  • Failed addr() and 2D const-array lookups now report diagnostics instead of returning wrong values

  • sizeof(image) now returns the element size, 1

Improved

  • 2D const-array index, address bounds, and single-bracket access are now validated

  • Data-section address arguments are now checked against section size

  • Built-in argument limits now error instead of slipping through

  • Stray ; expressions now error with Expected expression instead of compiling as 0

  • Zero-size array aliasing now warns with GPC6031; zero-size arrays without an alias target now error

  • Deeply nested scripts are now caught instead of silently overflowing

  • On 16-bit devices, constant math now truncates correctly to match device behavior

  • Uppercase 0X hexadecimal notation is now accepted

  • Flashing and firmware update communication has been reworked to reduce write failures and stalls

  • Program is now always available when a connected, supported device is ready

  • Free-draw strokes are faster and no longer drop pixels during quick movements

  • The server status indicator now reflects real request outcomes, reducing false offline or online states

  • Startup behavior and library loading

v1.0.2 — July 4, 2026

Added

  • Work with two side-by-side editor panes for easier comparison, editing, and script navigation

  • Move tabs freely between editor panes, or use the drag-to-dock overlay to split or move a tab

  • Tab context menus and editor strip buttons now include split options

  • Dropping a file that is already open in the other pane now jumps to that tab instead of opening a duplicate

  • Pane layout and split ratio now persist across reloads

  • If the built-in firmware updater gives you trouble, a clearly labeled link now takes you to the official online updater after handing your Zen over cleanly

  • The connected-device area now shows when newer firmware is available, plus a once-per-session heads-up

  • Your M&K profile and ballistic curves now survive device disconnects. Unsaved changes now trigger a Save / Discard prompt

  • If your Zen is already being used by another tab or app, Zen Studio Live now shows a clear in use elsewhere state

Fixed

  • Constants now resolve correctly inside data() section values

  • Const-array usage is no longer incorrectly reported as unused

  • addr() on jagged const arrays now resolves element addresses correctly

  • Hex escapes from \x80 to \xFF now emit as single bytes

  • Enum members and variables now use the correct symbol icons

Improved

  • General editor stability

  • Workspace-restore reliability

  • Cursor detection inside comments and strings is now more accurate

  • The updater now handles busy devices, device handoff, disconnects during update, and Try Again recovery more reliably

  • The success screen now shows the installed version, outdated firmware states show the available update, and rejected updates show the correct reconnect fix

  • GitHub sign-in now completes inside its popup instead of reloading the whole app

  • Flashing a new script to a slot no longer inherits leftover values from the previous script

  • Broad reliability and error-handling improvements across device connections, the Script and GamePack Library, and uploads

Removed

  • get_mk and set_mk are no longer supported

v1.0.0 — July 2, 2026

Added

  • Truly cross-platform: works anywhere a Chromium-based browser runs, including Windows®, macOS®, Linux®, and ChromeOS™

  • Full Zen device support in the browser: connect your Zen directly from the page, program slots, use live Device Monitor, configure GamePacks, adjust M&K settings, run guided firmware updates, and reconnect automatically

  • Fast, modern editor: snappy code editing and compiling directly in the browser, with built-in Git version control for your scripts

  • Built-in OLED Studio: design 128×64 OLED screens with layers, shapes, text from any font, image import with dithering, and one-click GPC export. This is not available in the desktop app


Zen Studio Legacy

v1.7.0 Build 7 — July 2, 2026

Added

  • Launcher for Zen Studio Live

Improved

  • Disables Programmer and M&K tab for firmware higher than 2.2.14

Last updated