Rijido, Making More Affordable & Comfortable Prosthetic Sockets.




About: Hi, I'm Oscar Rovira a student of Mechatronics Engineering at University of Bath enjoying my learning path by making projects! I'm from Barcelona and I decided to go to the UK to study to get out from my com...

Rijido, making more affordable & comfortable prosthetic sockets.

"The Amputee Coalition of America estimates that there are 185,000 new lower extremity amputations each year just within the United States and an estimated population of 2 million American amputees." [advancedamputees.com]

Prostheses enable patients to take up their daily activities and so, their freedom. In developing countries, the need of a prosthetic limb is of such importance that their activities not only depend on of their ability of their walk, but their life and income do. Not only the loss of limb impacts a person’s physical ability and look, it causes profound psychological damage and degradation of their social status too. And since the average family income in rural areas is typically around £180 annually, they can’t afford to pay a prosthetic limb of between £80 and £1900, which the need of a process of adjustment raises the price considerably. Sockets are a critical part of prosthetic legs. If the socket of the prosthetic limb is not comfortable, the user will not use it. Moreover, a bad socket, which doesn’t fit or doesn’t grip with the right amount of pressure can hurt the residual limb, provoking pain, sores, and blisters.


Rijido is a prototype that will potentially help the development of much more comfortable prosthetic sockets for a lesser price and time to manufacture. Increasing comfortability for people that can not currently afford a decent prosthetic leg or that prefer a much more individualized socket for their prosthesis. The objective of this project is to use affordable materials and simple electronics to attack a worldwide problem.


The theory behind the project is simple but effective. The prototype uses an array of pistons with linear potentiometers to calculate the displacement of the pistons when pushed into the skin. By pushing manually, Rijido detects if there is more soft human tissue (muscle, tendons) or more stiff tissue (bones). The more you can push into the patient's limb, the softer that part of the limb is. Creating in this way, a map of stiff and soft parts of the patient's limb. Therefore, the spots where Rijido detects more stiffness tissue the socket will have to be more soft, while the parts where Rijido detects that are softer, the socket will have to be stiffer. Creating in this way a more adjusted and comfortable socket which grips with the right amount of pressure where the patient's limb needs it.

This idea was inspired by the MIT FitSocket which was developed by the Biomechatronics department. However, its currently design and electronics make it a non-affordable tool for developing countries, while Rijido, using 3D printing technology and a bunch of linear potentiometers, the objective of making more comfortable prosthetic sockets is also achieved.

Process of creating a socket with Rijido

This data collected by Rijido can be stored for future use, send to other places (for example if the user moves to another place) or used to directly CAD model or to sculpt a socket which fits into the patient's limb. The process would be as follow;

  1. With a 3D scanner, the patient's limb is scanned.
  2. Using Rijido, the spots of softness and stiffness are detected
  3. Using modelling software, such as Autodesk Meshmixer, Socketmixer (both free software) and Autodesk Fusion 360 (as an example) the first scan file of the patient's limb is modified to the desired shape increasing thickness of the future 3D printed socket to increase pressure or decreasing thickness of the socket to give more softness.
  4. 3D print the socket
  5. Add some soft material inside the socket like Polypropylene and Lycra.
  6. And you have just created an affordable, individualised and more comfortable socket which can be used by people who's income and life depends on it.
  7. Any issue with the socket ? Redesign it and print it again. Simple as that.

I currently don't have any 3D printer which would allow me to improve much more the design and performance of Rijido, so please, if you want to change the world to make it a bit better, vote, love, and share this project and join me on the wonderful adventure of helping people's day to day life :). I would really appreciate it.

In the following steps I show you how to make this first version and prototype of Rijido. I hope you enjoy it! Thank you very much!

Step 1: Overview

Parts of Rijido;

  1. Finger (3D printed)
  2. Spring35mm 0.6 N/mm (Not-3D printed)
  3. Wheel (Machined)(see step 2)
  4. M5 Nut (Not-3D printed)
  5. M5 x 40mm Hex Bolt (Not-3D printed)
  6. Box(3D printed)
  7. Slider Potentiometer (PTA Series Bourns 45 mm slider)
  8. T piston (3D printed)

