Yes the motors are torqey they are 3Nm(425oz-in) coupled directly to the 1605 Ballscrews with backlash less disk couplers. This gives 2.2kN(500lbf) at low speed and 440kN(100lbf) at high speed(90IPM). I am not losing steps during cutting and the coupling are tight I already checked the easy things for me, the hardware is unfortunately fine. I use the same bs170 fets to amplify the 3.3v signal to 5V and it seems to work perfectly. Drivers are supposedly rated to 200kHz. I’m running at most at 26khz frequency at Vmax. The motors get warm but the drivers have an enable pin on them I just haven’t hooked them up. I want to cut the shield\breakout board with the mill. CP reads the correct position but the zero(G54) is not where I put it and changes as the program is run ie the head moves smoothly but it follows the spirt of the program rather than the LAW. I think that you have it nailed when you recommend that I stay at 83.06 because I was running if I remember correctly 86.03. Now to figure out how to get the correct source for 83.09 fw. I have done no tweaks to the g2 code…. that I know of. This Atmel studio stuff is way over my head as is. Just getting and understanding the make file was a challenge for me. I’m a Mechanical engineer so the frame and motion is easy for me even the Arduino and basic coding like Matlab and VBA is doable. But outside the settings file I’m no longer in Kansas anymore. Again thank You for your help.
How to configure Himing switches in tinyg2? page 2
From the original Synthetos forum (2011–2025)
If you are running Atmel Studio(AS), you are likely a windows user.
I agree, that interface is uber complex.
I compile directly on Linux, from a cloned GitHub repo.
I have managed to get some useful results from AS, but don't ask me to repeat what I did.
Did you actually compile your 86.03? From what source tree?
Are you sure you are level-shifting, not inverting-and-level-shifting with your FETs
If you are using the standard Gshield profile, you could get $fb=78.03 from
BTW, I am really not sure 86.03 is an issue.
This
Drivers are supposedly rated to 200kHz. I’m running at most at 26khz frequency at Vmax.
confuses me. How are you measuring 26kHz and where?
There are two dynamics going on - step pulse rate and step pulse width.
The 200kHz rate is consistent with tinyG2. What is the minimum input pulse width spec on your drivers?
If, as you state, the mechanical position of the spindle is NOT where you believe G54(0,0) is, BUT the CP DRO reads (0,0), then mechanical steps are being skipped; tinyG believes commands have been executed by the drivers but they have not been.
What leads you to say you are not losing steps during cutting?
I am sort of assuming your Gcode has zillions of small moves.
Well the drivers are DQ542MA by wantai motor. The inputs are optocouplers so I just attached the signal pin to the gate, 5V to the drain, and ground to the source. The optocouplers have a 200ohm resistor in series so that they don't burn up. So when the pin is low the fet is off(open) and when the pin is 3.3 the fet is on(closed). That should be just level shifting to me.
I wasn't measuring the step frequency but you right the output frequency is probably hard coded in. The gcode file doesn't have that many small moves to me. Compared to some 3dprinting gcode files I have run it is practically microscopic. Not saying that it doesn't have many small moves. Just maybe I'm on the wrong scale. I believe that it isn't missing steps because it never fails a G0 command that I type in if I tell it to move 1 inch or 20 before I run the program it jumps and does it the same way every time. I set up a dial indicator to verify and it didn't waver by .001" which I though was pretty good. Now that is at machine rapids where the motors have the least torque so any thing slower should make it less likely to lose position right?
Paragraph 1 - understand and agree
Paragraph 2 - Understand and agree with you observations on G0.
Have you run your job "in air" above work?
Same 0,0 offset?
In air removes the cutting load, which in you case should be nil.
What microstep setting are you using?
Same all axis?
It cuts the same profile raised above the part as it does below and yes I'm using atmel studio 6 on windows 7 microsteps are 8 and all axes are the same.
I have been staring off and on at the spec sheet for dq542ma. It appears to me that setting SW5-SW8 0111, which I would assume means no microstepping, is 400 step per rev.
Are you motors 400 step per rev($sa=0.9)?
Do you consider setting 1101 to be micro steps=8?
I don't see any spec on min/max input pulsewidth of the step
As an experiment, have you tried cutting drive current by 1/2 to see if it makes a difference?
nope 200 full steps per rev. The driver doesn't allow full stepping. only 1/2 to 1/250. So I am running 1600 steps per rev for a dip setting of 0011. I will try lowering the current before I finish compiling 83.08 master build. But I have a hunch that my problems will go away with the old firmware. I looked through the git repository with the windows Github.exe and it looked like I had some how updated to the the VERY edge of tinyg2. I don't remember this being the case when I started this a couple a months ago. BTW do you know of a version\change log so that I can tell ahead of time if for instance 83.08 will have the proper features ahead of time?
Well the drivers are DQ542MA by wantai motor. The inputs are optocouplers so I just attached the signal pin to the gate, 5V to the drain, and ground to the source. The optocouplers have a 200ohm resistor in series so that they don’t burn up. So when the pin is low the fet is off(open) and when the pin is 3.3 the fet is on(closed). That should be just level shifting to me.
I have not played with fets in a while. With your set up, if source is gnd, gate is the Due output pin and drain is 5V, where does the PUL+ and PUL- get connected to?
Pul is pulse or Step pul+ gets directly connected to 5V and the minus is set up in a low side n channel switch using the bs170. 3 step pins and 3 direction pins.
BTW do you know of a version\change log so that I can tell ahead of time if for instance 83.08 will have the proper features ahead of time?
I don't believe there is one. You can infer from some of the check-in comments on GitHub, but in general I would say that a Master build is intended to implement tinyG2 as described in the Wiki.
You can also get some info by monitoring the chatter at
With G2, stick with the Master builds unless you are looking for specific leading edge features..
EDGE builds tend to be really edgy sometimes.
Pul is pulse or Step pul+ gets directly connected to 5V and the minus is set up in a low side n channel switch using the bs170. 3 step pins and 3 direction pins.Pul is pulse or Step pul+ gets directly connected to 5V and the minus is set up in a low side n channel switch using the bs170. 3 step pins and 3 direction pins.
So your verbal schematic for PUL is:
PUL+ to +5V
PUL- to Drain of BS170 MOSFET
DUE Step Port to Gate of BS170 MOSFET
Gnd to Source of BS170 MOSFET
That is a simple inverting switch, which is what you need.
It is what I thought you were describing but one version did not read that way.
Microstepping = OK, understand your 0011 setting.
I wonder how useful(accuracy and torque) their microstepping >64 actually is.
About the micro stepping I agree. There is a great link about stepper motors and how the driver makes all the difference. The article was written by the guy who owns Gecko drives. I found the link on cnccookbook.com Basically as I understand it micro stepping greater than 10 is only useful under limited applications like moving mirrors to direct lasers where precision is more important than power.
I'll lookup the cncccookbook item, thanks. Microstepping is implemented by the driver, incrementally offsetting the rise and fall edges of the A and B drive windings.
A read of a device data sheet, such as for TI 8825, shows the small offset specifications.
I Finally got a chance to compile the master branch and my problems went away. have you had any luck interfacing with a vfd. my vfd seems to want a variable frequency input instead of a variable duty cycle.
This topic is from the original forum (May 2016). Your reply starts a new discussion linked to it.
Back to TinyG Support or latest activity.