Alternative motion controllers

693 views
Skip to first unread message

Mark Harris

unread,
Aug 19, 2016, 4:12:18 PM8/19/16
to ope...@googlegroups.com
I'm looking to need around 850,000 steps/second for a machine. Easy enough with something like an ethernet smoothstepper or a CSMIO/IP-S... but those don't have public api's for their ethernet interface, and dont run gcode for you - they are designed to run as a mach3 or 4 plugin.

Does anyone know of any motion controllers that would take GCode and could hammer out steps that fast? Smoothie V1 can do about 100k, V2 (no fpga) about 500k.

note: this is not stepper drive, its for servos with high count encoders.

Henrik

unread,
Aug 19, 2016, 6:49:13 PM8/19/16
to OpenPnP
Nope, sorry, can't help,
Have expressed my wish for support for "high end" controllers like CSMIO, KFlop, Smoothstepper, PoKeys57CNC and so on but really, none of the connects to a simple serial port and none of them understands G-code natively (G-code parsing and trajectory planning has to be carried out on the PC) - they're all so vastly different from what OpenPnP is designed to use and I have not seen any controller capable of the speeds you mention that understands G-code directly and plans/generates motion profiles on board at the speeds you mention.

Sometime it may change.

/Henrik.

Jason von Nieda

unread,
Aug 19, 2016, 6:50:40 PM8/19/16
to OpenPnP
Just a quick note on this: OpenPnP's driver model is very flexible - as long as these controllers you mentioned have some type of API or public interface, it should be possible to make OpenPnP work with them. But someone does have to write that code.

Jason


--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/af6248c3-3d8c-440c-9242-1509223fa6da%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Henrik Olsson

unread,
Aug 19, 2016, 7:06:58 PM8/19/16
to ope...@googlegroups.com

Jason,

Don’t know the specific details for each of the motion controllers mentioned except that none of them understands G-code or generates trajectories on board, they all (to my knowledge) relies on software support from the PC to generate the trajectories which is then sent to the controllers as velocity/tick.

 

At least the KFlop has an open and documented API and a lot of software for it available. I’m sure it (and the other mentioned) CAN be made to work, I’m just saying that they’re ALL vastly different from what OpenPnP has been driving and they would all need substantial changes/additions to the underlying code – not just configuration changes in the .xml

 

/Henrik.

 

 


Från: ope...@googlegroups.com [mailto:ope...@googlegroups.com] För Jason von Nieda
Skickat: den 20 augusti 2016 00:50
Till: OpenPnP
Ämne: Re: [OpenPnP] Re: Alternative motion controllers

Jason von Nieda

unread,
Aug 19, 2016, 7:11:39 PM8/19/16
to ope...@googlegroups.com
Hi Henrik,

I understand. The thing I want to make sure is clear is that OpenPnP is not in any way tied to Gcode. The driver model allows for any type of underlying control system just by implementing 10 fairly simple methods: http://openpnp.github.io/openpnp/master/org/openpnp/machine/reference/ReferenceDriver.html

So, for instance, if you there was a controller that spoke some crazy binary protocol over TCP/IP someone could write a driver for that and it would work in OpenPnP without having to make any changes to the rest of the code.

I know this doesn't help you specifically, but I point it out in case there is someone who is interested in these types of controllers and who wants to make a driver for them. It's pretty straightforward and does not require any changes to the codebase aside from the additional class.

Jason


--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.

Mark Harris

unread,
Aug 19, 2016, 7:14:37 PM8/19/16
to ope...@googlegroups.com
The problem is that CSMIO, and Smoothstepper at least have no public API. I emailed this this afternoon to see if they can help me out.

PoKeys57 runs an LPC1768 like the Smoothie, so it certainly wont be generating steps fast enough.

The KFlop looks like its just a vcom port -- but it does have an open API. It does not however specify how fast it can step something, and looks like their documentation was last updated about 6 years ago!

On 19 August 2016 at 16:50, Jason von Nieda <ja...@vonnieda.org> wrote:
Just a quick note on this: OpenPnP's driver model is very flexible - as long as these controllers you mentioned have some type of API or public interface, it should be possible to make OpenPnP work with them. But someone does have to write that code.

Jason

On Fri, Aug 19, 2016 at 3:49 PM Henrik <hen...@henriksplace.se> wrote:
Nope, sorry, can't help,
Have expressed my wish for support for "high end" controllers like CSMIO, KFlop, Smoothstepper, PoKeys57CNC and so on but really, none of the connects to a simple serial port and none of them understands G-code natively (G-code parsing and trajectory planning has to be carried out on the PC) - they're all so vastly different from what OpenPnP is designed to use and I have not seen any controller capable of the speeds you mention that understands G-code directly and plans/generates motion profiles on board at the speeds you mention.

Sometime it may change.

/Henrik.

Den fredag 19 augusti 2016 kl. 22:12:18 UTC+2 skrev Mark Harris:
I'm looking to need around 850,000 steps/second for a machine. Easy enough with something like an ethernet smoothstepper or a CSMIO/IP-S... but those don't have public api's for their ethernet interface, and dont run gcode for you - they are designed to run as a mach3 or 4 plugin.

Does anyone know of any motion controllers that would take GCode and could hammer out steps that fast? Smoothie V1 can do about 100k, V2 (no fpga) about 500k.

note: this is not stepper drive, its for servos with high count encoders.

--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/af6248c3-3d8c-440c-9242-1509223fa6da%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.

Jacob Christ

unread,
Aug 19, 2016, 7:52:11 PM8/19/16
to ope...@googlegroups.com

