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:) :
is it still necessary to scale the axes after the update to version 1.13?
Are the problems with excessive unwinding of the belts as I had in 1.12 already solved?
Does anyone who cuts in this setting notice any problems with accuracy?
I apologize for this question, what would version 1.13 bring to my normal user environment?
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
is it still necessary to scale the axes after the update to version 1.13?
Are the problems with excessive unwinding of the belts as I had in 1.12 already solved?
Does anyone who cuts in this setting notice any problems with accuracy?
These should not have changed
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
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
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
Belt Length Reset Issue
Fixed belt lengths resetting to zero on telnet connection
Prevented telnet negotiation from triggering system reset
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
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
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
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
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