Skip to content

µCNC v1.2.0

Compare
Choose a tag to compare
@Paciente8159 Paciente8159 released this 30 Jul 23:40
· 2761 commits to master since this release

µ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)