Exciting Integration Test

A video is worth 10,000 words, so let’s start there!

Progress slowed a bit during the summer months, but I spent a lot more time working than writing about it, so you’re looking at a lot of changes.

First, I finished the basic mechanical design all the way through the gripper. While the arm in the video is a bit of a hodgepodge, it’s now possible to build one where all six joints share almost every part. This became a key goal to drive costs down. I only need to make a few more parts to have everything ready to test all 6 axes pretty soon.

Second, while the basic principle of having each joint controlled by its own Arduino has stayed, the implementation went through two big changes. I dumped the Uno-based boards for the Teensy 3.1 (final version will probably use the LC), because it’s capable of running Accelstepper at far higher pulse rates (10-20x, at least). It’s far more power for a lot less money, and it’s effectively as easy to use, so it’s pretty much a big basket of #win.

Next, I switched from the Pololu 8825-based boards to the Panucatt Devices version, and couldn’t be happier. They come pre-soldered with a heat sink for maybe $2 more, and are also much better designed. Setting the current limit on the Pololu boards required the hands of a neurosurgeon, and I killed three of them when my probe tip slipped a millimeter and shorted something. That gets old fast.

The Panucatt boards put most of the parts on the bottom and the pot and (larger) test point on the top, which makes them far more user-friendly. The only remaining question is whether they can run the “elbow” motor at ~1.8A without forced cooling. I’m still using an old Gecko drive for the “shoulder” motor which uses 2.6A. The Panucatt drives theoretically go up to 2.5A which would be enough, but I think they need a much larger heatsink to survive. It may just be easier to run that one joint with a $20 Chinese driver box.

There’s a lot left to do, but it’s starting to feel like I might have something like a final configuration. I’ll need to design and fab up the boards, and I’m still figuring out how to handle homing (which is necessary) and position feedback (which would enable “teach” mode and some other powerful things), but I have an idea in the mail which I should be able to try soon. I also have to make the gripper, but that looks to be easy enough. With a little luck, we’ll be picking things up before Halloween!

Coordinated Joint Motion with Arduino(s)

The past two weeks saw the first test of the arm using Arduino-based control for the joints. While the basic mechanical design is starting to firm up, the control model is still very experimental. This video shows the two largest joints of the arm running in (mostly) coordinated motion.

The basic idea here is that each joint is operated by its own Arduino running an Accelstepper-based control program, with one additional Arduino serving as the master controller. Communication happens over I2C, assisted by an Enable line so that multiple joint controllers can be triggered simultaneously. Here’s how it works:

  1. The user decides where they want the robot to go
  2. ____ performs an inverse-kinematic calculation to determine the target angular position for each joint that’s needed to put the tip of the gripper (or whatever) at the user’s desired location. (This part is TBD, but there are a variety of known solutions available to us so I’m saving it for later)
  3. The master sends each joint its target angular position in degrees
  4. After each joint has been issued its marching orders, the master pulls the enable line HIGH
  5. For each joint, when the enable line is pulled HIGH, it moves to the target position

The actual routine is a little more involved, because in addition to issuing each joint a target position, the master tells each joint how fast it should go so that the motion is somewhat coordinated. Basically, the master takes the movement each joint needs to make, figures out how fast it can do it, and then adjusts the speed of each joint so that they take the same amount of time to complete the movement. This approach brings a variety of pros and cons.

The big advantage to this approach is that it allows us to control each joint with an Arduino, which everybody and their dog knows how to use, and gives us an extremely-modular system. Those two advantages are big enough that I’m willing to put them up against some significant downsides.

First, and biggest (depending on how you look at it), there will be some significant limitations on the types of motion you can do. Essentially, it will be a sort of point-to-point machine, and things like having a tool tip follow a complex path will be either difficult or impossible. In thinking through a variety of meaningful use cases, I feel like the simpler type of motion control will suffice, but there’s a risk my view is too narrow.

