Skip to content

Releases: Carvera-Community/Carvera_Community_Firmware

dev

18 Apr 17:14

Choose a tag to compare

dev Pre-release
Pre-release

Welcome to the Dev Build Release Page for Carvera Community Firmware!

What is a Dev Build?

Dev builds are the latest versions of Carvera Community Firmware, automatically compiled after every new commit to the Dev branch. This means that each build incorporates the most recent changes and improvements. While these builds offer a glimpse into the ongoing development of Carvera Firmware, keep in mind that they are still works in progress and may contain bugs or unstable features.

Please Note:

  • Dev builds are developmental and may contain bugs.
  • Your feedback is crucial. Please report any issues or suggestions on our GitHub page or Discord.

Release notes

The follow changes are present in the dev build:

No unreleased notes currently.

v2.1.0c

08 Apr 10:02
feab653

Choose a tag to compare

Hello,
This is the stable version of the Carvera Community firmware 2.1.0c

What's Changed Since Last Stable Release (2.0.0c)

  • Enhancement: Move G0 at the configured default_seek_rate configured, defaulting to 3000mm/min, unless a Feed parameter is provided. This returns G0 being a rapid movement command.
  • Enhancement: Tool setter sensor location can now be configured separately. Use config items coordinate.probe_mcs_x coordinate.probe_mcs_y and coordinate.probe_mcs_z. If unset, the original hardcoded values will be used.
  • Enhancement: Tool TLO calibration MCode M491.1 can now be offset with parameters X/Y/Z. This enables probing of tools with off-centre cutting points.
  • Enhancement: M493.4 now shows details about the current tool setter position config
  • Enhancement: Added M889 to show current tool slot configuration. If no custom tool slots are defined it shows the current stock tool slot config.
  • Enhancement: Added capability to configure custom tool slots up to 255. If any tool slots are defined the machine defaults are ignored. The X/Y/Z MCS centre position is defined per tool.
  • Enhancement: Added M890 to add/redefine a new custom tool slot. Command immediately adds the slot to the running config and saves the running tool slot config to /sd/custom_tool_slots.txt. If this is the first custom tool added other stock location tools are saved. Parameters are T for tool number, X/Y/Z for MCS location. The Z parameter is optional, and if ommitted the Z value of the last tool slot is used.
  • Enhancement: Added M891 to remove a tool slot defintion. Parameter is T for the tool slot to remove. This immediately removes the config from memory and file. If /sd/custom_tool_slots.txt doesn't exist it will be created and populated.
  • Enhancement: Added the current spindle PWM value to the status response (? command)
  • Enhancement: If flex compensation file is missing and autoload is active, new error informs user
  • Enhancement: Changed the TLO system, so that the value now represents the stickout of the cutter from the spindle.
  • Enhancement: Added G93 (Inverse Time Feed Mode) - Sets feed rate mode where F parameter specifies 1/min (inverse time). The feed rate is multiplied by move distance to calculate mm/min. Useful for maintaining consistent time per move regardless of distance.
  • Enhancement: Added G94 (Feed Rate Per Minute Mode) - Sets feed rate mode to mm/min (default mode). The F parameter directly specifies feed rate in millimeters per minute.
  • Enhancement: Added the calibration offset function to the M6 toolchange command too
  • Enhancement: front button long press is now denoted by a flashing LED
  • Enhancement: Added improved callbacks to the estop command that includes information on line triggered
  • Enhancement: added $F S100 command to instantly override feed rate and $O S100 command to instantly override spindle speed
  • Enhancement: added max_rpm value to the config file to prevent running the spindle past its rated maximum. Can be overridden like any other config variable with config-set sd spindle.max_rpm 13000. Defaults to 13000 on the air and 15000 on the C1
  • Enhancement: faster communication over USB now available. The community controller will negotiage a faster speed at the normal speed. Both will revert to the slow speed on disconnect
  • Enhancement: Full ATC support on Carvera AIR
  • Enhancement: Manual toolchanges use toolchange popups on the controller
  • Enhancement: M400 Wait for all moves to complete. Use before M-codes that must run only after all prior motion is finished
  • Enhancement: Long press function will show remaining time until long press in a progress bar style. Colors are the same as the expected state (TOOL, RUN, SLEEP or IDLE)
  • Enhancement: Added coordinate.reference_tool_mz to the config to specify the reference tool mz value. Defaults to -115.34 which is the same on C1 and CA1 with an empty collet
  • Enhancement: New config setting "zprobe.three_axis_probe_tlo_correction" allows the user to correct for tlo measurement inaccuracies
  • Enhancement: New "R" Parameter for M491 and M6 to repeat TLO measurement and find the lowest cutting edge on a facemill. The user has to rotate the face mill between cycles
  • Enhancement: New "config-delete sd " command that allows to delete a config setting from the config.txt. It's intended to be used when cleaning up the config.txt or when config keys got misspelled.
  • Enhancement: New config setting "atc.detector.enable" allows to disable the tool laser sensor.
  • Enhancement: M6 can take S1 - S6 as parameter to specify the collet that has to be installed. When doing an ATC toolchange, the machine will move to the manual toolchange position for the user to change the collet.
  • Enhancement: Machine will send the parsed lines in addition to the currently executed line to visualize the lookahead buffer in the controller
  • Fixed: Remove artificial 30mm padding from A-axis by CCS86
  • Fixed: Active measurement of flex compensation will be aborted if the machine goes to a halt
  • Fixed: Restored the stock Makera probing laser behaviour if tool 0 is NOT the 3d probe
  • Fixed: goto now skips to the specified line instead of the +1 of the specified line. Eg after goto 9 the next line played will be 9 and not 10.
  • Fixed: If the repeat parameter (L) is greater than 1 on probe_boss (M462) or any M commands that use probe_boss(), an incorrect location is probed after the first on the cycle
  • Fixed: The probe_doubleHit function can no longer disable the probe power if the 3d probe is active
  • Fixed: small typo in line 2552 of atchandler.cpp, issue #218 in the community firmware
  • Fixed: temperture overheat warnings now include info on if it is overheat, too cold, or undefined and most likely a wiring issue
  • Fixed: Report line position using playing_lines so that the current line doesn't jump around in the Controller
  • Fixed: Ensure that tool calibration runs again after being interrupted by e-stop
  • Fixed: Variable #5044 was returning position in MCS, now is in WCS as documented
  • Fixed: Probe laser on the AIR does turn off after the margin scan now
  • Change: Inch Mode (G20) now raises a machine halt. This is because there are outstanding bugs preventing it's use.
  • Change: Status query response now continues to contain playback details after playback has completed, and returns the play back state. The progress token format is now: |P:played_lines,percent_complete,elapsed_secs,is_playing|
  • Change: In M469.5 use the C parameter as the probe/retract distance
  • Change: Lowered the minimum radius of A axis speed compensation to 0.1 from 1 to allow compensation on small diameters
  • Change: Fix Coordinated Speed Plateau: Added bi-directional logic to allow compound moves (Z+A or Y+A) to speed up if required to meet target surface speed.
  • Change: disable rotary-feedrate centerline-distance compensation during G0 rapid positioning moves to allow G0 A# commands to work at full speed
  • Change: there was a hardcoded max of 1800 on the A axis speed that has been removed. This value was overriding the config file max A axis speed
  • Change: increased spindle speed and feed rate override values to 10-300% instead of 50-200% to match controller
  • Fixed: Unused Variables removed
  • Fixed: Removing unused code blocks in simpleshell
  • Fixed: fixing type mismatch bug in wifiprovider that could lead to a memory overflow
  • Fixed: Removed possible memory overflow with get_current machine position writing past mpos
  • Fixed: Overly long strings in some zprobe print commands
  • Fixed: remove extra parameter in print string in ZProbe
  • Fixed: Type mismatch in time command.
  • Fixed: type mismatch in print string in decompress function in player.cpp
  • Fixed: added // fall through to switch statements when it is intended to remove console error
  • Fixed: initialize sane values in probe grid max delta calculation
  • Fixed: writing past the end of a buffer in Drillingcycles::on_gcode_received
  • Fixed: int declared as NAN in ATCHandler::fill_change_scripts, fixed by setting to -1 and updating code accordingly
  • Fixed: comparison of integer expressions of different signedness
  • Fixed: wait_us could run into issues if the value given is less than zero. Now ignores times less than 0
  • Fixed: "!" is not filtered anymore when not at the beginning of the line. This enables configuration of inverted pins over the config-set command. (e.g. config-set sd atc.detector.detect_pin 0.21!^)
  • Fixed: Manual toolchanges after starting a file on an atc machine should work correctly now
  • Fixed: Changing to the laser on an air with an atc works now
  • Fixed: Clamping the spindle rpm to the max rpm fixed
  • Fixed: No LED change during run to prevent step losses (blinking leads to missing steps and can be clearly heard)
  • Change: added -Slow parameter to windows powershell build script to improve readability of error logs as the cost of speed.
  • Change: removed register specifiers in LPC1768 and mbded libraries used by the project. register has been depreciated for a long time and now falls back to being completely ignored. Looked for library updates first, they haven't been updated.
  • Change: Ext out on the CA1 and extend on C1 will turn off on halt (can be reverted to previous behaviour with config-set sd switch.extendout.failsafe 1)

