Assistive Exoskeleton Arm (ExoArm)

An affordable Exoskeleton Arm (ExoArm), that will help elderly, disabled people and workers complete everyday tasks with less exhaustion.

Similar projects worth following
At first, I was thinking that maybe this kind of project could be used as a product ( with a lot more development), but I soon realized that it's more important to inspire people and show them that can it can be done. So, making this clear, this project will probably never be finished. And not because I don't want to finish it, but just because it requires too much of my time to prototype it (collage,...). However, as said before, my main goal is that people who can't afford to buy those expensive exo-arms, have a chance of making one by themselves. From scratch, with little to no money. I've received many mails from people from third world countries that will try and make one by themselves! And this is so awesome!
So until the end of this competition, I will focus all my work into making this arm little more user friendly and practical to use.

You can find more info down below in PROJECT LOG section!

All the best!

Kristjan B.

First prototype is complete!

How to make it:

Measurements are not defined because until the arm is "universal size" the lengths vary from person to person. So the best act will be that you measure your own arm and use those measurements.


Please ignore all the trash in the code. It works, but not really. I mean, I know what it does, but don't expect that you will, because it's really all over the place. If you have any questions, feel free to ask and I'll try to help as much as I can!

ino - 3.17 kB - 08/03/2017 at 19:58


  • 1 × Strain Gauge with Load Cell Amplifier
  • 1 × Aluminum 4 x 30 x at least 2000mm
  • 1 × Arduino Uno/Nano
  • 1 × VNH2SP30 motor driver
  • 1 × Car Windshield Wiper Motor

View all 15 components

  • july 9, 2017

    Kristjan Berce07/09/2017 at 13:17 0 comments

    Decided to make the stand little more functional.

    Not much going on at the moment regarding the ExoArm. I'm still throwing my time out of the windows trying to make it work with a weight attached to it and I can say with all of my heart that it's a lot harder than it might look.

    Stay tuned for updates, it is bound to happen anytime now! :)

  • july 3, 2017

    Kristjan Berce07/03/2017 at 14:18 0 comments

    The idea turned to reality! It actually works, and I'm super hyped!

    Next thing is to make it useful for lifting heavier things and to somehow detect when something is suspended on it.

  • june 30, 2017

    Kristjan Berce06/30/2017 at 14:44 1 comment

    The SG (strain gauge) is mounted on the forearm. I placed 2.5kg weight on the arm, the SG did the job and everyone is happy forever. Well not really. Not yet. When I applied pressure upwards, the sensor value decreased, which is a good sign so big props to the theory from june 20 log. The battle is on!

    Next step is to create a holder for the arm, so that I can further test it (putting it on and off from my arm is agonizing especially if I do it 40 times a day).

  • june 20, 2017

    Kristjan Berce06/20/2017 at 17:47 0 comments

    I'm still waiting to receive the strain gauge that will be placed in the middle of fore arm. It will be used to determine if there is any object suspended on the ExoArm.

    So far my idea is as following (it's just the idea and may have big flaws, but until I receive the part I can't be sure)

    - There is no weight on the ExoArm:

    This one is simple. Strain gauge will deflect when my arm is moved up or down, so controlling this movement shouldn't be so hard.

    - An object is suspended on the ExoArm:

    The strain gauge sensor will detect a mass of the object, therefore we know the force and also torque. Torque changes with the angle (theta) of the object but if we say that the upper arm is parallel to the body, then the Phi angle is the same as -Theta angle.

    So now we have a good estimate of the torque. Here is the part where I lose my "insight" into the mechanics. If an object is suspended on the ExoArm when I try to move my arm up, the torque on the ExoArm changes. And if torque changes, the output of strain gauge also changes, therefore the ExoArm will follow your arm depending whether the strain gauge output it bigger or smaller. So this could maybe be an effective way to control the ExoArm. I'm still thinking and trying to come up with a 100% effective way, but at the moment this is as furthest as I am.

    Would love to hear your ideas and suggestions!

  • may 4, 2017

    Kristjan Berce05/04/2017 at 12:38 3 comments

    may 4, 2017

    Arm works as it should. The biggest problem now is figuring out the way to control it in such a way that it follows your movement. After few days of playing with Myoware Muscle Sensor, I figured out that it is not as useful as I thought. The main problem is that it can only "usefully" detects two values (flex and not flex) therefore it's useless for our goal.

    I'm thinking of developing similar control as is shown in the video. There would be two sensors each placed on opposing sides of the fore arm, and they would detect when user pushes arm down or up.

    This type of control works, until I try to lift heavy objects and force of the Exo-Arm triggers bottom sensor and I trigger upper sensor. So we are still a long way to go, but I'm staying positive!

View all 5 project logs

Enjoy this project?



Conor wrote 08/25/2017 at 14:08 point

what's the green board next to the arduino duo?

  Are you sure? yes | no

Kristjan Berce wrote 08/26/2017 at 15:03 point

It's the motor driver :)

  Are you sure? yes | no

pafgomes wrote 08/15/2017 at 00:39 point


Congrats on the project. Makes a lot of sense to me. Here to help where I can. Some open thoughts:

Have you considered using a linear motor based on screw-and-nut or ballscrew, to move the arm? The angle of the screw will autoblock the movement. The stepper motor will move it precisely in both directions. The angle on the screw an the friction coeficient will control the amount of weight you can load. You can use the muscle detectors (or two strain gauges) to trigger motion in both ways. 

