Fold My T-shirt Robot




Introduction: Fold My T-shirt Robot

Hello everyone, I would like to start by asking a question: Wouldn't it be great to have a robot at home that folds your t-shirts as they are folded when you buy them in a shop?

If your answer is ''yes of course!'' you are in the right place.

In the following instructables we are going to show you the whole process of developing and building a robot that can fold your t-shirts autonomously.

The project is part of the electromechanical engineering course of study of Bruface programme, in particular is a joint project between the Design methodology and mechatronics 1 courses.

For this reason, we will describe in detail the entire development process from the identification of customer needs and market analysis to the actual practical realization of each component, electronic system and the entire assembly.

Our project is only a prototype of what in the future could really become a marketable product.

Step 1: Table of Content

  1. Table of content
  2. Project motivation & needs identification
  3. Functional analysis & requirement list
  4. State of art & patent analysis
  5. High-level design
  6. Design of Sub-systems: Mechanical System
  7. Design of Sub-systems: Cicuitry and Sensors
  8. Design of Sub-systems: Software
  9. Integration guide
  10. Demo project show + quick start guide
  11. Critical review
  12. Sustainability
  13. Bill of material
  14. Team presentation
  15. Project Repo

Step 2: Project Motivation

Everyone after doing a washing machine has a pile of clothes to fold and put away in his wardrobe. Surely everyone finds this stage rather tedious and annoying. So why fold clothes when there is a machine that can do it for you? All that's left to do is sort out and organize your folded clothes in your wardrobe.

Hence the idea of a robot capable of folding your T-shirts. Initially, it may be seen as a way to overcome laziness, but its functionality can certainly make many people's lives more comfortable.

The objective of this project is to describe how to build and assemble a machine that can recognise the type of T-shirt to be folded and on the basis of this fold it so that it can be directly placed in our wardrobe or suitcase according to the consumer's needs.

In short, why waste time doing this task when there is a machine that can do it for us in less time and in the same exact way? This is the reason why we believe that our prototype, although performing a simple function, once well developed can play a relevant role in the daily life of many people and in the market.

The idea is the following: once the T-shirt has been placed in the correct position, a photoresistor detects its presence. Similarly, a sensor located in one of the side modules recognizes whether it is a long or short-sleeved T-shirt. Then the folding mechanism is implemented according to the type of garment and once the shirt is folded (3 steps for short-sleeved shirts, 5 for long ones) a pulley mechanism slides it directly into a bag or clothes basket depending on how the consumer prefers.

Needs identification

Once the main idea of our project has been described, it is time to proceed with the actual product development. The first step is the tasks clarification, which consists of doing a functional analysis of the product which is going to be developed. Therefore, the needs that the product will have to satisfy should be identified. The easier way to do it is answering some questions that will give an approach of what the product should be, according to basic market demands.

What's the utility of the product? Who can benefit from this design?

1. This product should be able to:

  • Recognize the presence of a T-shirt and the type (in this case short or long sleeves, such as a sweatshirt or jumper);
  • Fold the T-shirt using two different mechanisms depending on the type of shirt;
  • Remove the T-shirt once folded by simply sliding it into a hamper or laundry box;
  • Be easily used and stored once used.

2. Who will use it?

  • The type of consumers this product is aimed at are families, students and workers who, in the hustle and bustle of their daily activities, find themselves with little time for this type of activity. Consequently, consumers can be people of any age who are trying to optimize their time in the best possible way.

3. What does the product interfere with?

  • It interferes with washed and dried clothes that have to be folded and with the table or surface on which it is placed or fixed.

4. Who does the product interfere with?

  • The product interferes with the user and with the people benefiting from it.

5. To which purpose this product has to be developed?

  • To allow the customers to fold their clothes in a faster way, in a single attempt and always in the same way.

Step 3: Functional Analysis

Once these basic questions have been answered it Is necessary to develop the needs identification. The needs can be split into two different approaches, objective and subjective. After defining these needs the functional specifications and the requirement list can be fulfilled.

Objective needs

  • Characteristics. The goal is to fold any kind of t-shirt (short and long sleeves t-shirt, hoodies, sweater, pullover…). The robot should be able to be assembled and disassembled in different parts according to the type of t-shirt that should be folded (short or long sleeves).
  • Ergonomics. All the different subsystems must match perfectly. The machine should be autonomous and fast, precise, and easy to use.
  • Security. The shape of the robot should be easy to handle and manage. It must be safe to use without the possibility of causing any harm. Moreover, the device should ensure electrical safety since some parts will be powered with electricity coming directly from a plug.
  • Maintainability. The device should be easy to clean, durable and it must be easy to repair in case of a component malfunction or breakage.
  • Weight. The machine materials must be as light as possible. Indeed, a key requirement for the product is that it is easy to assemble and store when not in use.
  • Size. Considering the average size of a t-shirt, the product will have a medium size but despite this it must be easily handled and stored (e.g. under a bed or behind a door due to its low height).

Subjective needs

  • Aesthetics. The product should present an attractive design so that it can be seen not only as something functional but also as a design object.

However, the development of our product is also subject to some limitations. These include, for example, the fact that it must be able to fold different sizes of T-shirts. This makes the design subject to size constraints, in fact if we consider a T-shirt of size L lying flat, we can directly see that it will be difficult to fold it with a small machine and that a machine of a size comparable to the T-shirt itself is required for proper folding. This is followed by a constraint on the weight of our robot, which must be easily stored away and must also be easily handled. Considering these constraints then we decided that the best way to overcome all these limitations is to develop the design in separate modules: a central module capable of folding a short-sleeved shirt and two additional modules that can be added like a jigsaw puzzle if there is a need to fold long-sleeved shirts.

Considering all these needs the functional analysis should be defined. This study gathers all the functional specifications that the conceptual design of the product must be accomplish and if the request cannot be validated the design should be refused. Its aim is to characterize the prototype features in a more quantitative way such as the ranking number #, the order of importance, the criterion, the level and the flexibility. Table 1 represents an organized summary of the mentioned points so far according to a priority ranking.

