Dedicated Motion Controllers translate a path description (typically
G-CODE) into signals (typically
Step and Direction) in real time to drivers that then cause
stepper or other motors
to move the axis of a machine. This can be done on a PC via
CNC Applications, but because standard operating
systems are NOT design for real time control, it can be best to use a seperate
embedded motion controller and simply relay
G-CODE or other commands from the main
system.
Common examples are the ubiquitous
Marlin^ / RAMPS
combination for 3D printers, and
grbl^ / shield or
TinyG^ / sheild for
CNC. An ultra low cost opiton is our
BOB Motion Control g-code to
multi-axis step/direction motor driver. These accept G-CODE but have
no other user interface. A program like Universal G-CODE Sender can provide
a minimal interface. They put out step and direction commands via the Pololu
compatible headers. This can be adapted to the PMinMO
standard by our Adapter Cable
In some cases, a PC based CNC application can work closely with the embedded
unit to provide a seamless user interface with GUI controls. For example,
https://www.poscope.com/product/pokeys57cnc/
is a MACH 3 recommended USB Motion
Controller with PMinMO compatible connectors
for direct connection to open source stepper drivers
like the THB6064AH or
Linistepper or servo drivers like
the BOB PID.
Stepping Motion
Profile Motion panning overview. Stepper
motor specific, but with good general information.
3D Line to Stepper Axis Pulses in a
PIC16F Naive motion control
A common language for specifying the desired location and speed of movement
is G-CODE
Also:
See also:
-
https://planet-cnc.com/hardware/#products-hardware
Planet CNC USB and USB/Ethernet Motion
Controllers are PMinMO compatible.
-
https://www.poscope.com/PoKeys57CNC
a USB Motion Controller with PMinMO compatible
connectors for direct connection to open source stepper drivers like the
THB6064AH or
Linistepper or servo drivers like
the BOB PID. Compatible with MACH
3^ / 4
-
http://www.fpga4fun.com/CNC.html A series of web page articles
explaining how to calculate steps for a simple motion plan and generate the
pulses via an FPGA.
-
https://code.google.com/p/gocupi/ Code for Arduino and
Raspberry Pi with nice acceleration curves and turn prediction. The Arduino
is only there to provide precise timing for the step and direction pulse
data produced by the Pi. Motion is smooth and fluid because the entrance
and exit speed of each movement segment is taken into account. E.g. A 90'
turn needs a full stop, but a 1' turn doesn't need to slow down at
all.
-
https://github.com/ErikZalm/Marlin/tree/Marlin_v1 This
RepRap firmware is a mashup between Sprinter, grbl and many original
parts.
-
http://www.hwml.com/LeibRamp.htm
LeibRamp was developed in 1994 by Aryeh Eiderman and is said to be the "World's
fastest ramping (motion profile building) algorithm." On this page,
Eiderman provides an overview of the math involved in calculating pulses
per timer tick, for slew, and ramp acceleration / deceleration.
http://www.hwml.com/ is an NXP LPC2136/01
based USB to 4 axis embedded motion controller in a DB25 backshell.
$75 from:
http://www.mcwidgets.com/
-
http://read.pudn.com/downloads45/sourcecode/embed/151169/Motor.c__.htm
Demo program for stepper motor control with linear ramps. Hardware: PIC18F252,
L6219. The discussion of the method and the math behind it may be found here:
http://fab.cba.mit.edu/classes/MIT/961.09/projects/i0/Stepper_Motor_Speed_Profile.pdf
-
http://code.google.com/p/cnc-milling-machine/
Open source, Java G code to intermediate format, PIC firmware 2axis coordiantion
with seperate Z axis movement. No acceleration.
-
http://www.planet-cnc.com/index.asp?page=diy
G code to propriatary format in PC software $100 then by USB to 4 axis motion
control hardware $15 for the PIC chip, $15 for the PCB and about $15 shipping.
The PIC firmware does NOT actually process G code.
-
http://forums.reprap.org/read.php?12,9459 Arduino G code
to stepper. See user.cpp file.
-
https://github.com/simen/grbl Grbl is a free, open source,
high performance CNC milling controller written in optimized C that will
run on a straight
Arduino
https://www.synthetos.com/webstore/index.php/assembled-electronics/grblshield-grbl-arduino-diy-cnc-shield.html
a shield is available
-
http://pleasantsoftware.com/developer/3d/pleasant-mill/
Another mill with firmware based on the reprap.
-
http://www.cnczone.com/forums/open_source_controller_boards/59461-full_cnc_controller.html
http://www.usinages.com/controleur-autonome-de-cnc-t2415-75.html
MicroBasic pic18f4620, SD-MMC card, KS0108 graphic LCD. Direct G code to
movement. Bugs in circles but can be avoided. Clunky source.
-
http://www.roboticsguy.com/projects/build-a-cheap-diy-cnc-machine
Very simple design that works for drilling.
-
http://reprap.soup.io/post/135633178/Smooth-Trajectory-in-CNC-and-3D-Printing
Some notes about smoothing motion.