I am excited with the latest iteration of the Exo project that I’ve been working on. It’s much less of a traditional wearable exoskeleton but the aim is still to allow the user to walk. The new design has a lot of advantages over the current approaches that are out there, which I’ll get to in future posts.

One of the tricky parts that I’ve found in working on this project as well as others is designing and building the user input device. How does it talk with the main microcontroller? How should the buttons be configured? Do we need an LCD screen to facilitate the control? And how will this all be enclosed?

The latest design won’t necessarily be used with a walker out in front of the user so there isn’t an easily accessible place to put the control box. So some sort of remote control will be in order. I decided that a cabled remote won’t be a good option either as there are a lot of ways that the cabling could run into trouble (e.g. getting caught up during the standing operation).

Building a custom remote control box comes with a lot of overhead:

  • Powering it (e.g. battery)
  • Making / getting a proper enclosure
  • Perhaps getting an LCD screen
  • Programming an additional microcontroller
  • Handling wireless communication between remote and main microcontroller, which would require either bluetooth or wifi (zigbees) modules on each end. Even simpler radio transmitters come with the baggage of properly filtering the signals.

So that’s why I’ve decided to go with using an Android phone that already has Bluetooth functionality as the control device. Then I can use a Bluetooth module on the Arduino to communicate with the Android app. There’s a great API and framework called Amarino that helps bridge Android and Arduino using libraries at both ends.

Compared to a physical custom input device, it has the following advantages:

  • Much more flexible. Need a new button? That’d be quite a chore with a physical remote but no problem doing it in software in the Android app.
  • Small form factor. I’m thinking that the best bet will be for the user to wear the Android phone on her wrist so that  it’s always handy but frees up their hands. There are commercial belt clip cases out there that could easily be used for strapping the phone to the wrist. It’d be a bit more cumbersome with an off-the-shelf project enclosure or building it from scratch.
  • Super stable. It’s a smartphone with a fast processor and we’re not asking it do a lot so it should be very reliable.
  • Built in power source of course

It’s not perfect. Programming an Android app is more complicated than programming in the Arduino environment. And there’s of course the consideration of, what if you don’t have an Android phone? But it is interesting to note that decent unlocked Android phones can be found for less than $100. No doubt  touch devices will be used as remotes for all kinds of products more and more in the future.

After the ALICE Backpack Frame approach didn’t work out so well as a torso harness for the exoskeleton, I decided to go in  a different direction and make a Kydex (very similar to ABS) mold of my back.

I then affixed the motor mount to this new custom molded back brace using aluminum stock and offsets created with Instamorph (super moldable thermoplastic you can get on Amazon).

First order of business was to make a plaster cast of my back that I could use to make the harness in Kydex. So I got some plaster cloth (or gauze). I got this one from Amazon because it’s nice and wide for the back. I would have gotten two rolls if I were to do it over as the first one went fast and left the back cast a little thin.

Plaster Cloth for Back Cast

For making the cast, I laid on my stomach and my wife Christina applied the plaster cloth strips. A partner would definitely be recommended for this step! Also lots of vaseline and plastic wrap between the plaster and skin for easy removal.

Back casting with plaster cloth

Casting my back with the plaster gauze

Here’s the cast after the plaster had ample time to dry:

Dried plaster cloth back cast


Plaster back cast

The underside view of the plaster back cast

Side view of back cast

Side view of back cast

Next up was molding the kydex using the back cast.

To do so, I used a  12″ by 24″ sheet of kydex that was .93 inches thick (also available at Amazon).

To get the Kydex to a moldable temp, I put it in the oven at 325 degrees for about 15 minutes on a cookie sheet. The time is somewhat arbitrary and what you’re looking for is for the Kydex to easily fold over onto itself when lifting an edge.

Kydex sheet in oven

Kydex sheet in oven and beginning to get warm...


Kydex sheet in oven getting hot

After some time in the oven, you'll see that the sheet is starting to collapse over the cookie sheet


Kydex heated ready to go

Kydex is folding over on itself without going back to lying flat. Ready to mold!

Kydex sheet over back cast

I took the hot malleable Kydex sheet and draped it over the plaster back cast. I also applied some pressure to smooth it out on the cast.

Kydex sheet on back cast

Another shot of the sheet cooling on the back cast

After the Kydex cooled and hardened on the cast, I moved on to setting up the adapter that the hip motor actuator could be bolted using aluminum stock.

Heating instamorph / shapelock in pan on stove


Forming instamorph adapter

Shaping instamorph on Kydex mold. This was a lot of eyeballing and also I used a piece of alumimum stock to flat out the instamorph

Instamorph cooling on Kydex

Clamps on Instamorph and Kydex

Next I made plastic hardware for the front of the harness also out of Kydex that would hold the velcro straps for securing the harness to the body.

Heating kydex with heat gun

Scored piece of Kydex for buckle

Plastic buckles

Once heated up, I exacto'd out the channels and here are four of the velcro strap buckles. Not pretty but they'll do the job.

