TinyCNC – Working Keypad UI

If you’re still on the fence about trying to build your own drawing robot/plotterbot, take heart.  (Skip to the bottom of the post if you want to check out the latest 3D printable files and Arduino code.)  If a relative newbie such as myself can make a go of it, I’m pretty sure you can too.

Last night1 I finally got the little ‘bot to really make use of the keypad as a modest user interface.  The robot is now using the USB cable purely for power purposes, rather than requiring the serial connection to the Arduino serial monitor as well drawing power from the USB port.  Now I can just connect the USB cable to a random USB charging device and operate the robot in a meaningful way by using the keypad.

In addition to the keypad direction system described in a previous post, now the “*” and “#” keys also have a usage.  The “*” key now starts and stops the Arduino from logging the inputs.2 Pressing the “#” key will play the most recently recorded inputs.

My record/playback system is super hacky and the ‘bot sometimes jitters before carrying out a command.  I’ll also have to implement a few additional changes to the design of Y axis before it can hold a pen reasonably stead.

But, it works!

Download the latest stable 3D printable parts on Thingiverse, latest Arduino sketch from Github, and play with one for yourself!

  1. Well, technically this morning? []
  2. If you forget whether it has been toggled to start or stop recording, the robot performs a little “wave” with the Z axis when it is ready to start recording and three little “waves” when it stops recording. []
Posted in Tiny CNC Tagged with: , , , , , ,
2 comments on “TinyCNC – Working Keypad UI
  1. Amanda says:


    I put together the tiny plotterbot, but each TinyCNC_Gcode.ino sketch that I have says deg2mm is not a defined in the scope

    do I need to download an additional helper file?

    — Amanda

    • MakerBlock says:

      @Amanda: Hmm… you shouldn’t need any additional file. The deg2mm function doesn’t do anything very interesting. It is just a small function that takes a certain number of degrees and converts it to a distance in millimeters. This is easy enough to do as long as you know the radius/diameter of the various gears.

      However, you can find the code for that function here: https://github.com/MakerBlock/TinyCNC-Sketches/blob/master/TinyCNC%20Keypad/MiniCNC004.ino

      I hope this helps. Please do take a picture and email me or leave me a link so I can check out your robot!