Do you already have good experience with 1.13?

Hi,

I read in various places how the firmware version 1.13 is much improved, in terms of various functions and also a different way of finding anchors. I have currently returned from 1.12 to 1.07, where I have achieved satisfactory results for me. I have tried 500x500mm squares in each part and in the corners of the entire 1.25m x 2.5m area and it was accurate to 1mm.
I have been fine-tuning it with the scaling of both axes for a while.

But currently I don’t know what happened “by itself” but when cutting I am a few mm longer. Before I try to dig into the scales again. So I wonder if version 1.13 has already solved this. So I ask:) :

  1. is it still necessary to scale the axes after the update to version 1.13?

  2. Are the problems with excessive unwinding of the belts as I had in 1.12 already solved?

  3. Does anyone who cuts in this setting notice any problems with accuracy?

  4. I apologize for this question, what would version 1.13 bring to my normal user environment?

  5. Can I expect some errors, I’m more interested in those that would lead to unexpected destruction of some parts. For example, unwinding and pulling the belt out of the coil.

ps. photo for interest, some last cuts of templates from hardboard for campervan
thank you

  1. is it still necessary to scale the axes after the update to version 1.13?

  2. Are the problems with excessive unwinding of the belts as I had in 1.12 already solved?

  3. Does anyone who cuts in this setting notice any problems with accuracy?

These should not have changed

  1. Can I expect some errors, I’m more interested in those that would lead to unexpected destruction of some parts. For example, unwinding and pulling the belt out of the coil.

there is a change related to this, but it depends on exactly what issue you had. There is no expectation that it would be any worse

  1. I apologize for this question, what would version 1.13 bring to my normal user environment?

Bar’s release notes only mention the fact that if you do a clean shutdown (while it’s idle) you do not need to retract/extend the belts when you restart.
There were over 200 commits during October, FAR higher than any other release

I just asked github for a couple of reports, one on the firmware changes, one on the UI changes, here they are:

Firmware:

Major Features

Belt Position Memory (Primary Feature)

  • Save/Restore Belt Positions: The machine now saves belt positions and state to non-volatile storage (NVS)
    • Belt lengths are automatically saved when in READY_TO_CUT or RETRACTED states
    • Machine state is preserved across power cycles
    • On startup, the system restores the previous belt positions if they were extended
    • Eliminates the need to retract and extend belts after every power cycle

Enhanced State Management

  • Improved State Persistence: Better handling of machine states across restarts
    • loadBeltPositions() now sets EXTENDEDOUT state instead of READY_TO_CUT to prevent unwanted auto-slack
    • Added safety mechanism to clear motor overrides when leaving Homing state
    • Fixed transitions: Allow TAKING_SLACK transition from READY_TO_CUT state

Encoder Position Validation

  • Belt Movement Detection: System now saves and validates encoder angles to detect if belts moved during power-off
    • Prevents incorrect position assumptions if belts were manually moved while powered down
    • Provides warnings if significant position changes are detected

Bug Fixes

Critical Fixes

  1. Frame Dimension Error Handling

    • Replaced auto-correction with proper error state for invalid frame dimensions
    • Now calls Maslow.eStop() instead of using Assert for frame dimension errors
    • Prevents machine from operating with invalid geometry
  2. Belt Length Reset Issue

    • Fixed belt lengths resetting to zero on telnet connection
    • Prevented telnet negotiation from triggering system reset
  3. Automatic Update System

    • Fixed firmware download to properly handle HTTP redirects
    • Improved API endpoint redirect handling in getLatestReleaseInfo()
    • Implemented semantic version comparison to prevent unnecessary upgrades
    • Changed firmware installation to download to SD card first for better validation
  4. Z-Axis Probe Issues

    • Fixed probe direction logic for better clarity and Maslow CNC compatibility
    • Corrected Z-axis motor direction for proper probe movement
    • Fixed probe step capture to handle custom Maslow axis mapping
  5. Calibration Issues

    • Fixed calibration grid consistency by resetting recomputeCount
    • Moved generation of calibration grid for better organization
    • Added proper error handling for Tool Length Offset (TLO) misbehavior

