Souce Code: https://github.com/zapmaker/GrblHoming
Record Issues Found: https://github.com/zapmaker/GrblHoming/issues?state=open
Grbl Controller is software that is designed to send GCode to CNC machines, such as 3D milling machines. It isn’t super smart, it just needs to give the user a nice way to get commands down to whatever controller they are using.
Version 3.0 is has been optimized for the Arduino to control Grbl shields. I am using it to control my Shapeoko milling machine. It is the only program I use with my Shapeoko in order to maximize the amount of real-world testing.
Grbl Controller is written using the Qt cross-platform libraries. It also gets some help from the QextSerialPort library to simplify choosing the correct USB serial port.
Qt is pretty cool because you can create a nice GUI application for Windows, Mac and Linux. Qt was originally developed by Nokia (ok, Trolltech to be exact, bought by Nokia). To develop in Qt you must be proficient in C++.
Why am I writing about this? I wanted a controller that would run on an old Pentium III laptop running Debian 6 – the only option was Universal G-Code-Sender written in Java, which unfortunately ran really slow on 256 MB of RAM due to the Java requirements. There is a pretty nice Windows-only project called GCodeSender that has been in use for the Shapeoko project since the early days.
I found a project on github called GrblHoming aka Grbl Controller, which was originally developed by Kosme, which showed promise for running native C++ on Linux, however it needed some attention.
I forked the project and started tweaking it to compile and run under Linux. I got it working and posted a version. Although it mostly worked, the bugs started to, well, bug me. I also knew people were interested in a native Mac version, so lots of hours later (mostly spent learning the ins and outs of Qt) I’ve produced version 3.0, which provides some neat enhancements like a status bar and time elapsed. It is also a near full rewrite to take into account how Qt protects memory objects across multiple threads using “signals and slots”.
For information on how to build it on all three platforms, check out this multi-page “manual”.
Give it a try and let me know if it works for you.
Here is an interface of the Grbl Controller V3.0. In this shot it is connected to my test Arduino running an older version of the Grbl code. The latest code doesn’t echo commands.