LightBurn 2.1: Quick Nest, Enhanced Camera Support, Undo History, and more

Changelog

New Features

  • Multi-Camera Support
  • Quick Nest
  • Font management dialog
  • Undo history dialog
  • Project template files
  • Tangent circle generator
  • New “Web Tools” integrations
  • Added custom gcode job header auto generation and editing as a gcode block.
  • Custom gcode can now have escaped text sequences.
  • Make G20/G21 modals editable gcode blocks for custom gcode.
  • Support Dxf Export for AC1009 & AC1021
  • Split out Control Units from Device Units
  • Added toggle switch to disable KT332N U - Z axis mapping
  • Print Line Width is now a user setting in Import/Export
  • Direct Raw and Undistorted image capture from all camera types
  • Add ability to name lasers sources when dual lasers enabled
  • Camera Lens Calibration wizard sample thumbnails and percentage scores
  • Vendor Links Menu for Devices imported from Vendor Bundles
  • Add support for M73 percent and time remaining estimates for Custom GCode Machines.
  • Updating correct Masso gcode defaults after feedback from their support
  • Console log improved status query and syntax coloring
  • Show Custom GCode Flavor in Device List
  • Support for Duet / RepRap GCode Flavor
  • Overlay capture uses Warm-up Frames setting when camera previews are paused
  • Ezcad2 Galvo Z Control will return in Avengers Doomsday