Minor Fixes

  • Compile Warnings: Fixed ISO C++ compile warnings in Calibration.h
  • Version Reporting: Fixed version reporting in shallow git clones
    • Improved git-version.py to use git describe directly
    • Fixed grbl_version extraction to handle major.minor versions correctly
    • Added fallback to 3.0 when no tag is available
  • Logging Improvements:
    • Only log spoilboard/work thickness when value changes (reduces console spam)
    • Extended startup log capture until first websocket connection
    • Better capture of initialization messages
  • Soft Limits: Temporarily turned off soft limits (can be re-enabled if needed)

Build System Improvements

CI/CD Enhancements

  1. Automatic Builds

    • Fixed automatic builds versioning
    • Disabled build attempts on review requests, kept user-requested builds
    • Improved firmware.bin packaging in maslowbot build action
    • Added workflow to auto-assign issue authors to PRs
  2. Build Scripts

    • Fixed build-release.py: removed bufsize=1 and hardcoded paths
    • Use python3 explicitly instead of python for better compatibility
    • Added explicit git fetch --tags step to workflow
    • Added fetch-tags parameter and verification step

Code Quality

Refactoring

  • AutoUpdate.cpp:

    • Removed dead code and consolidated duplicated asset parsing logic
    • Consolidated redirect handling into single location
    • Refactored HTTP request and header parsing into reusable function
    • Simplified version comparison logic
  • Probe.cpp: Applied clang-format for consistent code style

  • Main.cpp: Applied clang-format for consistent code style

Code Cleanup

  • Removed duplicated download logic
  • Cleaned up dead code throughout the codebase
  • Improved code organization and maintainability

Machine Behavior

  • Belt retraction is no longer required after every power cycle
  • “Apply Tension” button can be used immediately after power-on if belts were extended
  • More predictable state transitions during startup

Known Issues & Limitations

  • Soft limits are currently disabled (v0.78 feature, maintained in v1.13)
  • If belts are manually moved while machine is powered off, the system will detect this but may need recalibration

Pull Requests Included

Notable PRs merged between v1.12 and v1.13:

  • #446: Fix build-release.py error
  • #443: Fix belt length loading state
  • #441: Add testing templates
  • #438: Move generation of calibration grid
  • #437: Fix TLO misbehaving issue
  • #431: Add checklist for testing
  • #430: Turn off soft limits
  • #426: Fix belt length restore
  • #424: Fix BR belt length storage
  • #422: Improve compile warning
  • #413: Fix compile time warnings
  • #411: Fix belt positions saving
  • #395: Fix belt length reset issue
  • #385: Disable build on review request
  • #381: Fix automatic builds versioning
  • #377: Fix frame size error handling
  • #372: Fix repeated thickness logs
  • #368: Fix belt movement detection
  • #363: Fix startup log capture
  • #357: Implement belt position save/restore
  • #351: Enable soft limits (later disabled)
  • #342, #344: Fix automatic update system
  • #336: Fix firmware packaging
  • #334: Fix probe issues
  • #326: Fix probe direction logic
  • #333: Consolidate AutoUpdate code

Statistics

  • Total Commits: 124 commits between v1.12 and v1.13
  • Files Changed: Multiple core firmware files, build scripts, and workflows
  • Binary Size Change: Increased from 1,973,680 bytes (v1.12) to 2,013,312 bytes (v1.13)
    • Increase of ~40KB due to new belt position persistence features

UI aka index.html.gz

Major Features

1. Bounding Box and Job Visualization

  • Implemented bounding box feature with visual display and trace functionality
  • Displays the boundaries of loaded G-code jobs on the canvas
  • Added “Trace Boundary” button to physically trace the job boundaries before cutting
  • Fixed arc bounding box calculation to use world coordinates for accurate job bounds
  • Excluded G0 rapid moves from job bounding box calculation for more accurate cutting area