Requirement list

Similarly, once the functional specifications have been identified and ranked, the next step is to develop a requirement list focusing on the product which is going to be developed. This process converts the function that the customer demands in characteristics that the product should have to satisfy those needs. The combination of both tables will define the following design works of the product. The requirement list derived from the functional specifications must be validated before moving to the conceptual design step. It will serve as a basis to asses the design developments. Table 2 represents the requirement list of the folding robot that is intended to be designed and developed.

Step 4: State of Art and Patent Analysis

Before developing our product, we did some research to get some inspiration and to see what the world market has to offer today. Particularly, we found a product that is already on the market and is very popular all over the world. The product in question already has some of the basic requirements that our prototype must also be able to meet, such as the easiness of use and the fact that it can fold different type of clothes, but not in an automated way. Hence our idea to start from the basic mechanism of this product and try to develop and improve it according to our needs and especially in an automated way without the need for human intervention.

Once we had found the basic idea from which to develop our project, we conducted a patent analysis to check that our product had not already been patented and implemented. Searching in some databases, including Espacenet, we found existing and commercialized solutions of systems that are capable of folding clothing autonomously, but also some prototypes not commercialized yet. Here are reported some of the solutions founded.

One prototype is represented by Foldimate, a machine that can fold a full load of laundry (about 25 garments) in less time than it takes to make a cup of coffee! The basic mechanism is now briefly described. The user clips the piece of clothing on two hooks and the item is pulled into the machine. Then a series of rollers and arms moves in all directions to straighten and fold it. The machine can fold shirts, tops, trousers and dresses, but not small pieces of clothing like underwear or large items like sheets. The folded items are returned in a stack through a window at the bottom of the machine. However, this solution does not have some of the basic requirements we identified in the functional analysis. In fact, it is a rather complex and not so intuitive robot. Moreover, it appears to be a solution suitable for commercial rather than domestic use, as evidenced by its launch price of around $1200.

There are a number of other solutions that already exist, including several mechanisms consisting of robotic arms capable of holding and folding the shirt. These include, for example, the one described in the following patent JP2019092999A Clothes folding device and clothes folding method published on 2019-06-20. However, as in the previous case, the complexity and large size of this robot do not correspond to the characteristics we identified for our prototype during the development of the functional analysis.

Since our aim is to propose a robot that is accessible to everyone and that can be used in a domestic rather than a commercial context, we believe that our idea can play an important role in the immensity of proposals already on the market.

Step 5: High-level Design

In this section we have included a few pictures of both the final assembly and the individual components. The aim is to show how the mechanical system, the electrical system and the software part are linked together.

The basic step was to find a base on which all components are fixed. The base must have one fundamental characteristic: stiffness. Then, with the help of CAD, it was possible to define the position of each individual component. As for the motors, we used the four threaded holes already present to design a support that would be able to fix them firmly to the base. The motors receive the input written with the computer via drivers and Arduino.

Step 6: Design of Sub-systems: Mechanical System

Mechanical systems


As explained above, there are certain requirements such as flexibility and ease of use, durability and the time it takes to fold a T-shirt that are of primary importance. As a starting point for the design of the mechanical system, our idea was to start from a commercially available product (which is completely different from our final objective) and automate it in order to best meet our needs.

Focusing on the mechanical system, the main characteristics that it must have are:

  • high durability over time
  • high flexibility
  • good compromise in terms of handling performances (i.e., smallest possible size, low weight, etc.)

In the next section we will present some possible designs that try to best meet these requirements.

Conceptual design: preliminary selection

Based on previously identified requirements and needs, the next step is to try to identify a conceptual design of the prototype. For the design phase, we proceeded in the following way: starting with the first design, the next one was designed to improve the defects of the previous one, and so on until we reached the final solution.

A good way to see the main functions our system has to fulfill is to write down a morphological chart (i.e., a table that includes all the functions that must be fulfilled), highlighting which solution seems to be the best. Table 1 shows the morphological chart where our choices are highlighted in grey.

Each panel is driven by a motor (for a detailed explanation of why and which motors we have chosen, see the section on circuits and sensors), connected to the basement by means of a proper support. The transmission of motion from the motor’s shaft to the panel is achieved by a specially designed paddle. To make the rotation of the panels easier and smoother, special hinges connect the panels and the base. In order to have the panels horizontal when at rest, small supports are placed between the panels and the base. For the removal of the shirt, a winch system is the least space-saving solution, as a sliding system has to be built underneath the base and this requires a raised structure. In terms of size and handling, both the jigsaw and folding solution have great advantages. In order to save as much weight as possible, making a few notches in both the base and the panels is clearly the most appropriate solution. However, the main question is whether the notches in the basement will have a negative influence on the stiffness of the structure. With regard to the supports of the basement, some important considerations must be made:

  • Foldable or telescopic legs would allow us to have an adjustable height that would increase the handling of our robot and we could adopt a sliding system for removing the shirt. The main problem with telescopic legs is their construction, and with both solutions the weight of the structure would increase considerably.
  • Using fixed legs would allow us to have a stronger, more easy-to-handle and lighter structure. The main question is how can we slide the shirt under the structure if it is practically at ground level? This question will be answered in the following paragraphs

Note: the choices made in the morphological chart are only a first approach to the final solution. As illustrated in the following paragraphs, some choices will be modified due to problems encountered during the development of the prototype.

Solution 1

The first attempt at design can be seen in the second figure. As explained before, all the panels are separated, and each rotation is controlled independently by a motor. In order to reduce the weight, some circular holes have been designed in each panel. The mechanism for removing the folded shirt is attached to the upper central panel, which is lowered by the sliding mechanism and allows the T-shirt to slide into the box. The base is raised thanks to four folding legs, which allow you to work about twenty centimeters off the ground.

