{"action":"opened","issue":{"url":"https://api.github.com/repos/grbl/grbl/issues/663","labels_url":"https://api.github.com/repos/grbl/grbl/issues/663/labels{/name}","comments_url":"https://api.github.com/repos/grbl/grbl/issues/663/comments","events_url":"https://api.github.com/repos/grbl/grbl/issues/663/events","html_url":"https://github.com/grbl/grbl/issues/663","id":69766230,"number":663,"title":"My visual basic controller and a grbl vs LinuxCNC head to head","user":{"login":"109JB","id":10978476,"avatar_url":"https://avatars.githubusercontent.com/u/10978476?v=3","gravatar_id":"","url":"https://api.github.com/users/109JB","html_url":"https://github.com/109JB","followers_url":"https://api.github.com/users/109JB/followers","following_url":"https://api.github.com/users/109JB/following{/other_user}","gists_url":"https://api.github.com/users/109JB/gists{/gist_id}","starred_url":"https://api.github.com/users/109JB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/109JB/subscriptions","organizations_url":"https://api.github.com/users/109JB/orgs","repos_url":"https://api.github.com/users/109JB/repos","events_url":"https://api.github.com/users/109JB/events{/privacy}","received_events_url":"https://api.github.com/users/109JB/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-04-21T07:25:04Z","updated_at":"2015-04-21T07:25:04Z","closed_at":null,"body":"I've been working on my GUI in my spare time and thought I would give an update on it. It is to the point where it has just about all of the major components I wanted implemented. It is nothing special, but I needed one that would run in Windows 98 on an ancient laptop I want to use in the shop. I am not a programmer, but can do an OK hack job. Right now the GUI is all there and has the following features I wanted.\r\n\r\n![gui](https://cloud.githubusercontent.com/assets/10978476/7246649/e395be02-e7c5-11e4-861e-ace603718214.jpg)\r\n\r\n1. All major funcionality on a single page without tabs, other windows, etc.\r\n2. Small window since the computer I plan to use is an 800x600 display. I made the gui 640x480 but it can be maximized to expose more of the code panel\r\n3. Pseudo-jog buttons for each axis with pull-down increments\r\n4. Easy access to G54-G59 work coordinate systems\r\n5. Easy zeroing of each axis on each work coordinate system. On mine you just click the DRO for the axis to zero saving the room a button would take up\r\n6. Persistent settings for many things so they don't have to be set up each time\r\n7. Status line for things like coord system, Grbl run state, units, spndle state, coolant state, and tool #\r\n8. A Grbl settings interface\r\n9. A Com Port settings interface (Not on main page to save room)\r\n10. single step mode\r\n11. Start run from mid-program\r\n12. common buttons for reset, feed hold, resume, homing, etc.\r\n13. a Clock (might as well, and will also implement a cycle timer later)\r\n14. a built-in serial monitor that can run at the same time as the gui in a separate window (Doesn't have to be on for the GUI to operate.\r\n15. MDI Input on the main page\r\n16. support for ALL grbl responses\r\n\r\nAll of the above is done and here are some of the future enhancements\r\n1. cycle timer\r\n2. link to open current file in a G-code editor (Notepad++)\r\n3. Machining calculator (separate window)\r\n4. Canned cycle support (pretty close on this. Hopefully within a week)\r\n5. Manual tool change and tool table support (Similar to how LinuxCNC implements it)\r\n6. Some other stuff I either forgot or haven't thought of yet.\r\n\r\nAs for how well it works. It does very well. I have a video of it up on Youtube at the following link. Not the prettiest, but does well. I have been testing it with everything from 10 line programs to 10,000 line programs. The video shows my mill running on grbl with my gui, doing the roadrunner program at 120 inches per minute. There is also an identical run by linuxCNC running the same program at the same programmed feedrate. The results are very interesting.\r\n\r\nProgram: Roadrunner CNC G-code program\r\nProgram lines: 4,471 lines long\r\nprogram feed rate 120 IPM\r\nRapid feed rate 150IPM on GRBL, 180 IPM on LinuxCNC\r\nCycle time with my GUI/GRBL - 3 minutes, 20 seconds\r\nCycle time with LinuxCNC - 5 minutes 35 seconds\r\n\r\nDuring the runs I noticed that LinuxCNC has a much more pronounced deceleration between programmed moves compared to GRBL. My version of LinuxCNC is a few years old, and I know that there is a new trajectory planner for LinuxCNC, so the differenc gap would likely close up but it is still impressive what GRBL was able to do. I have checked both extensively with regard to lost steps, and neither loses steps with the setup as i have it now. \r\n\r\nIncidentally, I also compared the run of my GUI against GRBL Panel and Universal G-code sender. In both cases, I am about 5% slower than either of them, but I haven't built my project yet and am still running in debug mode. Hopefully it will be a bit faster after building it.\r\n\r\nI am interfacing with the machine using an Arduino NANO through my standard parallel port breakout board. here is that interface\r\n\r\n![img_0408](https://cloud.githubusercontent.com/assets/10978476/7246695/555b197e-e7c6-11e4-9356-cdb19a024272.JPG)\r\n![img_0409](https://cloud.githubusercontent.com/assets/10978476/7246696/5780edbe-e7c6-11e4-982a-ddcf0afe4f93.JPG)\r\n\r\n\r\nHere is the link to the video of the GUI along with the GRBL and LinuxCNC head to head runs.\r\nhttp://youtu.be/c1mxS7WI-tg"}}