{"action":"opened","issue":{"url":"https://api.github.com/repos/grbl/grbl/issues/930","repository_url":"https://api.github.com/repos/grbl/grbl","labels_url":"https://api.github.com/repos/grbl/grbl/issues/930/labels{/name}","comments_url":"https://api.github.com/repos/grbl/grbl/issues/930/comments","events_url":"https://api.github.com/repos/grbl/grbl/issues/930/events","html_url":"https://github.com/grbl/grbl/issues/930","id":139839811,"number":930,"title":"Motion problems in circles and lower feed rates","user":{"login":"Hogie1982","id":17758578,"avatar_url":"https://avatars.githubusercontent.com/u/17758578?v=3","gravatar_id":"","url":"https://api.github.com/users/Hogie1982","html_url":"https://github.com/Hogie1982","followers_url":"https://api.github.com/users/Hogie1982/followers","following_url":"https://api.github.com/users/Hogie1982/following{/other_user}","gists_url":"https://api.github.com/users/Hogie1982/gists{/gist_id}","starred_url":"https://api.github.com/users/Hogie1982/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Hogie1982/subscriptions","organizations_url":"https://api.github.com/users/Hogie1982/orgs","repos_url":"https://api.github.com/users/Hogie1982/repos","events_url":"https://api.github.com/users/Hogie1982/events{/privacy}","received_events_url":"https://api.github.com/users/Hogie1982/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-03-10T09:58:21Z","updated_at":"2016-03-10T09:58:21Z","closed_at":null,"body":"Hi there,\r\nRecently, I build a small 3axis CNC machine using Grbl, and generally all is working fine. The maximum feed rate is around 400mm/min in X & Y direction and roughly 50mm/min along the Z axis. So happy me :) and congratulations on your work folks.\r\n\r\nAfter doing some test pieces I discovered an issues with motions in a particular feed rate range. When the feed is relative low F35-F42 the stepper motors show erratic movements. This was observed when doing some circles and diagonals at F100. Ie when doing half a circle with radius 10mm in the XY-plane from x0 y10 to x0 y10 and looking **only** at the X-axis, the feed rate of the X-axis goes from its maximum feed (at y10) to a minimum of F0 (at y0), and the back to its maximum (y-10). During this feed rate change it crosses the mentioned feed rate range, in which the stepper makes some erratic movements. \r\n\r\nGenerally, one would argue that the problematic range is to be avoided. So just use higher or lower feed rates, but this is impossible for circles, and one has to be careful when choosing feed rates for diagonals.\r\n\r\nThe question now is, whether anyone has experienced similar issues? And if yes, do you have any idea what this problem could be, and how this could be solved?\r\n\r\nI did some test which are describe below and the setup (incl Grbl settings) is summarized thereafter.\r\n\r\n**Tests:**\r\nThe problematic feed rate  range was defined with a number of tests (please see G-commands below):\r\nFirst, it was tested whether it is a mechanical problem by using steppers motors which are currently attached to the machine and running a number of motion commands, and then the tests were repeated with the same type of stepper motor, but not connected to the machine (so just laying on the table). The results for the both tests were the same.\r\nTested G-commands (starting at x0 y0 for linear commands and relative to x0y0 for circular commands):\r\n\r\n1. G01 movements along X-axis (ie G01 X10 F50), feed range 5mm/min up to 200mm/min\r\n2. G01 movements along Y-axis (ie G01 Y10 F50), feed range 5mm/min up to 200mm/min\r\n3. G01 45 degree diagonal movements along X & Y-axis (ie G01 X10  Y10 F50), feed range 5mm/min up to 200mm/min\r\n4. G01 movements along Z-axis (ie G01 Z10 F50), feed range 5mm/min up to 50mm/min\r\n5. G02 & G03 movements in XY-plane (ie G02 X10 Y0 I10 J0 F50), feed range 5mm/min up to 100mm/min\r\n\r\n**Results:**\r\nThe results were as follows:\r\n1)  G01 movements along X-axis (ie G01 X10 F50): \r\n- Feed rate from F5 to F35: no problems\r\n- Feed rate from F35 to F42: erratic movements\r\n- Feed rate from F45 to F200: no problems \r\n\r\n2) G01 movements along Y-axis (ie G01 Y10 F50): same as for X-axis\r\n\r\n3) G01 diagonal 45 degree movements along X & Y-axis (ie G01 X10  Y10 F50):\r\n- Feed rate F5 to F50: no problems\r\n- F50 to F60: erratic movements of both axes (actually looking at X and Y axis separately, these feed rates correlate to F35 up to F42 per axis by multiplying with sin(45 degree))\r\n- above F70: no problems\r\n\r\n4) G01 movements along Z-axis (ie G01 Z10 F50): similar to linear movements along X or Y axis\r\n\r\n5) G02 & G03 movements in XY-plane (ie G02 X10 Y0 I10 J0 F50):\r\n- Feed rate F5 to F30: no problems\r\n- F35 to 40: erratic movements of when one of the axes is in range of its maximum speed (see description above)\r\n- F45 to F100: some erratic movements of each axis during the circle (see description above)\r\n\r\n**My Setup:**\r\n- Arduino Uno R3\r\n- Grbl v0.9j ($I=0.9j.20151218)\r\n- Universal Gcode sender (Version 1.09)\r\n- Arduino CNC Shield v3.00 (Protoneer)\r\n- Stepper drivers: Pololu DRV8825 Stepper Motor Driver Carrier, High Current\r\n- Stepper motors: 400 steps/rev (42byghm809) Nema 17 stepper motor\r\n\r\nIt was carefully checked that no power cables cross each other, or cross the USB cable from PC to Arduino. Also additional ventilation to cool the Arduino, CNC board, and stepper drivers is used.\r\n\r\n**Grbl settings:**\r\n$0=10 (step pulse, usec)\r\n$1=25 (step idle delay, msec)\r\n$2=0 (step port invert mask:00000000)\r\n$3=6 (dir port invert mask:00000110)\r\n$4=0 (step enable invert, bool)\r\n$5=0 (limit pins invert, bool)\r\n$6=0 (probe pin invert, bool)\r\n$10=3 (status report mask:00000011)\r\n$11=0.010 (junction deviation, mm)\r\n$12=0.002 (arc tolerance, mm)\r\n$13=0 (report inches, bool)\r\n$20=0 (soft limits, bool)\r\n$21=0 (hard limits, bool)\r\n$22=0 (homing cycle, bool)\r\n$23=0 (homing dir invert mask:00000000)\r\n$24=25.000 (homing feed, mm/min)\r\n$25=500.000 (homing seek, mm/min)\r\n$26=250 (homing debounce, msec)\r\n$27=1.000 (homing pull-off, mm)\r\n$100=400.000 (x, step/mm)\r\n$101=400.000 (y, step/mm)\r\n$102=400.000 (z, step/mm)\r\n$110=500.000 (x max rate, mm/min)\r\n$111=500.000 (y max rate, mm/min)\r\n$112=500.000 (z max rate, mm/min)\r\n$120=10.000 (x accel, mm/sec^2)\r\n$121=10.000 (y accel, mm/sec^2)\r\n$122=10.000 (z accel, mm/sec^2)\r\n$130=200.000 (x max travel, mm)\r\n$131=200.000 (y max travel, mm)\r\n$132=200.000 (z max travel, mm)\r\n\r\nRemark to settings $0 and $1, here I already tested some values (Ie. $0=5; $0=10; $0=25; $1=0; $1=25-50; $1=255). The results remain the same.\r\n\r\nPuh, this got longer than expected, my apologies.\r\nThanks in advance to you for having a look,\r\nErik\r\n"}}