Replies: 6 comments 5 replies
-
Hi @gpstone, What you are describing seems very strange to me because no one noticed it before you! @++; |
Beta Was this translation helpful? Give feedback.
-
Hey there, (Forget about the axis thing - I was wrong there...) |
Beta Was this translation helpful? Give feedback.
-
Hi @gpstone, For me to better understand this problem, can you make a video of your machine that shows the problematic acceleration behavior? @++; |
Beta Was this translation helpful? Give feedback.
-
Hi @fra589 Thanks you for taking the time to investigate this. I have made a video showing 5 tests. G Code used for all tests:
Test 1: (This is my 'normal' machine setup)
Test 2:
Test 3:
Test 4:
Test 5:
**Bonus troubleshooting test, done after creating the video: `#define N_AXIS 4 // Number of axes (3 to 6) // Axis indexing and names At first I thought the problem was fixed because my original g code commands worked. However upon further testing, I flipped the X and Y coordinates in my test g code and the problem came back. So it seems to be a function of the cloned axis being commanded to move a certain way. |
Beta Was this translation helpful? Give feedback.
-
Hi @gpstone, Any news about your problem? @++; |
Beta Was this translation helpful? Give feedback.
-
After a lot of testing and troubleshooting, I am convinced the problem is software related. As mentioned in my previous posts the problem only appears when there is at least one cloned axis enabled in config.h even when there have been no hardware changes. For my testing I did not have any physical motor connected to the cloned axis, I was simply enabling/disabling the setting in config.h. All other machine settings remained the same (steps/mm, max rate, accelerations, etc.) It does not appear to be related to the number of axis enabled: #define N_AXIS 4 and #define AXIS_4_NAME 'A' does not create a problem, but as soon as #define N_AXIS 4 and #define AXIS_4_NAME 'X' (Or even 'Y' or 'Z') the problem appears. The problem appeared any time both axis were commanded to move together, and then in the next line of g-code the cloned axis was commanded to continue moving in the same direction on it's own. It did not seem to matter the direction of the initial move, and the axis could be moving different directions (i.e. X moving positive, Y moving negative). But what was important is the cloned axis had to continue in the same direction. For example (X is the cloned axis): The scale of the move didn't seem to be a significant factor. There was a slight difference in how 'hard' the change in acceleration related to scale of motion, which seemed to be simply related to how fast the machine was traveling because it obviously had more time to accelerate on longer moves. If the non-cloned axis was also commanded to move in the second gcode line, the problem seemed to depend on how far and which direction. I created the attached graphs to illustrate what was going on. These graphs use my original problematic test gcode (G90G0X0Y0;G0X100Y100;G0X150Y100) and were created by plotting the verbose output from USG Sender. The only difference (hardware or software) between the two graphs was whether or not cloned 'X' axis was enabled in config.h using N_AXIS and AXIS_4_NAME. |
Beta Was this translation helpful? Give feedback.
-
Hello. I am stuck and need some help on a strange issue where GRBL is ignoring axis acceleration value only on certain sequential G0/G1 commands. When this happens at full speed/acceleration, the stepper motors physically skip steps (usually just on one axis) and in severe cases the machine jams if one of the cloned axis skips and the other tries to continue. The problem started after upgrading my machine to GRBL Mega from GRBL 1.1f (Uno). I have a gantry CNC with dual X axis motors and limit switches for gantry squaring.
Originally I thought the problem was due to acceleration or axis speed being set too high. However, I was able to rule this out by slowing down the acceleration to an extremely slow speed (i.e. 5mm/s^2) and with things slowed down I could clearly see and hear the missed deceleration/acceleration curves on the G0 commands. The steppers made a 'hard' stop/start 'clunk' instead of a gradual decel/accel.
I have ruled out hardware issues by disabling axis cloning in config.h and physically wiring both X axis controllers to the same step/dir pins. When I do this, the problem goes away (Although I lose self-squaring). Also, what points me to a config or software issue is even when I physically have the axis wired to the same X outputs but then re-enable cloning of the X axis in config.h (nothing is physically connected to those pins), the issue with missed acceleration comes back.
Everything else seems to be setup and working fine. Homing works for all 4 axis. Everything is moving in the right direction. I can run Gcode programs (Except for occasional skipped steps due to this issue). What's very frustrating is the issue only happens on certain types of G commands. It is very repeatable with the same command, but some other combinations will work just fine.
Example gcode where acceleration is ignored
G21G0X25Y25 //Misses decel/accel between this line and next
G21G0X755Y25
G21G0X-153.968Y93.316
G21G0X-124.362Y40.107 //Misses decel/accel between this line and next
G21G0X-41.833Y-17.287
Troubleshooting I have tried:
Any ideas on what I can try next would be greatly appreciated. Thank you in advance!
Config file:
Config.txt
Beta Was this translation helpful? Give feedback.
All reactions