Velcro strap and buckle

Kydex plastic back brace harness

The finished product! With the buckles bolted to the main harness

One issue I’ve mentioned in the past here that I’ve been having is that the hip brace I’ve been using that the hip motor is mounted to can twist with the torquing force of the motor lifting up the leg. Here is a photo of what I mean:

Hip Brace Motor Torquing

So I decided to try out using an external frame backpack and mounting the motor to that to add needed rigidity to prevent against the twisting. Unfortunately, it didn’t work out as well as I had hoped.

I bought an ALICE backpack frame, which is a standard backpack frame that was used by the military. Here you can buy one at Amazon for $28:


Here’s what it looks like:

ALICE Backpack Frame

ALICE Backpack Frame

In order to attach the motor mount to the frame, I used 80/20 aluminum extrusion attached to the rear of the frame and then continued at a right angle to mount the motor parallel with the leg. Here’s what that looked like on (please ignore the messy room in the background :-) :

Front view wearing External Frame Backpack and exo motor

3/4 View Backpack Frame With Exo

Side View of Exo External Frame Backpack. You can see in this photo that the design of the backpack frame coupled with the extension to get the motor in the right place leads to way too much play in the position of the motor and does not form a more rigid system as previously hoped.

Here are a couple more photos of the configuration not being worn:

Rear view of hip motor attached to external backpack frame

Another view from rear of external frame backpack attached to hip motor mount

Side view of backpack frame and motor mount

Another shot of the configuration.

The big issue with using this particular frame (as well as most off-the-self ones I imagine),  is that the frame and the related belly strap and shoulder straps are designed to handle the downward forces of the pack weight. So the assumption is that these downward forces will inherently do a good job at keeping the backpack frame rigid against the back. The forces that I’m looking to counter are the twisting forces coming from below the pack. So what happens is that, much like the hip brace, these forces move the pack outward away from the back and in turn the efficiently of the motor actuation is lost. I had originally thought that having the belly strap secured would counteract this but it didn’t turn out to be true. Another problem is that the frame is designed to jut out on the lower part of the back so, as you can see in the photos, a good amount of tubing needed to be added to extend the motor mount to the right place and the downsides of this are a) added weight b) added complexity and c) another component that caused loss of rigidity as the tubing would itself twist.

So now I’m working on what I’ve been thinking about for a some time now which is using casts of the back along with Kydex (ABS) to make a mold particular to the user’s body. Although it adds complexity to the build and also brings in new challenges (e.g. attaching components to a one-off and curved piece) I feel that the results could definitely make up for it. I have already finished up casting of my back (with the help of my lovely wife Christina!) and I have the Kydex molded and ready to add components to it which I’ll post about soon.

Oh also, Klaus has a very cool torso setup for his exo that you can see in his video here:


He combines a backpack that is cabled to a plywood half circle that fits around his waist and is then cinched down with a belly strap. The motor is then mounted on the plywood.

It’s quite incredible. All the way over in Germany, a guy named Klaus had thought up a very similar open source, Arduino-powered adaptive lower-limb exoskeleton. It also utilizes a wiper motor for the leg actuation! It feels great to know that someone else is on a similar path and thought process as myself. The Internet is awesome and times like this makes me feel less alone.

He has a fresh video of the him putting on the exo and walking with it here:

I’m excited to keep up on his progress and perhaps maybe collaborate more closely in the future.

Here’s a video of me testing the hip actuation while walking with the walker:

This is a video from the testing I mentioned in my previous post. The thoughts for improvement from that post still apply.

The main thing that I’m focusing on right now is improving the rigidity, positioning, and torque of the hip motor through a more structured attachment to the upper body. As I mentioned in the last post, I’m leaning toward a rigid frame that extends from the shoulders down to the lower back and attaches to the leg portion of the device. Sort of like an external frame backpack. Having that more stable structure will then allow for moving on to affixing the knee motor and a foot support/spring actuator w/o worrying as much about the weight of those features.

For the back frame, I’ve been exploring using PVC tubing or 80/20 stock for mocking up the structure in order to iterate quickly through different dimensions and configurations.

Exo controller circuit cleaned up in new project box with new FSR trigger on walker handle

I’ve finished cleaning up the exo controller circuit, moving it from the breadboard to an Arduino proto shield. It also lives in a new project box (as seen above, positioned on top of the walker). The gray mini-din cable coming out of the side of the box through a mini-din panel mount port connects to the hip joint servo motor for communication.

To the right in the picture above is a new force sensitive resistor (the tab leads on the previous one wore off).

Here’s a broader shot of the walker and exo brace together:

Walker with exo controller in new enclosure