The main problem with this solution is its bulkiness: if you have to fold a T-shirt, the size of the T-shirt affects the size of the structure. However, having a base constructed from a single piece is not the ultimate solution from both an aesthetic and handling point of view.

Solution 2

Another possible solution can be seen in the fourth figure. As before, all the panels are attached to a basement but the position changes: indeed, the panels used to fold long-sleeved shirts are positioned underneath and not beside the two main panels. In this way the space required is considerably reduced, therefore the handling is improved. The main drawback is that the shirt is not folded correctly and, since this is our main objective, this solution cannot be the final one.

Solution 3 (final design)

This solution is inspired by the first one, but we have tried to reduce the footprint as much as possible. In this direction the overall design has been changed in order to solve most of the problems present in Solution 1:

  • The mechanism for removing the T-shirt is the “winch with two pulleys”, see the sixth figure, and it has been moved to the lower part of the structure (i.e., attached on the base below the panle number six) because there we have more space since all the electronic components will be placed in the upper part. Moreover, this mechanism is simpler to be implemented and it occupies less space.
  • The design of the panels has changed as can be seen comparing the second with the fifth figure. Moreover, horizontal notches have replaced circular holes. With these two improvements we are able to save a lot of weight.
  • A plexiglass panel replaces the wooden one to reduce friction and facilitate the sliding of the shirt. In addition, in order to have the needed stiffness, the panel that has to make the last rotation (i.e., the panel number one) has no notch.

The main improvement is the base: to make it easier to move, the base is built like a jigsaw puzzle. In this way, the panels needed only to fold long-sleeved shirts can be removed when not required. This solution allows us to reduce both the weight of the structure and the use of material, and, at the same time, the handling is improved. In the section “Circuitry & Sensors” we will explain how it is possible to detach the motor’s connections when not needed.

In order for this solution to work, it must be placed on a work surface (a table, for instance) and the end must be left overhanging so that the panel can be lowered by the t-shirt removal system. When analyzing this aspect, one might think that it is a problem: in reality, when folding a t-shirt, one always works on an elevated surface so as not to have a bent back. Therefore, this solution is simpler to use than Solutions 1 and 2.


In this section, we will analyse the pros and cons of the different solutions presented previously by means of a visual chart.

Looking at second table reported in this section it is clear that the solution that seems to be the best among all the solutions proposed is number three. It is important to remember that this design was only developed from a theoretical point of view and that during the construction phase some modifications were necessary.


From the concept, the general shape and form of the product has to be designed while considering the technical and economic aspects; this is what the embodiment design consists of.

In this section, layout, forms and technical product is developed in accordance with technical and economic considerations. Next pages will show to the reader a detailed solution of the product, describing components for each function and requirement to be satisfied. Technical data about the manufacturing and assembly method and the material selection are also included. This section will be divided in three main sub-sections: material selection, design for manufacturing and design for assembly.

Materials selection

Since our product is intended to be a normal household appliance to be used in a domestic and everyday context, the main requirements to be met by the materials of which it is made are mainly two:

  • a high resistance and rigidity, since, as we all know, the T-shirt folding robot may be subject to falls and violent shocks. Who has never dropped their vacuum cleaner or iron?
  • a light weight, so that it can be easily handled and stored when not in use. Consequently, one requirement is the density of the material.

In this section the materials for each component will be discussed and afterwards selected. It is necessary to have different options to compared them and to check if they fulfil the requirements and specifications. This section will be divided by component and for each of them a material analysis will be carried out, always taking into account what the requirements of our project are.


Depending on the requirements that have to be met, the best material for making the base of our robot is wood. Metal and plastic materials are directly excluded due to their excessive density in the first case and low flexural rigidity in the second. In particular, considering that a balance between stiffness and lightness has to be achieved, the best material is birch plywood. Because of its properties, a 6 mm plywood panel will be used. Indeed, 6mm plywood is easy to work with, so it’s great for DIY projects. It also holds screws well so final products will hold together securely and will remain stable, that is the main requirements for the base since all the different parts such as hinges, motor supports and supports will be fixed to it.


As far as the material of the panels is concerned, since they are attached to the motors by paddles and therefore have to rotate together with them, they must meet two fundamental requirements: stiffness and lightness. In this case too, the best material is wood, but since the panels do not represent the supporting structure of the whole robot but only separate components, our choice has been directed towards a lighter material that is also very strong, such as MDF. In particular, 3 mm MDF sheets are selected, as they meet the requirements for our case, and have as key features the fact that they can easily screwed and glued, and their lack of knots and grain ensures the cut in all directions while maintaining its original strength. The mechanical and physical properties of MDF that are of interest for the development of our project are summarised in the attached table.

Hinges, supports, motor supports and paddles, pulleys

For the other components needed to assemble our robot, such as the hinges, motor supports, paddles and panel supports, the requirements that they must meet are rigidity and at the same time lightness. It is precisely for this last reason that we rule out metal components and opt for plastic ones. But since there are no commercially available solutions that meet our geometric and functional requirements, these components will most likely have to be 3D printed. Consequently, the best material is PLA. This material has good mechanical properties, such as tensile strength and modulus of elasticity, while at the same time being lightweight. The attached table summarises the main properties of PLA that are suitable for our project.

Sliding panel

Finally, as regards the panel of our robot connected to the mechanism for the removal of the shirt, the main requirement that it must meet is to present a low coefficient of friction and at the same time an excellent lightness. This is why we have ruled out the choice of MDF in favour of a plastic material such as plexiglass. It is certainly not the best material in terms of lightness, but considering the materials at our disposal, it is the most suitable that meets the functional requirements for the realisation of this last part of our project. Its properties are described in the attached table.

Design for manufacturing (DFM)

This part consists of selecting the manufacturing process that minimizes both production costs and time for each part of the final product and adapting the actual design to respond to the constrains related to the manufacturing process, maintaining the required quality of the final product. Firstly, all the parts of the product can be divided in two categories: pieces that require a manufacturing process, and pieces that do not require it (i.e., they can be bought). In the fourth table reported in this section all pieces are listed in their appropriate category.