KFlop boards are c programmable so you can implement a parser on the KFlop. Based on what Jason has said about any board being able to work I don't see any reason a KFlop would not work. Later versions of the code like to have a dll in Windows which might make them difficult to use on non windows computers unless you had the old tools.

Jacob


el...@pico-systems.com

unread,
Aug 19, 2016, 9:06:07 PM8/19/16
to OpenPnP
There are two motion control boards used with LinuxCNC, Mesa and Pico Systems.  We have a universal stepper controller that is usually rated for 300K step/second, but can actually go faster.  The faster you go, the larger the jumps in speed, but the clock is 10 MHz, so the granularity is 100 ns.

But, why use steps if you are running servos?  We (Pico Systems) also has the Universal PWM Controller, that generates a PWM signal to control the motors, and closes the loop in the PC, so all servo tuning is done in the PC.  This is also supported by LinuxCNC.  The drivers are part of the open-source LinuxCNC source code.

Jon

Paul Kelly

unread,
Aug 20, 2016, 12:57:48 AM8/20/16
to OpenPnP


JE: But, why use steps if you are running servos?  We (Pico Systems) also has the Universal PWM Controller, that generates a PWM signal to control the motors, and closes the loop in the PC, so all servo tuning is done in the PC.  This is also supported by LinuxCNC.  The drivers are part of the open-source LinuxCNC source code.
 
I built drives for a multi axis robot arm this way. Mesa IO and PWM amps, all running from Linux CNC. It works extremely well, the electronics is simple and cheap, and its easier to tune than a stand alone drive.
 
PK

--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.

DAniel Dumitru

unread,
Aug 20, 2016, 1:02:49 AM8/20/16
to ope...@googlegroups.com
Since I already had the KFlop controller I intended initially to use it to retrofit my Zeva.
I have wrote to manufacturer about Java integration API. There is no reference on this.  Has however an extensive API in C and NET.
See here manufacturer's answer :


"

Tom Kerekes

Feb 25

to me
Hi Daniel,

Sorry we don't have any Java examples.  I don't know much about Java.  We do have a .NET interface if that helps.  There are some Linux branches that were developed by our Users.  They might have some examples and a JNI interface (whatever that is) if that helps.

There are two Github branches.  One from Par Hannson and one Meantaipan
https://github.com/parhansson/KMotionX
https://github.com/meantaipan/KMotionX

Please let us know if you find a method that works.

Regards"


I don't know if this limits aplicability only to Windows domain.
For requested purpose seems to be appropriate since has special inputs to encoders and a lot of stuff.


Kind regards,
Daniel




On 20/08/2016 1:50 AM, Jason von Nieda wrote:
Just a quick note on this: OpenPnP's driver model is very flexible - as long as these controllers you mentioned have some type of API or public interface, it should be possible to make OpenPnP work with them. But someone does have to write that code.

Jason



Virus-free. www.avast.com

Mark Harris

unread,
Aug 20, 2016, 2:00:00 AM8/20/16
to ope...@googlegroups.com
I'm looking to use something that does stepping as I have two machines (one at home, one at work). One machine is using Leadshine ES-D508 easy servos which have 1000 count quad encoders (4000 count/rev), this will need around 350-400k pulses per second to reach max speed. The drives are capable of taking 500KHz. The other is using 2500 count quad encoders (10,000 count/rev resolution) servos - I haven't purchased the drives or motors for this one yet, I'm likely looking at Leadshine's AC or "low voltage" DC brushless servo + drive though, primarily due to cost.

The ES-D508 only has step/dir/enable inputs just like any other stepper driver, and does the closed loop itself.

The servo drives will either take a "position control" input which is just step/dir/enable, or you can use torque/velocity control with a +/- 10v input. So i'd prefer to find a motion controller I can simply use with both machines - any motion control that can handle one will also have encoder inputs to use the other if so desired from what i've seen so far.

Closed loop with a Java application would be near impossible? I can't even imagine a PC application written in C handling closed loop control of 600-800k pulses/second being any good. PCs are awful at realtime and i'd prefer to avoid hunting as much as possible. This is definitely something a motion controller needs to handle. Smoothstepper or a CSMIO/IP-S will happily take over the encoder output and run the servo as such, but again, their network protocols appear to be closed source. I know ESS/USBSS are, as i've asked Warp9 for details in the past and was refused.

--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.

Henner Zeller

unread,
Aug 20, 2016, 10:20:43 AM8/20/16
to ope...@googlegroups.com, ma...@rris.com.au
On 19 August 2016 at 13:12, Mark Harris <ma...@rris.com.au> wrote:
I'm looking to need around 850,000 steps/second for a machine. Easy enough with something like an ethernet smoothstepper or a CSMIO/IP-S... but those don't have public api's for their ethernet interface, and dont run gcode for you - they are designed to run as a mach3 or 4 plugin.

Does anyone know of any motion controllers that would take GCode and could hammer out steps that fast? Smoothie V1 can do about 100k, V2 (no fpga) about 500k.

Yes. My BeagleG, a motion controller that uses the PRU of the Beaglebone Black can generate about 1MHz steps in a controlled move for up to 8 motors last time I measured.

It does trapezoid motion profiles (so no constant jerk yet). There are still things that need to be done (the motion planner needs to be more smart for instance or I would like PID controlled heating for my 3D printer), but I am using it already for my CNC machine.

I made a Beaglebone cape, but in your case you probably just need to hand out the signals directly through a line-driver to the servos.
It would be interesting to see how it works with your servo controllers.

-h


note: this is not stepper drive, its for servos with high count encoders.

--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+unsubscribe@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages