{"action":"created","issue":{"url":"https://api.github.com/repos/grbl/grbl/issues/1137","repository_url":"https://api.github.com/repos/grbl/grbl","labels_url":"https://api.github.com/repos/grbl/grbl/issues/1137/labels{/name}","comments_url":"https://api.github.com/repos/grbl/grbl/issues/1137/comments","events_url":"https://api.github.com/repos/grbl/grbl/issues/1137/events","html_url":"https://github.com/grbl/grbl/issues/1137","id":191201448,"number":1137,"title":"Bresenham style arc algorithm in GRBL?","user":{"login":"usbcnc","id":19435148,"avatar_url":"https://avatars.githubusercontent.com/u/19435148?v=3","gravatar_id":"","url":"https://api.github.com/users/usbcnc","html_url":"https://github.com/usbcnc","followers_url":"https://api.github.com/users/usbcnc/followers","following_url":"https://api.github.com/users/usbcnc/following{/other_user}","gists_url":"https://api.github.com/users/usbcnc/gists{/gist_id}","starred_url":"https://api.github.com/users/usbcnc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/usbcnc/subscriptions","organizations_url":"https://api.github.com/users/usbcnc/orgs","repos_url":"https://api.github.com/users/usbcnc/repos","events_url":"https://api.github.com/users/usbcnc/events{/privacy}","received_events_url":"https://api.github.com/users/usbcnc/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-11-23T07:10:23Z","updated_at":"2016-11-23T18:06:50Z","closed_at":"2016-11-23T18:06:50Z","body":"@chamnit, have you thought of putting Bresenham style arc algorithm in GRBL? \r\nThere is plenty information in computer graphics that explains how it is done, it can maximize the machine accuracy with very little calculation. So far I have not found CNC world is using it. Google \"midpoint circle algorithm\" should give you plenty of information on how this is done in theory.\r\n\r\nUsing this algorithm not only increase the accuracy but also use less memory and CPU power, I did small experiment and the code on STM32 target and the code size is a little less than the current method. The most saving is by eliminate the function of atan2.  I have not yet do experiment on Ardurino but if there is enough interest I can do certainly do it.\r\n\r\nIn order to keep the constant feed rate on arc, we need to change the timer for interrupt for each step, this also lead the need of per-step-acceleration. That means we could not use AMASS. With per step acceleration, the code saving is about additional 2KB-2.5KB. "},"comment":{"url":"https://api.github.com/repos/grbl/grbl/issues/comments/262589798","html_url":"https://github.com/grbl/grbl/issues/1137#issuecomment-262589798","issue_url":"https://api.github.com/repos/grbl/grbl/issues/1137","id":262589798,"user":{"login":"chamnit","id":948029,"avatar_url":"https://avatars.githubusercontent.com/u/948029?v=3","gravatar_id":"","url":"https://api.github.com/users/chamnit","html_url":"https://github.com/chamnit","followers_url":"https://api.github.com/users/chamnit/followers","following_url":"https://api.github.com/users/chamnit/following{/other_user}","gists_url":"https://api.github.com/users/chamnit/gists{/gist_id}","starred_url":"https://api.github.com/users/chamnit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chamnit/subscriptions","organizations_url":"https://api.github.com/users/chamnit/orgs","repos_url":"https://api.github.com/users/chamnit/repos","events_url":"https://api.github.com/users/chamnit/events{/privacy}","received_events_url":"https://api.github.com/users/chamnit/received_events","type":"User","site_admin":false},"created_at":"2016-11-23T18:06:50Z","updated_at":"2016-11-23T18:06:50Z","body":"@usbcnc : I've looked into this about 5 years ago. The stepper implementation isn't a problem, but it breaks the planner. You'd have to modify it to allow for accelerations and decelerations throughout the arc and account for transitions into and out of the arc. It's not that you couldn't, but it's a lot easier to deal with lines only."}}
{"actor":{"display_login":"chamnit"}}