Existing Feature Updates

  • Certain zoom levels were slow because of transparent grid
  • Add ‘Flash Layer Shapes’ action so it can have a hotkey
  • Minor Tweaks to Cut Settings height
  • Better handling of Enter key in Repeat Marking
  • Major improvements to reduce direction changes, choose best direction
  • Don’t auto-weld single line fonts, only classify SLF-OPF as Single Line
  • Added RunLengthDecode support to PDF import
  • Allow ‘Bake’ variable text work on selection
  • Give stacked buttons a bit of forced extra width to allow side clicking
  • Move “library” buttons under the lib to allow shorter vertical
  • Show a message if the user tries to calibrate axis while rotary mode is on (gantry)
  • Icons for Material Library functions
  • Material test, allow boxes as large as 400mm, limit max font size depending on laser type.
  • Keep cuts list position when list changes, keep selection in view when moving up/down
  • Forgot to check in new themes for gcode
  • Show tool position during cuts using the linecount sent.
  • Turned off extra comments that were incorrect for custom gcode
  • Increased galvo rotary size limits to 20 meters
  • Updated rotary runner screen limits to match setup screen
  • Shrink the cut settings window
  • Double-click to Adjust Image
  • Smaller galvo settings window for Devil’s Resolution
  • “Remove fillet” preview
  • Reduced cut setting window 10 pixels more by reducing the dither preview size
  • Mood sensor added. Will generate more bugs when user is angry
  • Raised acceleration limits for gantry simulation
  • Show warning if using 3DSlice with a single pass
  • Drill files with Z drop + Z lift in place will generate 1mm circles
  • Export hidden lb/mm layers to svg as hidden entities in SVG
  • Regenerate the color swatches when font scale is changed
  • Store/restore the repeat mark jog distance
  • Galvo framing now gracefully handles when you have too many shapes
  • Auto-select laser1 / 2 if appropriate
  • Handle 16 bit maps with pre-multiplied alpha
  • Add rotary diameter as a custom gcode variable
  • New Scissor Tool operation uses shift key to send the clippings to the active layer.
  • New optimizer wasn’t special casing filled shapes
  • Remove the null at the end of Adobe’s SVG paste data
  • When logging enabled, write SVG content to file
  • Write available paste formats to debug log
  • Fixed multicameras head-scan going out-of-bounds when the camera offset was too big
  • Added Thunder Laser presets to New Camera list
  • Automatic TabBuilder fixed to prevent having first and last tabs closer than the minimum requested distance.
  • TabWizard fixed to prevent having first and last tabs closer than the minimum requested distance.
  • Head-mounted camera scans were not being limited by the DPM settings
  • Emblaser shared cameras required some settings to be tweaked
  • Modified Emblaser Pro Stop command to suppress duplicate newline
  • Added “air protect” setting for Thunder
  • Camera Preview Quality is now a global preference
  • Fiducial markers modified to not overdraw crosshair line when demicircle is not filled
  • Some emblaser commands were missing newlines
  • Another missing newline for Emblaser Pro and strip upload terminals
  • Modified EPro firmware upload to wait for completion rather than depend on timer
  • When using ‘Negative’ with 3D slice, reverse the slice order
  • Force “Flood Fill” to fill shapes individually, to enforce order
  • Redirect main toolbar ‘Update background’ action to multicameras
  • Network camera download limits & faster shutdown
  • New Camera wizard improvements and modified camera prefs
  • Added a checkbox to job control to Ask for Send Name so it can be disabled.
  • Improved Add New Camera URL entry UX
  • Accept PNG images for HTTP camera sources
  • Changed Connection type ‘Ethernet’ to be ‘Ethernet or Wifi’ for clarity
  • Show rotary icon on the Start button if active
  • Update Overlay could crash during homing if changing device from a bigger machine
  • Camera wizards UX pass
  • Renamed “Undistorted” Camera Image capture menu action to “Calibrated”
  • Camera alignment wizard manual process had old extra step when going back
  • Rare multicamera async crash when changing device
  • Fixed HTTP camera bug that was corrupting some mjpeg streams
  • Memory leaks in New Camera Wizard
  • HTTP camera compatibility improvements
  • Scissor Tool with shift-click should move entire shape to current layer just like trimming a section does.
  • Limit outgoing TCP queue size to 8K
  • Fix Emblaser Pro file upload progress
  • New Camera presets updated
  • Clear ToolState on device disconnect
  • Changed text in 2 places to License Management to be consistent
  • Fix multicameras head-mounted alignment when using manual ‘circles’ alignment target.
  • Position query was interfering with emblaser GetFileContents
  • Device-level LastCamera prefs needed to remain
  • New camera wizard was not setting reconnection properties correctly
  • Improved compatibility for Thunder Vision camera streams
  • Sub-layer remove/hide logic improvements
  • Increase printer line width resolution to three decimal places
  • Better framing for 9-pt correction mode
  • New Community Page link added to Vendor Bundles Info & Menu
  • Automatic display setting adjustment updated to find best UI Font and Toolbar Icon size for the screen instead of forcing smallest sizes.
  • Updated BSL libraries
  • Added external motor current settings
  • Remove hard-coded Emblaser Pro exhaust fan commands from job start/end
  • Support for 2 motors for rotary, Z, etc
  • Increased max galvo speed to 40k mm/sec
  • Hide max and min power for galvo instead of just disabling.
  • Laser & Cuts/Layers windows smaller
  • 9-point calibration framing improvements
  • Made ‘Units’ toggle clearer
  • Expanded MarkCfg0 parameter parsing with approximately 30 new fields
  • Removed Tilted Model terms from Extended Camera Calibrations
  • Allow for extra ok’s from WeCreat firmware
  • Coordinate clamp is now calculated from field size instead of hardcoded
  • Laser source error status is now displayed in the laser controls panel.
  • Increased Z jog distance maximum from 500mm to 1000mm
  • Select when pasting from other apps
  • Allow read/write of laser 2 offsets for Ruida
  • Changes for hydra/GT5 Ruida
  • Update machine settings for new Ruida laser configs
  • Allow support height for Custom GCode
  • Save & restore Undo History position & size