2. Configuration File Management

  • Added YAML file selector dropdown in preferences dialog
  • Moved config filename to new “Frame definition” section at top of preferences
  • Implemented dynamic config file switching with FluidNC setting updates
  • Save Config/Filename setting to flash memory with $SS command
  • Added “Restart FluidNC” button next to config filename in preferences
  • Improved config file loading with proper wait for settings reload

3. Right-Click Context Menu

  • Added right-click move functionality to G-code canvas
  • Implemented context menu for quick positioning
  • Fixed coordinate calculation to be consistent across all canvas views
  • Allows users to right-click anywhere on canvas to move the machine to that position

4. Machine State Display

  • Added state info display on Maslow tab above arrow buttons
  • Implemented color-coded backgrounds for different machine states (Idle, Run, Alarm, etc.)
  • Provides clear visual feedback about current machine status

5. Version Management System

  • Replaced hard-coded version in tablet.js with automatic git describe version
  • Fixed version numbering in shallow clones by fetching tags and unshallowing
  • Added comprehensive explanation of version numbering fix
  • Version now automatically reflects git repository state (e.g., “v1.13-5-g3d7457a”)

Bug Fixes

G-Code Viewer & Processing

  • Fixed G91 relative positioning in G-code viewer - updated movement functions
  • Fixed coordinate calculation for context menu - now consistent across all views
  • Fixed arc bounding box calculation to use world coordinates for job bounds

UI Stability & Error Handling

  • Fixed Object.keys error on undefined preferences list
  • Fixed Object.keys error with calibrationResults during calibration
  • Fixed SVG path error by handling undefined icon names
  • Fixed undefined language property error in applypreferenceslist
  • Prevented 404 errors by checking file existence before loading
  • Fixed JSHint linting errors: missing semicolon and trailing comma

Upload & File Operations

  • Fixed upload logging and added delete operation ping disable
  • Added upload progress logging to Serial Messages
  • Added ping disable during GCode preview loading
  • Implemented ping monitoring disable during uploads

UI Layout & Styling

  • Fixed arrow button sizing consistency in Maslow tab
  • Removed extra whitespace from state indicator and Upload/Delete GCode buttons
  • Removed padding/margin from state indicator
  • Removed blue background from Trace Boundary button to match other button styling
  • Matched Trace Boundary button styling with other buttons in the same row
  • Fixed aspect ratio for controls area

Jogging & Movement

  • Fixed decimal precision in unit conversion and improved jog logging
  • Implemented units synchronization for safe jogging operations
  • Simplified jogWithUnitsSafeguard to eliminate callback parsing issues

Build & CI/CD

  • Fixed MaslowBot build detection to match exact triggers
  • Fixed version numbering in shallow clones by fetching tags and unshallowing

Improvements

Calibration System

  • Added improved rectangular approximation initial guess system
  • Improved conditional for rectangular optimization during calibration
  • Better starting points for calibration process

Code Quality

  • Added .jshintrc to configure ES6 support and eliminate linting warnings
  • Added comprehensive compilation and development documentation
  • Improved error handling throughout the application

User Experience

  • Changed button to “Save and Restart” with integrated save functionality
  • Wait for settings reload before closing preferences dialog
  • Config file switching now properly updates FluidNC setting when changed

Documentation

  • Added comprehensive compilation and development documentation
  • Discouraged local testing and emphasized hardware testing for reliability
  • Added comprehensive explanation of version numbering fix

Development & Infrastructure

Build System

  • Added .jshintrc configuration for ES6/ES8 support
  • Configured JSHint to eliminate false-positive linting warnings
  • Improved build process reliability

Documentation

  • Created comprehensive compilation and development documentation
  • Added guidelines for testing on hardware vs. local simulation
  • Documented version numbering system change