Go Back to handibot.com
sign up or log-in


Low level communications with a HandiBot?

Posted by Shawn.Walker 
TL;DR: Would it be possible for ShopBot to release some information about the Handibot's communications protocol?
Heyas folks. I'm a Kickstarter backer of the Handibot, and have enjoyed tinkering a bit with it. So far, I've only made a few small signs with my Handibot, and would like to do a bit more. I'm more of a software person/developer than a woodworker, and my current project idea is more toward tooling than end result. But to pursue it, I need a bit of information to do so, and I was hoping that the ShopBot folks would be able to help out.

Right now, I'd like to attempt a semi-automatic Z leveling tool for my Handibot. The basic idea is that I'll place a moderately large copper-clad board below the Handibot, and attach a test lead (like an alligator clip) to the bit. When the bit touches the copper-clad board, they'll close a circuit, acting like a switch. My thought is that I could program a Raspberry Pi or similar small computer (or even possibly a microcontroller) to slowly drive the Z-axis down until it detects this.

To do this, I need to be able to communicate with my Handibot over USB without the assistance of the ShopBot control software. I've figured out some of how this would work, so far: It seems that my Handibot exposes a serial-over-USB connection. It looks very likely that this communication is mediated by the Silicon Labs "USBXpress" library. While figuring out how USBXpress does it's signalling might be an obstacle, there are a number of open source leads in this direction. Far larger an obstacle is trying to figure out the serial protocol between ShopBot control software and the MCU inside the Handibot.

Now, I realize from reading other posts that ShopBot is developing a newer model of control board to make interfacing easier. However, this direction is somewhat unsatisfying to me. Other than my wish to be able to program it, my Handibot currently works perfectly well. The thought of purchasing and attempting to install a new control board feels like a large cost to obtain my goal.

Thus my question/request: is there any available documentation about the serial communications protocol used by the ShopBot 20x series control board inside my Handibot? If no, would it be possible for ShopBot to release some documentation on this? Or, barring that, to release the source code to a small portion of the ShopBot control software responsible for mediating the lowest level communications?

Shawn Walker

Edited 1 time(s). Last edit at 03/04/2014 08:46PM by Shawn.Walker.
Hi Shawn,

What you are describing is nearly exactly what we sell for our larger tools to zero the Z axis.


You could make your own hardware as you've described fairly easily. It would be more straight forward to use our interface board instead of the raspberry pi, since what you want is already built into the software using our inputs.Typically, we wire ours with the aligator clip as ground and the plate as input 1. We will work on a document over the next couple of days that shows how to access the interface board where you can get to the inputs. We'll post a link when it is ready.

Hey David,

Thanks for your quick reply. I wasn't aware that such functionality was already built into the SBC software, and would love to hear more about enabling it for use with my Handibot.

That said, I'm a bit hesitant to start opening up my Handibot and poking around at the internal electronics. I have very little experience with such things, e.g. I'm not really fond of soldering. Moreover, I don't know how expensive or difficult replacing a fried interface board is, but I suspect it's both more expensive and more difficult than replacing a fried Raspberry Pi.

I'd also like to try other things with my Handibot. Looking at the Kickstarter campaign and at the current home page, I was under the impression that the Handibot's current audience was really software developers. This really excites me -- I don't know much about woodworking or CNC, but I'd like to learn more. And, being a rather skilled software developer, I thought developing some apps for personal use with my Handibot would be a great inroad. Or so I believed when I made my inital purchase.

It now seems that ShopBot's current roadmap for the Handibot is to create and sell a new motion control board to enable development. I find somewhat distasteful the thought of spending (potentially) a few hundred dollars more to "upgrade" my Handibot. "Upgrading" to get functionality I had assumed would be present at the outset. On top of that, I don't know how difficult performing the upgrade will end up being -- again, I'm not really all that handy with a soldering iron.

So I was hoping that ShopBot could release some information to allow me to develop for the machine I have now. I'm not asking for a polished SDK -- the upgraded motion control board seems a reasonable approach to delivering a polished SDK. Just a description on how the current motion control works.

