3 Mar 2012, 8:34pm

1 comment

Open Source Parametric CAD

A little while ago I was sitting in a local cafe eating breakfast. I had my calipers, laptop, and a hobby brushless motor controller out in front of me. I carefully measured each dimension, adding bits of geometry between bites of pancake. Eventually, what started out as a simple cube on my screen, started to resemble an accurate model of the object I held in my hand.

"When bits become atoms."

As I finished eating breakfast, a women in her late twenties came up and introduced herself. Completely fascinated, she had been watching this unfold and wanted to know what it was she had seen, “I had no idea that was how things where made! It looks so complicated. I always assumed someone just… took a picture or something.” I explained to her how everything around her in the last twenty years more complicated than a paperclip was once a model in a computer. She left with a huge grin on her face. I like to imagine she went about her day, looking at the things in her world in a whole new way.

This got me thinking. Why don’t more people have the tools to design their world? It is invisible to most of us, but it shouldn’t be. Look around you. Every car. Every building. Every toothbrush, office chair, markerboard pen, laptop, television, overpass, and can opener. They all once started as a computer model. Once you’ve gotten past the why part of having an idea, it’s the first step in finding the how in build something.

A missing piece.

So why is this important? With the rise of 3D printing and laser cutting, more and more people have access to low skill manufacturing machines. Machines that can build very complicated objects, cheaply, with little or no training. Unfortunately, the software necessary to tell those machines what to build is still very expensive, difficult to use, and out of reach for most people.

So what is a Parametric CAD Modeller anyway? Parametric CAD is software that uses (mostly) two dimensional sketches to build up three dimensional forms. The parametric part is where the relationships between the circles, squares, and lines in the 2D drawings are formulas. This allows one to say, build a propeller where the number of prop-blades can be changed with one number. Or a coffee mug, where you can specify how much coffee you want it to hold. You can specify that the handle is always attached to the side of the coffee mug, and that the mug always has a bottom. In a sense, parametric CAD is a visual programming language for describing all things. Well, most of them anyway.

Making these tools more accesible to more people will require overcoming two immense hurdles. The first is the cost. Parametric modellers are very, very expensive. This means that unless someone else has the same very expensive CAD package as you, you won’t be able to effectively share your fancy widget with them. The other side effect of this is that it creates vendor lock-in, and dramatically increases the barrier to entry.

The second, and harder problem, is usability. If our goal is to make product design more accessible to more people, then we’re going to have to make great strides in how people learn CAD, and how they interact with CAD modellers.

Taking a survey of currently available PLM packages (that’s “Product Lifecycle Managment” in industry-speak) and you notice something about them. They’re massively complicated & opaque interfaces designed for professionals who will have spent hundreds to thousands of hours learning their idiosyncrasies and capabilities. These interfaces, while they all share some common functionality, have each taken their own separate evolutionary path. Sometimes with maddening results.

Of course, an interface capable of describing All Things is going to have an inherent level of irreducible complexity. At some point, a new user is going to have to learn how to make three dimensional shapes out of two dimensional drawings. They’re going to have to learn how a thing is made up out of a collection of features, and how these features will have dependencies. They’re going to have to do a lot of learning. That’s okay, we can make that process easier.

Parametric CAD is expensive and hard to use, let’s address the expensive part first.

Open source development cycles have shown time and time again, that they are capable of building highly reliable, highly functional and extremely complex systems. Like the web browser you’re reading this on. Or the operating system in your phone. Already, there are a few OSS CAD projects under way. As it pertains to our particular problem, currently there is OpenCASCADE.

OpenCASCADE is a parametric kernel. It’s the code that does The Math and provides the core logic used to describe All Things. Around that you will need some sort of user interface to talk to the kernel. Some way to describe what you want it to do. This is an area where open source software doesn’t do as well. There are lots of reasons for this.

I think the core difficulty is that the motivational forces which compel individual unpaid contributors to work on a complex project are generally at odds with good UI design. At the end of the day, a single person is going to sit in front of a computer screen and try and figure out how to use an interface. This person is going to have to figure out the motivations which lead to certain UI design decisions. Decisions made by many individual contributors. This creates a many-to-one mapping of design decisions, and generally leads to software that requires a CS degree to understand.

