LinuxCNCKnowledgeBase - rmu75/linuxcnc-wiki GitHub Wiki
-
About LinuxCNC - Description
- HardwareDesign linuxcnc's hardware design model explained
- Getting Started
- Hardware Requirements - what kind of PC can you use?
- LinuxCNC Supported Hardware - hardware that works with LinuxCNC
- Latency-test - real-time performance database
- Installing LinuxCNC - https://linuxcnc.org/docs/stable/html/getting-started/getting-linuxcnc.html
- [Buildbot -get pre official-release bugfixes]
- Building LinuxCNC from source - http://linuxcnc.org/docs/master/html/code/building-linuxcnc.html
- Links
- Tutorials - Links to tutorials and LinuxCNC guides
- Videos - LinuxCNC controlled machines in action
-
Case Studies - example machines run by LinuxCNC
- Documentation
- LinuxCNC Manuals (Current, Future, Older versions) Page: http://www.linuxcnc.org/docs/
- Authors - People working on the wiki (hint: we always need more)
- Contributing to formal LinuxCNC documentation:
- Translation Translating LinuxCNC Documentation
- Internationalization Translating po files used by GUIs
- Documentation about the LinuxCNC documentation toolchain BeyondWikiToo
- BasicSteps shows how to edit the wiki to add new info
- Communication
- Mailing list for users: [emc-users]
- [Sourceforge archive] (unreliable)
- [Gmane.org archive] (better)
- Mailing list for developers: [emc-developers]
- commit mailing list: [emc-commit]
- Bug and Feature Trackers
- IRC: #LinuxCNC and #LinuxCNC-devel on irc.libera.chat
- Searchable IRC archives: [Austria] [Russia]
- Occasional meetings are held in #linuxcnc-meet. See MeetingsOnIRC for more information.
- Forums
*[LinuxCNC Forum on linuxcnc.org]
*[CNCZone LinuxCNC Forum]
*[Russian LinuxCNC Forum and wiki]
- Mailing list for users: [emc-users]
-
Configuring LinuxCNC - how to make it fit your needs
- Sample Configurations
- TB6560 - cheap stepper boards from China
- Rot4thaxiskins - configuration of a 3 axis machine with an additional rotatory axis
- 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
- Advanced Configuration:
- Touch Screens
- Debian Wheezy - How to install and calibrate a Touch Screen with Debian Wheezy.
-
Kinematics
- Parameters for kinematics - How to pass parameters to kinematics
- Homing and Limit Switch - Comparison of different Home and Limit Switch Configurations
- GUI Tutorial
- [Glade3, Python Tutorial] Good to do this tutorial before creating a Custom Gui
- [Creating a Custom Gui Tutorial] Using Glade3, GladeVCP, Python
- 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
- LxCVisionHandbox A DIY Pendant with Handwheel and Touchscreen
- Adding external controls
- [[Hidcomp]] Connect complex USB controls to HAL
- Hooking up a MPG Pendant
- [Adding inputs with USB Arcade Joystick interface]
- [Hooking up a jogwheel]
- Using a joypad to jog and control spindle speeds
- Super simple method for controlling with a USB joypad
- A new approach for using joypads with LinuxCNC
- 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
- One Button Run/Resume to either start a program or resume a paused program
- Parallel Port Tester To test I/O on the parallel port
- About Charge Pumps Overview of Pump and Buckets
- Using a XHC-HB04 wireless MPG Pendant
- vismach - fancy 3d machine simulator
-
Using X11 joystick driver - Make joypad to send hotkeys to axis
- Running LinuxCNC over network
- Running Multiple User Interfaces
- emcrsh Telnet text interface to LinuxCNC
- halrmt Telnet text interface to HAL
- Classic Ladder: adding a software PLC
- ClassicLadder -on-line docs for version 7.100 (LinuxCNC 2.1 - 2.2.8)
- ClassicLadder ver 7.124 - new version includes userspace MODBUS (LinuxCNC 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
- SpindleOrient Spindle Orientation Chart
- Closed Loop Spindle Speed Control
- VFD_Modbus Using MODBUS for a VFD
- Lubrication:
- CentralizedLubricator Willey Vogel/SKF Centralized Lubricator
- 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
- Interface Electronics:
- Shift Register Port Expander - Using shift registers to add additional I/O pins
- GUI:
- BackToolLathe - Changing Axis to display for a lathe with back tools.
- Tool changing:
- Tool Changes - Installing and Using the Manual Tool Changer
- RackToolChanger - Configuring LinuxCNC to use Rack Tool Changer
- ManualToolChangeMacro - Jogging while paused
- 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 LinuxCNC:
- m5i20_laser - Another example of using halvcp and M5i20 board
- [rapid prototyper CNCZone]
- [LinuxCNCRepStrap 3d printer]
- Camera based edge finder integration
- MESA Bitfile Configuration *Editing MESA Bitfiles *Editing MESA Bitfiles Spartan2 *Recover Corrupt/Blank EEPROM 5i24,6i24,7i24, 6i25
- Remapped G-codes
- Mill Codes
- Lathe Codes
- Common
- Touch Screens
- 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
- Halitosis A total configuration system creates stepper/servo configs from DENAVIT-HARTENBERG definitions and pin outputs and create full vismach simulation and machine configs, editor to configure HAL
- User Configurations:
- MillSetup Notes on Limits, Home, Work Offsets, Tool Length Offsets, and Touch Off in LinuxCNC
- KX3 A simple howto for a Sieg KX3 mini-mill
- GantryPlasmaMachine An example of a trivkins gantry machine
- JY5300 MHC2 An setup for mini-mill/3D with JY5300-2 controller with MHC2 handwheel pendant
- Internationalization - run LinuxCNC in your language
-
Suppliers - Parts and Raw Materials suppliers
- Sample Configurations
-
Using LinuxCNC - how to properly use it
- One-page [G-code quick reference] [Version française (html)]
- CoordinateSystems - Understanding Coordinate Systems and Offsets
-
G code Tutorials
- [G code Tutorial] A step by step tutorial from the beginning.
- Understanding G-Code - A tutorial on writing your own G-Code
- [Simple LinuxCNC 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
-
LinesToArcs Convert G1 line segments to G2/G3 arcs.
-
LinesToArcs Convert G1 line segments to G2/G3 arcs.
- Advanced examples of using LinuxCNC:
- 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 LinuxCNC
- G150 - Rectangular Pocketing Hass like subroutines for LinuxCNC
- HAL Components - Custom realtime components, i.e. and2, or2, not, mux2 etc.
- ElectricalDischargeMachining
- Plasma - Examples of things relating to plasma tables
- TrajectoryControl
- Lathe Advanced Features
- Rigid Tapping
- Rastering with a Laser
- Advanced extensions of LinuxCNC:
- ToolTable
-
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
-
Diagnosing Hardware - Diagnosing Hardware Problems
-
LinuxCNC Development - development related resources
- Lncnc 3 Idea Whiteboard
- GladeVCP Custom Widgets help with building GTK/Glade widgets for linnuxcnc
- [source from Git] getting the source code for development, see Git on how to use it with the LinuxCNC repository
- ContributedComponents - Components add new capabilities to LinuxCNC
- MakefileDeMystified - Info about how to add new source code to compile with LinuxCNC
- SPI_Sub-Driver_For_Hostmot2
- using HAL in python Sample of using HAL in python and creating a custom widget in pygtk
- Gscreen developing a python/GTK/GLADE based screen
- Gremlin Notes on using and modifying this backplot application
- gmoccapy A GUI to be used with touchscreen, based on gscreen
-
buildyourowndebpackages Build your own .deb packages
- Misc stuff
- List_Of_CAM_References
- Coders_For_LinuxCNC-Compatible_CAM
- Editors and tips for using:
- SPI sub-driver for hostmot2
- LinuxCNCRunningInsideVirtualbox LinuxCNC runs inside virtualbox 3.2.6
- JTAG boundary scan example for a mesanet 7i43
- The isolcpus boot parameter and GRUB2
- Best Wiring Practices This page describes some best wiring practices when wiring up your CNC machine.
- Example of New Page This is an example of how to create a new page
- Simulating a hm2_eth driver - Component for mocking/stub a hm2_eth driver, e.g. mesacard 7i76e
1.LinuxCNC 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. 2.LinuxCNC 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. 3.The above also apply to virtual machines (e.g., VMware or Virtual Box) and emulators. It may be possible to trick LinuxCNC to run on a virtual machine but do so at your own risk! 4.The above notwithstanding, one can access a running LinuxCNC machine from a Windows machine, e.g., by running a Windows-based VNC client or X11 server.
(but linuxcnc in "simulator" mode works fine in virtualization products, whether the underlying hardware is Linux or another OS)
If you want to add information to this page or add a new page, follow some BasicSteps.