What's Changed since v2.1.0c-RC1:

  • Fixed: Unused Variables removed
  • Fixed: Removing unused code blocks in simpleshell
  • Fixed: fixing type mismatch bug in wifiprovider that could lead to a memory overflow
  • Fixed: Removed possible memory overflow with get_current machine position writing past mpos
  • Fixed: Overly long strings in some zprobe print commands
  • Fixed: remove extra parameter in print string in ZProbe
  • Fixed: Type mismatch in time command.
  • Fixed: type mismatch in print string in decompress function in player.cpp
  • Fixed: added // fall through to switch statemen...
Read more

v2.1.0c-RC1

21 Feb 21:48
e9e3de8

Choose a tag to compare

v2.1.0c-RC1 Pre-release
Pre-release

This is a Release Candidate 1 for Carvera Community Firmware v2.1.0c. We ask only those already confident with their machines run this RC, and if discovered any issues to please post in #mods on the Makera or Carvera Community Projects Discords.

What's Changed

  • Enhancement: Move G0 at the configured default_seek_rate configured, defaulting to 3000mm/min, unless a Feed parameter is provided. This returns G0 being a rapid movement command.
  • Enhancement: Tool setter sensor location can now be configured separately. Use config items coordinate.probe_mcs_x coordinate.probe_mcs_y and coordinate.probe_mcs_z. If unset, the original hardcoded values will be used.
  • Enhancement: Tool TLO calibration MCode M491.1 can now be offset with parameters X/Y/Z. This enables probing of tools with off-centre cutting points.
  • Enhancement: M493.4 now shows details about the current tool setter position config
  • Enhancement: Added M889 to show current tool slot configuration. If no custom tool slots are defined it shows the current stock tool slot config.
  • Enhancement: Added capability to configure custom tool slots up to 255. If any tool slots are defined the machine defaults are ignored. The X/Y/Z MCS centre position is defined per tool.
  • Enhancement: Added M890 to add/redefine a new custom tool slot. Command immediately adds the slot to the running config and saves the running tool slot config to /sd/custom_tool_slots.txt. If this is the first custom tool added other stock location tools are saved. Parameters are T for tool number, X/Y/Z for MCS location. The Z parameter is optional, and if ommitted the Z value of the last tool slot is used.
  • Enhancement: Added M891 to remove a tool slot defintion. Parameter is T for the tool slot to remove. This immediately removes the config from memory and file. If /sd/custom_tool_slots.txt doesn't exist it will be created and populated.
  • Enhancement: Added the current spindle PWM value to the status response (? command)
  • Enhancement: If flex compensation file is missing and autoload is active, new error informs user
  • Enhancement: Changed the TLO system, so that the value now represents the stickout of the cutter from the spindle.
  • Enhancement: Added G93 (Inverse Time Feed Mode) - Sets feed rate mode where F parameter specifies 1/min (inverse time). The feed rate is multiplied by move distance to calculate mm/min. Useful for maintaining consistent time per move regardless of distance.
  • Enhancement: Added G94 (Feed Rate Per Minute Mode) - Sets feed rate mode to mm/min (default mode). The F parameter directly specifies feed rate in millimeters per minute.
  • Enhancement: Added the calibration offset function to the M6 toolchange command too
  • Enhancement: front button long press is now denoted by a flashing LED
  • Enhancement: Added improved callbacks to the estop command that includes information on line triggered
  • Enhancement: added $F S100 command to instantly override feed rate and $O S100 command to instantly override spindle speed
  • Enhancement: added max_rpm value to the config file to prevent running the spindle past its rated maximum. Can be overridden like any other config variable with config-set sd spindle.max_rpm 13000. Defaults to 13000 on the air and 15000 on the C1
  • Enhancement: faster communication over USB now available. The community controller will negotiage a faster speed at the normal speed. Both will revert to the slow speed on disconnect
  • Enhancement: Full ATC support on Carvera AIR
  • Enhancement: Manual toolchanges use toolchange popups on the controller
  • Enhancement: M400 Wait for all moves to complete. Use before M-codes that must run only after all prior motion is finished
  • Enhancement: Long press function will show remaining time until long press in a progress bar style. Colors are the same as the expected state (TOOL, RUN, SLEEP or IDLE)
  • Enhancement: Added coordinate.reference_tool_mz to the config to specify the reference tool mz value. Defaults to -115.34 which is the same on C1 and CA1 with an empty collet
  • Fixed: Remove artificial 30mm padding from A-axis by CCS86
  • Fixed: Active measurement of flex compensation will be aborted if the machine goes to a halt
  • Fixed: Restored the stock Makera probing laser behaviour if tool 0 is NOT the 3d probe
  • Fixed: goto now skips to the specified line instead of the +1 of the specified line. Eg after goto 9 the next line played will be 9 and not 10.
  • Fixed: If the repeat parameter (L) is greater than 1 on probe_boss (M462) or any M commands that use probe_boss(), an incorrect location is probed after the first on the cycle
  • Fixed: The probe_doubleHit function can no longer disable the probe power if the 3d probe is active
  • Fixed: small typo in line 2552 of atchandler.cpp, issue #218 in the community firmware
  • Fixed: temperture overheat warnings now include info on if it is overheat, too cold, or undefined and most likely a wiring issue
  • Fixed: Report line position using playing_lines so that the current line doesn't jump around in the Controller
  • Fixed: Ensure that tool calibration runs again after being interrupted by e-stop
  • Fixed: Variable #5044 was returning position in MCS, now is in WCS as documented
  • Fixed: Probe laser on the AIR does turn off after the margin scan now
  • Change: Inch Mode (G20) now raises a machine halt. This is because there are outstanding bugs preventing it's use.
  • Change: Status query response now continues to contain playback details after playback has completed, and returns the play back state. The progress token format is now: |P:played_lines,percent_complete,elapsed_secs,is_playing|
  • Change: In M469.5 use the C parameter as the probe/retract distance
  • Change: Lowered the minimum radius of A axis speed compensation to 0.1 from 1 to allow compensation on small diameters
  • Change: Fix Coordinated Speed Plateau: Added bi-directional logic to allow compound moves (Z+A or Y+A) to speed up if required to meet target surface speed.
  • Change: disable rotary-feedrate centerline-distance compensation during G0 rapid positioning moves to allow G0 A# commands to work at full speed
  • Change: there was a hardcoded max of 1800 on the A axis speed that has been removed. This value was overriding the config file max A axis speed
  • Change: increased spindle speed and feed rate override values to 10-300% instead of 50-200% to match controller