If an open source project does have a UI designer, this designer is further hamstrung by having little real power to keep the design on course. Motivating volunteers to throw out their pet feature because its not right for the end user is a good way to end up volunteerless. UX (user experience) design is an area of computer science that is fraught with “Armchair Experts”, as it frequently appears subjective to those unfamiliar with design principles. This leads to lots of heated discussions about a particular design direction, and often creates this situation where it’s just easier to keep everyone’s pet feature in a preference somewhere rather than settle on one model. Of course, there are examples of OSS projects with good UI, but they’re overwhelmingly single contributor projects.

So how do you build good UI and still have your OSS cake too?

My thought was that one might be able to use Kickstarter to pre-fund a particular design direction. It works like this: a design group creates a UI specification for an area of functionality. This is usually a document describing behaviors, structure, and user experience flow, as well as target users and their motivations & backgrounds which will govern the design. It often includes example animations to illustrate the behaviors and functionality. Then, that design document is taken to Kickstarter, and the community is asked to fund the salary for the required number of engineers to implement the design round. When it’s done, the software is released out into the open. If the design has been implemented and executed well, the community will be motivated to donate more for the next round. If not, the engineers move on to something else. As the previous round is open source, another group is free to take the product in a new direction if needed.

This allows the direction of the software to be controlled by the people who use it in a very, very direct manner. The difficult part in making this work of course, is convincing the community to bootstrap the first round. A design/engineering team will be trading on reputation. The project will still require lots of volunteer help, and the there are still lots of other problems, but does solve one problem: a clear direction, attached to a customer base willing to support it.

Might work, might be a dismal failure, but I think its an interesting idea worth more thought.

1 Mar 2012, 1:53am
robotics Uncategorized:

Comments Off on Dorkbot SF

Dorkbot SF

I’ll be giving a short talk on my paper robots tonight at dorkbotsf. Here are a few of the flat patterns should you wish to try and make some paper hexapods of your own. Have fun!

13 Feb 2012, 2:08am


On Bike Seats and Ball Bearings

I left my bike in a bad part of town yesterday. I forgot about it after meeting up with my significant other, and abandoned it out on the street all night. When I woke up this morning and went to go retrieve it, the seat was stolen. To my pleasant surprise, the rest of the bike was still there. As the French like to say, c’est la vie.

What’s funny about this, is that in all likelihood, I was having a conversation with my roommate about stolen bike seats during the time frame this was happening. He told me about an interesting theft prevention method for all those things on your bike bolted down with socket head screws. Your handlebars, your seat post, your brakes, etc.

The trick requires some ball bearings, and some super glue. You’ll want 1/8″ and 3/16″ chrome alloy ball bearings. You can find these at your local hardware store. You’ll also need some cyanoacrylate, aka superglue. Also available at your local hardware store. The way this works, is you super glue the appropriate sized ball bearing into the socket head, and put some superglue in to secure it. Then, when some entrepreneuring crack-head decides that your seat post is the most economical manner in which they can acquire crack; they spend a few moments being confused that their allen wrench doesn’t fit, and you keep your bike seat.

Of course, someday you may want to adjust your seat-post, or replace your handle bars. Personally, the only time I find myself doing this is when I’m replacing my old stolen seat with a new one. On the rare occasion you do need to upgrade or adjust things, you’ll have to soak the superglued ball bearing in acetone, and then use a large magnet to retrieve it from the socket.

Of course, that’s a pain in the ass. Which is precisely the point.

17 Jan 2012, 7:03pm

Comments Off on Hanging Around In Brooklyn

Hanging Around In Brooklyn

It’s been five months since the whirlwind adventure that was the Edinburgh Fringe Fest. I’ve decided to take a break from robots and head back to NYC to hang out with The Paper Dolls. This time in Brooklyn. They’re working on a new doubles act for aerial silk slated to debut at the House Of Yes for The Sky Box‘s monthly cabaret show.

