Background Story
During my bachelor studies as a product designer, I gradually developed an interest in the concept of upcycling waste. Over time, my enthusiasm for business grew, along with the desire to turn ideas into profitable projects. When these two interests overlapped, I began to see the growing potential of transforming household waste into useful products for a specific target audience. From a market perspective, I view this as an untapped opportunity. On the design side, I believe there has been minimal effort in the area of organic waste upcycling. That’s why I see great potential in exploring this field further, transforming household organic waste into something genuinely valuable for a target group and creating products that are both useful and viable in the market from a strategic standpoint.
In addition to that, I’m very passionate about experimenting with materials and different production techniques, especially molding.
How the Idea is Relevant to the Maker Diploma Final Project
After being selected for the UFM scholarship, I wanted to make the most of the opportunity by capitalizing on my interest in upcycling. At first, the concept was complex: I initially wanted to transform organic household peels into a functional product, such as soap. I aimed to integrate the entire upcycling process into a single project. However, after multiple feedback rounds, I realized it wasn’t feasible, especially within the limited timeframe of the project.
I started simplifying the concept, gradually narrowing the focus until I settled on a core function: rolling. I decided to create paper pulp material where the organic waste becomes the hero of the material. Through a rolling technique, I’ll produce thick, upcycled paper intended for practical use.
This DIY paper maker in specific acted as a key inspo for the form design as I wanted to roll paper material between two rollers, however the inspo function by one rolling to press a plate. I used this kit as a reference at the back of my mind, and starting using the components as constraints to the form dims. Also, since I was new to electronics, during the feedback sessions I told by the instructors that I have to properly mount the motor and have a well connected chase body parts..
DIY kit as an inspo
Preliminary prototype adjusted to an A6 sized paper
Reference for the outcome size of the material which created restriction to the overall dims.
Arduino board dims as a constraint
Stepper motor size as a constraint
After many sketches and alternations, I created a quick 3D model with rough dims to the outcome material size A6 and other components, to get an overall idea of the closure parts dims and location..
I used Fusion 360 to create the 3d design of the project
On Fusin 360, started by saving the file to the cloud, and selected the plane that I needed to draw (right, front, top).
then create a new component for the front face.
Created a rectangle using the rectangle tool then tabs and t-slots to attach the front to the base and the sides
made sure that the curves were defined
extruded the curves to 3mm
I created a new component and paste a new one for the back side which is the exact copy of the front
Created a new component and sketch for the top face
Create a 38x8cm rectangle to act as a support for the whole body
added grooves to receive all the tabs for the sides
the left part also acted as a closure for the control unit and a slot was created for the toggle switch interface
Created a new component by copy then paste new the the top face, however, I edited the sketch to remove unnecessary lines and add slots to mount the Arduino and the driver. Also, grooves for the front and side faces to get attatched to the base.
Extruded the face 3mm
Side 1 (x1)
Created a new component for the life side and named it Side 1
Created a new sketch on the left plan and used the rectangle tool to create an 8x11 cm rectangle
Then created horizontal and vertical sketch lines to draw the tabs on one side and mirror it
In parallel, I was defining the lines to the origin point
Created a slot at the top only to get attached to the top face
while adding two rectangular slots for the Arduino ports
In progress.. all defined
extruded the side to 3mm
Side 2 (x1)
Created the second side to mount the stepper motor to, also acted as a closure (side) to the control unit where all the components are placed into
Created a new component in the left view and started creating rectangles and t-slots on a new sketch
Always make sure to define all the curves
The middle circle is for placing the motor side, while the 4 other small circles is for the screws
T-slots dims
Extruded the side to 3mm
Side 3 (x2)
Created the 2 sides which will act as a chase for the rollers, where the rollers will get attached by using bearings and screws.
Since I have 2 rollers, so I created 2 rows for the metal rod and bearing slot.
When extruded
Assembling process
Assembling the sides
Side view
Finally assembled
Software:
As for the 3D printing fabrication, I have used Ultimaker Cura
Material: PLA
Duration: almost 10 hrs (overnight printing)
Process:
I started with the 3D printing part, printing 2 rollers attached to rods and gears separately. As a trial, I fabricated a scaled-down version to test the rolling mechanism.
I transferred the cura file to the lab's SD card, inserted the SD card in the machine, and chose the file. (find attached)
After fabrication, the mechanism was the same as the 3d model which seemed to work fine. However, the roller itself had some issues with the finishing and this was mainly because I did not add support. Afterward, I was advised to add a chamfer to the ending to avoid any unpleasant texture or aesthetics. In addition to that, since I am fabricating a roller, I have learned that each circle end adds a point which creates a groove line at the end which I did not like either.
Later, when I was about to fabricate the actual-size rollers, the lab specialist and I realized that the size of the rollers was way big and it would require I guess more than 40+ hours for both rollers. In addition, the length of the roller exceeded the normal printer size.
So, I tried to minimize the scale as much as possible without compromising the functional features since I am using actual motors and designing a to-scale prototype. It was a trial and error process where I minimized and sliced until the 2 rollers reached a total of almost 90 grams / 10 hours. I had to leave it overtime to finish. The next day I started removing the supports and sanded the surfaces for a better look and feel.
Slicing software: cura
Material: PLA filament in black
Machine: Pruisa 3D printer
Cura file prepping
made sure the rollers are laid flat in the bed
Slicing: 10 hrs of printing
Infill adjustments
Prepective view
Top view
Side view
Scaled-down 3d printed (sample)
Fabricated a scaled-down version as an initial prototype to test the rolling mechanism and the gears motion.
not using a support led to not neat cylinder end
Circle layering fabrication end..
Real size fabrication outcome
First layers of the rollers
Straight out of the 3d printer
After finishing
Files: (at the end of the documentation)
Software: Illustrator, RD works (at the lab)
Material: Plywood (3mm)
Type of cut: Cut only
Duration: 8 mins.
Process: At the beginning of the diploma, I tried to download the dxf extension but failed. I assembled them in Illustrator and then in the lab using the nesting software (RDworks) for the laser cutting.
I had only cut parts, so I adjusted the Speed to 40 and the Power to 45.
After the first trial, I realized that I forgot to add a slot for the toggle switch, so I did in the second and final trial.
RD works software
Plywood, 3mm
El Malky laser cutting machine
Imported the file to RD words
Adjusted the faces on the sheet
Adjusted the speed and power of the cut
I sat the origin point and tried out the cutting are through the frame action
Then started cutttinf right away..
While laser cutting
Trial 2
Input Component:
Toggle Switch (3 modes)
Function: Acts as the user interface to control the system. When toggled, it sends a digital signal (HIGH or LOW) to the Arduino, indicating whether the system should activate or stop the motor.
Action (Output) Components:
Stepper Motor
Function: The actuator that performs the mechanical movement required by the system. It rotates or moves precisely according to the signals received by the switch.
Motor Driver
Control/Processing Unit:
Arduino UNO
Function: It acts as the brain of the system, managing the interaction between input and output components.
Stepper Motor NEMA 17
Stepper Motor Driver (A4988)
Flexible Coupling
metal liner rods (x2)
Flange bearing (x4)
Toggle switch 3 states (stick)
Male / Male jumpers
Male / Female jumpers
crocodile jumpers
Arduino uno
Wall Adapter 12Vdx (2A)
Toggle switch modes
Arduino:
Pin 2 of the Arduino in connected to pin D of the motor driver
Pin 3 of the Arduino is connected to pin S of the motor driver
Pin 4 and 5 of the Arduino are connected to the toggle switch for forward and backward motion
The 5V pin of the Arduino is connected to the driver's 5V
The GND pin of the Arduino is connected to the GND of the driver
The other GND is conned to the toggle switch
Driver:
The GND pin is connected to the power supply 9v
Power management
9V adapter
-ve driver GND
+ve 9V motor driver - Vn Arduino
I used the 9V adapter because it provides sufficient power for both the Arduino and the stepper motor. The Arduino's voltage regulator can step it down to 5V for the board, while the 9V is suitable for driving the stepper motor and its driver efficiently. This voltage ensures proper operation without underpowering the system.
This is an online reference for a stepper motor that I based my code on
Description:
The core function of this smart device revolves around its rolling mechanism. A toggle switch acts as the input component, controlling the two modes of the stepper motor that create the rolling motion: forward and backward. The switch is connected to Arduino pins 4 and 5, while the stepper motor driver is connected to pin 2 for direction and pin 3 for steps.
This Arduino code constantly checks whether the left or right switch is pressed. If you press the left switch, the motor turns forward; press the right switch, and it spins in reverse. If neither switch is pressed, the motor stays still (off mode). Two pins control the motor: one sets the direction, and the other sends pulses to move it step by step.
This Arduino code controls a stepper motor using two toggle switches. One switch moves the motor forward, and the other moves it backward.
Wiring:
Two switches are connected to pins 4 and 5 on the Arduino. These switches control the direction of the motor.
The motor driver is connected to pin 2 (for direction) and pin 3 (for stepping).
Setup Function:
The switches are set as inputs with internal pull-up resistors, which means they normally read HIGH, and when pressed, they read LOW.
Pins 2 and 3 are set as outputs to control the motor.
It starts the Serial Monitor so you can see messages on your computer (as attached)
Loop Function (this runs over and over):
It reads the state of both switches.
If the left switch is pressed, it turns the motor in the forward direction (by setting dirPin HIGH). It makes the motor take 20 steps, with a slower speed (delays of 3000 microseconds).
If the right switch is pressed, it turns the motor in reverse (by setting dirPin LOW). It also makes 20 steps but faster (delays of 1000 microseconds).
If no switch is pressed, it tells you that the motor is off.
#define SWITCH_LEFT 4
#define SWITCH_RIGHT 5
These lines define the pins where the left and right switches are connected.
SWITCH_LEFT is connected to pin 4 and SWITCH_RIGHT to pin 5.
const int dirPin = 2;
const int stepPin = 3;
These are the control pins for the stepper motor driver:
dirPin: sets the direction of the motor (clockwise or counterclockwise).
stepPin: sends pulse signals to make the motor step (move).
Void setup
Inside setup:
Serial.begin(9600);
Starts serial communication so you can print debug messages to the Serial Monitor.
pinMode(SWITCH_LEFT, INPUT_PULLUP);
pinMode(SWITCH_RIGHT, INPUT_PULLUP);
Configures the switch pins as INPUT_PULLUP.
This means:
The switch is normally HIGH (because of the internal pull-up resistor).
When the switch is pressed (connected to GND), it reads as LOW.
Serial.println("Toggle Switch Test Initialized...");
Prints a message to the Serial Monitor when the program starts.
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
Sets the motor control pins as outputs.
void loop()
This runs forever, checking the state of the switches and controlling the motor.
int leftState = digitalRead(SWITCH_LEFT);
If LEFT switch is pressed:
The motor moves 20 steps in one direction.
Else if RIGHT switch is pressed:
else if (rightState == LOW) {
Serial.println("Switch State: RIGHT (ON)");
digitalWrite(dirPin, LOW); // Set direction to the other side (counterclockwise)
for (int x = 0; x < 20; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(1000); // Faster than the left switch!
digitalWrite(stepPin, LOW);
delayMicroseconds(1000);
}
}
The motor moves 20 steps in the opposite direction
If no switch is pressed:
else {
Serial.println("Switch State: MIDDLE (OFF)");
The motor stays still
Started by assembling the electronic components.
mounting the motor
mounting the gears
mounting the metal rods
mounting the PLA roller
This positing of the gears led to uneffiencent rolling
So i flipped the gears inwards and the screws outwords
control unit part
2 rollers mounted perfectly..
Control unit and toggle switch placement
Control unit from the inside
Gears closeup
The bearing are attatched by 5mm screws and nuts
The metal rod is fixed to the roller by a 3mm screw
The sides are attatched together by a 3mm scews and nuts
Manual testing for the rollering mechanism and the gears frication
After assembling the electronics components, I connected the Arduino to the laptop by USB to upload the code and test the code through the seriel monitor
Toggle switch in the middle position > off mode
Toggle switch in the left position
> on mode (Forward)
Toggle switch in the left position
> on mode (Backward)
Started assembling the fabricated plywood and 3d printed pieces and the electronic components all together.
Yes, I always asked for feedback because I knew I couldn’t figure it out easily on my own especially when it came to coding and components integration.
Also, in the fabrication part when I tested the rollers in a scaled-down version. One ending of the rollers was not as expected as if the filament was still in its original condition and did not create a proper surface. And this happened because I ignored to add support because I wanted a scaled-down
Also, there was a thin groove horizontal line in both rollers that looked odd as they were not part of the design. So I asked for feedback from the lab specialist and I learned that each circle when fabricated has an endpoint, so when the endpoints are created above each other they create a slight groove line. So I can do this by trying out another grid shape and also there are other post-fabrication techniques.
It's important to mention that when I fabricated the real-size rollers, I made sure to add enough support. Also, I chose to fabricate in black color so if there are any imperfections, they won't be so clear.
Challenges:
> Laser cutting fabrication part
When I did the laser cutting for the first time, I noticed that I did not create a slot for the toggle switch. So I went back to Fusion 360 and edited the base part by creating multiple slots with slightly different dims to test.
> 3d printing part
When I was about to fabricate the actual size rollers, I noticed that the fabrication would take way longer than I assumed. So I went back and forth between fusion and cura, trying to minimize the roller without affecting the overall project in a negative way then to cura to slice and see how long will it take to get fabricated.
> Wiring part
I would have invested more time in designing an aesthetically pleasing product, rather than just creating a machine-like project that simply performs a function and nothing more.
Maybe by adding fillets to the edges of the faces
Also, if I had more time, I would have created the tray part which will act as a place to receive the material.