Customizable CNC Controller

Hi, Islam from Egypt i have finally settled on my project idea and wrote a proposal for it so i was looking to have feedback on the idea and it’s feasibility.

So here it is:

CNC machine designing has a very promising leaps in terms of open source projects yet most of it is in the mechanical areas and the control system is either a very specialized controller or an entry level software and hardware (ex: sprinter and ramps for 3d printers).

If a user wants a more professional machine he uses a dedicated computer with some professional software as MACH3 or so

My vision for this controller is that it can be customized to any machine type, up to 5 degrees of freedom, no limit on working space and supports multiple Numerical control programming languages.

The Controller setup is divided into multiple stages:

  1. A configuration file: the user enters the number and axis of DOFs, the working space dimensions in metric or imperial units, the language to use: as G-code, rml, etc.

  2. The BBB calculates the machine Kinematics and output result to user to verify and loads suitable language interpreter.

  3. A setup file where the user specify the expected loads and stepper motor specs.

  4. The BBB calculates the optimal Machine parameters (such as feed and Depth of cut for cutting machines) for the given inputs, the user can override the calculated parameters at any time.

  5. The BBB is ready to receive the input files and drive stepper motor drivers.

I am expecting I will be mainly working with c and python where c will be used in time critical portions as controlling stepper motors drivers and reading input sensors, etc. and python will be used in parsing the input file and user interface, etc. (though I am considering relying on c mainly and neglecting python haven’t decided on this yet)

Potential Upgrades: if all went well, I will be considering adding the ability to drive servo motors instead of stepper motors, improving tool path motion planning algorithm.

Also adding Vector file interpretation to the code so that the user can send the dxf, ai , etc file directly to the BBB and it extracts the code from within it ( also stl files for 3d objects ) but I suspect that this will not be feasible within the current time line.

Past Experience:

  • As I mentioned I am an active member in FabLab Egypt where we have multiple available CNC. Machines and we are building a new one right now so a rich environment for testing is available.
  • I have built and designed my own CNC Milling machine before though it lies in pieces now: D
  • I have multiple CNC. Experts around in FabLab Egypt and access to MIT FabLab network under Media Lab Head Neil Gershenfeld, which give me access a huge amount of experience in FOSS and CNC machine designing.
  • I have worked in numerous projects in multiple fields from embedded control systems projects to robotics, digital design using Verilog and multiple other fields so I think I have the ability to learn and achieve.

I consider it will have a huge impact on CNC. Controller for entry level designers and they will use the system heavily due to its customizability and different usage areas which will satisfy the Machine Designer and no force him to work with a certain tool chain.