It looks like the website is a little out of date, but doors are at 8:00pm. If you find yourself near Williamsburg this Thursday the 19th, I highly encourage you to wax your mustache, hop on your fixie, and ride on over to 342 Maujer St for some high skills aerials.

I’m pretty excited for it. They’ve spent the last couple of years working on the arduous task of combing aerial dance, with classical theatre. This often necessitates reducing the skill level of the performance quite a bit. Usually to fit the story, but more often to reduce performance risk exposure. That’s a technical term that means roughly means, “you can’t do your hard tricks twice a night for 30 days in a row.” Most big top aerial performances you will see fall under this umbrella. In Edinburgh, I suggested they dust off something more traditional, and so they’ve put together a very complicated doubles routine that takes full advantage of the SkyBox’s towering rigging truss. This is a space purpose built for those out on the cutting edge of the aerial arts. There are no fancy costumes. No complicated theatre hardware. Just 10 meters and 9 points to hang from.

New York is a brutal place to survive as a performing artist, but out on the edges, hidden amongst the warehouses, you can find some amazing things if you look up.

9 Jan 2012, 6:43am
robotics software

Comments Off on SpaceExplorer & Processing

SpaceExplorer & Processing

This might be useful to someone.

I spent a few moments today trying to cobble together an interface for driving multi-DOF robots around. It’s been a long time since I’ve done anything with inverse kinematics, but it seems like a good place to start. First things first though. Having a controller than can come close to expressing the range of motion in a hexapod is going to be useful for moving the IK chain targets around.

A while ago I bought a 3DConnexion SpaceExplorer and spent a few hours trying to learn how to make it useful. It’s pretty hard to use at first. I recommend downloading Google Earth and spending about five hours exploring the virtual planet on a fast internet connection. Highly worth it, the time will fly by.

It occurred to me that a space-ball is the an excellent controller for smoothly directing a symmetrical hexapod. Tilts, directional gait mixing, and rotational turns are all natural gestures. Most of the heavy lifting for this code is handled by the ProControll library. It allows you access to multi-axis controllers. There’s a bug in it that someone named “bud” patched that allows it to see the SpaceExplore and other controllers like it.

Anyway, someone else might find this useful for their own processing sketchs. The working parts and pieces where collected together from this thread on the processing forum. It’s been tested out on MacOSX 10.7.2, and likely works on other platforms as well.

Files here: SpaceExplorer.zip

4 Jan 2012, 5:47pm


Paper Robots, Part 3

One of the often overlooked, and rather important steps in discovering a novel solution to a problem, is getting it wrong the first half dozen times. It helps inform the design process later, and allows one to not worry so damn much about the current state of affairs. Other things that help that process along are not worrying about it costing too much, or being too emotionally invested in the outcome because you’ve already spent so much money that you can’t stop now. This is something that organizations and individuals seem to struggle with.

To that end, I’ve been trying to figure out ways to make experimenting with robots cost less. Optimizing for multiple iterations, instead of getting it right the first time, as it where.

As I’ve written about in the past, cost can be measured in many ways. For this exercise I’m primarily interested in cost of materials, cost of manufacturing, and assembly time. Design time isn’t particularly optimized here, but as we build on previous iterations, hopefully we can stay ahead of complexity.

"Manufacturing time is a factor, so please pay attention."

On the cold hard cash front, I think I’m doing pretty well. This little fellow consists of: $1.00 in cardboard, $54.60 in servos, and $29.95 in servo controllers. Plus some odds and ends like a power supply and a laptop. Which, if you’re reading this, you probably already posses. If your budget is especially tight, you could probably even “borrow” the necessary gallon of rubber cement, 24 paper clips, and 6 yards of packing tape from the office. Tell them its “for robots”. Anyway, cost is important to me. Mostly because I’m currently unemployed, and while I enjoy spending money like a drunken sailor, it does tend to cut into my savings more than I like.

So, how well does a cardboard 12-DOF robot work? Pretty well, I’m happy to say. I finished setting it up on the kitchen table last night and some friends and I made some really basic motion tests. The main area for improvement is the hip joint. Instead of making them out of paper, I made them out of tape. This probably would have been okay if I hadn’t run out of structurally sound filament tape mid way through. The clear packing tape I replaced it with is absolutely terrible for hinges, and most of the legs are starting to come off. It’s okay, we can repair them.

