GithubHelp home page GithubHelp logo

farzinvatani / machinekit-hal Goto Github PK

View Code? Open in Web Editor NEW

This project forked from machinekit/machinekit-hal

0.0 0.0 0.0 95.07 MB

Universal framework for machine control based on Hardware Abstraction Layer principle

Home Page: https://machinekit.io

License: Other

Shell 1.95% Python 12.62% Makefile 0.72% M4 1.16% Assembly 1.47% C 68.14% OpenEdge ABL 1.71% C++ 10.77% HTML 0.45% VHDL 0.13% Batchfile 0.01% QML 0.05% CSS 0.05% CMake 0.15% JavaScript 0.44% Dockerfile 0.12% Mustache 0.04%

machinekit-hal's Introduction

Machinekit-HAL

Machinekit demo

Universal framework for machine control.

Github Actions build status Drone Cloud build status Coverity Scan Build Status Version Matrix Machinekit Room Machinekit Google Groups C4 community guidelines
Machinekit Cloudsmith repository for Machinekit-HAL core packages Machinekit Cloudsmith repository for dependencies

Website | Docs | About

Machinekit-HAL is a powerful software for real-time control of machinery based on Hardware Abstraction Layer principle. With tools and libraries making development of new components and drivers easy. Integrators can choose to control industrial robotic arm, single purpose machine or CNC mill or lathe with additional software package.

Supporting RT PREEMPT and Xenomai 2 real-time Linux kernel patches. APT packages available for Debian 9 Stretch, Debian 10 Buster, Ubuntu 18.04 Bionic LTS, Ubuntu 20.04 Focal LTS and Ubuntu 21.04 Hirsute.

Machinekit demo

Getting started

The easiest way how to get Machinekit-HAL running is to install Debian package. Packages can be obtained by triggering Github Actions workflow and downloading build artifacts on your own fork. Packages build from every push to master branch on official Machinekit/Machinekit-HAL repository are also distributed through Machinekit-HAL repository (Dependencies) kindly hosted by Cloudsmith.

Alternatively you can build locally on your machine in Run-In-Place mode. The briefest sequence of commands would be:

git clone https://github.com/machinekit/machinekit-hal.git
cd machinekit-hal
debian/bootstrap
mk-build-deps -irs sudo
cd src
./autogen.sh
./configure
make
sudo make setuid

More information about building can be glanced from documentation.

Warning Be advised that currently there is no support for Linux distributions other than Debian derivatives.

History

Machinekit-HAL was created by separating the core functionality from now deprecated Machinekit repository into own repository.

It all started in the early nineties when NIST created the Enhanced Machine Controller Architecture in Public Domain as a vendor-neutral software implementation for numerical control of machining operations. From that in 2003 open community of developers created a project called EMC2 or Enhanced Machine Controller 2. (Or on the side of commercial software, EMC was developed into popular software Mach3 for Microsoft Windows.) EMC2 was renamed in 2011 as a LinuxCNC. In 2014, Machinekit was forked from LinuxCNC to facilitate deeper changes in low level functionality. In 2020, the original Machinekit repository was archived and development is fully continuing in the Machinekit-HAL repository.

Warning The CNC part of original repository was separated into the Machinekit-CNC repository in the same move.

Frequently asked questions

Question What is the Hardware Abstraction Layer?
Answer HAL represents one of the fundamental elements of Machinekit-HAL. One could imagine HAL as a electronics breadboard into which semiconductors, passives or connectors (in HAL componets and drivers) are inserted and connected by wires (in HAL signals). This all happens in-memory and the execution stage runs in Linux scheduled thread.
Question Is Machinekit-HAL LinuxCNC?
Answer No. In the current state of development, we can say that both Machinekit-HAL and LinuxCNC 2.8 have a common ancestor. However, Machinekit-HAL doesn't include the CNC functionality like LinuxCNC, the configuration is different and the supported platforms are different also.
Question What's the difference between Machinekit-HAL and Machinekit?
Answer Machinekit-HAL is continuation of Machinekit. Work on the original Machinekit repository was stopped and the only new development will happen on Machinekit-HAL. Machinekit-HAL exports only the core functionality to better serve the needs of machine integrators and provide leaner experience for everybody. The CNC functionality was exported into Machinekit-CNC repository.
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/Machinekit 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 programming discussion about further development happens. In lower measures, Machinekit-HAL 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.

Counselling It's always encouraged to create a new issue in GitHub tracker first. Discuss the proposed changes there and then based on the output implement the changes and create a new pull request.

Licence

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

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

machinekit-hal's People

Contributors

alex-joni avatar andypugh avatar arceye avatar bujtar avatar c-morley avatar cdsteinkuehler avatar cerna avatar cradek avatar dngarrett avatar fenn avatar gmoccapy avatar jepler avatar jethornton avatar jmelson avatar jmkasunich avatar kimk avatar kinsamanka avatar ktchk2 avatar luminize avatar machinekoder avatar mattshaver avatar mhaberler avatar micges avatar muggins avatar robellenberg avatar sebkuzminsky avatar shramov avatar the-snowwhite avatar vavaroutsos avatar zultron avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.