github bdring/FluidNC v3.6.0

latest releases: v3.9.1, v3.9.0, 3.8.4-pre9...
2 years ago

This release gets us back on track after the debacle that started with v3.4.5, where we switched over to the new versions of the Arduino Framework, ESP-IDF SDK, and C++ compiler. It has a few targeted fixes and one major shakeup of the code. The targeted fixes are

The major shakeup is #562 . It revamps the main protocol state machine to use an event queue instead of polling status variables, which allows limit switches and control pins to be handled with events. This resolves a longstanding problem with limits. Direct polling of limit switches is slow if you have a lot of switches (possibly several per axis), but handling switch changes in an interrupt routine can give incorrect results due to problems in the ESP32 edge detection circuit. In the new scheme, an event is issued as soon as a pin becomes active, then further pin state changes are locked out until later, after the main code has responded to the event and the pin has had time to stabilize.

This scheme works well with the testing that has been done so far, having resolved some problems reported by users.

As an adjunct to the new event/limit scheme, the homing code was rewritten to use an event driven model. In the process, some pulloff problems were resolved and single-axis/multi-axis homing for CoreXY machines is now supported.

It also fixes some control pin problems like delayed cycle start after feedhold and undesired auto-repeat of macro pins.

In summary, the revamp features:

  • Stable operation of limit switches
  • Homing pulls off initially-active limit switches on either end
  • Asymmetric final pulloffs work
  • Single/multi axis homing works in CoreXY
  • Cycle start after feedhold works right
  • Control pins like macros do not auto-repeat when held

Don't miss a new FluidNC release

NewReleases is sending notifications on new releases.