There are a bunch of areas where things could be improved. The way the body segments go together is a little hokey. It’s extremely rigid and strong, (holds a large DSLR quiet nicely), but the process of gluing it together is tricky and requires a bit more patience than I want to be known for. Also, toxic glue. I currently use rubber cement because its strong, flexible, and dries fast, but I could do with out the smell.

"You're in the desert, you see a robot lying on its back, struggling, and you're not helping— why is that?"

You can see how the segments fit together here. For the next revision, the top and bottom plates will likely be slotted to help align them. I should probably also make some allowances for controller mounting. We had a good time getting the little bot to walk in circles, tying its umbilical cord up around its feet. Cable management in high servo count machines becomes a problem quickly if you don’t design for it up front.

The other thing that becomes obvious, is that 12 degrees of freedom is not really enough for a six-legged, symmetrically shaped robot. The plane of motion for the front/back sweep is an arc, and the feet drag quite a bit in anything other than circular gaits.

Still, it’s fun to play with, and if you’de like to make your own it shouldn’t be too difficult. You’ll need a printer for patterns and an x-acto knife, or a laser cutter, to cut out the cardboard. Have an irrational fear of x-acto knives & don’t have a lasersaur? Your local hackerspace may be able to help you out. Here in the bay area there is the excellent Noisebridge, and Tech Shop. On the east cost check out NYC Resistor. There are many others.

You’ll need a sizable chunk of cardboard to get started. Here’s the flat-pattern as a PDF file. It’s CC-NonCom-ShareAlike licensed for your remixing pleasure. It’s also half baked, as the hip joints aren’t quite done yet. An exercise left to the reader, as it where. For servos I use the Corona DS 939MG. For the drivers, I can say enough nice things about Pololu. I have the 18 channel version of there driver, as well as some of their other products. They’re all very well thought out and documented. They go the extra mile and even have a cheesy little desktop controller app for bootstrapping the process of animating 18 channels. On that note, you may want to pick up a little step down voltage converter and Arduino if you don’t have a bench supply and you want to go wireless.

After that, it’s software the whole way down. Then it’s turtles.

2 Jan 2012, 3:15am

1 comment

Paper Robots, Part 2

Paper linkages are pretty neat, but ultimately if I want these little parts to do anything I need to figure out how to make them move. Not being force based actuators, servos are the wrong answer, but they’re cheap and I have piles of them. Because of their ubiquity, supporting hardware is easy to find as well. For example, these excellent low cost, high channel count PWM servo driver boards from Pololu.

This platform of parts for position based actuators is a large part of what perpetuates their continued use in hobby robotics. There really isn’t a platform for force based actuators yet, and we won’t see real accelerated innovation in force based control systems until they’re a bit more ubiquitous. That’s what platforms do. They lower the cost of entry, and allow a larger number of people to try out new ideas quicker than before. Until then, it’s going to be servos the whole way down.

I tried two designs. The first was an attempt to keep with my self-imposed goal of making linkages fold up from a single flat pattern. There are a bunch of paper folding tricks that can allow one to create arbitrarily complex geometries in paper, but they require back folding which tends to weaken the joints a bit. You can see an example of this folding near the mini grommets:

The back fold creates an extension in the flat pattern that creates more clearance at the expense of increased bulk. This particular design worked out ok, but the back fold was very fragile when loaded from one direction. The distance from the servo arm and the plane of motion was also a bit of a problem. The servo arm should ideally be centered under the upper swing arm linkage. Offset as it was, it still generated a fair amount of force and a good travel distance, but I wouldn’t expect it to last very long before it tore itself apart.

Confident that I could handle up/down reasonably well, I set about tackling the forward/back motion for the leg. I kept the same servo mount pattern for the up/down link, but moved the grommet bearing farther out for more leverage. For the front/back servo I decided that folded single pattern robots, while technically challenging, don’t really add a lot to the experience. So, with that ideal cheerfully abandoned, I was free to come up with a more robust general solution to mounting servos in paper.

