Skip to content

mhouse1/mechsoftronic

Repository files navigation

OpenSource CNC Controller

The goal of this project is to create an open source FPGA based CNC controller.

For a more detailed overview see the document here: https://github.com/mhouse1/mechsoftronic/blob/CNC_Machine_Complete/documentation/Overview_Project_Mechsoftronic.pdf

Otherwise keep reading for a brief overview.

By using an FPGA it will allow:

  • creation of a dedicated device that would not require a separate PC to run.
  • any peripheral to be easily added in the future
  • smooth control by truly running machine axes in parallel
  • no more jitter caused by using parallel ports or microprocessors/microcontrollers
  • motion control is done by hardware instead of software
  • great hardware and software integration
  • by designing and implementing everything: UI, firmware, FPGA system.

Components of this project:

Video of the initial prototyping hardware made from scrapped DVD drives and other bits and pieces can be found here, mini cnc with laser mount


The small scale prototype's mechanics has since been replaced with a much larger mechanical platform based on a modified version of open hardware shapeoko v2. The current mechanical system is only used as base for research and development, the intent of this CNC controller is to be adaptable to any hardware platform. For example, automating a manual lathe that is already capable of machining metal parts and solidly built; by attaching stepper motors to its axes and controlling motion with this CNC controller. [CNC machine prototype hardware 2

required python packages

  • to use the GUI the supporting packages required are contained in pygtk-all-in-one-2.22.6.win32-py2.7.msi file (~31.6MB)
  • other python packges required
    • pip install pyserial

      • note do not install serial via "pip install serial" it will cause an error about exec() then you have to uninstall pyserial and serial then reinstall pyserial
    • pip install matplotlib