Set step pulse width for an external driver

From the original Synthetos forum (2011–2025)

Started by bonetti on in TinyG Support. 8 replies, last activity May 1, 2015.

#

Hi All,

I'm using a Firmware Build 380.08, which has about 800 nanoseconds wide (under 1 microsecond) ()

And what my external driver needs is a minimum of a 10 microseconds wide

There's some way to fix this issue?

Thank you very much in advance

Staff #

You should upgrade your tinyG to FW build 438.02 (or later, it is 438.02 today).
You will get:
1. Numerous enhancements, bug fixes, etc.
2. Step widths in the 4 to 6 us range

What external driver are you interfacing?
Alden may have some suggestions.

#

Thanks cmcgrath, we are using an upgraded tinyG version, and now get a 4 us step width.

There is a way to make this range bigger? like a 10 us

#

Hi, I do use LeadShine EM-806.
The driver mentions it needs at least 4,5µs pulses, however due to cable impedances and so on, I prefer a safest value like 8µs to 10µs.

Actual status:
I updated the firmware of the board to v. 438.02. Now I get approx. 4µs, but I need a little more, something like 10 µs will be the best and safest.

Looking at the source, I notice two things:

In hardware.h

Line 98: #define MILLISECONDS_PER_TICK 1
When I change the value to "2", I get 5µs pulses.
That's fine, but I don't know exactly what this does.

In stepper.c</a
Line 504-507: The comments mention different pulse times, but don't know why. Is there a way to setup the pulse time there?

Staff #

The way I read the data sheet for that driver they require pulses that are 4-5v and a minimum of 2.5 uSec. I would have copied the section of the data sheet there but they copy protected the PDF. http://www.leadshine.com/UploadFile/Down/EM806d_V1.0.pdf

So the pulse width should be acceptable but the voltage may not be - as it's about 3.0 - 3.2v output. A simple level shifter can be made from a 74LS125 or 74LS126 driven at 5v, with 3.3v inout signals. This outputs 5v drive signals.

The step pulse widths are not settable as the primary use of the board is to drive the TI on-board drivers which only require 1 uSec pulse widths.

If you find that you cannot make this work for your application you can return the board for a refund.

#

Hi all,
Will the TinyG v.8 produce step/direction signals for all axes to drive say Gecko G203V stepper drives?
If so, how to connect to the TinyG?

Thanks in advance.

Staff #

Not Familiar with Gecko G203Vs.
V8 Schematics are here for reference

https://github.com/synthetos/TinyG/tree/master/hardware/v8schematics

For each of the 4 motors, there is Step, Enable Dir and GND. This is 3.3v Logic. There are not outputs for the other two motors (in 6 axis machines.)
If you need 5 or 6 independent signals, have a look at tinyG2, perhaps on a Due since you want external drivers anyway

#

HI -
I'm trying to use the tinyg to control a motor using an external stepper driver:
http://www.automationtechnologiesinc.com/wp-content/uploads/downloads/2014/02/KL11080.pdf

however, my stepper driver has the following signal interface: Step +, step -, dir+, dir -, en+, en-

rather than "Step, Enable Dir and GND" . Is there a way I can still use TinyG to control this stepper driver?

from the data sheet"PUL+ and PUL- is the positive and negative side of control pulse
signal; Dir + and Dir - is the positive and negative side of
direction signal; EN + and EN- is the positive and negative side of
enable signal"

Staff #

I have no personal experience with this Driver and have not seen traffic here, but someone else may join in.

My Read: Bottom of Page 2, top of page 3
The Step, Dir and Enable interfaces are opto-isolators, + anode side, - cathode side.
Interface voltage is 5V minimum (no resistor)
tinyG is 3.3V logic, so you will need a 3.3V to 5V translator.
I use 74AHCT125 devices for this job, but there are others.
The buffered tinyG signals would connect to +(anode side) and Gnd to -(cathode) side.

You need to research the required sense of the Enable Lead. tinyG Enable is active low. If this driver wants Active high, you will need to invert the tinyG signal rather than buffer it.

Microstepping - You will need to manualy set the microsteps on the Driver unit to match what you set up in tinyG $_mi parameters.
I believe you can set the tinyG parameter to any value, not just 1,2,4,8 and it will compute pulses per that setting. I would recommend initial test/verification with one of these 'standard' settings then experiment from there if you think smaller steps are useful in your application. Also suggest review this

https://github.com/synthetos/g2/wiki/Configuration-for-Firmware-Version-0.98#1mi---microsteps

It is in the G2 wiki, but the comments would apply here as well.

A final thought - your setup seems headed to requiring significant buffering (and wiring) external to tinyG. You might want to consider tinyG2 on a Ardino Due - with a (widely available) development shield on the DUE where you could wire up the required buffers. This may or may not make for a simpler physical implementation.
tinyG2 is not as mature as tinyG at the moment, but is being actively used by many folks and intense refinement effort. See

https://github.com/synthetos/g2/wiki.

This topic is from the original forum (May 2015). Your reply starts a new discussion linked to it.

Reply

Different problem? Ask a new question

Back to TinyG Support or latest activity.