Contributors

Thank you to the developers that worked on this release:

Full Changelog: v2.0.0...v2.1.0c-RC1

v2.0.0c

12 Dec 11:28
d1eb19d

Choose a tag to compare

Hello,
This is the stable version of the Carvera Community firmware 2.0.0c

What's Changed since v2.0.0c-RC2:

  • Fixed: When probing an angle with the L parameter > 1, it shows the results of each run instead of the average
  • Fixed: M469.4 was probing where the 4th axis module ends and the chuck starts, now it probes 5mm back in X to ensure the 4th axis module body is probed.
  • Fixed: M469.5 was probing top of 4th axis at chuck start not the indent of the harmonic drive. Now probe logic matches M495
  • Fixed: When loading a grid, the Z coordinate should turn light blue now, indicating the leveling is active
  • Fixed: refmz was being updated when G10L2 is sent. It should only update on G10L20
  • Change: Reduce the configured grid size from 50x50 to 20x20 to reduce allocated memory
  • Change: Updated the flex compensation system (reprobing needed) to the latest tested version with improved calculations
  • Change: ZProbe now uses the slow probe feedrate from the config file. M670 S (mm/s) temporarily alters the slow probe feedrate
  • Change: The side depth parameter takes the probe tip diameter into account to precisely specify where the probe should make contact instead of where the end of the stylus will be