The front/back servo is mounted in a little friction fit cup with lip tabs that glue to a hole cut out of the side panel. Sort of like a tiny paper cardboard box. As long as the direction of force runs parallel-ish to the mounting surface the servo will stay put. The mounting tabs also add a bit of rigidity to the side wall. So far so good.

While the paper servo mount cup was a success, the attachment for the arm linkage was a complete failure. I didn’t bother to design the paper-clip servo arm linkage up front, and tacked it on afterwards. As a consequence the lower edge where the paper clip attached started to bend and fall appart almost immediately. Connecting the servo arms to the paper links in a robust and secure method isn’t something I’ve found a good general solution too. The paper-clip is pretty strong, but it presses on the paper with a small surface area which needs to transfer to a larger surface area on the linkage. We’ll try to find some solutions to those ideas next time…

Ultimately, the goal of these objects is to try and find a way to make a really, really low cost force actuated motion system. To that end, I thought I’d play around with force and see how these linkages and construction methods behave under load.

I’ve been making all my previous legs with 140Lb charcoal sketch paper. For this next one, I wanted to see how well cardboard would work. Corrugated cardboard is really strong, and when creased, flexible. It’s an awesome construction material, so long as it never gets wet.

I used 4mm cardboard, which has a much larger bend radius than 0.2mm card stock I had been previously using. This necessitated scaling up the leg quite a bit. I made a double swing arm, with a lower leg. Mostly to try try out two different hinge attachment methods, but also ’cause it looks cool 😉 Important stuff. The larger swing arm uses a pair of grommets, paper clip hooks, and large rubber bands to set the force. It works beautifully, and the paperclip rubber band holders let me adjust the tension easily.

The lower swing arm sets the rubber bands from the outside, and uses a single grommet. It’s too delicate to hold together very well at this scale. The leg itself is pretty fun to play with, and can jump surprisingly high. It’s completely passive of course, but it gives me an idea of how responsive the linkage itself could be. Because the leg weighs almost nothing on its own, it can move really fast.

There are a couple of directions I want to go from here. Maybe some simple force based actuators. In the mean time, maybe I’ll make some jumping coffee tables.

28 Dec 2011, 8:35pm


Paper Robots, Part 1

I’ve been trying to make little paper robots. Or rather, I’ve been trying to create a library of mechanical linkages that I could later make robots with. Paper is cheap, easy to work with, and I can try out a bunch of different ideas quickly without breaking my piggy-bank. In some forms, such as cardboard, paper is extremely strong for its weight. This makes it an ideal platform for building robots, and leads to The First Problem with robotics: any sufficiently agile robot will weigh less than its power supply.

Of course, people have built robots out of paper before. Some of them have even managed to get up and walk around a bit. What I’m interested in though, is reinventing the wheel. Or leg, as it where. I’m interested in seeing what sort of mechanical linkages one can fold up from a single sheet of paper. No purpose really, other than that I like the patterns left behind, like little shadows on the page.

The best way to experiment with these paper mechanisms, is to place a sheet of card stock on a cutting matt, pick up an x-acto knife, and start folding up parts. This is where I started.


The first linkage I tried didn’t work very well. It was difficult to control because the string only had leverage for the first joint. After that, there wasn’t a good way to provide an antagonistic return force. The second joint used the side walls to create an arm lever, but I got it backwards, and the control linkage went the wrong direction. The third design worked beautifully. The side walls make up the extension arm levers, and the front face folds out to make an attachment point for contraction.

Not bad for 20 minutes of doodling and a shot of vodka.

What about multiple axis? Is there a way to make a double joint? The obvious solution is to make two separate bends at 90 degrees. This isn’t very strong, structurally speaking. Rectangular sections in paper are inherently unstable, and lateral forces would cause the tube to collapse. Triangular tubes, on the other hand, are very strong and stable. By combining three hinges offset at 120°, I can get a full 360 rotation. A paper universal joint!

Universal Joints

