# 2.2.00 ### New Features - Added True Nest - Center Line Trace. - REST API for local and network inter-application communication. - Target buffer override for G-code devices whose firmware doesn't report the buffer size or reports it wrong. - 3D model import. - Depth map creation from imported 3D models. - Extra controls for Custom G-code devices, similar to GRBL. - FluidNC flavor filtering to clear [MSG] spam from the Console. - *3D model import added. Your Benchy finally has somewhere to go* - Creality Falcon HTTP flavor for Custom G-code. - Duet/RRF HTTP flavor for Custom G-code. - Accelaser hybrid gantry + galvo device support. - LiDAR surface scanning with height-compensated engraving. - Rotary setup on Emblaser Pro. - Accelaser LiDAR ranging dialog improvements. - *REST API added. LightBurn itself still does not rest* - Default G-code file extensions for Custom G-code flavors. - Revert to Manual Alignment button on the Overhead Auto Alignment page. - WeCreat HTTP flavor for Custom G-code, for sending job files to WeCreat lasers. - Device Classification (Model and Source) in Device Settings, allowing full offline design for adaptive protocols. - TopWisdom rotary support. - Galvo Move panel as a dockable widget. - PCB file import (Gerber and drill files). - Epilog laser support. - Calibration Target Collector. - xTool F1, F2, and P2 series support over network (F1, F1 Lite, F1 Ultra, F1 Ultra 2, F2, F2 Ultra, F2 Ultra Single, F2 Ultra UV, P2, P2S). - Camera and Depth Overlay Registration dock widget. - Report a Bug in the Help menu. - REST POST endpoints and Project write capability for writing settings to a project. - REST API reports and edits dual-source, galvo and MOPA laser settings. - Split Marking on EzCad3 devices, tiling along one or two page axes as a grid while any other axis holds a fixed position. - External Axis Setup on EzCad3 lists every configured axis with a tiling or fixed position role, and refuses two rows that drive the same motor. - EzCad3 split marking starts tiling from the worktable origin set up in EzCad3, so the first tile lands under the galvo head instead of at the home switch. - Table shear correction for split marking cancels the seam drift of a worktable whose rails are not square to the galvo field, imported from the EzCad3 configuration and editable in Split Marking Setup and the runner window. - External Axes Settings tab in Device Settings for EzCad3, with one control group per axis covering motor selection, step scaling, speeds, homing, position readout, jog, Home and Stop, and on the rails a move to the worktable origin. - xTool rotary support for D1, F1, F2, P2, S1 over network in Absolute and Current Position modes. - Rotary Park Position to 'park' the head at a specific position before switching into rotary mode (initially for xTool). - REST endpoints to fetch the existing camera overlay image and its metadata (see https://github.com/LightBurnSoftware/LightBurn-REST/pull/2 for API changes). - REST API changes for galvo vs gantry cut settings endpoints; clients must update, see https://github.com/LightBurnSoftware/LightBurn-REST/pull/3. - xTool cloud credential updates to support new firmware. - xTool and Creality Falcon network devices now appear in Find My Laser - Search Network. - Galvo Move window and Z axis settings for BSL galvo lasers, with configurable homing that stops the axis. - Print and Cut using a head-mounted camera. - xTool workspace size read during network device connection. - LBP 0.8 Labs Integration. - Custom web tool support. - BSL door protect support. - *Print and Cut with a head-mounted camera. The camera is mounted on the laser head, not yours* - Extensions tab on the galvo settings page. - Vector troubleshooter. ### Bug Fixes - Typos in Quick Nest messages. - Some Custom G-code values were unit-converted when they shouldn't have been. - Launching and immediately closing could crash the web tool loader. - The on-screen keyboard didn't appear when touching a number field on a tablet (Windows only). - The 3D import dialog viewport didn't render. - Min tabs was not always respected. - Equations in number entry fields were parsed wrongly when using a comma vs a period. - The dogbone tool could fail in some cases; it now uses double-precision math. - Text could change position after copy and paste because its new width wasn't handled. - The edit window rebuilt its render buffer constantly, including on every repaint. - The trim tool didn't work in some cases. - Select all shapes for an operation accidentally included shapes from other pages. - Toggle Panel visibility didn't toggle the Pages panel. - 3D depth maps weren't imported with an image cut setting. - Memory leak in the cut settings editor. - The Device Settings dialog cut off Custom G-code options. - Framing could use the wrong origin offset. - Custom G-code didn't use the custom header when framing. - Reset to Default Layout didn't work. - Network permissions were missing on macOS 27. - Re-exported images were sometimes rotated 180 degrees. - The Device Settings dialog could cut off or squash widgets; its minimum size and stretch policy are now set correctly. - Newer Qt was no longer resolving host names in some cases. - Opening a LightBurn or MillMage file from the other app showed an incorrect warning and didn't preserve pages the way importing does. - SVG import was missing content from files using SVG 2.0 features and sized text wrongly; skew and SVG 2.0 / CSS unit types (%, em, ex, ch, q...) are now supported. - *LightBurn no longer Panic(s) at the Disco* - Number entry fields could change value randomly. - Pause/resume sent two pause commands while streaming G-code. - Shape Properties panel fields didn't support flexible number input, unit conversion, and formulas. - The position readout didn't refresh after a discrete jog or work-offset change. - 3D model rotation was wrong after switching between mouse rotation and the rotation fields. - Tab order of controls in the 3D import dialog was wrong. - Connection buffers could block in rare circumstances on flaky grblHAL controllers. - PDF files with object entries split across lines weren't handled. - *PWM frequency raised to 4000 kHz. Dogs within a three-mile radius have been notified* - Print and Cut label icons didn't follow the theme colors. - Some checkable menu options didn't show check mark icons. - Thunder Titan controllers now get separate laser enable flags. - The PWM frequency limit is raised to 4000 kHz. - Units typed in upper case (MM or IN) didn't convert. - Preview could crash after importing or opening a MillMage file. - EzCad3 fiber marking was slow when Always Open MO was disabled. Every jump closed and reopened the master oscillator and waited the Open MO Delay, which added several milliseconds per jump. The oscillator is now opened once per job regardless of the Always Open MO setting. - EzCad3 devices created with Find My Laser were saved with gantry simulation parameters. The protocol now supplies galvo defaults, and the Read Sim Params button is available for EzCad3 devices. - Shape Alt-drag didn't snap properly to vertical positions. - Sparrow and jagua-rs license details were missing. - The REST API status didn't report job progress correctly. - The 'Enable Laser 2 Controls' checkbox didn't look disabled when it was disabled. - Swap X/Y Axes had no effect on Custom G-code devices. - Z axis homing settings in Device Settings misbehaved: Enable Homing was bound to the limit switch flag instead of the homing flag, turning homing on or off didn't take effect until the dialog was reopened, and the homing direction, homing switch level, limit switch level and jog direction radio buttons could show neither option selected. - Stepper speed and homing timeout spin boxes in Device Settings and External Axis Setup clamped imported values, silently halving a fast Z axis and capping its homing timeout. - Framing or sending a design with split marking enabled from the main window no longer reports "No shapes in bounds". - The frame preview for a split marking or rotary job moved the external axis using the page axis number instead of the motor port. - EzCad3 external axis commands enabled the controller limit switch mode whenever homing was enabled, so an axis with homing but no limit switches homed away from its switch and ignored the Homing Direction setting. - EzCad3 external axis homing used a fixed 30 second timeout instead of the go-home timeout imported from Motors.ini, aborting slow homing moves partway through. - The steps distance of a split marking or rotary axis was not saved on EzCad3 devices and reverted to one unit each time the dialog was reopened. - Closing or switching away from an EzCad3 device while an external axis was moving or homing blocked for up to the move timeout before the connection shut down. - Connecting to an EzCad3 machine with Find My Laser and no config files froze. - EzCad3 galvos didn't return to the red dot rest position after a job was stopped, skipped the rest position jump when the cached position already matched, and went to field center instead of the configured rest position at the end of a job. - Frequency control was missing for EzCad3 devices. - Camera overlay was never updated for negative-W alignment matrices. - UI font scaling could enlarge the UI on low-resolution screens and crop some UI elements. - Invalid environment variables carried over from older LightBurn versions could cause UI scaling issues. - The Galvo Move window appeared on gantry, JCZ and BSL devices, and once shown was remembered for that device. Each Move window now decides from the device profile whether it applies, the galvo one defaults to hidden and refuses to show elsewhere, and profiles that had stored it as visible correct themselves. - The Jog Laser Down hotkey did nothing due to a typo. - Preview frame rate issue in the new auto camera calibration wizard. - Editing Machine Settings could crash when the device returned errors. - Deleting a page or undoing a page delete didn't update the list of active layers. - 16-bit greyscale and ARGB32 images couldn't be adjusted in the image adjust dialog. - Epilog engrave speeds just under 1% showed ?? on the machine display and ran too fast. - Epilog CO2 fill and image layers ignored the power setting and engraved at full power. - Docked panels overlapped and clipped their contents at large font and icon sizes. - MOPA QPulse and Frequency support were confusing for Thunder devices; those settings are now consolidated. - Custom G-code didn't output rotary settings in headers. - Changing the active page refreshed twice. - Galvo Rotary Marking and Split Marking advanced the serial number when no job was completed. - REST API jog settings could not be changed, and invalid jog, home and override values were silently accepted. - REST API cut settings repeated the base layer in the sub-layer list and left out sub-layer settings. - Overcut cut short and ended off the outline on curves. - Camera UI and thread safety improvements. - The start point editor could show the arrow in the wrong direction on closed shapes. - Camera settings didn't persist in preferences. - Epilog device settings didn't match the actual device capabilities; they're now locked to match. - Camera auto modes overrode saved manual settings. - Depth maps from imported 3D models were invisible when the view mode was set to filled. - Depth maps lost their image type when moved to a new layer. - REST API omitted the first sub-layer's name and wrongly reported the Show checkbox status. - The Window menu's Move entry showed unchecked when the Move window was docked behind another tab, and could be selected on galvo devices without a Move window, where nothing appeared. - EzCad3 Repeat Marking only turned the rotary a fraction of a degree per step when the axis type was set to Rotating. - Titan controllers showed a current position option they don't support. - Camera buttons were missing from the Camera / Overlays widget. - SVG export wrote varying line weights and incorrect line attributes. - UI issues in connection request dialogs. - Under certain conditions the calculation of required resolution for current font and icon size settings was incorrect, and could prompt users to change display settings when unnecessary. - With "Require framing before start" enabled, the Start Marking foot pedal on BSL lasers started marking immediately instead of opening the framing window first. - The external Stop Marking input on BSL lasers did not stop jobs started from the main window. - On EzCad3 lasers, Run Continuously and Repeat in the framing window counted jobs rapidly while only marking occasionally. - BSL split marking settings weren't saved. - Epilog speed limits weren't clamped in the Cuts / Layers window. - Rows in Cuts / Layers didn't resize when their height changed after linking to the material library. ### Existing Feature Updates - Number entry fields accept a comma or dot as the decimal separator, ignore earlier commas and dots, and show a thin space as the thousands separator. - Settings show 'Cmd/Ctrl-Arrow:' instead of 'Ctrl-Arrow:' to indicate the Mac Command key. - Path and unusual characters are filtered out of the document title in exported AI files. - Latest Visual C++ Redistributable, with the unneeded version removed from the installer. - Break apart and Auto-join now preserve tabs. - Custom shortcut keys for user-defined macros. - App version number saved in preferences. - Split marking for BSL galvos. - Double-click in node edit converts to a path. - Warning when importing a galvo or DSP device with a Core license. - Selected items and progress bars keep part of their original blue color instead of turning white in the light theme and black in the dark theme. - The New Device Wizard notes that comms settings only need editing when resolving problems. - Consistent "G-code" in messages and the UI, and "Error:" capitalized in the Console. - Warning to remove the probe and wires before starting a job after the probe wizard has been run. - New "Not Responding" comm status, so error messages distinguish between disconnected and not responding. - Clearer License dialog with links to help pages. - Faster bitmap loads for large projects. - ESC key closes the measure tool. - Guide lines excluded from thumbnail bounds. - Ruida UDP file retransmit support. - Better multi-mesh support for 3D import and depth map conversion. - New Device Wizard and Device Settings include Z axis height setup for galvo controllers. - Single Accelaser device with a model selection page. - Jog widget and camera layout fixes. - Separate EzCad2 and EzCad3 drivers. - *Galvo Z control is back, and it beat Avengers: Doomsday to release* - Windows ARM EzCad drivers included. - *AI Escape rate decreased 42%* - Updated FTDI drivers and libraries, including the Windows ARM driver. - Auto calibration pattern collection procedure upgrades. - Accelaser planner library update and increased wobble precision. - Variable axis letter names for controllers that support them. - Frame preview positions every configured axis and shows grid tiles where they will actually be marked. - The laser status shows Moving while external axes reposition during a galvo job, and Stop during a split marking axis move takes effect immediately. - Split marking elapsed time includes the homing before a job and the return to the start position after it. - The Galvo Move window keeps its Z position across a Stop that did not interrupt a move, and no longer waits on a Home request the axis could not accept. - Split Marking Setup shows the fixed position target for the Z axis in the same Home is Zero convention as the Move window. - The EzCad3 Z jog stays within the configured Z axis height once the axis is homed. - Registration / Camera widget layout updates. - Alignment intro page removed. - Accelaser planner library loads on demand instead of at startup. - The Alignment Wizard sets the cut origin to Absolute and restores the previous setting on exit. - Focus on the calibrate button in the New Camera Wizard. - Improved camera dialog tooltips. - Device Settings and External Axis Setup refuse to close on an unusable axis value, such as a minimum speed above the maximum, instead of silently clamping it. - A new split marking axis row on EzCad3 starts from the imported steps, distance, homing speed and timeout of the chosen motor. - Preset cameras now also go through all setup steps. - Alignment Wizard verification update. - Warning when the wrong AprilTags are detected. - Option to fill alignment pattern features. - Cameras and Registration docks merged into one. - Accelaser camera presets. - Focus Test and Interval Test are no longer shown for Accelaser devices. - Unsent crash reports can be deleted. - Entering a Z axis height in the New Device Wizard turns on Z axis control. - The Galvo Move window only appears when Z axis control is enabled for the device. - Camera Calibration QR code points at the docs. - Accelaser REST API features for framing and LiDAR scan cancelling. - Rotate view buttons in camera calibration. - Snap dragging can take X from one shape and Y from another. ### Miscellaneous - Pro mode trial with a valid Core license. - Valid URLs can be pasted into the Web Tool browser. - *3D Modelling temporarily stuck in the 8th Dimension.  Buckaroo Banzai has been dispatched to retrieve it.* - Legal warning that must be accepted before SVGNest can be used. ### User Interface Updates - Improved visibility of toolbar drag handles and overflow arrows. - Padding between items in the main toolbar. - Buttons in the 3D import and depth map settings dialog show more clearly when they have focus. - Split marking menu text and window titles no longer say one axis or single axis. - Application font size setting now applies to tooltip text. - The steps pair is labelled Steps and Distance in Device Settings and External Axis Setup, matching the imported values. - Cut settings dialog now includes Epilog-specific settings and device limits. - mDNS search for Epilog devices in the device discovery dialog. - Minimum screen size check tables updated to account for UI updates and fixes when High DPI Scaling is disabled. - New startup check and prompt to enable the "High DPI Scaling" setting if a high DPI display is connected. - Title case is consistent across all right-click menu entries. - Smoother expand animations in the Camera / Overlays widget. - 'Paste in Place' in the right-click menu.