Before going into a detailed discussion of the technological processes we used, it is necessary to make a remark: this project is part of the mechatronics and robotics course that takes place in the first year of the master's degree program in mechanical engineering of the BRUFACE program. As a consequence, we were asked to produce most of the components we needed. In particular, motor supports and hinges were custom-designed (it is essential that the rotational axis of the hinges and that of the motors are aligned). Another solution is to buy standard-sized hinges and redesign the motor mounts to achieve the required coaxiality.

Panels & Basement

These two components have a large number of through holes. Both are made of wood, in particular we have used:

  • Birch 6mm for the basement. Best solution to achieve the required stiffness.
  • MDF 3mm for the panels.

To achieve the degree of precision required for our robot, laser cutting technology is the best choice. It allows us to obtain 3D geometries with an excellent surface quality in a relatively short time.

Paddles, supports, hinges, pullets & wheels

All these components have a specific shape and size that cannot be achieved by simply cutting a wooden panel. The other solution we had was 3D printing, so we decided to use this technique. With 3D printing you can get plastic components (PLA to be exact) with a very good surface finish and good mechanical properties. The main disadvantage is the high printing time. As a result, we started to produce all the components that needed to be 3D printed, so in case the process failed (and it did sometimes), we had plenty of time to start a new one.

Design for assembly (DFA)

During this section we will try to do all the needed improvements to avoid doing modifications during the production phase in order to minimize the costs. The assembly phase can be decomposed in into two main steps: handling and fastening.

Concerning with the handling the most critical parts are the panels which can be broken if they are not handled with care (this is due to the reduced thickness we have chosen for the panels and the large number of cutouts). All other components are quite robust and do not require any special attention.

For the second step, screw fixing is the main method used. In the following we will give more details on how the different parts are fixed:

  • Hinges. they consist of two separate components and a shaft that allows them to rotate. For assembly, the shaft is fixed to the base by means of a brass insert and a headless screw, while the mobile part is left free to rotate around the shaft (two bearings are inserted inside to reduce friction). Once assembled, the hinge is fixed to the base by means of four screws and bolts.
  • Paddles. They are attached to the motor shaft on one side by means of a brass insert and a grub screw to prevent slippage. As for fastening to the panels, this is done using three screws and bolts.
  • Supports of the motor. They are fixed to the base by means of four screws and bolts, while for fixing the motors we have inserted four screws into the threaded holes already present in the motors.
  • T-shirt removal mechanism. The motor, shaft and pulleys are secured using brass inserts and headless screws. After that, each pulley is fixed to the base by means of screws and bolts. Motion is transferred from the pulleys to the panel via two wires, fixed at both ends by a knot.
  • Supports of the panel. These components have been designed in such a way as to accommodate a screw inside them, which is then secured by a bolt on the opposite face of the base.

Another important consideration is that during the operation of the prototype we expect a very low level of vibration and therefore simple nuts, rather than self-locking nuts, are more than sufficient. In this way we can avoid unnecessary expenditure.

Final CAD (components & assembly)

In this section we will present the final design of our prototype which was then built. In particular we will try to explain for each component the difficulties we encountered, and which led us to make some modifications from the conceptual design presented earlier.

Figure 6 shows the hinges. In terms of both design and construction, these did not cause any major problems. Figure 7 shows the details of the paddles which transmit the rotation from the stepper motors to the panels. These components, too, were made without any major problems: the only problem is that, as can be seen from the figure, in order to apply the brass insert and the headless screw, one side of the paddles is thicker than the other. To prevent the thicker side from hindering the sliding of the shirt, we made the paddles so that they are mirrored. Consequently, one pair of paddles was mounted on the right-hand side while another pair was mounted on the left-hand side of the prototype, as can be seen in figure 7. Continuing with the explanation, we move on to figure 8, which shows the two types of supports, made to fix the two different types of stepper motors that we have adopted. The only difference in the supports are the dimensions.

Moving on to figure 9, a few additional considerations must be made. On the right-hand side of the figure we have shown panel number 2 as it should have been according to the conceptual design phase. During this phase we assumed that the motor needed to rotate panel 1 would be a stepper and would be connected to the panel via an extension that would connect the motor shaft and the respective paddle. Due to the high torque required (as explained later), it was necessary to use a servo motor for this application.

In a first step, we positioned the servo motor vertically (thanks to a notch in the base, the panel would not be modified any further) and connected the paddle via a gear wheel system. After a few tests, we found that this solution did not work (the main problem is the weight of the T-shirt, which flexes the panel when it rotates, causing the gears to misalign). To solve this problem, we positioned the servo motor horizontally, changing the support, the paddle and making the notch visible in the right panel of figure 9.

In figure 10 we have shown the final solution for the correct operation of the servo motor, including support and paddle.

Figures 11, 12, 13 and 14 show details of the final prototype. The last modification we made to the finished prototype is related to the stiffness of the base. During the final tests, we left the robot in the working position (i.e. with the end part cantilevered) for several hours. At the end of the tests we noticed that the base was not stiff enough and that the wood had already started to bend. In order to solve this problem and achieve the durability we had set ourselves when drawing up the list of requirements, we fixed two 3 mm thick and 30 mm high strips of wood under the base using special glue. These strips run along the entire length of the base and gave us a perfectly rigid structure.


The testing part was long and delicate. We started by cutting cardboard panels of the same size as the ones we were going to build in wood, and we manually simulated the movements the prototype would make once it was ready. These tests allowed us to slightly modify both the measurements and the design we had assumed. Again manually, we made sure that the pieces obtained with the 3D printer had the right dimensions (this step is very important as the printed piece may have different dimensions from those defined in the CAD model) and that the hinges, once printed, would rotate without friction. Finally, we assembled the prototype, put a T-shirt on it and manually simulated the action of the individual motors. The end result was very satisfactory and allowed us to continue with the development of the robot.

