UpdatingTo2.6 - rmu75/linuxcnc-wiki GitHub Wiki


date: '2014-08-06T14:09:19' title: UpdatingTo2.6

Overview

This page describes how to upgrade from LinuxCNC 2.5.x to LinuxCNC 2.6.x. There is no one-step upgrade from EMC 2.4 or earlier to LinuxCNC 2.6. To perform such an upgrade, follow the instructions to upgrade to 2.5 first. (http://wiki.linuxcnc.org/cgi-bin/wiki.pl?UpdatingTo2.5) and then follow the steps on this page.

Getting LinuxCNC 2.6

Upgrading Ubuntu 10.04 (Lucid) from LinuxCNC 2.5 to 2.6

Do this if you have a running install of LinuxCNC on Ubuntu 10.04 Lucid, for example from one of the LinuxCNC Live CDs.

First you need to tell your computer where to find the new LinuxCNC software:

  • Click on the System menu in the top panel and select Administration->Software Sources.
  • Select the Other Software tab.
  • Disable or delete all the old linuxcnc.org entries.
  • Add a new Apt line that looks like this: deb http://linuxcnc.org/ lucid base 2.6

upload:updating-lucid-to-2.6.png

When you add that line, Software Sources will pop up a window informing you that the information about available software is out-of-date. Click the Reload button.

Now your computer knows about the new software, next we need to tell it to install it:

  • Click on the System menu in the top panel and select Administration->Synaptic Package Manager
  • In the Quick Search bar at the top, type linuxcnc.
  • Click the check box to mark the new linuxcnc package for installation.
  • Click the Apply button, and let your computer install the new package. The old linuxcnc 2.5 package will be automatically upgraded to the new linuxcnc 2.6 package.

Fresh install on Debian 7 (Wheezy)

The LinuxCNC Live+Install Debian Wheezy image is the preferred way to make fresh installs of LinuxCNC 2.6. Full instructions and details here:

http://article.gmane.org/gmane.linux.distributions.emc.user/52401

A couple of notes:

  • Download the iso file and burn it to a DVD.
  • To install pick graphical install at the first prompt.
  • To enable auto login edit etc/lightdm/lightdm.conf and look for the [SeatDefaults] section snd uncomment autologin name and add your user name and autologin timeout.
    • mousepad is similar to gedit so open a terminal and:
    • sudo mousepad etc/lightdm/lightdm.conf

If you prefer gedit then you need to update apt-get

  • sudo apt-get update
  • sudo apt-get install gedit

Fresh install on Ubuntu 12.04 (Precise)

  • Install Ubuntu Precise 12.04 x86 (32-bit). Any flavor should work (regular Ubuntu, Xubuntu, Lubuntu, etc). 64-bit (AMD64) is currently not supported. You can download the installer here: http://releases.ubuntu.com/precise/
  • Run <b>sudo apt-get update</b> followed by <b>sudo apt-get dist-upgrade</b> to bring the machine up to date with the latest packages in Ubuntu Precise.
  • Add the LinuxCNC Archive Signing Key to your apt keyring by running <b>sudo apt-key adv --keyserver hkp://keys.gnupg.net --recv-key 8f374fef</b>
  • Hit the "Windows" key on your keyboard to bring up the system search bar. Search for "Software Center" and launch it. Open the Edit menu and launch Software Sources. Add a new Apt line that looks like this: deb http://linuxcnc.org/ precise base 2.6

upload:linuxcnc-2.6-on-precise.png

  • Run <b>sudo apt-get update</b> again to fetch the package list from linuxcnc.org.
  • Install the RTAI kernel and modules by running: <b>sudo apt-get install linux-image-3.4-9-rtai-686-pae rtai-modules-3.4-9-rtai-686-pae</b>
  • If you want to be able to build LinuxCNC from source using the git repo, also run <b>sudo apt-get install linux-headers-3.4-9-rtai-686-pae</b>
  • Reboot, and make sure you boot into the rtai kernel. When you log in, verify that <b>uname -r</b> says <i>3.4-9-rtai-686-pae</i>
  • Run <b>sudo apt-get install linuxcnc</b>
  • Machine away!

Changes to your configuration

Smart-serial MPG encoder changes

In 2.5 the MPG encoders on the 7i73 and 7i84, and also the simple encoders on 7i77 GPIO export a single integer counts pin. In 2.6 this channel becomes more like a full encoder, with scaling, reset, etc. so, for example, hm2_5i23.0.7i73.0.0.enc0 is replaced by hm2_5i23.0.7i73.0.0.enc0.count hm2_5i23.0.7i73.0.0.enc0.rawcounts hm2_5i23.0.7i73.0.0.enc0.position hm2_5i23.0.7i73.0.0.enc0.index-enable hm2_5i23.0.7i73.0.0.enc0.scale hm2_5i23.0.7i73.0.0.enc0.reset hm2_5i23.0.7i73.0.0.enc0.counts-per-rev

Hostmot2 7i64 HAL pin changes

Hostmot2 7i64 digital input HAL pins changed names from <tt>hm2_5i23.0.7i64.0.0.digin.00.in</tt> and <tt>hm2_5i23.0.7i64.0.0.digin.00.in-not</tt> to <tt>hm2_5i23.0.7i64.0.0.input-00</tt> and <tt>hm2_5i23.0.7i64.0.0.input-00-not</tt>.

Hostmot2 7i64 digital output HAL pins changed names from <tt>hm2_5i23.0.7i64.0.0.digout.00.out</tt> and <tt>hm2_5i23.0.7i64.0.0.digout.00.invert</tt> to <tt>hm2_5i23.0.7i64.0.0.output-00</tt> and <tt>hm2_5i23.0.7i64.0.0.output-00-invert</tt>.

Hostmot2 8i20 HAL pin changes

HAL pin <tt>hm2_5i23.0.8i20.0.0.amp-enable</tt> was removed.

HAL pin <tt>hm2_5i23.0.8i20.0.0.max_current</tt> was replaced by <tt>hm2_5i23.0.8i20.0.0.current.maxlim</tt> and <tt>hm2_5i23.0.8i20.0.0.current.minlim</tt>. A very significant further change is that the current is now a value in amps, not the previous 0 - 1 scaling.

Fault/Status registers are now individual pins:

  • <tt>hm2_5i25.0.8i20.0.1.fault.U-current</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.U-current-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.V-current</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.V-current-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.W-current</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.W-current-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.bus-high</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.bus-high-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.bus-overv</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.bus-overv-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.bus-underv</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.bus-underv-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.framingr</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.framingr-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.module</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.module-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.no-enable</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.no-enable-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.overcurrent</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.overcurrent-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.overrun</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.overrun-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.overtemp</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.overtemp-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.fault.watchdog</tt> and <tt>hm2_5i25.0.8i20.0.1.fault.watchdog-not</tt>

  • <tt>hm2_5i25.0.8i20.0.1.status.brake-old</tt> and <tt>hm2_5i25.0.8i20.0.1.status.brake-old-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.status.brake-on</tt> and <tt>hm2_5i25.0.8i20.0.1.status.brake-on-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.status.bus-underv</tt> and <tt>hm2_5i25.0.8i20.0.1.status.bus-underv-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.status.current-lim</tt> and <tt>hm2_5i25.0.8i20.0.1.status.current-lim-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.status.ext-reset</tt> and <tt>hm2_5i25.0.8i20.0.1.status.ext-reset-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.status.no-enable</tt> and <tt>hm2_5i25.0.8i20.0.1.status.no-enable-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.status.pid-on</tt> and <tt>hm2_5i25.0.8i20.0.1.status.pid-on-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.status.sw-reset</tt> and <tt>hm2_5i25.0.8i20.0.1.status.sw-reset-not</tt>
  • <tt>hm2_5i25.0.8i20.0.1.status.wd-reset</tt> and <tt>hm2_5i25.0.8i20.0.1.status.wd-reset-not</tt>

The under volt and no-enable pins appear as both status and fault, this is because different firmware versions treat the situations differently. Typically in RevB boards both lack of enable and low bus voltage stop the card, whereas in the RevD boards the only stop the output and the board recovers when the condition is removed. Either board version may run either firmware version, however.

PID tuning change

The pid option error-previous-target now defaults to TRUE. This makes PID work better when there is I gain, or in torque-mode loops. You may need to retune. If you want to keep your old tuning, just set all your pid.N.error-previous-target pins to FALSE. If you want to use the new default, you probably only need to adjust your FF1 setting. In testing on a real machine, it was possible to get much better tuning with the new default of error-previous-target = TRUE.

HAL syntax for connecting pins & signals is more strict

The halcmd manpage has always shown "<=", "=>", and "<=>", preceeded and followed by a space character, as the accepted arrows for connecting pins and signals. However, before 2.6 halcmd would accept any number of "=" characters in the arrows. As of 2.6, only the documented arrows are accepted. If you have a "net" command in a .hal file that uses multiple "=" signs, you'll get a load-time error. Simply change it to use the documented arrow styles to fix it.

Important Behaviour Changes

Feed override doesn't affect rapid moves anymore - use max-velocity override.

⚠️ **GitHub.com Fallback** ⚠️