emc2_2.4.0 Release

I'm pleased to announce the first stable release of the 2.4 series, emc
2.4.0. This version has many new features compared to 2.3.5.

The new packages will soon be available for Ubuntu 8.04 "Hardy Heron" in
the package repositories. Because this package is incompatible with emc
2.3.5 in several minor ways, it will not automatically be installed as
an upgrade. For more information and installation/upgrade instructions,
please see http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?UpdatingTo2.4

Ubuntu 6.06 is no longer supported in this release or future releases of

Packages for Ubuntu 10.04 are not yet available. When testing packages
for the new version of Ubuntu are available, an announcement will be

Git users can get this release by checking out the v2.4.0 tag, or follow
bugfixes on the v2.4_branch. Source tarballs will be available from the
package repository, http://linuxcnc.org/hardy/dists/hardy/emc2.4/source

Many thanks to all the contributors who have been working over the
course of the past year to deliver the many improvements in this

Changes since 2.3.5:
* configs: add GEOMETRY=AXYZ to Sherline4Axis so A rotates
* configs: DOS-damaged inifiles are detected with a clear error
* configs: A default nml file is used if it is not specified in the inifile
* configs: new [AXIS_#]VOLATILE_HOME flag makes an axis unhomed after estop
or machine off (for motors without feedback, such as steppers)
* configs: updates to smithy configuration files

* nml: enlarge status buffer in default emc.nml
* nml: add machine delay time to status (works for G4Pxx and M66)
* nml: unused fields removed from the status buffer

* touchy: a new GUI for touchscreens that doesn't use a keyboard

* tooledit: new GUI to edit tool table

* axis: shift+jog for XYZ gives a jog at the traverse speed.
* axis: the units (mm, inch, or degrees) are shown in touch-off;
when appropriate, radius or diameter mode is indicated
* axis: new "big dro" tab
* axis: axis-remote --clear remotely clears the backplot
* axis: axis-remote --mdi sends an mdi command
* axis: new HAL pins such as axisui.set-manual-mode to take UI actions from
a remote pendant or hard button
* axis: improve (AXIS,stop) comment
* axis: improve load time of programs, particularly those containing arcs
* axis: inifile item [DISPLAY]ARCDIVISION trades preview generation speed
for preview accuracy
* axis: fix a memory leak on program reload

* halui: new pins such as home-all, unhome

* python: new methods such as emc.command.set_feed_override

* pyvcp: leds have a 'disable' pin to select a third color
* pyvcp: named widgets don't create gaps in numbered widgets
(backwards incompatible change)
* pyvcp: -g argument sets initial window size and position

* stepconf: improve "test axis" for machines with long step length

* pncconf: a new, alpha-release graphical configurator for hostmot2 systems.

* interpreter: the .var file is automatically created if it doesn't exist
* interpreter: many error messages are improved
* interpreter: G5x coordinate system rotation
* interpreter: additional G10 codes for coordinate system and tool offsets
* interpreter: tool offsets can be applied on all 9 axes
* interpreter: [TRAJ]TLO_IS_ALONG_W removed
* interpreter: Incompatible change in G43.1 to support 9-axis tool lengths
* interpreter: G61 P- Q- specifies motion and "naive cam" tolerances
* interpreter: M68 E- Q- to set analog outputs
* interpreter: g90.0/g90.1 choose absolute/relative arc centers
* interpreter: new "polar mode" using @ ^ notation
* interpreter: new "wrapped rotary" mode
* interpreter: #5400..#5413 hold information about loaded tool
* interpreter: M1xx permitted with cutter radius compensation on
* interpreter: Can negate a parameter, e.g., G0 X-#1
* task: Improve behavior of O-call from MDI
* task: new "random" toolchanger for carousel systems which don't
necessarily put the tool back in the same pocket it came from.
* task: fix "step from first line"
* task: improve "run from line" when next line does not specify all
axis words
* task: avoid undesired motion on "run from line" when next line is an
* motion: further improvements to spindle-synchronized motion
* motion: improve blending of arcs with very low acceleration limit

* hal: bump shared memory size to allow for more complex configs
* hal: now cooperates with the linux parport_pc driver. When
parport_pc is enabled, parports may be specified by number (e.g., 0 for
* halmeter: -g argument sets initial window size and position
* halcmd: DOS-damaged files are detected with a clear error
* internationalization: halscope and halmeter are now translatable
* hal_parport: fix a problem with control pins in "x" mode
* comp: components must now specify a license
* comp: new "include" directive

* joyhandle: new realtime component for analog joystick deadband,
scaling, and exponential "acceleration"
* pid: new index-enable pin eliminates thump during homing when connected
to axis.#.index-enable (step change means feadforward calculation should
be skipped in the cycle where index is seen)
* integ: min/max windup limit pins
* limit2/limit3/lowpass: "load" pin to preload value from input pin
* hostmot2: firmwares are now shipped separately from emc2 in the
hostmot2-firmware packages
* encoder: better estimates velocity and provides an
approximate "interpolated position" for low-resolution encoders
* thc: new alpha-release component for torch height control

* image-to-gcode: use numpy instead of numarray

* documentation: many improvements
* many more small enhancements and bugfixes

Posted by Alex Joni 2010-05-30