The goal of transferring the exo circuit away from the breadboard was to be able to test more thoroughly which I did do last night. I have some more video of the testing that I’m hoping to get up on YouTube and here soon. In getting the chance to test the device while walking last night, a few  thoughts struck me that I plan to further explore:

  • It seems that the actuation of the hip joint could be smoother and more effective by altering the design a bit. When the actuation occurs, there seems to be resistance as the knee rises. This is natural of course because of gravity but it seems that the device and the leg buckle also causing increased resistance. As the hip joint angle changes so does the distance from the top of the upper leg segment of the brace to the location of the leg. In other words, adding some sort of flexibility to the piece of the brace that straps to the upper leg might make the actuation more effective. One thought is putting the connection on a slider (i.e. a desk drawer sliding mechanism) so as the angle changes the upper leg could still be pulled up but where exactly the brace segment is attached to the thigh could change
  • The current thigh portion of the brace is somewhat of a longer segment that spans upwards of a foot along the thigh with two straps and rigid plastic behind this segment. In thinking about the above problem, it may be that this segment could be designed better perhaps so there is a strap further down right above the knee and another strap further up the thigh and not the larger plastic segment connecting the two.
  • The idea of incorporating should straps to the device as well as maybe a rigid back section keeps popping into my mind. Doing so would definitely offload some of the weight of the brace more effectively. As the device is worn right now the weight of it definitely adds strain over time which would be even more of any issue for users that are already weak in the lower body. Adding the back support would also add rigidity to the hip joint actuation and may in turn increase efficiency.
  • Knee joint articulation is necessary at this point. I’d like to try a purely mechanical approach to this harnessing the power of the hip joint servo as a way to keep the cost and weight down. We’ll see how well that turns out

I received an email from a builder named Klaus in Germany letting me know he is in the process of building a DIY Exoskeleton that he also plans to open source. How cool!

His Youtube account is Arduino67069 and here’s a video he put up:

Here is a description of his approach from his email:

My solution is also open source and quite similar to yours: Rolling walker as basis, Arduino-controlled, wiper motor supports hip flexor.
The motor is attached to a plywood harness though hanging on a back-pack.

Excellent! I’ve been thinking more about offloading more of the weight and bulk of the motor away from the hip and abdominal area to make it more comfortable and less likely to bind so I’m psyched to see how he makes out using the backpack and plywood mount.

Mike, a commenter on this post about the hip brace, also has the goal of an open source exoskeleton. He’s looking to have it be water submersible so it can be used during aquatic therapy as well as in bathing and showering. Pretty awesome!

It’s encouraging and energizing to know there is shared interest and work in this area. I’m excited for what the future will bring. Or rather what we will bring to the future :-)

I created a repository for the project at GitHub here: https://github.com/eliotk/OpenExo

I plan on using it to store and version the Arduino code. I’d also like to host and version some Fritzing files there.  I’ll also use the issue tracker for todos, enhancements and bugs related to both the software and the hardware. I feel like I’ve been keeping so much of the projected roadmap in my head. So this will be good to have it out in the open and also I think it’ll help clear my mind so I can iterate more quickly through the items.

I met two great guys at project night at sprout last night. Brandon (who makes this cool Arduino-compatible web-enabled Linux board) and Mitchell. I told them about the Exoskeleton project and they had some great thoughts:

  • Mitchell suggested the idea of perhaps applying a spring-loading system for the joint actuation. That way force could be built up in the Spring by a motor while the leg was locked and could “spring” the leg forward in ambulation when needed. He mentioned that this is how some insects (e.g. fleas) store energy in their legs that allow them to generate large forces. That reminded me of the work that Yobotics had been doing with series elastic actuators.
  • Mitchell also thought of the idea of an assisted gait perhaps relying on shuffling the foot some and in that regard to think of low-tech/no-tech ways of smoothing that process. His thought was the idea of perhaps having a slippery “sock” or material on the shoe for sliding and a tackier heal with treads for planting.
  • Brandon thought of the idea of using a rope or pulley type mechanism that attaches to the ankle to provide actuation of the joints. We had fun trying this one out.
  • Brandon also thought of the idea of a pin and hole system that would provide locking the joints in place to support the leg and body when standing. He extended that thought with the idea of a ratcheting sprocket system that would also have a pin drop in to lock the joint when desired. With the sprocket setup the pin could lock at different intervals for locking the leg at slightly different positions. I think that could definitely work with an electromagnetically-controller pin system. The idea of this would be as a replacement/aid for the PID motor locking system. It would be more surefire and would also use less energy than locking with PID servo control.

It was nice to fleshout these thoughts and to externalize some other challenges I’ve been having. It’s always a helpful thing when working on a project to get out of your own head or “vacuum” as my Dad calls it by talking things out with other people.

12 Volt Motorcycle Battery Rated at 55 Cold Cranking Amps

I just ordered two of these batteries from Amazon. They are each 12 volts and rated at 55 cold cranking amps. So at ~40 amps draw at stall current for each motor these two should provide plenty of juice when connected in series for a total of 24 volts with plenty of power. Also the dimensions on these are 4.75″ x 4.75″ x 3″ so they’ll fit nicely into the walker bed.

© 2011 OpenExo Suffusion theme by Sayontan Sinha