I started out with a simple double bend, but got the number of triangles wrong, the second one faired much better. For the third, I tried to see if the pattern could be repeated indefinitely along an axis. It could, and in this manner, I can make an articulating linkage of indefinite length. I made a CAD model, cut it out on the laser, and assembled a three-link arm.

Paper Snake

Quickly, one notices that there is going to be a rather large number of control lines in short order. This lead to The Second Problem with robotics: any sufficiently agile robot will have more actuators than you have the patience to solder. This is why, outside of universities, you will rarely see a robot with more than 18 actuators. The human body has well over 200, by comparison. The larger the number, the more likely they will use an open-loop position based control system. The reason for this is what I call The Third Problem with robotics: any sufficiently agile robot will have a sensor system twice as complicated as its motor system. This leads to an interesting observation about how robots are built.

I am often struck by how backwards the field of robotics can seem at times. If your goal is to achieve the agility of biological systems, there are some excellent models out there to learn from. One is probably doing the backstroke in your soup right now. Their’s a fair amount of variation in how the major components are arranged, but without exception they all have the following characteristics:

  • A massive collection of sensors.
  • Force based actuators.
  • A neural network to connect the two.

Everything else is details. Invariably, and I’m not immune to this, when someone starts building a robot they usually start with the actuators and skeletal linkage. Why not start with the sensors? There’s a lot more territory to cover there, and a lot more room for improvement. The answer probably has something to do with engineers. We really like making flashy demos, and a clunky pile of servos is inherently more interesting than an inert pile of sensors. Also, sensors are hard. Can’t we just go back to actuators and linkages?

After making the little paper universal joints, I got stuck in an existential loop. Why make robots at all? What’s the point? It’ll just wiggle around a table at best. With so many hard problems to solve ahead of me, why not just give up now and make puppets? Puppets are cool, and really interesting in their own right. There’s plenty of room for experimentation, 100% less ARM/AVR assembly, and no messy wire harnesses to solder.

But… robots!

Sometimes one just has to slog through the existential crisis of purpose in the hopes that the journey will be its own reward. I decided to try and remake a classic: the hexapod. Only, I would make it out of paper. I’m sure it’s been done before, but anything worth doing once, is probably worth doing with style. For extra silliness, we’ll try and make the entire thing fold up from as few parts as possible.

More of These

After a few hours, I came up with the first part. A two axis swing arm linkage. It folds up from a single sheet of paper, and will scale up to 6 legs. Next up is the main body, but first, it’s time for me to use my own sensor network and go find lunch.


"But will it ever know love?"

Everything is easier when I’ve had lunch. Here’s the completed hexapod skeleton. I still need to figure out how to jam 12 little servos, a battery pack, RF link, and a sandwich in there. In the meantime it’ll just hang out on the desk looking confused.

23 Dec 2011, 9:03pm

Comments Off on When I Grow Up.

When I Grow Up.

Two years ago I quit my job at a silicon valley based froot company to follow my dream of becoming any thing but a computer programmer. I had been programming since I was 15, professionally since I was 19, and it was high time to move on to another career. This is hard. As I’m often fond of pointing out to other makers: any sufficiently interesting hardware problem will devolve into a software problem.

Oh, but what should I actually do?. I had no idea, so I tried some different things. I built some giant art. I joined the circus. I worked on little pet design projects here and there. I also helped build what I can only describe as a six-legged, inflatable, walking bouncy-castle called Ant-Roach.

Part of the problem with settling on a new career, is that I suffer from too many hobbies. I’m sure many makers can relate. I could do more hardware engineering, and expand out my EE skills. I could do more mechanical engineering, and build giant robots. I could spend more hours in CAD, designing fab little bits of metal and plastic. There are lots of options.

I’m still not sure what I want to be when I grow up, but one thing is for sure: sitting atop a giant walking robot is not a bad vantage point from which to contemplate one’s possible futures.

You can read more about Ant-Roach here.

22 Dec 2011, 1:01am

1 comment

On Laser Repair.

Recently, I acquired a laser cutter.

It’s a giant beast of a thing, originally designed for fabric cutting. It was built by the Han Yue Ming Laser Company in Dongguan, China and features an enormous 1400x900mm cutting envelope and a 150W tube. We do a lot of design work around here that gets cut out on lasers, so finally having one in house was pretty exciting!

