Forum Replies Created
-
AuthorPosts
-
December 30, 2020 at 10:25 am in reply to: Occasional unrealistically high velocities causing position errors. #11928cmcgrath5035Moderator
Give this a read. I am thinking you are experiencing a variant of the arc specification error issue, assuming you are generating G2 and G3 moves in your custom generator.
Give this item a read https://synthetos.comtopics/arc-specification-errors-and-decimal-accuracy.With so much of your setup custom, hard to get really specific.
Working in mm, rather than inch frequently solves it.
Using only G1 moves virtually always works.In the early days, this was often referred to as the “huge I,J” issue, translating to very slight arcs. Do probelmatic commands show very large I,J ?
cmcgrath5035ModeratorIt has been a long time since I have done a FW download and never under windows, so I need to reboot a few brain cells.
Are you referring to the tinyG Updater built in to Chilipeppr, or to the updater here: https://github.com/synthetos/TinyG-Updater ?
When you say from Command Prompt, are you running CoolTerm (or similar emulator) or might you mean the Chilipeppr console.
I always had reproducible good luck using the direct avrdude method here in the wiki: https://github.com/synthetos/TinyG/wiki/TinyG-Updating-Firmware#updating-tinyg-with-avrdude.
If you are using Chilipeppr, from what browser do you run?
I have never seen anyone try the Edge browser, but that does not mean it does not work for this, just new ground being plowed.cmcgrath5035ModeratorThe difficulty of troubleshooting here with just a multimeter is that all voltages sent to steppers are rather narrow PWM pulses. difficult to interpret with a multimeter.
Can you send be a parameter dump?
$$ command in a console, copy and past the results to a text file, upload the text file to a cloud drive and post a URL here.Which motor is the one not moving, M1, M2, M3 or M4?cmcgrath5035ModeratorHmmm, that format will make it difficult for me to spot obvious issues.
The data is there, but organized differently than $$ reportHere is a hint for you to contemplate:
tinyG computes the degrees revolution per step pulse by dividing the $sa parameter by the $mi parameter. So, for a simple 200 step per revolution bipolar stepper driven by the tinyG onboard driver, with $mi=8, tinyG sends step pulses as if the effective step angle is 1.8/8=0.125 degrees.
so your step angle is not all that out of whack.I have no simple way to ask all the pertinent questions on your level translators, polarity of connections (remember Enable is active low on tinyG) and all the other details.
- This reply was modified 3 years, 11 months ago by cmcgrath5035.
cmcgrath5035ModeratorOK, for my use here is the klink to the motor
https://us.nanotec.com/products/2130-pd2-cb42m024040-e-01Lots of I/O and data to look at, need some time.
Sooner or later I’ll ask for your parameter set, the results of a $$ command to tinyG. Please paste that to a Cloud drive (Gdrive or whatever) and provide me a URL. If you have some sort of connection diagram, copy that to the cloud as well
What are you using to communicate with tinyG? A terminal interface (e.g. CoolTerm), a Gui (e.g. Chilipeppr, cnc.js) or ?cmcgrath5035ModeratorWelcome to the Forum.
First I have seen this question.
How do you interface tinyG to this motor?
A specific reference to data on the motor might help.The $SA parameter is simply used in a calculation (by tinyG) to determine how far each step pulse (or microstep) will move
I am sort of assuming that you are using a logical interface to an external BDLC controller, but don’t want to speculate too much.
- This reply was modified 3 years, 11 months ago by cmcgrath5035. Reason: turn on Notify
cmcgrath5035ModeratorGoogle can be your friend for lots of discussion “tinyG acc specification error”
The root cause is the accumulation of math errors running in the 8bit machine accuracy of the underlying computing hardware. Because tinyG does all it’s work in MM’s, and has to do numerous inch to mm conversions when working with inch Gcode, many folks find that simply exporting your G code in G@21 (mm) notation resolves the issue.
It is not an issue with the number of significant digits of precision in parameters
Another option is to tell your G code generator to no use G2 or G3 moves (arcs). This will create much larger Gcode files as curves are represented as multiple short segments in Gcode
Google around a bit, others have tried techniques that might work for you in your tool environment.
cmcgrath5035ModeratorFrom the serial console, sending $ct=0.01 should work.
You can read back (manually verify) by sending a $ct
See https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97#ct—chordal-toleranceThe typical default setting is $ct=0.01 mm.
Any reason why yours is set to 0.001 ? (mm, I assume)?cmcgrath5035ModeratorAnd, what sort of tools do you have?
Multimeter?
Oscilloscope?cmcgrath5035ModeratorIn this I will call your failed motor Y2 connected to Motor(driver)3.
The most frequent cause of problems are wiring. Next could be driver devices on tinyG,
For starters, press reset,
Do all four Motor leds flash Green for 2 seconds on reboot?
2 seconds is the default $mt motor timeout. All motors power up on reboot, holding current position, for $mt time interval.
A green LED(on) for M3 would say voltage was sent from driver device to motor, but driver has no idea if it made it there due to broken wire.Whats sort of machine? If you can, manually move the machine along the Y axis (probably will not work with a screw machine.
A copy of your parameters ($$dump) will help with the next round of suggestions, gather the info, save to a text file and post the file to a cloud drive (Gdrive, etc.) and provide me a URL
cmcgrath5035ModeratorThe Arduino DUE is the only commercially available platform I am aware of.
Study the G2 wiki at https://github.com/synthetos/g2/wiki and also https://github.com/synthetos/g2/issues where you will see active discussions on numerous platforms being used.G2core is aimed at extending into 3Dprinter space and as such has enhanced support for some 3D Gcode extensions. The 3D machines targeted are generally not in your power requirements range but many of the projects are, you may find useful comments and ideas.
cmcgrath5035ModeratorSorry, system did not tell me you had responded.
I have a general physical idea now of what you are building, I have help install a couple off the shelf such covers, not at this scale.
I assume you are targeting rather large steppers, sound like a rather large mass. Tinyg can source no more 2.8A per output, thus you will likely need external drivers.
Assuming Drum is the rotational element, I would call it Drum(A).
In tinyG Gcode there are three linear motions (X,Y,Z) and 3 rotational (A,B,C). Obviously mechanical converstion from linear to rotational motion is possible, but you will have more math to do when figuring parameters.
You don’t want to “waste” a linear action on a rotational task, maybe.tinyG may or may not have enough I/O for your complete job. Some folks have used RasPIs to supplement I/O. You may also want to look at G2Core, especially if external drivers are required. G2Core had more extensive I/O and a richer build environment for software.
I don’t have a good idea of what a tensioner might be. By design, tinyG has kinematic concepts built in. When you issue a line of Gcode that makes a move, e.g G1 XxYyZz. tinyG will make sure the point x,y,z will be reached by each of the three actions simultaneously, each component with it’s own Jerk parameter controlling the aggressiveness of speed change along the S curve.
cmcgrath5035ModeratorYou might need to enhance your description of what you want to build.
I am envisioning a cylinder rotating around the Y axis.
A guide ferrule is attached to something that oscillates back an forth along the Y axis.
The movement of the ferrule is controlled by stepper motors.How do you propose to drive the cylinder? Could be a rotary axis driven by stepper. Or could be a DC motor toggled on and off controlled by the PWM output that normally drive DC spindle. Two of many options.
What are you winding on to the cylinder, e.g wire?
How precise do you need the distribution of wire to be?Make sure you understand what tinyG does, does not support in Gcode
https://github.com/synthetos/TinyG/wiki/Gcode-SupportSynchronizing two tinyGs would not be trivial, not clear why 4 motor drivers plus PWM or just motor one/off are not adequate for your plan.
cmcgrath5035ModeratorI have not heard this one before, but then cnc.js is much more aggressive in displaying returned (from tinyG) status and error messaging.
A common issue with tinyG and Arcs is end point errors due to lost precision in the 8 bit math environment.
Is your Gcode in inch or mm? MM runs with better precision, due to fewer mm to inch conversions.
You might also try generating your Gcode without arcs (will use short linear segments)to see if that Gcode runs.Have you browsed the tinyG wiki at https://github.com/synthetos/tinyg/wiki ?
For possible methods to modify the buffer allocations, I’ll suggest to post at https://github.com/synthetos/tinyg/issues where the developers pop in on occasion and heavy modifiers share ideas as well.
cmcgrath5035ModeratorAs I suspected, there are now many Z axis configurations, many of which are not documented.
Good luck with calibration. In a few months you will appreciate how much you have already learned, be it by trial and error. -
AuthorPosts