Forum Replies Created
-
AuthorPosts
-
cmcgrath5035Moderator
Try mm mode, or a PP that will generate all G1 moves (no arcs)
cmcgrath5035ModeratorHoming: I sort of understand your objective but believe it is incompatible with how the homing command works. The most prevalent use for tinyG ia XYZ milling machines, with support for rotational axes as well but few well defined use cases.
Many users implement only X,Y homing, no Z switches. There is only one homed state, yes/no. So issuing a G28.2 homes specified axes, assumes axes not on the list are not home-able (no switches) and sets the homed state if the specified axes complete successfully.
It is not clear to me how to make it work for your use case.LabView and I/O – When you say ” I query the serial port for how much in the buffer and read that out. “, are you referring to the Labview receive serial buffer or the tinyG transmit serial buffer?
There is no “some back-and-forth in the background I’m not aware of.” beyond Xon/Xoff or RTS/CTS hardware level flow control on the tinyG side.cmcgrath5035ModeratorQuery state of switches? in tinyG 440.20, I think answer is no, but need to dig out the whole answer. Perhaps in the new I/O implemented in G2core, some of which may be backported to tinyG in futurehttps://github.com/synthetos/g2/wiki/Digital-IO
Can you describe how LabView interfaces to tinyG? Serial port (USB) direct connect, or via an intermediary (e.g. SPJS). Baud rate, flow control, etc?
cmcgrath5035Moderatorconfusing indeed
So in tinyG FW (and Hardware) space, there is a command, defa=1, that when executed copies the compiled set of defaults into EEPROM, making them current. Used on occasions when EEPROM gets corrupted. The compiled in defaults are almost never what real users want/need.
A few folks have gone to the trouble of compiling their own version of the tinyG FW with their stable machine setting compiled in, so that defa=1 reverts the machine to their native setup.
It is always good to keep a file around on you host computer of all the parameter settings that are working well for you. That would be a $$ parameter dump.cmcgrath5035ModeratorYou running tinyG or G2core?
No need with tinyG, the controller has onboard EEPROM, configuration changes are persistent.
But since you are asking, likely you are running G2core, where there is no persistent memory (yet).
There are at least 2 options
1. If you are a Chilipeppr user, the SPJS widget has an option to send a set of initialization commands to tinyG(G2core) on startup. Those could be parameter updates.
2. What I prefer to do is rebuild the G2core binary with a custom parameters.h file that has my specific configuration. Those defaults are loaded on restart, can be tweaked from there on.cmcgrath5035ModeratorI agree with Gallen66 that external drivers are not required for tinyG to run NEMA 23s, but you will get maximum stepper performance, should you need it, with those external drivers.
Many folks do run with external drivers, particularly those with long running (hours at a time) Gcodes controlling high current steppers.
If you choose not to use your external drivers, be sure to provide adequate moving air (a fan) for tinyGIt is a builders choice.
I’ll add that if you do run high current/high torque motors, you should routinely check fastener torque, particularly pulley set screws.
It’s not 100% clear that some of the machine designs in service were designed to handle the power (torque) that is available these days.- This reply was modified 7 years ago by cmcgrath5035.
cmcgrath5035ModeratorIf you anticipate doing a lot of projects like this, consider investing in some ferrules and a tool.
For exaample
Makes terminating stranded wire in screw terminals much cleaner and fool proofcmcgrath5035ModeratorA axis parameters are displayed, in cli mode, with $a command.
I don’t understand your comment
“The rotary stage should be in mode 2 and act simply like the linear stages.”
Axis modes are defined here: https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97#xam—axis-mode
Gcode movements for rotational axes are in degrees, G1 A3 is a 3 degree movement in standard mode. $aam=1. Use $3tr (in your case, if A axis stepper is connected to motor 3) to implement gearing ratio from stepper to output shaft.
The Gcode specifies movement of the output shaft.If you prefer to create a custom Gcode stream that specifies linear movement, e.g. G1 A5 to move the A axis 5mm , then you can set $aam=3 (radius mode) and parameter $ara is set based on this definition https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97#ara—radius-value
I don’t know of any ‘standard’ tool chain that would generate that Gcode for you
cmcgrath5035ModeratorI sort of follow your discussion above.
First, see my comment in your other post, what I read says setting min=max=360 degrees is equivalent to shutting off limits, but not clear from your description that is what is happening either.I believe your switch action is not what is programmed into tinyG fw. You have both A switches set $asn=$asx=1, homing.
Only one should be set =1, you home to min or max, not both (or either).
TinyG homes on a transition, either low-high or high-low, based on $st setting, NO or NC.You could fork the firmware and rework the C code, if you want.
cmcgrath5035ModeratorTo be honest, first person I have seen using rotary axis limits.
This Link https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97#xtn-xtm—travel-minimum-travel-maximum says setting min and max to same value means “no limits, which may explain behavior in your other postYou have both motor 3 and motor 4 mapped to A axis and enabled.
Is this really true?. I’m not sure it would make a difference if M4 were not connected to anything.You have Motor 3 mapped to A axis and A axis in radius mode, Radius = 0.1989 deg, which is interpreted as move 1/.1989 degrees when G1 A1 is sent. Re-read how $3tr =2 is interpreted for a rotary axis.
https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97#1tr—travel-per-revolution
I am not 100% clear if your movement described is rotary stepper or rotary output after gear reductionWhen I read
When I send the command G1 F100 A1 it moves more than 360 degrees instead of one degree.
I sort of think you should be in $aam=1, so that G1 A1 means 1 degree of movement requested.
- This reply was modified 7 years, 1 month ago by cmcgrath5035.
cmcgrath5035ModeratorThe tinyG wiki at https://github.com/synthetos/TinyG/wiki/ has some general wiring recommendations but machine sizes and your ultimate set-up goals dictate details.
The DQ542MA can be interfaced to tinyG, bypassing the on-board stepper drivers. If you want to increase the current drive capability to your steppers and improve thermal handling, the DQ542MA will do that for you, at a cost you have already paid out, from your description.
Interfacing tinyG 3.3v logic directly to external opto-isolated units like the DQ542MA can lead to marginal drive conditions. You might consider adding some buffer and level translation logic such as shown in this wiki item https://github.com/synthetos/g2/wiki/G2core-on-DUE—External-InterfacesI suggest you visit https://plus.google.com/communities/110852928951643236736 and https://plus.google.com/communities/104346367498010042037/stream/dbb1a4ab-a641-41e9-ac80-b7b273986da7 and read thru posts from folks proud of their machine builds, many of which include YouTube videos.
cmcgrath5035ModeratorOOps, the link you posted points to this thread, not your Parameters dump
cmcgrath5035ModeratorI saw your message, they will get back to you.
cmcgrath5035ModeratorNot that it should really matter for this discussion, are we discussing a tinyG or G2core machine here? I ask because tinyG does not support $_mi=16, but you are not using $_mi=16 either.
Also, I will assume you are using the onboard tinyG drivers, or a Gshield/DUE hardware setup. If Gshield, the microstepping pins are all open, thus $_mi=8Also assuming from what you show that $3ma=3, mapping motor 3 to A axis
Can you verify assumptions so far, or describe what is different?
Can you provide all the motor 3 and all the A axis parameters?
That would be results of $3 command and $a command
Or, Dump all parameters $$ , copy them to a Cloud drive and provide a URL for viewing.cmcgrath5035ModeratorPerhaps, but do be aware that at any point in time tinyG and G2core may or may not be the same code/algorithms.
There is a chance that in G2core $fb=100.26, the most recent builds, some additional tweaks to the ‘gCode to motion’ code have been made.
This is a long standing issue, with roots in interpretation of gCode implementation ‘rules’ used by the generators (e.g. Fusion) and the interpreters, e.g. tinyG or G2. Compute accuracy may also have a play here (8bit vs 16 bit).
But good to see you are making progress. -
AuthorPosts