3D Printig & Laser Cutting files

To conclude this section, here are the files we used to 3D print the components and to laser cut the wooden parts.

Step 7: Design of Sub-Systems: Circuitry and Sensors


Based on the design of the mechanical system, the main requirements that circuitry and sensors should satisfy are:

  • Motors: They must have sufficient torque to rotate the panel to which they are attached plus the weight of the portion of the shirt resting on the panel (note: the portion of the shirt changes depending on the panel we are considering, as explained during the calculation of the torque). In addition, for our application, torque is not the only requirement: in order for the shirt to be folded correctly, the motors must rotate quickly (otherwise the shirt will slide on the panel before being folded).
  • Circuitry: The main challenge is finding a way to easily remove the lateral parts of the robot without cutting the wires.
  • Sensors: First of all, they must be able to recognize the presence of the shirt on the robot. Moreover, they must be able to distinguish whether the shirt to be folded is short-sleeved or long-sleeved in order to launch the right part of the code.

The third point was solved without too many problems: it was enough to use two photoresistors. One of these were placed under the side panels, so as to distinguish the length of the sleeve, while the second one was placed under the central panel. This recognizes the presence of the shirt and gives the input to the code to start.

Solving points one and two was the most difficult in this section. Indeed, the first main problem was finding a motor that matches our requirements in terms of torque and speed.

As already explained, another problem of this robot is its dimensions. To solve this problem, we have already explained that it was necessary to change the design until we arrived at the final solution. The big advantages of this model are the flexibility of the robot to switch between long and short sleeves t-shirt and the much more improved handling. However, this solution introduces a problem in the wiring of the different components: we have to find a way to be able to remove the motors that are attached to the panels. The solution to this problem is given in the following paragraphs.

Design process and considerations of components

During the first part of the process, we focused on calculating the torque required for each motor. Then, the implementation of the sensors to detect the presence of the t-shirt was discussed. At the end, the removable system was studied.

To determine the torque required for the motors two ways were used: a manual and a software computation.

Manual computation

The study was done 4 times for the 4 different panels of the robot: the lateral panel, the side panel, the upper center panel and the lower one. The torque was calculated knowing that we will be use three-mm thick MDF sheets for the panels. The torque calculation was done based on the first solution proposed during the conceptual design phase, because the dimensioning of the motors was the first fundamental step in understanding whether our prototype was feasible or not. The CAD model of this solution is reported in figure 15 and the correspondig dimensions can be seen in the first figure of this paragraph.

For the calculation of the torque, we used the following equation

T=ρ×V×g×b [Nm]


  • T is the Torque.
  • ρ=850 kg/m^3 , is the density of the MDF.
  • V is the Volume of the panel we are interested in.
  • g=9,81 m/s^2 , is the acceleration of gravity.
  • b is distance between the axle of rotation and center of gravity of the panel (Note: to simplify the computation we assumed that the mass of the panel is concentrated in its center of gravity).

The obtained values of the torque for the different panels are reported below

Lateral panel (8 holes, hole diameter = 55mm, b = 115mm):

Vtot = 230mm×350mm×3mm = 241 500 mm³ = 2,41*10^(-4) m³

Vhole = (π×d^2)/4×3 = 7127,49 mm³ = 7,13 ×10^(-6) m³

Veff = Vtot-(8×Vhole) = 1,84 ×10^(-4) m³

Teff = ρ×Veff×g×b = 0,18 Nm

Side panel (18 holes, hole diameter = 55mm, b = 110mm):

Vtot = 220mm×770mm×3mm = 508 200 mm³ = 5,082 ×10^(-4) m³

Vhole = 7,13 × 10^(-6) m³

Veff = Vtot-(18×Vhole) = 3,8 ×10^(-4) m³

Teff = ρ×Veff×g×b=0,35 Nm

Upper center panel (8 holes, hole diameter = 55mm, b = 170mm):

Vtot = 290mm×340mm×3mm = 295 800 mm³ = 2,958 ×10^(-4) m³

Vhole = 7,13 × 10^(-6) m³

Veff = Vtot-8×Vhole = 2,39×10^(-4) m³

Teff = ρ×Veff×g×b= 0,34 Nm

Lower center panel (8 holes, hole diameter = 55mm, b = 208mm):

Vtot = 304mm×417,15mm×3mm = 380 440 mm³ = 3,8 ×10^(-4) m³

Vhole = 7,13 × 10^(-6) m³

Veff = Vtot-8×Vhole = 3,23×10^(-4) m³

Teff = ρ×Veff×g×b = 0,56 Nm

Based on the different results, the required torque for lateral, side, central upper panels and center lower panels are respectively 0.18 Nm, 0.35 Nm, 0.34 Nm, 0.56 Nm. There are different types of motors available on the market, but for our purpose the most suitable choice is certainly stepper motors. This type of motor is relatively cheap and very easy to adjust in terms of angle of rotation. In particular, the motor given to us in the laboratory is a Stepper: The Nema17 42A02C. It can be seen from the figure 16 that the torque of this motor decreases as the angular speed increases. So as a first approximation we calculated that 150 RPM would be sufficient to rotate the panels without the shirt slipping. The figure 16 also shows that this angular speed corresponds to a torque of 0.5 Nm. This value is sufficient for the panels at the side (i.e., number 4 and 5 in Figure 1) but is too low for all the others. It is important to remember that the values of the torque required were obtained without taking into account the weight of the T-shirt.

The torque problem was solved by changing motors. For the panels 2 and 3 (always refer to the first figure of this paragraph for the numbering of the panels) we still used a stepper but with a higher torque. In particular, we used the Nema17.

For the upper center panel (i.e., panel number 1), the choice of engine was not so obvious: in addition to the problem of too low torque, here we have a problem related to the space available for the location of the motor. To solve the latter problem, we thought about two possible solutions:

  • the first consists in using a stepper with an even higher torque than the one used for panels 2 and 3 (in this case we have to consider that the T-shirt rests almost completely on the panel) and attaching the paddle and the motor with a shaft.
  • The second is to change the type of motor. In fact, by using a Servomotor we would have an higher torque and a smaller motor.

