Zenbot 1216 CNC Router for Rapid Prototyping

When I’m developing a new project, my biggest obstacle is making all of the custom pieces. I try to design my projects so that complex custom brackets and things are unnecessary, but certain things are unavoidable. In the past I have used Ponoko for making parts because they are affordable, easy to use, and the parts are always perfect. But there are some inherent limitations to a laser-cutting service:

  • It takes time to get your order. This is alright in most cases, but if I’m just trying to prototype something quickly it’s wasted development time.
  • Laser cutting can only produce parts of uniform thickess all the way through (with the exception of engravings). In most cases this can be worked around, but being able to create 3D features is a huge gain in design flexibility.
  • You are limited to Ponoko’s materials catalog. Don’t get me wrong, there are TONS of materials available. But if you want to work with a specific wood, plastic, composite, etc. you are out of luck (until they add it) and you are limited to only a few material thicknesses.

These are the main reasons I decided to buy a Zenbot 1216 CNC router. It allows me to make just about anything I could make using Ponoko, but almost instantly and with greater flexibility. Of course there are some limitations to a CNC router as well:

  • It can be loud. Because I have neighbors, I have to be mindful of when I run this thing. And although most of my jobs run for less than 30 minutes, any complex 3D relief work could take hours.
  • The size of the part you can make is limited to the travel of the axes. In the case of this router, that’s 12″ wide by 16″ long by 4″ high. It’s not bad, but it doesn’t compete with Ponoko’s 31″ by 15″ capabilities. Of course larger routers can produce larger parts, but the cost goes up and you need to have the space for it.
  • you need different tools for different jobs. Drill bits for holes, end mills/router bits for cutting out shapes, engravers for engraving, ball nose mills for 3D relief, etc. And to do things right you need an array of different sizes. This can add up.
  • It’s not difficult, but it is a learning process. Different materials need to be cut at different speeds and different feed rates, tool changes need to be done in the middle of the job, your design needs to be converted to gcode for the CAM software to interpret, etc. Ponoko takes care of ALL of this for you.

But despite the limitations, it’s a fun hobby and a great way to make parts quickly. I ordered my end mills, drill bits, and engraving bits from PreciseBits and I am using LinuxCNC on my laptop with this parallel port adapter card as my CAM solution.

Here are a few pictures of my setup:


Zenbot 1216 with 1/2″ MDF spoil board

Just finished cutting a prototype robot chassis

Just finished cutting a prototype robot chassis

Engraving the sample included with LinuxCNC

Engraving the sample included with LinuxCNC


LCD Breadboard Adapter with Backlight Driver

LCD breadboard adapter with display

LCD breadboard adapter with display

This is a breadboard adapter I designed for the CFAF320240F TFT display from Crystalfontz. It breaks out the 0.5mm pitch connector to 0.1″ for use on a breadboard, and has a Fairchild FAN5333 LED driver circuit to power the backlight. All of the components were hand-soldered including the connector (using the flood-and-suck technique). It was designed for my PIC32 3D engine project, shown being used below:

LCD breadboard adapter used in my PIC323D project

This setup also uses the joystick (seen in the lower left) to rotate the 3D object on the screen around.

Crystal Binary Clock

Crystal Binary Clock

Crystal Binary Clock

This is a binary clock I made for my girlfriend’s birthday. It uses 6 jumbo red LEDs which illuminate quartz crystals to display the minutes in binary. Two servo motors are used in the bottom half to display AM/PM and the hour. All of this is controlled with a PIC16F690 microcontroller assembled on a breadboard.

Internals of clock showing circuit, servos, and connections to the LEDs above

The clock does not use any sort of timekeeping chip or even an external crystal for the microcontroller, so it relies on the internal RC oscillator and tends to lose a few minutes each day. There are only two buttons on the clock, an “IM” button (increase minutes) and “DM” (decrease minutes) which allows the time to be set/adjusted as needed.

A couple of BEAM robots

For anyone unfamiliar with the acronym, BEAM stands for Biology, Electronics, Aesthetics, and Mechanics. The idea behind these robots is to use the fewest number of parts possible while achieving the greatest functionality. This is a picture of two BEAM robots I’ve built within the last few years as weekend projects.

Two simple BEAM robots, a photovore and a flasher

The one on the left is known as a “Photovore” due to it’s tendency to move toward the brightest light source. It uses two circuits called a “solar engines” to charge the capacitor on the back using the solar panel, and then discharge it into a motor once it reaches a certain voltage level. The motor chosen depends on which of the phototransistor “eyes” on the front is receiving more light. It is based on the Photopopper from solarbotics, and uses this circuit from the photopopper PDF:

Photopopper schematic from Solarbotics

The one on the right is a flasher. It simply discharges it’s capacitor into the two LED “eyes” on the front repeatedly, causing it to flash at different rates depending on the brightness in the room. It uses the solar engine below, found at BEAM Online:

BEAM solarengine

Cartographer – Robotic Room Mapping System

Cartographer is a wireless robotic room mapping system I designed and built for my senior project in Electrical Engineering at the University of New Hampshire. It’s a low-cost investigation into the SLAM problem and includes an intuitive computer interface. Check out the new page of Cartographer for lots of pictures and explanation!

PIC323D – 3D Rendering Engine for the Microchip PIC32

This is a high-speed 3D rendering engine I wrote during my sophomore year of college for the PIC32 series of microcontrollers from Microchip.

It’s based on an eflightworks PIC32 DIP breakout module and uses a Newhaven Display TFT and evaluation board. The code was written entirely in C using Microchip’s MPLAB compiler with no additional libraries.