Android CNC Controller

[Matt] is the proud owner of a JGRO-based CNC router and he’s been working on a way to control it without a computer. What he came up with is a way to drive the CNC machine using this Android tablet.

A big part of the hack is the CNC controller that he’s using. The TinyG is a board that can take commands via USB and convert them to instructions for up to six axes. In the video after the break [Matt] shows off a direct USB connection as the control method. This is the most interesting part to us, but the system can also be run through the network with the assistance of a computer feeding commands to the TinyG. This second method means the Android controller would be wireless.

A trio of repositories host the code [Matt] is using. From the demo it looks like the Android app has no shortage of features.

17 thoughts on “Android CNC Controller

  1. That looks cool. Projects like this should really help those trying to rapidly assemble CNC solutions.

    I always say on projects like this – “do you want to build cnc machines or use them?”

    In the bigger picture, I am torn on touch screen interfaces for cnc machines.

    On the one hand, the buttons are custom and dynamic – with custom labels, tags, colors, instant feedback, etc. Something like this would be great for rapid prototyping and development.

    On the other, my dirty fingers are not compatible with easily scratched touch screens. When operating a machine, your fingers get grungy.

    ALSO – the smooth screen lacks the tactile feedback that you get from real buttons.

    I have an older CNC mill and the controls are just great. A keyboard would be a terrible substitute. I’d like to convert the brain on my machine, but retaining good control inputs would be a requirement. And also, the original servos and driver hardware are likely way better than anything commonly available.

    1. Yeah, at the moment I’m focusing on woodworking and so the tablet has an advantage with dust vs an air cooled PC. When I start looking at doing a mill or lathe conversion for metal, I think it’s going to be more of a challenge.

      One possible option is the use of an external USB keypad, or to use a screen protector on the tablet.

      Now that the system as a whole is working fairly well, I’m looking to spend some time using the thing – I want to build some musical instrument prototypes.

    2. I have a ELO SAW touchscreen on my cnc mill. The panel is 1/4″ thick glass. It has never been scratched. Fluids, on the other hand, can cause issues. Just need to be sure to wipe the coolant off my hands before touching it.

    1. Agreed. The main goal in this project was to get a very compact and inexpensive control system. TinyG is fairly new still, but I think it has the potential to local the barrier to entry for hobby CNC with the right supporting components. The app is one part of that equation. As Reilly mentions, he’s working on a PC-based control system that looks to solve a slightly different set of problems.

  2. @koniho,

    Yup. As one of the creators of TinyG you hit the nail on the head. Matt has been doing some really great work on the android front to control TinyG. TinyG makes responses all in JSON too so writing GUIs, DRO’s (digital read outs) etc is pretty easy.

    I have been working on a JavaFX2 gui to drive TinyG. Its however still a work in progress.

    If anyone is interested in the TinyG firmware code its here:

    We are continuously impressed with our user base’s innovations.

  3. but please remember: Windows, Linux or Android are not good systems for this kind of devices. Imagine that someone build car steering system using this kind of software and it start “system update”… and it will finish with crash.
    CNC needs Real Time Operating System, not Android.

    1. @engineer,
      The title of this HAD post is a bit misleading. The Android tablet is NOT the controller. It is however Controlling the actual Controller (TinyG with a RTOS etc..)

      Hope that clears it up.

  4. It seems like TinyG takes the need for RTOS out of the equation. Since TinyG is processing the G-Code directly, you no longer have to fret about interrupt-driven parallel port controllers that NEVER SEEM TO WORK NO MATTER HOW MUCH BLOOD YOU OFFER. (**pant** **pant**… ok, deep breath!) Seriously, I know that the hardcore will shirk this but from my perspective it’s a solution I was waiting for. Looks like there have been recent developments in the TinyG firmware and it’s an active project, so I’m game! Plus, the JSON messaging features look rather intriguing.

  5. Why all the fuss about TinyG when you can use a Microsoft Remote desktop app on your android tab, a wifi connection to the PC and control Mach3 through this wifi connection. Saves us a lot of trouble.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.