What's Changed Since Last Stable Release (1.0.11c)

There is a Community documentation site being updated with all existing and new features.

  • Enhancement: 3D Probe crash detection
  • Enhancement: Setting "atc.skip_path_origin true" skips the initial travel to the path origin when starting a job
  • Enhancement: Step jogging now stops at the endstops with a ramp rather than going to a halt state
  • Enhancement: "abort" command now also aborts ATC scripts and programs can be aborted at toolchanges
  • Enhancement: Added M466.1 square probe mode to probe 4 points to quickly find all 4 heights and the heighest and lowest point
  • Enhancement: All XYZ moves, that don't probe are done with the rapid rate to speed up the probing process
  • Enhancement: Improved the probing output for the single probe double tap routine to show the work coordinates aswell
    compensation value if leaving measurement bounds
  • Enhancement: Continous Jog Mode
  • Enhancement: 3D probe is now always powered on the Carvera AIR
  • Enhancement: Added M465.1 and M465.2 to probe 4th axis stock
  • Enhancement: Added a sag compensation for the Carvera AIR that compensates for rotational and gravitational sag of the x axis carriage
  • Enhancement: Bed Leveling can be saved to the sd card and loaded after a reboot
  • Enhancement: Margin scan, ZProbe and Bed Leveling can be done with the 3D Probe aswell
  • Fixed: Machine crashes during probing cycles should be fixed
  • Fixed: When probing an angle with the L parameter > 1, it shows the results of each run instead of the average
  • Fixed: M469.4 was probing where the 4th axis module ends and the chuck starts, now it probes 5mm back in X to ensure the 4th axis module body is probed.
  • Fixed: M469.5 was probing top of 4th axis at chuck start not the indent of the harmonic drive. Now probe logic matches M495
  • Fixed: Scanning wifi scan no longer causes a machine crash
  • Fixed: Probe crash detection would incorrectly trigger with stock ZProbe during TLO calibration
  • Fixed: Repeat boss probes would probe both X and Y axis even if only probe distance was provided to one.
  • Fixed: Calibrate probe on anchor 2 would hit the bolt cutout
  • Fixed: Change to probe tool using the controller would cause a halt
  • Change: Deleted the "flex_x_size" setting because this is specified by the G33 command only
  • Change: Changed the math for the flex compensation. Now also does the last