We wheeled it into the shop, hooked it up, and got down to business. Very quickly though, excitement faded into frustration. Business became working around the myriad array of bugs, quirks, and down right dangerous near misses. When you acquire an imported hand me down laser cutter, what you are really acquiring is a relationship. Not unlike the one a doctor and patient might share.

I don’t remember what the final straw was. It might have been the “Top Wisdom” control software with its incomprehensible interface. Maybe it was the occasional controller crash that would cause it to ignore all the safety interlocks and start cutting at full speed with the doors open. Or the terrible motion planning that would leave the corners uncut when running higher than 2% speed. I’m not sure which, but ultimately we decided that maybe the best thing for us to do for the patient was brain surgery.

Just follow directions.

There comes a time in every makers life when they ask themselves, WWTID?1 I really liked what the lasersaur folks where up to. Open source lasers, I like open source! What could go wrong? Against the better judgment of my peers, the first route I went down was to explore the idea of replacing the internal guts of the PN-1490 with an Arduino. This involved doing a lot of sleuthing and debugging to determine which of the various cables and pins in the Chinese laser went to what parts of the control system. It was surprisingly well documented inside, but unfortunately not in a language I can currently read.

After taking lots of pictures to navigate my way back should I get lost, I unhooked the servo drives from the main controller and attached them to the Arduino. Loaded with the latest lasersaur build it only took a few minutes to get the X/Y table up and running. That’s as far as we got though, as we quickly learned that some of the software control systems are not read for prime time.

After doing a fair amount of research, I found a local importer called LightObject, run by a fellow named Marco who had a very lively and supportive tech forum built up around his product catalog. There is this expression I really love, If you want to know your future, look to your friends. The same goes for companies I do business with. If want to know how a company will treat you, look to their support forums. There was lively discussion on the board about laser conversions, DIY systems, and other esoteric errata so I decided to take the plunge.

Fetch me a new brain, Igor.

He carries a line of laser controller systems that share the nearly universal form factor found in Chinese imports. They’re reasonably priced, and after reading up on the options I ultimately settled on the AWC-608. It arrived a few days later and we immediately set about hooking it up.

There where a few problems, for one, the cabinet voltages where all dialed in for mainland Chinese power. 220V/60Hz. Since most of the internal power supplies where of the switched variety, I figured some of them might be able to run their buck converters from lower voltages. Usually there’s an input voltage range on the case that lets one know if one can get away with this. As luck would have it, most of the power supplies maintained stable output voltage at their designed ranges when supplied good ol’ fashioned American electrons. Only the controller power supply needed to be replaced. While the AWC-608 claims to require 24V, it runs reasonably well at 12V and I was able to hook up a tiny 12V switched supply with the same form factor as the original.

The laser power supply that came with the cabinet was another matter all together. After spending a few days trying to reverse engineer its control protocol (which looked a lot like line noise to my oscilloscope) I eventually determined that it was absolute garbage and ordered a new 150W supply from the fine folks at LightObject. Looking at the almost identical interior of these two objects side by side it became clear what the problem was. The new supply was made with electronics, while the old supply was actually made from poop. It’s important to remember that when designing a laser power supply, the only corners you should be cutting are with the laser beam. I’m honestly surprised it hadn’t caught fire.

Poop. Not a good conductor.

The internals of laser control systems are not really well documented. It took me a while to figure out how the PWM signal interfaces with the POT on the front panel. It took even longer to figure out that the “Water Protect” signal is an active low enable control signal for the power supply that hooks up inline with the flow switch from the chiller, and that I need to flip my magnetic limit switches. The internal lights needed replacing. The list went on and on.

I had now spent over a thousand dollars and a weeks worth of time replacing the guts of this machine. It was a new beast, ready to face a whole new world of possibilities. LightObject’s AWC-608 controller is a nice piece of hardware, that continues to be actively improved upon by its developer. The windows based control software works and is pretty stable. If you find yourself in possession of a misbehaving imported chinese laser system, I highly recommend checking them out.

1 “What Would The Internet Do?”