Skip to content

machinekit/EMCApplication

Repository files navigation

EMCApplication

Machinekit demo

Machinekit Featured Application for Enhanced Motion Controller from LinuxCNC.

Version Matrix Machinekit Room Machinekit Google Groups C4 community guidelines
Machinekit Cloudsmith repository for EMCApplication packages Machinekit Cloudsmith repository for Machinekit-HAL core packages Machinekit Cloudsmith repository for dependencies

Website | Docs | About

EMCApplication is the Enhanced Motion Controller developed as part of LinuxCNC ported to use the powerfull Machinekit-HAL backend. With this package integrators can quickly create CNC solution to controll a mill or a lathe or any other application which would benefit from G-Code based motion controller.

Machinekit demo

Getting started

The recommended way how to get running quickly is to install Debian package. As the EMCApplication contains only the CNC portion, the Machinekit-HAL is required dependency and can also be installed as a Debian package.

While Run-In-Place is theoretically possible, the Machinekit-HAL stil has to be installed (respective libraries needs to be exported with pkg-config) and real-time components of EMCApplication has to be installed into Machhinekit-HAL specified directory.

Machinekit organization keeps current Debian packages in specific repositories: The EMCApplication can downloaded from official Machinekit/EMCApplication repository, Machinekit-HAL from Machinekit/Machinekit-HAL repository, other dependencies then from Machinekit/Machinekit repository. Allpackages repositories are kindly hosted by Cloudsmith.

Presuming newly installed Debian Buster system (for example Docker container), the following sequence of commands would be needed to install EMCApplication as a non-root user with sudo rights:

curl -1sLf \
  'https://dl.cloudsmith.io/public/machinekit/machinekit/cfg/setup/bash.deb.sh' \
  | sudo -E bash
curl -1sLf \
  'https://dl.cloudsmith.io/public/machinekit/machinekit-hal/cfg/setup/bash.deb.sh' \
  | sudo -E bash
curl -1sLf \
  'https://dl.cloudsmith.io/public/machinekit/emcapplication/cfg/setup/bash.deb.sh' \
  | sudo -E bash
sudo apt install emcapplication

If you want to compile the Run-In-Place version onto Debian Buster, the following sequence of commands would be needed (again as a non-root user with sudo rights):

curl -1sLf \
  'https://dl.cloudsmith.io/public/machinekit/machinekit/cfg/setup/bash.deb.sh' \
  | sudo -E bash
curl -1sLf \
  'https://dl.cloudsmith.io/public/machinekit/machinekit-hal/cfg/setup/bash.deb.sh' \
  | sudo -E bash
git clone https://github.com/machinekit/emcapplication.git
cd emcapplication
sudo apt install build-essential fakeroot devscripts python apt-cudf
sudo apt-mark hold machinekit-hal
debian/configure machinekit-hal=${WANTED_VERSION_OF_MACHINEKIT_HAL_PACKAGES} no-docs
mk-build-deps       \
    --install       \
    --remove        \
    --root-cmd sudo \
    --tool          \
    'apt-cudf-get --solver aspcud -o APT::Get::Assume-Yes=1 -o Debug::pkgProblemResolver=0 -o APT::Install-Recommends=0' \
    debian/control
cd src
./autogen.sh
./configure --with-hal=machinekit-hal
make
sudo make install
cd ..
source ./scripts/rip-environment
linuxcnc
Warning Be advised that currently there is no support for Linux distributions other than Debian.

Frequently asked questions

Question What is the difference between EMCApplication and Machinekit-CNC?
Answer Machinekit-CNC is the Machinekit organization project for CNC application based on Machinekit-HAL backend.EMCApplication on other hand is ported Enhanced Motion Controller from LinuxCNC to use the Machinekit-HAL. All development of new functionality happens in LinuxCNC under supervision of LinuxCNC community. Development on Machinekit side is strictly limited to creating the compatibility layer to support the different Machinekit projects, mainly Machinekit-HAL.
Question Is the LinuxCNC documentation valid for EMCApplication?
Answer No. Well, it depends. Documentation pertaining the Enhanced Motion Controller will be mostly valid. (G-Code documentation, motion planner manual, GUI tutorials.) However, anything specific to HAL layer (including simple tools like PNCconf or Stepconf) will be inherently wrong and should not be used.
Question What's does the term Featured Application mean?
Answer Featured Application is terminus technicus coined by Machinekit organization to give universal title to all projects using Machinekit-HAL backend and building new applications on top of it.
Question How can I determine if .deb package is from official distribution?
Answer Every package should be signed by dpkg-sig tool. Packages built by Machinekit from official repository Machinekit/EMCApplication are signed by the 4A374E9D7CA79FA717293B98D2EFAE426CDDB0FE sub-key. Forks will use different key or will not sign the packages.

Getting involved

Machinekit-HAL like all projects in the Machinekit organization is volunteer based governed by the Collective Code Construction Contract , generally known as a C4 originally from the ZeroMQ project.

The source code is hosted publicly on GitHUB, where majority of discussion happens. In lower measures, EMCApplication is also discussed on Machinekit forum and in Machinekit Matrix Room, which are used more to the point of support platforms and for general chat.

Synchronization of EMCApplication and LinuxCNC is done by merging-in changes from upstream LinuxCNC repository into EMCApplication downstream repository.

Counselling Development in EMCAplicattion repository is limited strictly to compatibility layer between Machinekit projects and LinuxCNC. If you want to develop new functionality or post patch for bug repair, please, head to the LinuxCNC repository. If you want to develop CNC application in scope of Machinekit organization, please head to Machinekit-CNC repository

Licence

This software is released under the GPLv2, with some parts under the LGPL. See the file COPYING or COPYING.more for more details.

Warning For more detailed information consult specific files with source code implementing given functionality. There should be explicit licensing.

Original LinuxCNC README.md:

LinuxCNC

LinuxCNC controls CNC machines. It can drive milling machines, lathes, 3D printers, laser cutters, plasma cutters, robot arms, hexapods, and more. https://linuxcnc.org/

DISCLAIMER

THE AUTHORS OF THIS SOFTWARE ACCEPT ABSOLUTELY NO LIABILITY FOR ANY HARM OR LOSS RESULTING FROM ITS USE.

IT IS EXTREMELY UNWISE TO RELY ON SOFTWARE ALONE FOR SAFETY.

Any machinery capable of harming persons must have provisions for completely removing power from all motors, etc, before persons enter any danger area.

All machinery must be designed to comply with local and national safety codes, and the authors of this software can not, and do not, take any responsibility for such compliance.

This software is released under the GPLv2, with some parts under the LGPL. See the file COPYING for more details.

The Build Process

Refer to the file 'docs/src/code/building-linuxcnc.txt' for information about building and running the software, or look here:

http://linuxcnc.org/docs/devel/html/code/building-linuxcnc.html

About

Machinekit Featured Application for Enhanced Motion Controller from LinuxCNC

Topics

Resources

License

GPL-2.0, Unknown licenses found

Licenses found

GPL-2.0
COPYING
Unknown
COPYING.more

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published