There’s also an issue of cost. If a single Raspberry Pi or Beaglebone Black might be sufficient to run the whole thing, then the eight or so Arduinos required for my design will cost anywhere from the same (Chinese knockoffs) to 2-3x the price for brand-name boards. The total difference in the worst case is about $100, so it’s not astounding, but you can’t take too many +$100 decisions before you end up with a $5,000 robot.

Ultimately, the good news is that this part of the robot isn’t set in stone. If someone (who may or may not be me) ultimately develops a all-in-one control, maybe based on the Machinekit/LinuxCNC project, it could be bolted on to this robot without too much waste.

Making the Impossible: Extrusion Screw

While a lot of the parts we make are the kind you could do with a basic drill press/lathe/mill setup, one of our most recent ones was a little bit more complicated. They say a picture is worth a thousand words, so I’ll just put this here…


If you know what this is, you know they usually don’t come cheap.


The first time they see it, most people blink and go, “How in the $#@! did you make that!?” You’ve not only got a non-standard square thread form which would make a lathe operator sweat, you’ve got a tapered section in the middle, and it’s pretty thin at the left side, which makes holding it during machining kind of tricky. A lot of workaday shops wouldn’t want to touch this.

The truth is that once you understand the geometry and how the machine control works, it’s a lot simpler than it looks, but it was still one of the more complex parts I’ve made. This part required setup with the 4th axis, so the part could be rotated while being machined.

The 4th axis can rotate the part in sync with the other axes of the machine.

The 4th axis can rotate the part in sync with the other axes of the machine.

While the final part was a bit more expensive than what we usually do, it was still less than a typical car payment, which is to say it was a great deal. In case you’re still wondering what this part is, this article is a good start.

MiniPCR Kickstarter – It’s better when you beta

One of my first customers was a really neat project called MiniPCR that went on to successfully exceeded its Kickstarter goal with a campaign that raised $66,000 to build a desktop polymerase chain reaction (PCR) DNA sequencing device for under $500–a tenth of the price of typical lab machines. This project was a perfect example of the type of customer we can be a great partner for.

Kickstarter campaigns are most successful when they’re launched after a product has been put through the paces with a small group of test users. While Zeke was able to make the first MiniPCR by hand in his garage to prove the basic design, the process was extremely time-consuming and yielded parts that were functional but unattractive. That’s when he found Seaport R&D.

Over the course of about 9 months, we made sets of parts for a total of about 50 machines in batch sizes from one to 20 sets. Numerous small design changes were made along the way, allowing Zeke and his team to economically test design improvements before committing to a large production run. By the time their campaign launched, they knew they could deliver a working machine at a viable cost, and their success speaks for itself.

MiniPCR parts being machined in a custom fixture

MiniPCR parts being machined in a custom fixture

If you need prototypes or pre-production samples for your crowdfunding project, contact us today to find out how we can help make your campaign a success.

Digital Readout for a 4×6 Bandsaw

The ubiquitous 4×6 bandsaw is one of the most-modded tools out there, but despite a lot of searching, I’d never seen someone fit a digital scale to one. Looking on eBay, I found a 12″ model for about $40 delivered, so I ordered one and knocked together a mount that easily replaces the stock stop setup. With the remote readout, it’s easy to grab a piece of stock and cut it to a precise length without having to find where you left your caliper or rule.

This is a pretty basic setup and I’ve already got some plans to improve on this, but as it is it’s a super-easy mod with a big payoff in efficiency. My cut pieces come out within .020″ or better of the set size, and the difference is likely due to the saw rather than the scale. I haven’t taken the time to fully re-align the guides on my saw because it worked well enough out of the box for my uses. If I need something closer than .020″, it goes on the milling machine or lathe.

I’ve prepared some drawings which you can download here. Before using them, I suggest taking some measurements on your saw. These saws are made by many manufacturers, and I don’t know how similar they are.