Or, if that's not possible on the face of it, maybe you could describe candidly why it's not possible. I imagine the SBC software contains some Intellectual Property which ShopBot can't release. Like the previously mentioned USBXpress library, or perhaps some libraries from Vectric for performing things like the simulation preview. Maybe you have competition concerns relating to your larger form factor CNC machines. Would there be some middle ground where ShopBot could still provide useful information for potential developers without "giving away the farm"?

Again, thanks for your time and response!
Shawn Walker

Edited 3 time(s). Last edit at 03/05/2014 09:12PM by Shawn.Walker.
As an aside, is it the interface board or the SBC software which debounces the signal for the Z-leveling?

I am emailing you the promissed document now. It takes us a little bit more time to get it hosted, but I wanted to make sure you had what you needed sooner than later. I'm hoping this document answers your questions, but please let me know if it doesn't.


The guide you emailed me was very helpful; thanks for taking the time to put it together! I was quite impressed by how clear and polished it was, especially considering how quickly you got it together.

I'm still interested in the larger part of my request: I'd like enough information to interface my Raspberry Pi and my Handibot (with its current control board). Or as much along those lines as ShopBot can provide. Even if it's not nearly as polished and clear as the guide you sent me.

Shawn Walker
1 10" x 8" Copper Clad Prototyping board, $11.95
2 Large Alligator to Large Alligator test leads (as part of a set), $10.29

Starting with a 1/8" bit in tool change position:

After installing the 1/2" v-carving bit:

Connect up the leads:

Put the plate in place to run the Z-zero:

Edited 2 time(s). Last edit at 03/09/2014 11:19PM by Shawn.Walker.
'Glad the guide was helpful, Shawn.

Here are a few links to pinout and schematic for our current control card as well as general information for developers.

General Developer Information
Control Card Schematic
Control Card Pinout

Let me know what else I can provide to help with your project.

Re: Low level communications with a HandiBot?
March 10, 2014 12:44PM
Hi Shawn,

Not sure if this is what you have in mind, but the Neopixel LED indicator lights are controlled by an Arduino ProMini that reads the state of the output switches from the Control Card. The Sketch that runs on the Arduino is on Github...

Hi Shawn,

This is a tad belated ... but with respect to your original question: Where we are heading with the Handibot (and ShopBot controllers in general) is a full open-source hardware and software system that you can access at virtually any level.

I wrote a couple of things earlier today in more recent threads that provide a little more detail ... we're still a few weeks out on our first "introductory" SDK documentation that provides the basic info on what we are up to and how the interaction/integration will work. But it is coming soon ...

But again back to your original question ... that specific bit of programming you wanted to do can be done very straightforwardly by programming within the BASIC-like, OpenSBP language system that ShopBot uses. You can take a look at that ZZero.sbp file to get a pretty good idea how to do it ... but there is a lot more info in the "C:\Program Files\ShopBot\Developer Tools" folder. Just about anything that can be done physically by a ShopBot can be programmed pretty straightforwardly. I'm not suggesting you would use this system to develop Apps for Handibots that involve interactions with users ... but for controlling the tool in the manner you were interested in, it will work well for you.

Ted Hall, ShopBot
Reviewing this post of more than 4 year ago, I found that ShopBot shared the Control Card Schematics for the then available Control Card. I have not been able to find updated schematics for the actual Control cards.
I kindly request if it’s possible that you now share the Control Card Schematics for the Shopbot Tools Controller V303.
Thanks in advance!

David @ Shopbot Tools Wrote:
> 'Glad the guide was helpful, Shawn.
> Here are a few links to pinout and schematic for o
> ur current control card as well as general informa
> tion for developers.
> [url=http://www.shopbottools.com/mapplications/dev
> elopers.htm]General Developer Information[/url]
> [url=http://www.shopbottools.com/files/ShopBotCont
> rolCardV210Schematic.pdf]Control Card Schematic[/u
> rl]
> [url=http://www.shopbottools.com/files/ShopBotCont
> rolCardConnections.pdf]Control Card Pinout[/url]
> Let me know what else I can provide to help with y
> our project.
> David
Sorry, only registered users may post in this forum.