Note: 14 of all of the previous elements are needed (a total of 14 pistons will be builded)

9. Structure skeleton (3D printed)

An Arduino Mega, cables, and soldering material is also needed.

3D View of Rijido;


See attached the 3D printed files;

Step 2: Wheels Machining

In order to create the 14 wheels, the materials and tools needed are;

-An aluminum rod of 120 mm (min.) (98 mm available to turn)


[I know that not everyone has access to a Lathe, I hope to solve this in the future :) ]

Steps to follow;

  1. Reduce the diameter of the rod to 21.5 mm
  2. Drill a hole of 4.2mm of diameter (to create an M5 thread) through the rod.
  3. Do the M5 by tapping with the lathe.
  4. Cut the rod 14 times to create 14 wheels of 3.7 mm of thickness each one.
  5. Done! (You can sand down the different wheels to have a more sexy finishing)

Step 3: Assembly of the Different Parts

Step 4: Code for Arduino

I have now final university exams, so the code is really simple, however I will improve it much more when I have more time ;)

int main (){
init(); Serial.begin(9600); first(); return(0); }

int first (){ Serial.println("Hello User"); delay(1000); Serial.println("My name is Rijido, and I will measure the tissue structure of your limb"); delay(2000); Serial.println("Softness of tissue measured in a scale from 0 to 100. The more soft, the higher the value "); delay(2000);

while(true) { int a = analogRead(0); int b = analogRead(1); int c = analogRead(2); int d = analogRead(3); int e = analogRead(4); int f = analogRead(5); int g = analogRead(6); int h = analogRead(7); int i = analogRead(8); int j = analogRead(9); int k = analogRead(10); int l = analogRead(11); int m = analogRead(12); int n = analogRead(13); int aa = map(a, 400, 772, 0, 100); Serial.print(aa); Serial.print(", "); int bb = map(b, 408, 790, 0, 100); Serial.print(bb); Serial.print(", "); int cc = map(c, 424, 780, 0, 100); Serial.print(cc); Serial.print(", "); int dd = map(d, 380, 772, 0, 100); Serial.print(dd); Serial.print(", "); int ee = map(e, 428, 772, 0, 100); Serial.print(ee); Serial.print(", "); int ff = map(f, 620, 772, 0, 100); Serial.print(ff); Serial.print(", "); int gg = map(g, 430, 772, 0, 100); Serial.print(gg); Serial.print(", "); int hh = map(h, 405, 732, 0, 100); Serial.print(hh); Serial.print(", "); int ii = map(i, 455, 772, 0, 100); Serial.print(ii); Serial.print(", "); int jj = map(j, 420, 772, 0, 100); Serial.print(jj); Serial.print(", "); int kk = map(k, 405, 772, 0, 100); Serial.print(kk); Serial.print(", "); int ll = map(l, 405, 772, 0, 100); Serial.print(ll); Serial.print(", "); int mm = map(m, 465, 772, 0, 100); Serial.print(mm); Serial.print(", "); int nn = map(n, 405, 772, 0, 100); Serial.println(nn); } return (0); }

Step 5: How to Use It

Advanced technical knowledge is not required to use Rijido. Which allows using it in different knowledge backgrounds.

In order to get data from the patient's limb with Rijido, do the following;

  1. First of all, the patient has to be standing up and leaning his limb that will be measured in a pillow with a chair or something that makes him be comfortable by standing up.
  2. Secondly, turn the wheels of the different pistons so to increase the internal diameter of Rijido.
  3. Connect Rijido's Arduino to the laptop and upload the program.
  4. After, insert Rijido through the patient's limb and turn again the wheels to make all the pistons be in contact with the skin(reduce internal diameter).
  5. You will have to move vertically Rijido, from top to bottom, or from bottom to top of the stump.
  6. Once Rijido is inserted in the leg, and all pistons are touching (very gently) the skin, push one by one the pistons of Rijido, and store the data shown by the Arduino. (I promise that I will improve this step, to a more graphical way of showing and storing data)
  7. Once the 14 pistons are pushed, move Rijido around 20 mm vertically and repeat step 6 as many times as needed.

The useful data will be from 30 mm above the knee to the end of the stump. As time goes by I will improve code and process of getting and showing data.

Step 6: Pictures of Rijido