From an ergonomic point of view, consider increasing the connection points to the torso. I know it makes the arm harder to put on, but consider that if you load 10kg at the end of the arm, you will apply a considerable torque to the back. You might cause a back injury. The user will not be used to lift those loads, hence weak back... 

hope this helps. What kind of help do you need?

Keep up the good job!


  Are you sure? yes | no

Kristjan Berce wrote 08/26/2017 at 15:05 point

Hey! sorry for the late reply!

Linear motor was my first option, however they are slow and expensive.

Yes, my next goal is to make something useful for the back, because it's kinda frustrating to wear only exoarm, without any support.

  Are you sure? yes | no

mikey wrote 08/01/2017 at 22:12 point


Are you able to give a diagram on how you set up the arm, current parts used, and current code (current arm with the strain gauge). Imma build one for a project :)

Many thanks, Mike

  Are you sure? yes | no

dnetford wrote 07/01/2017 at 03:31 point

Hello. This is a great project. Im mechanical enginner from venezuela, About the auto calibration of the weight you need. 
I think you need to set the arm with this logic:
you carry a weigh that displace the hand Y amound of length it is
directly proportional to the force that cause the displacement. So, the
sensor need to be at 0º and you have to keep in that position. With the
displacement value you can switch on the motor an it will apply the
correct charge of energy to keep the wight lifted in the desire

  Are you sure? yes | no

Kristjan Berce wrote 07/03/2017 at 15:11 point

Thanks! Yes I had a similar idea in mind. Will try to implement this in the code soon :)

  Are you sure? yes | no

PflegeRitter wrote 07/01/2017 at 03:07 point

Beautyful idea. I was searching around for some Input. Im a Nurse and i am about to build a similar device for a Patient. Great Inspiration.Ty<3

  Are you sure? yes | no

Kristjan Berce wrote 07/02/2017 at 10:40 point

Thanks! It's good to hear that this project gives ideas and inspirations to other people :)

  Are you sure? yes | no

Olaf Baeyens wrote 06/29/2017 at 20:27 point

Don't forget safety features, you don't want it to break someones arm when a sensor or bad wiring gives faulty data. 

  Are you sure? yes | no

Kristjan Berce wrote 06/29/2017 at 20:36 point

It's not said in the videos directly, but if you look at the junction of fore arm, upper arm and where they are fastened to the motor, you can see that the upper arm limits extention of the fore arm. (Video).

  Are you sure? yes | no

Colby wrote 06/29/2017 at 19:33 point

Have you tried using a force gauge for controlling the arm instead? Here's an example:

You could put this in between your arm and the device, so when you push up with your arm, the arm follows. You could base the speed of the arm on how hard you push on the sensor. 

I do foresee potential problems with getting good contact between your arm and sensor, and with pushing the sensor hard enough to register a change. So you could use a long and wide "lever" that would multiply the force on the gauge, while also increasing the area you can push on. Similar to how a microswitch works. 

  Are you sure? yes | no

Kristjan Berce wrote 06/29/2017 at 21:05 point

I nearly used this kind of control method, but then I realized; what about when there is weight on the exoskeleton? The weight of the object would pull down, and trigger the sensor that is on the upper side. I guess I could try to compensate this in the code, but after some thinking I came to a conclusion that it would be better to use strain gauge and play with torque on the ExoArm. I will make a video/post soon because I just received this strain gauge sensor and will try to use it. So stay tuned! :)

  Are you sure? yes | no

Colby wrote 06/29/2017 at 21:19 point

You actually want the motor to get more current and therefore output more torque the heavier the load is, correct? If you think about it, the motors just amplify the force by your arm, so it would make sense to supply them more power when you are carrying something heavy. I think the body would intuitively adapt to this as well. 

As far as triggering the sensors too soon, all you would need to do is tune the cutoff level at which you don't want the motors to come on at all, and the ratio of force to output voltage or PWM duty cycle. In fact that looks strangely like y=mx+b... turns out math is useful :). 

  Are you sure? yes | no

Kristjan Berce wrote 06/30/2017 at 11:06 point

I can't respond to your latest comment, so I'll reply here (I hope you see this).

Yes, you just described PID control :) But this still doesn't solve the flex/extend arm problem. 

Also, I have a bad feeling that torque to current plot is more of exponential nature then linear as you said. But for my goal, I probably can assume that it's in fact linear. Will do some testing in these days so I'll keep you updated! 

  Are you sure? yes | no

Colby wrote 07/01/2017 at 21:15 point

I don't think it would be too hard to compensate, but it's up to you :). 

  Are you sure? yes | no

Samtw2005 wrote 05/04/2017 at 19:54 point


  Are you sure? yes | no

Samtw2005 wrote 05/04/2017 at 01:01 point


  Are you sure? yes | no

Samtw2005 wrote 05/04/2017 at 01:01 point

and  great jo

  Are you sure? yes | no

Samtw2005 wrote 05/04/2017 at 01:01 point

the code 

  Are you sure? yes | no

Samtw2005 wrote 05/04/2017 at 01:00 point

where is the cod

  Are you sure? yes | no

Kristjan Berce wrote 05/04/2017 at 12:32 point

I just added it to "FILES" tab.

  Are you sure? yes | no

Ember Leona wrote 03/31/2017 at 22:48 point

Can you add a cherry picker... I learned 3 pulleys two on ceiling and 1 on floor divides the tensions so that makes lifting easier. Maybe keep that idea in mind I wish we made pulleys like this

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates