Posted on

Mass Production – Hole Driller

This is our first paid gig with Evezor robotic arm and brought in enough to pay for over half an arm.

This job took a few days to put together and program 3 days to run and 300 total tubes drilled in the end.


Let’s start by seeing the production run

baskets of tubes drilled by evezor

This project was the reason I started designing evezor in the first place

After creating the the original hole driller I found myself very disappointed with the machine, not that it didn’t do a good job, but that it would only ever do one job. It could only ever drill holes in these tubes.

The components were cannibalized from the original machine

99% of the components for this iteration were taken from the original machine.  Making the cost for this machine clock in at under $10!!  The only new components needed to transition to Evezor is a spring for the vise and an h-bridge motor controller that was also used for the vise.   Yet another example of the power and sheer hackability of the evezor platform.

Let’s break down how this project was made and the components

The Tools, Drill, Countersink and Gripper

For this job I went back and forth on whether or not to opt for a tool changer.  I like to keep things as simple as possible, so decided to place all three tools on at once.  We had two spindles, one for the drill and one for the countersink. The drill was mounted to be used in right hand mode, while the countersink was mounted to be used in left hand mode.

Each spindle had a speed controller and could be controlled independently.  With the cheeseplate tool mount on evezor I was able to mount the spindles unmodified from the original machine!

The gripper was the same one used on the old machine and was placed to be used in center left mode.  (Sorry for the dumb face but in the old machine the arm that this was hooked moved wildly and was not very good.)

In the end I think that mounting all three tools at the same time was the best decision.

Vise and 4th Axis


The 4th axis vise was the only component that required additional parts.  The gear motor that closed the vise was harvested from an old copy machine.  The spring and the motor driver were the only 2 components that had to be purchased for this job.

The entire vise assembly was made from the carriage axis from the old machine. The 4th axis motors and pulley assemblies were also from the axis on the old machine.

The vise performed better than I would have ever expected especially given the looks of it.  In hindsight I would have preferred to have the 4th axis mounts hold the parts to be male instead of female as over time some little pieces could get stuck in the shelf.  But in the end it properly loaded and held all 300 parts without fail. That’s a win in my book.


The hopper worked very well, but I need to do some research on hopper design. It would only hold about a dozen at a time as they all needed to be directly on top of each other. Any other designs I tried would have bridging issues and were not 100% reliable.


The blower is a standard pump you’d find in a vacuum cleaner that was connected to a hose and a nozzle at the end.


I decided to use the Ramps board as there’s some nice IO ports, endstop ports, servo ports and easy to program because it’s run with an arduino.

The relays were used to switch the spindles. The ramps board open and closed the vise, controlled the relays and controlled the servos for the gripper and the hopper.


The first image is the gui I made for this job.  The status lights on the left would tell what state the machine was in and what state every component was in.  The blue buttons to the right were buttons and could be pressed to achieve the stated goals.  The ControlP5 library was the main reason I chose Processing for this job.  There is not a whole lot going on computationally and it was super easy to get a GUI going.

I was back to using Marlin for the arm with this job as I’m more familiar with it and the the whole job could be run with the machine in polar mode.

The choreography of all the different components was done on the Raspberry Pi running the Processing script.  The Gcode was created using a few different scripts and programs.  The hole locations were created with the standard SCARA-to-Cartesion converter the tool offsets were done with an excel sheet and the final Gcode for the drilling and countersinking was created with a python script. All Souece files can be found in this project’s Github Repository

Subscribe to Blog via Email

Stay updated with our newest projects, code and designs

Leave a Reply

Your email address will not be published. Required fields are marked *