Rijido doesn't finish here, I have an incredible path still to discover and to improve in the world of 3D printing and prosthetics. However, more than one brain is always better and more powerful, so whoever is keen to help me to improve this project I would be glad to listen to your ideas. Please, do share and vote for this project! I would really appreciate it!


Oscar :)

PS: Here I leave some pics of the final result, my happiness face and how would fit into the leg.

-Big thanks to Eric Zobel for his helping hand-

Sensors Contest 2016

Participated in the
Sensors Contest 2016

First Time Author Contest 2016

Participated in the
First Time Author Contest 2016

3D Printing Contest 2016

Participated in the
3D Printing Contest 2016



    • Beauty Tips Contest

      Beauty Tips Contest
    • Pets Challenge

      Pets Challenge
    • Backyard Contest

      Backyard Contest

    15 Discussions


    3 years ago

    AWESOME work! A lot of good will come from your efforts!

    1 reply

    3 years ago

    Hi Oscar, this is a great project. How about this for a way to measure the hardness of the tissue with the same rig. First take a series of measurements. You had better mark the skin so that you can go back to the same spot to do a second set. Now add the spacer cap to the skin end of each piston (you need to design one!). This extends each piston by a known distance. Now perform the measurement again. Where the bone is close to the skin, effectively a hard spot, the displacement will be the same as before plus the spacer length. Where the skin is soft the skin will compress, so the extra displacement of the piston will be less than the length of the spacer. Since you calibrated everything, you know the force being applied by the piston at every position. Where the first and second readings differ by the spacer amount, the skin is hard. Where they differ by less, the skin is soft, and difference is the compression of the skin due to the difference in the two forces. With force and distance you can calculate the spring rate (hardness) of the skin. If all the displacements (or voltage signals) are going into a computer it should be simple to work out a figure for the skin hardness (spring rate) at each of the 14 positions. I can't see why that wouldn't work.......

    1 reply

    Reply 3 years ago

    Hi stechi! First of all thanks for your comment and development of your idea! I really like your thought of maintaining the same rig and the process of marking the skin with spots. Your way of testing the stiffness of the tissue is a perfectly valid way of accomplishing Rijido's objective, that I agree that it would work! I write it down for my list of possible improvements! Thank you very much,


    Sorry for not answering sooner! ( Uni exams :) )


    3 years ago

    Fantastic! Congratulations!


    3 years ago

    I see one thing missing here. In order to measure the mechanical properties of the tissue, you need to apply a known force and measure the displacement of the rod.

    However, if I understood correctly, after subtle contact with the skin, you press the rod with your firger and the value read by the potentiometer is mapped to a 0 to 100 Softness value.

    Since you are measuring the dislacement after subtle touch with the skin (relaxed spring, zero force), and then loading the rod, (spring compressed) the displacement can be related to the force with the spring constant.

    So, if you add a few more lines in your code to convert displacement into force like:

    Force = Constant * DeltaDisplacement in an ideal linear spring [usually they are cuadratic] )

    where DeltaDisplacement = SpringFinalDeformation - SpringInitialDeformation

    where SpringInitialDeformation = analogRead when gentle touch of skin

    where SpringFinalDeformation = analogRead when tissue loaded

    Now you have an stimation of the force applied, via deformation of the spring.

    But in order to relate it with tissue mechanical properties you need to measure tissue deformation. Let the tissue be the "spring" and apply a known force. Now the load you apply with your finger is being supported by the spring and the tissue, so force exerted against the tissue is unknown.

    I'm thinking in putting solenoids in each yellow part, and a metal core in the rod, and getting rid of the spring, so force if known (you can obtain the force equation in a solenoid) and displacement is read with the pot.

    Hope this helps!

    1 reply

    Reply 3 years ago

    @Hugozubitur, thanks for your comment! About using F=Kdx in the code is the really next step that I have in mind in order to improve the reading of mechanical properties of the tissue.(Because, actually, what calculates now is just the displacement of the rod and with that measures the softness).

    Thanks for your s/o about using solenoids! Is a good idea, however, due to the nature of the project, where I try to make Rijido really affordable,(the total Rijido cost me 100$) adding 14 solenoids would increase much more the total price of Rijido.