User Interface Updates

  • Fixed vertical spacing and minimum height for tabs for the galvo cutsettings dialog
  • Set the Radius tool to have 2 decimal places when in mm units.
  • In the layers form, Spd_Pwr column, show the Power to 1 decimal (if value is under 100 so user will see the fractional power setting they expect)
  • Change Radius to show 2 decimals in mm units. Changed the min max Radius mm to equal the converted inches so conversion back and forth at the maximum is consistent.
  • Dramatically improved quality of UI when High DPI scaling is enabled.
  • Fix the AirAssist and Marlin Laser Commands groups boxes getting squished when form is reduced vertically.
  • Selected shape / item dash length now scaled for screen dpi.
  • Better message for PDF Import Error to suggest converting to image before import.
  • Improvement to probe wizard to deal with zero Tool Diameter better.
  • New icons for diamond scribe
  • Added shortcut for device manager [Alt-Shift-M]
  • Hide other bundle controls when editing vendor info
  • Applied correct DPI scale to message box icons when display scale is above 100%.
  • Updated MessageBox icon set.
  • Prevent app title bar from appearing off screen when stored window position offsets are incorrect.
  • Added higher resolution images for unidirectional and offset fill types.
  • Console colors are now set from the application theme.
  • Added “Workspace DPI Scaling” display setting. This allows higher resolution drawing / previews to be switched off to improve line visibility on very high resolution display (eg. Apple Retina), or to improve performance on low powered devices.
  • Changed console and custom GCode settings font from “Courier” to “Consolas” if available on Windows devices.
  • Added startup checks for common issues that cause ui elements to grow too large for the screen.
  • Added prompt to automatically restart when settings are changed that require an application restart to apply.
  • Macro Edit text input now correctly strips formatting from pasted text.
  • Fixed Focus Light tooltip for BSL Fiber
  • New Warning icon added with better contrast at smaller sizes.
  • Renamed Reverse Z checkbox to Invert Z Galvo to clarify it controls galvo coordinate direction
  • Created outlined labs icon with white border for visibility on dark device logos

