Hackit: a better homebrew control interface?
posted Mar 4th 2008 12:22am by Will O'Brienfiled under: HackIt, cnc hacks

I’ve built a few CNC controllers, and I’ve been a bit disappointed by the state of the control interfaces. Most diy systems rely on a parallel port interface, while a few use a serial connection. Just one that I’ve seen has an actual USB interface, but it’s limited to use with the fab@home software for now.
So what’s the hackit of the day? I think that the hardware hacking, home fabrication community could really benefit from a standardized I/O interface for driving CNC machines, robotics or anything else along those lines. For CNC work, it’ll need a serial or parallel port emulation scheme to allow existing software to take advantage of it. For quicker home development, some simple API’s for controlling the device would be excellent. Imagine using perl to develop robot logic with just a few easy function calls…
Hackit is really your show, so lets hear your ideas.





I’m a fan of the PIC series with USB (I use the 18f4550 extensively, though I’ve used the 2550 for its smaller form-factor). When configured right, you can use a relatively small and simple circuit, run it off USB (with serial port emulation or full-speed), and even use a boot-loader to program it (no more needing that programmer after you get it going). There have been people experimenting with the boot-loader in non-windows environments, I know, but I haven’t really explored these.
This is what I’ve been using to run most of my projects lately — especially with their samples program, it’s a fairly cheap option. Plenty of I/O ports, libraries for PWM, a decent amount of memory, wide operating voltage and the student version of their C18 compiler (with MPLab IDE integration) is fairly full-featured (completely full-featured for the first 90 days, if I recall correctly, then there are certain limitations). I’m actually already looking at using it for a CNC interface — I’ll tell you how it goes.
Posted at 1:31 am on Mar 4th, 2008 by matt