The second solution seemed to us to be the best and the one that would give us the best results. Therefore, we used the servo motor MG996R, as shown in figure 17. Its torque is high enough to move the upper center panel.

The previous discussion explains why the design of panel 2 has changed from what we proposed during the conceptual design phase. Indeed, during the conceptual design phase we thought that stepper motors would meet our requirements.

Finally, for the lower center panel (i.e., number 6) a small Nema17 42A02C was used to move the pulleys that activate the removal system. This motor only has to support the weight of the shirt during the descent phase, during which it is assisted by the force of gravity. During the ascent phase the panel is empty and consequently the torque of the Nema17 42A02C is sufficient.

After finding the most suitable motors for our prototype, the design of the prototype changed considerably. However, the improvements we made were always intended to lighten both the structure and the panels, so there was no need to redo the calculations.

Software computation

The torque was also computed with Solidworks which is the software we used for most of the 3D modelling.

In figure 18, we can see how the torque changes as the angle of rotation varies. The calculation of the torque with Solidworks was carried out using the final geometry as a reference (i.e., the one previously called Solution 3) and served as further confirmation that the motors previously dimensioned are suitable for our objective.

In conclusion, the torque required by each panel is less than the amount the respective motors are able to provide. The only exception may seem to be the lowest central panel which, however, as explained in the previous paragraph, has to make a downward rotation and therefore the motor does not have to exert any effort (once the shirt has been removed there is no problem for the motor to bring the panel back to a horizontal position).

Some considerations on the jigsaw puzzle

Now that the different engines have been chosen, we can focus on how it was possible to create the puzzle structure. Remember that the final design of the robot presents the possibility of removing the side panels to reduce its size. Therefore, the two motors, attached to the side panels, must be able to be detached and removed easily. A male-female pin system allows to fulfill this function (i.e., the one shown in figure 19). This method has been used here because it is the easiest to use and to set up. The output pins of the motors are female while the pins that are connected to the drivers are male.

Final circuit diagram

First of all, the stepper motors were connected to the Arduino uno. In figure 20, the wiring of 1 stepper motor is represented. The stepper motor is connected to the Arduino, by means of a driver. The figure of the driver DRV8825 shows how to connect the different pins, the connection of the sleep and reset pins keeps the motor always on. The role of the driver is to give the desired current to the stepper motor. After this, the photoresistors were connected as shown. The tasks of the two photoresistors are two:

  • detect the presence of a t-shirt.
  • inform the code whether the shirt to be folded is long-sleeved or short-sleeved.

The final step was wire the servo motor as shown on figure 20.

Once the different components were wired one by one, they were connected all together with a supply of 20V. We can observe the wiring of the overall circuit in figure 21.


Several tests were carried out for each individual sub-assembly consisting of motor, paddle and respective panel. These tests were necessary in order to understand whether the lightening of the panels, decided during the conceptual design phase, was sufficient to obtain the rotation of the panels at the speed we needed (in fact, 150 RPM was only an estimate of the speed we needed to calculate the torque). Once we were sure that the components worked individually, we assembled the prototype and carried out further tests. In doing so, we made sure that all the components worked (including the sensors and the start button) and we were able to solve a problem in the wiring.

List of electrical components


- 2 Small stepper motors (Nema17 42A02C)

- 3 Bigger stepper motors (Nema17 17HS19-2004S1)

- 1 Servo motor (SG996R)

- 5 Drivers (DRV8825)

- Power supply of 12V


- 2 Photoresistors

- 3 Resistors (1000 ohm)

Start button:

- Micro limit switch 10T85


- Arduino UNO

- Power supply of the Arduino 3 ways

o USB-B male cable (5V), used in this example

o Male jack cable (7-12V)

o Supplying with the pin Vin and a pin ground: (7-12V)


- Cable

- PCB board with enough space for the components

Step 8: Design of Sub-Systems: Software


The software must be able to:

  • Run a start/stop button which can stop the motors even if a t-shirt is recognized by the photoresistor.
  • Read the input send by the two photoresistors and based on the type of input (i.e. whether the shirt is long-sleeved or not) run the right part of the code.
  • Run multiple stepper motors and move two of them simultaneously
  • Run a servomotor.
  • Run more motors when a long-sleeved shirt is recognized.

Design process and considerations of components

Taking into account the maximum torque of the different motors, defined according to the requirements of the mechanical system, the corresponding speed was defined. The design of the mechanical system also influences the value set for the photoresistor and the angle of rotation to be performed by the motors. The latter two values can be defined by performing individual tests for each component.

Code flow diagram

For this section we refer to the figure 1 of this section, where we have outlined all the steps that the code must follow in order for the prototype to work properly.


As with the other sub-systems, the tests were first done individually for each component and, in a second step, we tested the functioning of the code for the complete structure. From the individual tests we obtained the following results:

  • The speed used for the stepper motor in stepper.setSpeed() is 60.
  • The photoresistors detect a t-shirt when they send a signal below 500
  • The servo motor goes from an initial value of 10 to 150.
  • The stepper with the wire attached goes to a value of 1600 to unwind the wire completely with a speed of 900


/*Example sketch to control a stepper motor with A4988 stepper motor driver, AccelStepper library and Arduino: continuous rotation. More info: */
// Include the AccelStepper library:
#include <AccelStepper.h>
#include <MultiStepper.h>
#include <Servo.h>

#define dirPin1  2//const int
#define stepPin1  3
#define dirPin2  4
#define stepPin2  5
#define dirPin3  6
#define stepPin3  7
#define dirPin4  8
#define stepPin4  9
#define dirPin5  10
#define stepPin5 13
#define servopin 12

// Define stepper motor connections and motor interface type. Motor interface type must be set to 1 when using a driver:

#define motorInterfaceType1 1
#define motorInterfaceType2 1
#define motorInterfaceType3 1
#define motorInterfaceType4 1
#define motorInterfaceType5 1
Servo monServomoteur;
// Create a new instance of the AccelStepper class:

AccelStepper stepper1 = AccelStepper(motorInterfaceType1, stepPin1, dirPin1);
AccelStepper stepper2 = AccelStepper(motorInterfaceType2, stepPin2, dirPin2);
AccelStepper stepper3 = AccelStepper(motorInterfaceType3, stepPin3, dirPin3);
AccelStepper stepper4 = AccelStepper(motorInterfaceType4, stepPin4, dirPin4);
AccelStepper stepper5 = AccelStepper(motorInterfaceType5, stepPin5, dirPin5);

int value =0;
int unpressed=0;

void setup() {
  // Set the maximum speed in steps per second:
void loop() {

    int photoresistor0 = analogRead(A0);
    int photoresistor1 = analogRead(A1);

    //start and stop button working  
    if(digitalRead(11) == HIGH && unpressed == 0){    
      if(value == 0){
      value= 1;
      unpressed =1;
    if(digitalRead(11) == LOW){
      unpressed =0;
     if( value == 1){//button started
      if(photoresistor1 <500){
        if( photoresistor0 < 500){
            while(stepper4.currentPosition()!= -85)
            while(stepper4.currentPosition()!= 85)
         while(stepper1.currentPosition()!= -85)
         while(stepper1.currentPosition()!= 85)
         while(stepper2.currentPosition()!= 85)
         while(stepper2.currentPosition()!= -85)
       while(stepper3.currentPosition()!= -1600)
        while(stepper3.currentPosition() != 1600)

Step 9: Integration Guide

The various subsystems of our project are:

  • 2 side modules for folding long-sleeved T-shirts
  • Central module for folding short-sleeved T-shirts
  • T-shirt removal system
  • Electrical system

The two side modules can easily be connected to the central module by means of a jigsaw connection, as explained in the previous sections. See figures 1 and 2. The stepper motors of these two subsystems can be connected to the drive of the electronic system via a simple male-female pin connection. The same applies to the sensor located in the left-hand side module.

The T-shirt removal system is integrated in the central module and is simply fixed to it by screws and bolts as explained in the section on the assembly. This can be seen in figure 3.

The drive and Arduino and all the electronic components are contained in a box fixed underneath the top central panel of the central module. The final result is shown in figure 4. However, due to a problem during the final testing phase of our prototype, we were unable to fix this last part.

The final set is displayed in figure 5, where we can see all the subsystems integrated together.

Step 10: Demo Project Show + Quick Start Guide

Demo Project Show

Here above there is a demo project show that briefly explains what our prototype is capable of doing.

Since we had a problem with the soldering of the drive during the final testing phase, we were unable to make a video of our actual prototype. What we are able to show you is a video of the functioning of the central module of our project regarding the folding of a short-sleeved T-shirt.

Quick Start Guide

    1. STEP: Place the central module of the robot on a table, cabinet or whatever, so that the lower part with the plexiglass panel protrudes outside the table, ensuring a good stability.
    2. STEP: Depending on your requirements, add or remove the two side modules for folding long sleeves. Once joined to the central module with the jigsaw coupling, connect the sensor and stepper motors to the central drive of the electronic system
    3. STEP: Once assembled and connected, plug the drive into a standard power supply.
    4. STEP: The robot is now ready to be used. Switch it on with the respective button and start positioning your clothes to be folded.

N.B For correct folding, position the shirt as in the attached picture.

Step 11: Critical Review

What would you do in a different way?

Due to mismanagement of the time available to us, we were unable to complete our project as we wished. For the time being it is only a prototype, but we are sure that with the right improvements it will become a real T-shirt-folding robot. Here are some ideas on how to improve and how to develop some parts differently and in a better way.

T-shirt removal mechanism

With regard to the mechanism for removing the T-shirt, the main problem that our prototype presents is that the strings interfere with the T-shirt as it slides. Consequently, a simple solution to this problem, which we were not able to develop due to lack of time, is to redesign the plexiglass panel and the base so that in its final part there are two extensions so that the cables can be attached to the pulleys without having problems of interference between cables and jersey. This idea is summarised in the sketch in figure 1.


Another point of our design which could be improved and which we would have liked to implement in another way concerns its size. Surely a more compact and possibly foldable structure would be an advantage in terms of both comfort and functionality. One solution would be to use bars rather than whole panels, but the disadvantage of this would be a not so perfect fold. The other solution could be to recreate something similar to the object introduced in the state of art. We have tried to think of a similar solution, but due to the presence of the motors and related components it was almost impossible to do such a task. Indeed, this would have required a complex system of hinges, which is difficult to achieve in our case.


To further improve both handling and ease of use, four telescopic legs could be added. This would allow the robot to work anywhere in the house without needing to be placed on a work surface (such as a table, for example). Clearly the telescopic legs, when retracted, should take up as little space as possible as the purpose is to store the robot under the bed or in a cupboard when not in use. To achieve this, both telescopic and folding legs could be used. For clarity, this solution is illustrated in figure 2.

Ecnomic considerations

Looking at the final cost of the prototype, we can clearly say that it is too high to be commercialised. In particular, the material chosen for the base and the number of motors have the greatest influence. A solution could be to use a less expensive material for the base that has the desired characteristics (e.g. aluminium sheet of the right thickness could do the job) and to devise a system (e.g. using belts) that uses fewer motors.

Step 12: Sustainability

There’s no way around it. Sustainability is an extremely urgent and universal concern.

Depending on the robot’s functions, sustainability could look different from machine to machine. In general, making a more sustainable robot starts with ethically sourced recycled or sustainable materials, functioning as energy efficiently as possible. Then the robot has to be repairable if broken and recyclable when it’s time to retire. While some sensors or computer chips might not currently be recyclable or reusable, those pieces wouldn’t make up a large percentage of the machine.

With regard to our project in terms of sustainability, we can refer to two main categories: materials, motors & power supply.

  • Materials. Although we have not made use of recycled materials, the materials we have used are certainly highly recyclable and reusable (wood, PLA, steel). For example, PLA may at first glance appear to be a material whose production is not sustainable. However, unlike common plastic (PET) made from fossil raw materials, it is made from renewable and natural raw materials such as maize.
  • Motors & power supply. Speaking of motors and power supply, one way to make our prototype more sustainable is to minimise the number of motors used and consequently the power consumption. To do this, we would have had to create a more complex mechanical system in order to associate more functions with one motor and thus reduce the power required by the entire assembly.

Finally, we have tried to make our prototype highly repairable, in fact every component can be accessed and replaced without any difficulty. Therefore, if there is a malfunction, it is possible to replace the affected part without having to get rid of the whole prototype.

Step 13: Bill of Materials

In this section we have compiled a complete list with all the components we used and their prices. The cost of the finished prototype is € 168.01

Step 14: Team Presentation

Our team consists of four mechanical engineering students: Pietro Oppici, Stefano Pontoglio, Corentin Vandebroek and Quentin Bertieaux:

  • Pietro Oppici: I completed my bachelor's degree in mechanical engineering at the University of Parma. I am now attending the second year of the master's course in mechanical engineering at the Politecnico di Milano. From the project I really enjoyed being able to physically realise a part that was modelled on CAD.
  • Corentin Vandebroek: I finished my bachelor’s in civil engineering at the Université Libre de Bruxelles. I'm starting a Master in electromechanics with a specialization in robotics in a special program called BRUFACE combining courses from the French and Flemish parts of the Université Libre de Bruxelles. The project taught me a lot about the realization of a project and the different problems that could arise.
  • Stefano Pontoglio: I am a student of Politecnico di Milano in Erasmus at ULB for the first semester. I studied mechanical engineering for 4 years, so my background is purely mechanical. That's why this project was so stimulating because I had to deal with electronic concepts that I had never studied before. The part that involved me the most was the mechanical design of each component of the prototype and of the entire assembly.
  • Quentin Bertieaux: I completed my bachelor’s in civil engineering at the Université Libre de Bruxelles. I'm starting a Master in electromechanics with a specialization in robotics in a special program called BRUFACE combining courses from the French and Flemish parts of the Université Libre de Bruxelles. The project taught me to use new tools like 3D printers and to apply some electronic and Arduino

Corentin did the 3D CAD modelling, Quentin wrote the code and wired up the motors and sensors, while Pietro and Stefano worked on the conceptual design and the proper functioning of the mechanical system. Finally, all together, we made the parts and procured the necessary components to assemble the prototype.

Step 15: Project Repo

Here you will find a folder where you can find the CAD and all the 3D printing and laser cutting files

Here you will find the same folder (.rar)

Be the First to Share


    • Make It Bridge

      Make It Bridge
    • For the Home Contest

      For the Home Contest
    • Game Design: Student Design Challenge

      Game Design: Student Design Challenge



    Question 10 months ago on Step 15

    Where is the schematic or wiring diagram ?


    Question 11 months ago

    Hey, I am working on a group project building something similar to this. In the wiring, there was a part that worked as an energy current. A transistor? Can you please tell us the name of those parts? Thanks! (If anyone can help please do so!)


    Question 11 months ago

    Hey, I am working on a group project building something similar to this. In the wiring, there was a part that worked as an energy current. A transistor? Can you please tell us the name of those parts? Thanks! (If anyone can help please do so!)


    Question 11 months ago

    Hey, I am working on a group project building something similar to this. In the wiring, there was a part that worked as an energy current. A transistor? Can you please tell us the name of those parts? Thanks!


    1 year ago

    Wow! Talk about a detailed Instructable!
    But too bad the result is a wrinkled fold when manual folding does much better.
    But hey! You certainly must have satisfied your Professor/Instructor.


    1 year ago

    I would disagree with your statement regarding price "we can clearly say that it is too high to be commercialised." There are thousands and thousands of small printing and embroidery shops that would spend $800 or so for this if 1) you could make it twice as fast and 2) you could make it robust.


    Reply 1 year ago

    I would agree with your disagree. Yes, a few changes here and there but the planning and pre-work you guys have done give it good “bones” to work with. Keep exploring options such as maybe Dibond panels, linear actuators, geared motors with rotary encoders and using reverse polarity for braking, etc. Look at other similar functions on machinery like box folders for inspiration. As with any product design, you will very rarely get it right first time..if follow through and learn the “ongoing improvements” phases. You’ll get there in the end. Great work.


    1 year ago

    HAHA Very nice!


    1 year ago

    As an electrical engineer and avid hobbyist (especially with microcontrollers) I very much appreciated the detailed project report and the attention given to so many details. And as a programmer at heart I am very, very happy to see a flowchart. I cannot count the number of times I have been asked to help debug projects that were coded without the use of a flowchart!

    I would have liked to see comments used in the code itself. Anyone who has to debug or maintain the code will benefit from well-placed comments. Even if you understand the program flow completely, you may not remember the details a year from now. I comment all my code, even if no one else will ever look at it; it makes life easier!

    Kudos to the team!


    1 year ago

    Good team work !
    It was certainly a "non sense" project, as conclusion can be done before the project, but I like both the "artisitic" spirit (make something funky, whatever is commercial interested) and the very well detailed and documented process.
    As it is say : "What matter is not the trip destination, but the travel !"
    (and aside that, it was very funny for me because I had in mind Sheldon folding system in Big Bang Theory - sure that he should not have deny yours)


    1 year ago

    That's a cool projet!

    To be usefull, it need to be able to take a stack of t-shirt and place it itself. When the t-shirt is unfolded and placed on the machine, it's faster to just do the 3 next step yourself than waiting for the machine.