Bug Fixes

  • Prevent extreme fisheye projection infinities from crashing the diagram in the head mounted camera wizard
  • Handle cancel of Offset Fill
  • Galvo auto-rotate scan angle was not being reset between jobs
  • Invalid custom gcode blocks were getting hidden
  • Tabs not created properly on spiral cut when wraptab necessary
  • When framing first, job was continuing if canceled after out of bounds warning
  • Large images might not load with Qt6 build
  • Restore geometry after previously zeroed values
  • Better handle device units for people upgrading from older versions
  • Enable relative arrow-jogs with ruida
  • Increase epsilon distance on Trim checks
  • Fixed a rare crash caused by a perfect storm of geometry, timing, and user confidence
  • If an image fails to import, show an error message about file size (if greater than 100MB) or possible corruption.
  • If a very large image fails to import, show an error message about file size or corruption.
  • Adding origin type to Go to Origin
  • Node editing was not undoing properly because the selected node got removed from the undo.
  • Fixing the fire power setting when the Fire button is already enabled.
  • 3D slice masked / transparent pixels shouldn’t be negated
  • Proper handling of click-drag of multiple nodes
  • Fixed Windows DPI scaling bug that could increase the size of UI elements to a degree that made application unusable.
  • Fixes a few laser-specific jog issues.
  • Rotary enable icon was not showing correctly in some cases
  • 3DSlice resampler crash caused by temp variable going out of scope early
  • Fix file ‘Start’ corruption after using Send
  • Switching user start script and header positions for custom gcode.
  • Fixed DPI scaling issue causing blurry / pixelated setting switches and list item icons when display scale is above 100%.
  • Properly parse firmware hold state for GRBL-like firmwares if triggered by the machine.
  • Changed single line font prefix to SLF, instead of SLF-
  • Intersection snaps fixed
  • BSL ‘Done Marking’ signal wasn’t emitted
  • Ruida ignored focus command if Z-speed wasn’t set
  • Extend Docking outside workspace, to fix rounding error bugs
  • Relax distance requirements on Docking
  • Do not allow user to toggle laser FIRE while framing or busy.
  • Fixed comparison calculations causing CutShapes to leave bits behind.
  • Empty shape could crash gcode generation
  • Bundle Import from device window was broken
  • Head mounted camera wizard AprilTag pattern was not working if device units were imperial
  • Use error dialog in case of error reading controller info, use warning icon otherwise.
  • Removing discrete jogging clamping, fixing continuous jog for G54-configured machines.
  • Fix synchronous-mode timing regression.
  • MacOS rate limit for Ruida, + variable packet size limit
  • Forcefully truncating float numeric error for position down to 1 micron.
  • Fail gracefully on DXF SPLINE objects with fit points
  • Adding a parsing in the connection info to check for G54 offsets with a warning dialog.
  • SVG ‘s’ command didn’t work for sequences of points
  • Fixed bug causing bottom of main window to appear off screen on load.
  • Fixed incorrect maximum size limit on MacOS toolbar buttons.
  • Fixed issue with toolbar icons having edges cut off.
  • Fixed issue that could cause main window to load on incorrect screen, sometimes many times larger than the screen.
  • Prevent top level menu keys from conflicting with hotkeys.
  • Updating displayed position to 0,0 after homing on Ruida.
  • MacOS could hang or crash when framing
  • Font skips around and reverts on Mac
  • Qt6 set a 256mb max image size. No thank you.
  • When pasting a copy of a PathShape, do not create Tabs unless the source cut had Tabs enabled.
  • Fixed issue with docks resetting to default layout every time app is started.
  • Fixed issue causing docks to consume entire window if operating system display scale is changed.
  • Ellipse tool ovals are not exporting properly to DXF
  • Stop button didn’t properly reset spindle/laser state to off.
  • Updating the logic & text of the device size mismatch warning.
  • BSL libraries don’t apply lens correction to jump moves
  • Kerf was not behaving like before, and not correct re inner and outer direction.
  • Icon theme is sourced from correct path for pre release builds.
  • Fixing the parsing for metric or imperial modal checks.
  • Prevent text shapes from commit when only whitespace
  • Prevent crash when trying to load a malformed text backup path
  • Prevent MaxOS keyboard bug, paste into new folder dialog incorrectly causes the text to paste into the current project.
  • Updated BSL library for MacOS
  • Fix the escape sequence logic flaw for custom gcode.
  • XTool device position query was broken
  • Fixed reversal of RTL text when applying bend.
  • Tested with SHX font, fixed mistake in last checkin.
  • For Marlin Devices, force the FeedRate to be sent for G1 whenever the mode changes to G1.
  • Inverted SHX Fonts in FontManager
  • Replacing the broken truncate function for negative numbers.
  • Material library combo box was too wide
  • Emblaser WiFi wizard dark mode issues on Windows due to Aero theme
  • Deform on an image could glitch on parallel lines
  • Fixing rotary CCW jog switching directions
  • Importing SVG with ungrouped DEF shapes could crash
  • Double-click to launch if unconfigured would crash
  • Device units could sometimes get corrupted for galvo devices
  • When switching devices using the device combo box, if the CutOrigin has been saved for a device then use that setting instead of the UI prefs setting.
  • Significantly reduced risk of death
  • Fixed some missing cases for scissor tool, Bézier curve at nodes, and line segments that are not terminations.
  • Fixed issue with device settings incorrectly sizing custom gcode options tab contents.
  • Fixed Bezier Cubic Root function missing a case that caused scissor cut to fail.
  • Art library crashed if files dropped when no library selected
  • Auto-join could crash in extremely rare cases from a float rounding issue
  • Tab drawing wasn’t saving/restoring drawing color
  • Prevent a null pointer crash when closing the program.
  • When choosing different units in settings dialog, convert the arrow move distances immediately to show the converted values, and ensure the range limit works in each control.
  • Fix ScissorTool bug that caused duplications during cuts and crashes during undo
  • Undo History displayed backwards
  • Invalid DXF color indices could crash on import
  • Rotary slices weren’t always merged correctly with Run Whole Shapes
  • Set Zero on BSL could hang the hardware
  • Trim would fail if snipping a shape scaled to zero in X or Y
  • Windows camera driver could get stuck (wouldn’t reconnect properly) if there were USB connection problems
  • Prevent thread contention of JCZ command buffers
  • Fixed issue causing toolbar icons to double in size when a dialog is on a different screen to the main window.
  • Fixed bug that can occasionally set all console text to the color red.
  • Svg import can now handle tspan elements with arrays of xy coordinates.
  • OffsetFill was ignoring PWM override
  • Optimizations couldn’t be completely disabled
  • Fonts jump in Listview
  • Fixed variable text was not restoring the last settings when loading a project.
  • Custom Gcode syntax highlighter was stripping out special characters and hex codes.
  • Fixed Custom escape character causing string corruption.
  • Emit laser2 freq setting
  • Quick Nest acting up if Device Origin is top left.
  • Fixed fatal crash when applying a radius to a line segment.
  • Catch illegal memory access to prevent crash, and show properties correctly for multi shape.
  • Overscan distance value wasn’t updating in image mode
  • Fixed issue with some numeric input boxes not displaying unit values when units are set to metric.
  • Fixing punctuation in dialog messages.
  • Fixed the Tab wizard when using tab count, building one less tab than expected.
  • Fix for incorrect WeCreate disconnect message
  • Fixing the G54 offset warning not being shown.
  • Fixing the Marlin-related crash on “Go To Origin” button generating “G53G1” without a space.
  • Fixing the need to turn off and on again the Show All toggle in the Console for gcode if a connection is reset or device changed.
  • Don’t show overrides panel during jogging
  • Nested bitmaps could cause infinite loop when merged
  • Font Dropdown Box displays “Favorites” as a selected font
  • Camera alignment pattern designer not properly converting zone size to/from Imperial units
  • Quick Nest - Support for Text and Group objects
  • Quick Nest - Not respecting move as group and lock inner objects
  • Font + Paths grouped scaling Bug
  • Fix program stall on update for FilletTool
  • Unsaved changes indictor in window title fixed for change of device.
  • Jog distance and speed were not being restored properly on program start due to unintended events.
  • Tool layers weren’t collected if framing something too complex
  • When undoing a deleted layer (or undo delete last shape in a layer) ensure the layer returns to original priority (order) in the layer list.
  • Scanning Offset units were entered as Control Units but shown as Device Units
  • Laser 1 and 2 are exclusive on GCode. Don’t show 2 laser power boxes
  • Click to remove fillet didn’t always work
  • X/YPos values with apostrophe not recognised
  • Fixing the move toggle off not preventing unselected shapes from being dragged in the workspace.
  • Fixed theme bug that would cause the settings dialog to think a restart is required if the app theme is set to “System Theme” even if no settings have been changed.
  • Very old camera settings files (from before 1.6) could crash on import
  • SVG Import crashes when use references another use in defs
  • Uninitialized “insert” state caused a crash
  • Fixed issue causing layer palette icons to be larger than the tool buttons with certain combinations of ToolButton and Font Size.
  • Fixed issue with minimum font size setting increasing some UI font sizes when High DPI Scaling is enabled.
  • Fixed issue causing incorrect icon showing for selected layer in Cut Settings dialog layer list.
  • Trying to increase flexibility of Custom Gcode for non-standard GRBL firmwares.
  • Allow unlimited custom gcode alarm or error codes with buttons to add more rows when needed.
  • Job complete sound plays for BSL when using rotary or repeat marking
  • No job complete sound on BSL rotary
  • LicenseExpiringSoonDialog changed ‘will expire soon’ to ‘expires today’ on last day.
  • Bundle Export section titles were English-only and not being translated.
  • Galvo Z accel was stored / retrieved wrong
  • Repeat Marking, show proper Increment units to match axis type, added tooltips to the Test button.
  • AutoGroup was failing with trivial type of shapes like Rectangles.
  • AutoGroup was failing with trivial type of shapes.
  • Radius Tool Needs 4 decimals when using inches to behave like LB 1.7.08
  • Update License ‘expiring soon’ text to ‘expires today’ on final day.
  • New Camera Presets for Thunder Vision network cameras had ports swapped
  • BSL crash on USB pull
  • Added missing blank icons to main window menus
  • Max Power label was disabled
  • Parse console lines for instant commands that shouldn’t end with a newline.
  • Fixed MacOS Hotkey modifiers for Rotation of Selection not working for 1.5 degrees (Ctrl+Shift+ , or .)
  • Fixed MacOS Hotkey modifiers for Rotation of Selection to use the Ctrl key instead of the Command key.
  • Shape Rotation for 1.5 degrees using Ctrl+shift+ , or . fixed.
  • GCode Real-Time Commands now send without newlines for compatible protocols
  • Custom GCode Marlin flavor preset had “?” GetStatus but should be “M114”
  • Show Q Value instead of Power% for Galvo Devices in the Cuts list
  • Clean up Start Pt arrow rendering
  • Prevent infinite loop trying to build tabs in a shape that is too small.
  • Only show Q-pulse instead of power for UV galvos
  • Control units were not defaulting to reasonable metric value
  • Custom GCode was not properly using rotary mode
  • Fixed crash by using a lowercase @p or @t in a pause message.
  • Support extended real-time commands for GRBL and grblHAL
  • Send real-time console commands even when busy
  • Combine repetitions of real-time commands in console log
  • Shape properties would not populate correctly when switching between certain shape types directly.
  • Fixed protocol type checks using DisplayName instead of protocol identifier
  • Fixed laser PWM count clock threshold (was comparing kHz value against 1000000 instead of 1000)
  • Fixed scan delay calculation missing LaserOff time component
  • Fixed COR file header offset causing incorrect field parsing
  • BSL fiber Z homing was using ZMotorIndex instead of ZAccelTime for acceleration
  • Prevent “Missing GCode For selected settings” warning in Device Settings dialog when inherited placeholder is valid
  • Add space after emitting G53
  • Handle malformed xml data better and report more issues without crashing when loading a damaged or incorrect file.
  • Some escaped characters were causing strings to visually repeat in the console log
  • New Device Wizard should reset Dwell when a new Flavor is chosen
  • GRBL M3 Flavor jog panel got broken when switching from another Flavor that had continuous jog
  • FluidNC support was missing some connections
  • Updated GRBL-STM GCode Flavor to enable continuous jog and probing
  • SVG with OffsetFill didn’t export correctly
  • Fixed some galvo framing issues
  • Zero Axis buttons were incorrectly greyed out for some protocol flavors
  • Deform tool issues with grouped base shapes
  • Fixed all-zero command blocks sent when listSize is a multiple of 256
  • Fixed coordinate scaling - wire coordinates are mm, board uses kxy to convert to DAC counts
  • Fixed correction table memcpy only copying half the data
  • Fixed corFieldSize not being set when importing .cor file during device setup
  • Added missing scanner type 1 to protocol switch for prot=0x3FFF
  • Custom gcode rotary diameter setting was never emitted
  • Crash on closing Devices window with Emblaser device active
  • Don’t escape tab characters in the console log
  • Laser source errors no longer disconnect - errors during marking cleanly stop the job, errors during idle block new marking jobs but allow framing.
  • Some new camera UI fixes
  • Custom GCode was double-scaling imperial position queries when $13=1
  • Ungrouping an array with mirrored objects looses the mirror transform
  • Un-grouping native shapes after mirror transform caused flip
  • Removing tiny prims could cause open shapes
  • Grayscale preview showed black until the power changed
  • Several fixes to get the latest camera upgrades in a reliable state for Lightburn 2.1 release
  • Custom GCode CanZeroAxis was not always returning a value for less used flavors
  • Unprintable escaped characters in Custom GCode example blocks were appending odd HTML characters
  • Fixed crash in Find My Laser when e-stop is engaged. WaitForCompletion and TerminateExecution now check doQuit for graceful thread shutdown.
  • Fixed device discovery polling sleeping 20 seconds instead of 20 milliseconds in ConnectJCZDevice, ConnectEZC3Device, and ConnectBSLDevice.
  • Head Cameras “Single Capture” was not returning to scan height
  • Save Background Capture was flipped
  • Resolved ALL ongoing legal issues from the 6th incident.
  • Rename Falcon A1 to Falcon A1 Pro
  • Split line and fill settings into tabs
  • Setting selected_camera_type properly now
  • Defer abs coords warning on alignment widget to first next press
  • Clamping the tool’s movement to be within the workspace.
  • Fixed typos in Quick Nest messages
  • Elevated Incorrect Alignment Calibration to Error
  • Circle-check-solid.svg - circle-check-solid.png for proper pixmap on mac
  • Fixed potential memory leak when validating custom gcode settings.

Miscellaneous

  • Update Darkly Labs links and logo
  • Add ZhiYuan wrapper for Ruida-compliant UDP protocol
  • Update Mach and UCCNC gcode profiles
  • As always, if something looks wrong in Preview, believe Preview. It has seen things
  • Add Skip this Version option for updates
  • Allow overriding of G54 with other coordinate system in Custom GCode
  • Added “flibertigibiting” as a new laser mode for the vibe coders to feel comfortable
  • Tweak code for fetching buy license URLs
5 Likes