Contributors

Thank you to the developers that worked on this release:

New version milestone!
We feel that so much functionality has been added to the Community Firmware and Controller beyond the OEM that the version 2.0.0 milestone is warranted. Please note that this is still an incremental release and there are no breaking changes from the previous versions.

Carvera Community Firmware v2.0.0c-RC2

29 Sep 08:28
860e674

Choose a tag to compare

Hello,
The is a release candidate for the 2.0.0c firmware. It has been thoroughly tested by the development team and is ready for early adopters to use. After some community testing the firmware will be released as a fully stable version

What's Changed

There is a community documentation site being updated with all existing and new features.

  • Fixed: Scanning wifi scan no longer causes a machine crash
  • Fixed: Probe crash detection would incorrectly trigger with stock ZProbe during TLO calibration
  • Fixed: Repeat boss probes would probe both X and Y axis even if only probe distance was provided to one.
  • Disable crash detection during TLO calibration operations
  • Support building on an arm64 host
  • Video Demo of Probing Calibration: https://youtu.be/egbb5Q1fNXw?si=ALmQ8EzgcbV2YOWx

Contributors

Thank you to the developers that worked on this release:

New version milestone!
We feel that so much functionality has been added to the Community Firmware and Controller beyond the OEM that the version 2.0.0 milestone is warranted. Please note that this is still an incremental release and there are no breaking changes from the previous versions.

Carvera Community Firmware v2.0.0c-RC1

30 Aug 10:15
398f44f

Choose a tag to compare

Pre-release

