<html><img style="float:right" src="http://wiki.linuxcnc.org/uploads/screen_thumb.png"></html>|
Welcome to the community maintained website of the Enhanced Machine Controller (EMC) Project =
EMC on Ubuntu 10.04 Lucid Lynx
[Official announcement] of pre-built packages and a Live CD for Ubuntu 10.04 LTS "Lucid Lynx".
Why are there packages only for 8.04 and 10.04
We have chosen to use 8.04 and 10.04 because they are "long term support" (LTS) releases. If you use an LTS release, you can be sure of support and security fixes from the Ubuntu team for 3-5 years. However, we would be happy to accept and host packages for other versions if a user/developer of emc2 wishes to contribute them.
Upgrading from Ubuntu 8.04 to 10.04 will remove emc2
If you use the Ubuntu updater to upgrade from 8.04 to 10.04, it will remove the emc2 packages. After the upgrade, you can install the new packages for 10.04. Instead of upgrading, we recommend performing a fresh install of 10.04 so that your existing 8.04 setup is retained; after installing emc2 on 10.04, copy your old configuration files and update them if necessary. This way, if you find that the experimental 10.04 packages do not work as well for you, you can simply return to your working 8.04 system.
EMC 2.4.7 release
The latest version of EMC is EMC 2.4.7. View a list of changes in this release Instructions on upgrading from 2.3.x to 2.4.x
EMC on Ubuntu 8.04 Hardy Heron
[Official announcement] of pre-built packages and a Live CD for Ubuntu 8.04 LTS "Hardy Heron". After installing from the CD, upgrade online to emc 2.4.
Table of Contents
* About EMC2 - Description
** Screenshots - Various screenshots of emc2 and related programs
** Videos - EMC controlled machines in action
** Case Studies - example machines run by EMC
** Comparisons between EMC and other controllers
** OldReleases differences between older versions of EMC2
** Released differences between versions of 2.4.X
** Released 2.5.X differences between versions of 2.5.X
* Getting Started
** Hardware Requirements - what kind of PC can you use?
** EMC2 Supported Hardware - hardware that works with EMC2
** Latency-test - real-time performance database
** Installing EMC2 - how to get the software
** Install To CompactFlash instruction to install in solid state CompactFlash? memory.
** EMC2 Pure Simulator How to get the simulator version (no realtime)
** The manuals---PDF style:
*** [EMC Getting Started Guide (PDF) Very Short Guide]
*** [EMC2 User Manual (PDF)] [Manuel de l'utilisateur d'EMC2 (French)]
*** [EMC2 Integrator Manual (PDF)] [Manuel de l'intégrateur d'EMC2 (French)]
*** [EMC2 Developer Manual (PDF)]
*** [HAL User Manual (PDF)] [Manuel de HAL (French)]
** The manual---HTML style:
*** http://www.linuxcnc.org/docs/ - Home for automatically generated documentation
** QuickStart - A guide to get up and running.
** ClassicLadder version 7.100 (EMC 2.1-EMC 2.2.9) online docs.
** Authors - People working on the wiki (hint: we always need more)
** Contributing to formal EMC documentation:
*** EMC2 V2.4 BeyondWiki
*** EMC2 V2.5 BeyondWikiToo
** BasicSteps shows how to edit the wiki to add new info
** Mailing list for users: [EMC-users]
*** [Sourceforge archive] (unreliable)
*** [Gmane.org archive] (better)
** Mailing list for developers: [EMC-developers]
*** [Gmane.org archive]
** commit mailing list: [EMC-commit]
** commit RSS Feed: [git RSS]
** Bug and Feature Trackers
** IRC: #emc and #emc-devel on irc.freenode.net
*** Searchable IRC archives: [Austria] [Russia]
*** #emc [IRC Archive]
*** #emc-devel [IRC Archive]
*** Try the [embedded Java client]
*** Top 300 active users in EMC IRC channel
*** Top 200 hosts in EMC IRC channel
*** Top 200 links in EMC IRC channel
** [CIA project statistics]
** [Planet-EMC] feed aggregator.
***[CNCZone EMC Forum]
***[EMC Forum -Trial on linuxcnc.org]
***[German EMC Forum]
* Configuring EMC2 - how to make it fit your needs
** Stepper specific info
*** TweakingSoftwareStepGeneration - a good discussion to assist in setting up software stepping
*** Stepper Drive Timing - Step and Direction timing charts
*** Steppers with encoders - jlmjvm's story
*** Stepper Formulas
*** Stepper Motor Speed Limitations
*** Mechanical Spreadsheet - Spreadsheet to assist with choosing steppers
** Servo specific info
*** Tuning EMC2/HAL PID loops
*** PWM Servo Amplifiers
** Advanced Configuration:
**** Parameters for kinematics - How to pass parameters to kinematics
*** Homing and Limit Switch - Comparison of different Home and Limit Switch Configurations
*** GUI Add-ons
**** GladeVcpSetup Glade Virtual Control Panel Setup
**** GladeVCPprogramming Glade Virtual Control Panel Programming
**** HalWidgets Glade HAL Widgets
**** ActionWidgets Glade Action Widgets
**** pyVCP HAL visual control panel in Python
**** Halui - How to use the HAL User Interface
**** GTK Themes have Touchy and Gladevcp panels look different then the desktop theme
*** Control pendants and add-ons
**** Using X11 joystick driver - Make joypad to send hotkeys to axis
***** spindleoverride - How to add a hardware quadrature encoder to control spindle speed override
**** Adding external controls
***** [[Hidcomp]] Connect complex USB controls to HAL
***** Hooking up a MPG Pendant
***** [Hooking up a jogwheel]
***** Using a joypad to move your CNC machine
***** Using a joypad to jog and control spindle speeds
***** [A new approach for using joypads with EMC2]?
***** Simple Remote Pendant using Halui and Hal_input
***** Adding More Controls to Simple Remote Pendant
***** Jogging with buttons on a pendant using Halui
***** Adding Custom MDI buttons
***** One Button Toggle for flood etc on pendents or pyVCP the easy way
***** Parallel Port Tester To test I/O on the parallel port
***** About Charge Pumps Overview of Pump and Buckets
**** vismach - fancy 3d machine simulator
*** Running EMC over network
**** Running Multiple User Interfaces
**** emcrsh Telnet text interface to EMC
**** halrmt Telnet text interface to HAL
*** Classic Ladder: adding a software PLC
**** ClassicLadder -on-line docs for version 7.100 (EMC 2.1 - 2.2.8)
**** ClassicLadder ver 7.124 - new version includes userspace MODBUS (EMC 2.3.0 - on)
**** ClassicLadderExamples -examples of ladder and sequential programs such as turret indexing
**** Sample HAL and ClassicLadder - examples of using Classic Ladder to control e-stop and lube pump
**** Basic Ladder Logic - discussion of general ladder programming
*** Spindle control:
**** Analog Spindle Speed Control Using the Mesa 5i20/7i33 to control spindle speed
**** SpindleOrientation Spindle Orientation
**** Closed Loop Spindle Speed Control
*** Touch probes:
**** Preventing probe crashes using HAL
**** Touch Probe - Using and building a Touch Probe
**** [single button touch-off] using a touch-off plate (or probe) for setting Z origin.
**** [[AcceleroMeter + Fourier transform Tool Height Detection]]
**** BackToolLathe - Changing Axis to display for a lathe with back tools.
*** Tool changing:
**** Tool Changes - Installing and Using the Manual Tool Changer
**** RackToolChanger - Configuring EMC2 to use Rack Tool Changer
*** Gaining accuracy:
**** Screw Compensation - Using a comp file
**** combining two feedback devices on one axis eg a rotary encoder on motor and a linear encoder on machine
*** Other uses of EMC2:
**** m5i20 laser - Another example of using halvcp and M5i20 board
**** [rapid prototyper]
**** [EMCRepStrap 3d printer]
** HAL: controlling the world
*** HAL Components - Custom realtime components, i.e. and2, or2, not, mux2 etc.
*** ContributedComponents - Components add new capabilities to HAL
*** ContributedHalFiles -- .hal files combine Components in useful ways
*** Use Eagle CAD Schematics editor to configure HAL
** User Configurations:
*** MillSetup Notes on Limits, Home, Work Offsets, Tool Length Offsets, and Touch Off in EMC2.2
*** KX3 A simple howto for a Sieg KX3 mini-mill
** Internationalization - run EMC2 in your language
** Suppliers - Parts and Raw Materials suppliers
* Using EMC2 - how to properly use it
** One-page [G-code quick reference] [PDF version] by Jeff Epler. [Version française (html)]
** CoordinateSystems - Understanding Coordinate Systems and Offsets
** Understanding G-Code - A tutorial on writing your own G-Code
** Simple EMC G-Code Generators - Facing, Pockets, Drill Patterns Etc.
** GWiz - A Gcode Wizard Framework
** Example G-Code Programs - Some examples of how to do things with G-Code.
** Using Gedit to aid in creating Gcode
** Cam programs
** Converting Tools simple pythons to convert your NC-Code ex. inchtometric
** Advanced examples of using emc2:
*** GcodeInfo - Things you might want to know about G-Codes
*** Oword - G-Code Owords - loops, conditionals and subroutines
*** Mword - G-Code relating to M words
*** M100-199 - M codes to call an external program
*** CustomMcodesToHal - Custom M Codes to Hal
*** G12-13 - Circular Pocketing Hass like subroutines for EMC2
*** G150 - Rectangular Pocketing Hass like subroutines for EMC2
*** HAL Components - Custom realtime components, i.e. and2, or2, not, mux2 etc.
*** Plasma - Examples of things relating to plasma tables
*** Lathe Advanced Features
*** Rigid Tapping
*** Rastering with a Laser
** Advanced extensions of emc2:
* TroubleShooting - what to check if something fails
** Hardware Problems - known hardware with problems and possible fixes
** Latency-test - real-time performance database
** FixingSMIIssues - fixing SMI issues that cause high latency
** StepMotorWireIdentification - Stepper Wire Identification
* EMC2 Development - development related resources
** DevelopmentIdeaList - development related thoughts, ideas, todo lists
** [source from Git] getting the source code for development, see Git on how to use it with the emc repository
** ContributedComponents - Components add new capabilities to EMC
** MakefileDeMystified - Info about how to add new source code to compile with EMC2
** SPI Sub-Driver For Hostmot2
** pncconf Development of a configuration program like stepconf for servo systems
** halitosis Development of a configuration program like stepconf for servo/stepper/any systems including configuration of vismach, kinematics, and VCP widgets, and flexible input systems webcams, encoders, etc...
** using HAL in python Sample of using HAL in python anf creating a custom widget in pygtk
* Misc stuff
** List Of CAM References
** Coders For EMC-Compatible CAM
** Editors and tips for using:
*** Highlighting In Gedit
*** Highlighting in Vim
** SPI sub-driver for hostmot2
** EMC2AtNAMES Planning for an EMC2 presence at the NAMES conference, April 18-19, 2009, Toledo, OH
** EMC2RunningInsideVirtualbox EMC2 runs inside virtualbox 3.2.6
** JTAG boundary scan example for a mesanet 7i43
** The isolcpus boot parameter and GRUB2
** Example of New Page This is an example of how to create a new page
[The EMC2 Live CD] is based on Ubuntu 10.04, includes EMC 2.4.3, and can also be used to install Ubuntu and EMC2 to your hard drive. After installing, you can easily upgrade to the latest version of EMC2 over a network connection.
An entire special distribution of Linux is not needed to easily install and run EMC2; see [the instructions for installing the EMC2 packages for Ubuntu] 10.04. These packages are maintained by the EMC board of directors and are kept up-to-date (and provide a very easy upgrade capability) as new releases are made.
Specialized Linux Distributions
EMC2 on [ArchLinux] build and installation including the RTAI kernel patches [Arch-HOWTO]. Arch is a lightweight and flexible Linux® distribution that tries to Keep It Simple. The Arch focus on simplicity and economy for developers means, among other things, that the main effort in assisting the user is not expended in crafting GUI configuration tools — the package manager, for example, does not have an official graphical front-end — but making well-annotated configuration files and extensive use of shell scripts. This has earned it a reputation as a distribution for intermediate and advanced Linux users who aren't afraid of the command line.
Why won't EMC run on Windows?
#EMC runs in real-time, to give smooth motion. This is critical to accuracy and machine life. Hard real-time is not available on Windows in a price range many can afford... especially those interested in using a PC-based control.
#EMC is intended to control machine tools. Machine tools are DANGEROUS and reliability/consistent behavior is extremely important. Compared to Windows, few viruses affect Linux. Even without consideration of viruses, Linux is far more stable.
#The above also apply to virtual machines (e.g., VMware or Virtual Box) and emulators. It may be possible to trick EMC to run on a virtual machine but do so at your own risk!
#The above notwithstanding, one can access a running EMC machine from a Windows machine, e.g., by running a Windows-based VNC client or X11 server.
The future of EMC ==
If you want to add information to this page or add a new page, follow some BasicSteps.
Please see LinuxCNCKnowledgeBase|