Skip to content

Releases: Paciente8159/uCNC

µCNC v1.2.3

08 Dec 15:41
Compare
Choose a tag to compare

Version 1.2.3 is a minor revision and improves a couple of functionalities.
The following things were changed:

Changed

  • added parser unlocking on soft-reset to unlock board after end program M codes M2 and M30 (#69)
  • option USE_COOLANT active by default (#69)

Fixed

  • fixed typo that cause compilation error on option USE_COOLANT (#69)
  • fixed code compilation errors without SPINDLE_PWM defined (#69)

µCNC v1.2.2

08 Aug 17:18
Compare
Choose a tag to compare

Version 1.2.2 is a minor revision an targets a couple of issues on the STM32.
The following things were changed:

Changed

  • minor modification to startup blocks calling. They are now executed as soon as they are called. On error the next block is not executed. (#67)
  • improved SMT32F1 EEPROM-Flash emulation. Now uses a single page that is copied to RAM before being stored. This also fixes EEPROM using on STM32F1 making it fully functional. HAL was readapted for mcu.h. On AVR added dummy function to support new HAL. (#66)

Fixed

  • fixed flash eeprom reading that caused SMT32F1 to hang with USB virtual COM port. SMT32F1 default value for erased flash is 0xFF and not 0x00. This caused the startup blocks to read a sequence of 0xFF chars. This was fixed by filtering the accepted values to standard ascii only. Both serial versions of SMT32F1 and AVR were not affected. (#65)

µCNC v1.2.1

06 Aug 12:16
c0eb2d1
Compare
Choose a tag to compare

Version 1.2.1 is a minor revision from the previous version. This version aims mainly to improve the overall response of µCNC and fix a few bugs.
The following things were changed:

Added

  • added support for G10 L2 P0 (current coordinate system) (#61)
  • implemented codes M0 and M1. M60 is also supported but behave like M0 (#58)

Changed

  • revised and improved interlocking system that is more straight forward (code flow). Also this makes µCNC act more inline with the interface described by Grbl (#63)
  • all hard/soft limit alarms cause the firmware to lock until software reset is issued as described by Grbl (#63)
  • readapted homing and probing to the new interlocking logic (#63)
  • startup code improvements (#62)
  • modified µCNC to execute synchronous motions at motion control level. This reduces the pipeline travelling of the code at the expense of additional restart delay that is neglectable (#59)
  • dropped the Abort status in favor of the Alarm status to be more Grbl compliant (#59)
  • blocked status reports during startup blocks to prevent startup block ill-formated strings that were causing the interface software to correctly recognize the responses (#59)

Fixed

  • fixed axis drifting after homing. This happened on all motions until an explicit coordinate was set for that axis (#63)
  • fixed hidden probe alarm status that only showed if other input alarms were active (#63)
  • G92 and G5x.x offset calculations (#61)
  • fixed inch report mode converted values output (#60)

µCNC v1.2.0

30 Jul 23:40
Compare
Choose a tag to compare

µCNC

µCNC is stable and can be used for production work with some care like described in the FAQ of the Wiki. Currently available MCU implementations only support Arduino Uno, and the Rambo/RAMPS board. Also STM32F1 is available. An example boardmap for Blue Pill board is available.
An hex with a configuration similar to Grbl 1.1 is available.

  • Note: All input pins are internally held high by weak pull-up configuration.

[1.2.0] - 2021-07-31

Version 1.2.0 is a major revision from the previous version that packs lots of new features and bug fixes.
Some of the major new features of this version are:

  • the new HAL configuration file that introduces a more flexible way to modify the HAL and give customization power of LinuxCNC.
  • the addition off new PID and encoder modules to be used by the new HAL config, powered by an internal RTC clock.
  • integration tinyUSB, a complete USB stack frame that simplifies the creation of HAL code for new MCU.
  • the addition of an option for a 16-bit version of the bresenham line algorithm that can improve step rate for weak 8-bit processors or for specific applications like laser engraving.
  • several revisions, improvements and important bug fixes in the core of µCNC to generate reliable stepping code.

Added

  • added basic settings for Grbl if startup emulation enabled (this includes $1-it's not used and always returns 0 and $11-that sets the G64-cosine factor. This value should be between -1 and 1. If 0 it acts as G61-exact path mode and -1 acts as G61.1 exact stop mode) (#55)
  • $0-max step rate is now used to top limit stepping frequency (#55)
  • implemented stm32f1 EEPROM emulation in flash (with limitations) (#54)
  • added new option for the 16-bit bresenham (instead of the 32-bit) version of the stepping generator algorithm (#49)
  • added new PID and encoder modules. PID parameters can be stored via commands $2x0 - Kp, $2x1 - Ki and $2x2 - Kd (#42)
  • integrated tinyUSB and adapted the core to use it (optional) (#41)
  • new HAL configuration file
  • added internal RTC (#38)

Changed

  • cleaned code, redundant function call, unnecessary volatile attributes from variables and unused variable in the motion control, planner and interpolator stages of the core code (#52)
  • modified planner paths of motion and motionless actions (#51)
  • added main stepping and idle information to speed up general stepping calculations in the stepping ISR (#51)
  • optimization for synchronous serial TX with direct serial output without buffer (#50)
  • modified ring buffer in TX to consume chars without waiting for a CR or LF (#49)
  • modified motion control to reduce number of planner blocks for motions of length 0 (#49)
  • improved real time status report (?) (no longer needing and empty buffer to send report-more responsive) (#48)
  • response protocol collisions avoidance (#48)
  • report will now always report at least 3 axis even if less than 3 are configured (to keep report structure needed by interface softwares) (#48)
  • virtual MCU update to reflect current µCNC interface (#47)
  • added option to disable controls or limits IO globally (#45)
  • completely new file structure

Fixed

  • fixed planner speed profile calculations that was missing speed change between blocks and was causing random miss stepping calculations (#52)
  • added initial NULL char sending after configuration of UART to force TXE hardware set for STM32 and deleted duplicate SYNC TX config for STM32 (#50)
  • fixed inch report mode setting that was hidden (#49)
  • fixed error message on disabling soft limits command with homing disabled (#49)
  • small step ISR code fixing (#46)
  • fixed stepper enable pin set/reset to match most stepper drivers (negative logic) (#42)

v1.1.2

23 Jun 18:50
d0566f7
Compare
Choose a tag to compare

µCNC

µCNC is fairly stable and can be used for production work with extreme care. Currently available mcu implementations only support Arduino Uno, and the Rambo/RAMPS board. Also STM32F1 is available. An example boardmap for Blue Pill board is available.
An hex with a configuration similar to Grbl 1.1 is available.

  • Note: All input pins are internally held high by weak pull-up configuration.

[1.1.2] - 2021-06-23

Version 1.1.2 fixes an critical error on the STM32 HAL that cause several IO problems. µCNC core and AVR have no changes from the previous version.

Fixed

  • fixed STM32 HAL pin configuration macros caused bad pin configurations leading to unpredictable behavior. (#40)

v1.1.1

17 Jun 22:41
b0d8816
Compare
Choose a tag to compare

µCNC

µCNC is fairly stable and can be used for production work with extreme care. Currently available mcu implementations only support Arduino Uno, and the Rambo/RAMPS board. Also STM32F1 is available. An example boardmap for Blue Pill board is available.
An hex with a configuration similar to Grbl 1.1 is available.

  • Note: All input pins are internally held high by weak pull-up configuration.

[1.1.1] - 2021-06-17

Version 1.1.1 comes with added features and improvements over the previous version. It also fixes a couple of bugs of the previous implementation. These are:

Added

  • new mcu internal RTC to provide a running time reference (#38)
  • new build option to emulate Grbl startup message so that it can be recognized by several Grbl GUI applications like Candle (#36)
  • new software limit switch debouncing delay configurable via EEPROM (option/command $26=) (#34)

Changed

  • improved laser mode to be compliant to Grbl's laser mode. Laser mode also has auto shutdown feature when motion stops (#29)
  • checks if DSS setting value is valid (#30)
  • improved fast math functions (more stability) and added new fast math pow2 function (#33)

Fixed

  • fixed AVR HAL output pin toggle function. (#38)
  • fixed hardware serial on ST32F10x HAL to work in sync mode (in async the communication breaks) (#37).
  • coolant/mist on/off functions and overrides (#28)
  • fixed parser active modal groups report (#28)
  • fixed active tools report (#28)
  • fixed DSS oversampling that was not reseted after motion end (#30)
  • fixed probing ISR tripping at startup by forcing probe_isr_disable after mcu_init (#32)

v1.1.0

09 Aug 21:05
Compare
Choose a tag to compare

µCNC

µCNC is fairly stable and can be used for production work with extreme care. Currently available mcu implementations only support Arduino Uno, and the Rambo/RAMPS board. Also STM32F1 is available. An example boardmap for Blue Pill board is available.
An hex with a configuration similar to Grbl 1.1 is available.

  • Note: All input pins are internally held high by weak pull-up configuration.

[1.1.0] - 2020-08-09

Version 1.1.0 comes with many added features and improvements over the previous version. It also fixes many of the bugs and limitations of the previous implementation. These are:

Added

  • new planner mode (linear actuator driven) that can be enabled via config file. This plans acceleration and deceleration based on the motion change in the linear actuators and not the cartesian axis. This should be advantageous on mechanically heavy machines. Also an option to enforce cold start motions (if any linear actuator starts at velocity 0 all other go to a full stop when ending the previous move - hybrid G61 and G61.1) (#23)
  • new backlash compensation (enabled via config file) with configurable via parameters $140´(X), $141´(Y), $142´(Z), $143´(A), $144´(B) and $145´ (C) (#23)
  • new axis skew compensation (enabled via config file) with configurable via parameters $37´(XY), $38´(XZ) and `$39´(YZ) (#23)
  • new DSS (dynamic step spread) algorithm (similar to Grbl's AMASS (enabled via config file). This distributes step execution at lower step rates so that the vibration noise produced is reduced. (#22) (#18)
  • new STM32F10x HAL (#15). Although not all features are available it is usable. Boardmap for blue pill board available.

Changed

  • modified distribution of main (to follow #15)
  • improved C99 standard compliance of code
  • new completely redesigned parser/gcode interpreter (easier to debug). A single functions is called to read and execute both gcode and grbl commands. (#21)
  • complete active modal codes report (#20)
  • improved separation of comment message processing and command echo (debug purposes only)

Fixed

  • fixed AVR HAL pwm generation was not working for all channels. Also analog reading is now available. (#25)
  • fixed overflow serial error that occur if 128 bytes (Grbl's limit) were sent to the buffer.
  • fixed several compilation errors with other configurations
  • fixed avr mapfile for grbl

v1.0.0

30 Jul 09:09
b2948be
Compare
Choose a tag to compare

µCNC

µCNC is fairly stable and can be used for production work with extreme care. Currently available mcu implementations only support Arduino Uno, and the Rambo board. A hex with a configuration similar to Grbl 1.1 is available.

  • Note: All input pins are internally held high by weak pull-up configuration.

[1.0.0] - 2020-07-30

Changed

  • modified makefile and instructions for AVR

Fixed

  • fixed parsing error in check mode (planner position not updated after linear motions)
  • fixed feed override caused feed to go to 0 above 180% feed override value
  • change macro and library dependencies so that the option for fast Sqrt function works (AVR problem only)
  • fixed feed issue while G20(inches) was active that made the internal feed state value to always be converted from inches to mm even if not explicitly declared in the gcode command. This caused the feed rate to decay to 0.
  • fixed jog state that was permanently on after a finnished (not aborted) jog motion. New jog commands were also not accepted while in this state
  • fixed parsing of reset commands ($RST=) that accepted non regular/incomplete forms of the command
  • fixed README
  • fixed devCpp project file (compilation errors)
  • fixed parser reset state to match RS274 standard

v1.0.0-rc

11 Jul 20:55
e0558b2
Compare
Choose a tag to compare

µCNC

µCNC is still experimental and should not be used for production work. Currently available mcu implementations only support Arduino Uno, and the Rambo board. A hex with a configuration similar to Grbl 1.1 is available.

  • Note: All input pins are internally held high by weak pull-up configuration.

Changes in v1.0.0-rc - 2020-07-11

Added

  • added possibility of changing values og G28 and G30 commands via G10 L2 P28 and G10 L2 P30.
  • added configuration for using software pulling input limit/control pins

Changed

  • configuration now simplified (choose board only and the mcu is selected to match the board)

Fixed

  • fixed code without probe
  • fixed code without spindle
  • compliance to strict-prototype functions

v1.0.0-beta.2

09 Feb 22:27
aa282c5
Compare
Choose a tag to compare
v1.0.0-beta.2 Pre-release
Pre-release

µCNC

µCNC is still experimental and should not be used for production work. Currently available mcu implementations only support Arduino Uno, and the Rambo board. A hex with a configuration similar to Grbl 1.1 is available.

  • Note: All input pins are internally held high by weak pull-up configuration.

Changes in v1.0.0-beta.2 - 2020-02-09

Added

  • added AVR support by adding external interrupt pins to the limits and control pins range
  • new dual drive axis support with self squaring homing motion and locking of one stepper in the interpolator stage with the addition of two mirror step pins (with minimal performance loss)
  • added initial laser mode support
  • new filter to limits ISR to support dual drive auto squaring with IO overlapping (shared limit switches)

Changed

  • complete HAL redesigned to allow independent function pins
  • new generic AVR HAL implementation
  • modified system exec_flags to prevent unecessary locks
  • modified cartesian kinematics (configurable) to fit several types of machines (without the need to code a full kinematics)
  • separeted the mcu and board now have individual configuration files

Fixed

  • fixed bug introduced in the beta patch to the homing motion (no limit_flag)
  • minor modification of mc_arc to prevent error on non existant axis
  • adapted protocol to send a minimum of 3 axis coordinates (yeld error on interface with OpenCNCPilot and probably other software too)
  • fixed probe enable and disable functions (now use direct IO on AVR)