Hello,
The is a release candidate for the 2.0.0c firmware. It has been thoroughly tested by the development team and is ready for early adopters to use. After some community testing the firmware will be released as a fully stable version

What's Changed

There is a community documentation site being updated with all existing and new features.

Major New Features

  • Introduction of Continuous Jog Mode for smoother and more responsive jog movements. docs
  • New - Carvera AIR - Carvera Air Flex Compensation System (G33 & M380) for automated rod flex measurement, compensation, and always on option.

New Commands & Functionality

Continuous Jog Mode

  • Requires the Community Controller version 0.10.0 or higher (developer builds also supported).
  • The selected axis moves continuously as long as the operator presses the button or turns the handwheel.
  • Jogging speed can be adjusted directly from the controller.
  • Integrates software endstops, slowing shortly before reaching them. If the same direction is commanded again, the axis will move directly to the software limit.

Flex Compensation System (G33 & M380)

  • Stock Carvera Airs X axis rods tend to bend, leading to a Y and Z deviation along the X axis
  • Automatic rod flexing measurement & compensation via G33 and M380
  • Use G33 X Y I <# probe points in measurement distance>
  • M380.2 to save the compensation to the sd card
  • M380.3 to load from the sd card / activate
  • M380 to deactivate the flex compensation
  • Put "config-set sd leveling-strategy.rectangular-grid.flex_compensation_always_active true" to automatically load the compensation after machine startup

Enhancements

  • M465.1 and M465.2 can probe 4th Axis stock (more details coming soon in the community docs)
  • 3D Probe is now constantly powered on the Carvera Air
  • Bed Leveling can now be saved to the sd card and loaded after a reboot (M374 to save grid, M375 load grid)
  • Margin scan, ZProbe and Bed Leveling can now be done with the 3D Probe as well
  • Enhancement: 3D Probe Crash Protection - When jogging the spindle with the 3D Probe attached, movement is prevented if the Probe triggers. This prevents destruction of the probe tips.
  • Enhancement - Improved logging information for probing commands
  • Enhancement - M466.1 rectangular probe 4 points and report the leveling points
  • Enhancement - Added the ability to abort a playing file during a tool change

Contributors

Thank you to the developers that worked on this release:

New version milestone!
We feel that so much functionality has been added to the Community Firmware and Controller beyond the OEM that the version 2.0.0 milestone is warranted. Please note that this is still an incremental release and there are no breaking changes from the previous versions.

Carvera Community Firmware V1.0.11c

11 Aug 10:01

Choose a tag to compare

What's Changed

Bugfixes from 1.0.10c

  • Fixed issue with rotated WCS coordinates and arcs leading to unexpected movement
  • Fixed issue with Y axis boss probing tracing the X axis as well

Quick Bugfixes from 1.0.9c

  • Firmware crash from led progress bar fixed. LED progress bar has been completely removed
  • Z height now properly transfers when switching WCS
  • More verbose output when printing EEPROM to log

Major New Features

Better integration with the Carvera Community Controller

  • Starting with Community Controller Version 0.10.0 the community firmware unlocks special functions in the controller that are not available with the stock firmware

Work Coordinate System (WCS) Rotation Support

  • Added WCS rotation support
  • G54-G59 rotations stored in EEPROM - Persistent storage across power cycles
  • G59.1-G59.3 temporary rotation - Session-based rotation for temporary workflows
Probing.mp4

New Commands & Functionality

G-Code Commands

  • G10 L20 R P0 - Rotate the currently active coordinate system by specified angle (degrees)
  • G10 L20 R P3 - Rotate G56 coordinate system regardless of current WCS selection
    • P1 = G54, P2 = G55, P3 = G56, etc.

Diagnostic & Display Improvements

  • Enhanced DP diagnostic command ("$#") displays rotation angle as 6th parameter in WCS display
  • Enhanced M498 command shows rotation angle of stored work coordinate systems

Probe System Integration

  • Probe system rotation support - Probing sequences now run in the rotated coordinate system
  • All probe operations account for WCS rotation for accurate positioning

Bufixes

  • No more corrupted G54 - G59 offsets for Z and A axis after switching to the community firmware

Important Notes

  • Version string has changed: The makera firmware version is no longer part of the community version string