Forum Replies Created
-
AuthorPosts
-
JuKuMember
I don’t remember where I found it, maybe Alden told me:-). But for the discussion, it doesn’t matter if we are talking about g28.2 or g28.4; the difference is only that the latter doesn’t zero the coordinates after the homing cycle. The point is, that it is possible for the user to set parameters so that it isn’t possible for the homing to work; I would like to detect the condition. (Also perhaps to point out for the other readers that a failed homing might be about their settings, not a TinyG problem.)
JuKuMemberAnother thing to look at: The homing algorithm has issues if there is no room for the axis to get up to speed. If your acceleration setting is low and your backoffs are small, and you have already homed an axis, when you try homing again and hit the switch when the machine is still in the acceleration phase, it misbehaves.
JuKuMemberIt is not really a bug, but an inherent characteristic of the memory type; a write takes some time.
JuKuMemberSome of the M commands are synchronized with moves (can’t remember which), so when testing, follow M with a move.
JuKuMemberAnother way to look at it: I have a machine where the rotation axis has 16 to 36 reduction (0.4444…) meaning I get 160 deg actuator rotation for each motor rotation. The following settings are the critical ones:
$aam=1 //standard (not rotation) mode. A bit confusing, but at the end, makes life easier
$4ma=3 //motor 4 is rotation axis
$4sa=0.9 // motor degrees per step. I have 0.9, the other common value is 1.8
$4tr=160mm // travel per revolution.TinyG thinks it is moving 160mm, but it is turning 160 degrees. With these settings, G code mm’s map directly to degrees of revolution.
JuKuMemberAny other switches configured to a limit switch?
JuKuMember> A lot more detail on how you believe the distortion would be measured and entered into a parameter(s). would be helpful.
One way to do it is to attach a camera to the machine, and follow these instructions to find out the non-squareness: https://www.liteplacer.com/setups-using-the-cameras-squareness/
The correction is rather simple: When you move a amount in Y direction, move b amount in X direction as well, b= correction factor * a.
JuKuMemberThank you for the most informative post.
> I sense that you are a rookie at machine tools. Very glad to see youngsters getting interested in something besides cell phones and video games.
Yes, I’m a rookie, building my first CNC machine. But not exactly a youngster, I’m 57. 🙂
JuKuMemberI think it would be easy to get the machine slightly out of square just by pushing it by hand with motors off. Even turning motors on and off move it a little due backslash (No idea if this makes it off-square, but I worry about it). Until this is supported, I think I need to devise a macro, so that first one side is homed, then machine is reconfigured so it homes the other side, then change configuration back. And yes, design an adjustable switch mount.
JuKuMemberSorry for the late reply, I don’t visit this forum regularly. This file has the results of correct LitePlacer parameters (the $$ dump): http://www.liteplacer.com/Downloads/Goodsettings.txt
JuKuMemberCan be done, relatively easily. I’m not in my office so I can’t check the details, but you can see from the status message that motion is stopped; in other words, the command is done.
I have a pick and place machine, and that application needs just that: Wait for a command to execute and movement to stop, do a vision measurement, switch vacuum pump or something else if needed, send another command and so on. If you want to have a look at how I did it, you can find a link to the (open source) software source code at http://www.liteplacer.com/downloads.
JuKuMemberYou don’t mention a power supply? TinyG needs the motor power supply even to communicate with the PC. Do the LEDs blink when turning power on?
JuKuMemberDoh. Note to self: learn to type. cmcgrath5035 gives the right json commands. I was trying to give the non-json format, $ej=0.
JuKuMember> Any constructive criticism is welcome.
For switches (and other parameters that might change during regular operations, maybe all of them), you could keep a copy of the eeprom content in ram and implement a switch that allows changing only the ram copy. This allows a job to configure the machine for the requirements of the special job. The regular jobs don’t need to learn how to do this, those can rely on the machine having the standard configuration at power up. What do you think? In addition, this would make the applications that do configure the machine (including mine) on the run more reliable, avoiding wearing out the eeprom.
JuKuMemberThank you! This was the issue. I was able to re-arrange my code so, that all M commands are followed by a real move.
-
AuthorPosts