DIY 3D Motorized Roller Blind Gear Mechanism
by MertArduino in Circuits > Microcontrollers
92 Views, 2 Favorites, 0 Comments
DIY 3D Motorized Roller Blind Gear Mechanism
This project is an updated version of my previous Motorized Roller Blind, which reached nearly 300,000 views. After reviewing user feedback, I realized that several mechanical and electronic parts could be improved.
In the original version, installing the 3D gear mechanism model and electronics enclosure required drilling holes into the blind profile and the wall. To eliminate this, I redesigned the entire system with a focus on tool-free installation and compact integration.
The biggest change is combining the 3D gear mechanism model and the electronics enclosure into a single, slide-in mechanical structure.
Supplies
This project was designed using widely available and affordable components.
Main electronic components:
- 28BYJ-48 5V Stepper Motor – chosen for its availability and low cost
- ESP32-S3 Mini Board – selected for its compact size and built-in WiFi & Bluetooth
- ULN2003 Driver – DIP module for breadboard circuit or SMT version for the PCB
- 5V 2A Power Supply – provides enough current for stable motor operation
If a custom-designed PCB is to be used, all necessary components are provided in the circuit step.
Mechanical components:
- 608ZZ Ball Bearing – reduces load on the motor shaft
- Custom 3D-printed gears and mounts
- M3 screws, bolts, and nuts for blind gear assembly
- 2 × M4 bolts to secure the 28BYJ-48 motor
If you are going to build a breadboard circuit, you will need a mini breadboard and jumper wires. Or you can purchase a custom-designed PCB and easily incorporate it into your project.
3D Design and STL Models
In the original version, it was necessary to drill holes in the roller blind profile to mount the 3D gear mechanism model and secure the 3D gear mechanism socket with screws. The same applied to the electronic enclosure, which had to be mounted to the wall with screws.
To eliminate these steps, I redesigned several parts in the 3D model:
- The electronic enclosure and motor gear mechanism are now integrated into a single modular design. This allows the enclosure to be securely locked into place by sliding it into position without drilling or using screws.
- The 3D gear mechanism model has been redesigned. It is now fully compatible with the original slot of the roller blind metal profile, meaning it can be mounted directly without drilling the profile.
- Additionally, the socket length has been extended and optional screw holes have been added, so that the 3D gear mechanism model can still be secured with screws when a different profile type is used.
- The motor and roller blind gear have been strengthened, and the bearing housing has been redesigned to perfectly fit the 608ZZ bearing type.
- Additionally, a second motor and roller blind gear have been designed to support different roller tube diameters. There are now two different gears available, with diameters of 27 mm and 24 mm.
The stepper motor gear attached to the motor shaft was printed with ABS filament to prevent deformation caused by heat and long-term use. All other structural parts were printed using PLA, which is sufficient for mechanical strength and easy to print.
All STL files are shared with the project. PCBWay’s 3D printing service can also be used if you don’t have a printer.
Gear Mechanism Assembly
The 3D gear mechanism housing assembly can be completed in just a few steps, as follows:
- Place the stepper motor gear onto the stepper motor shaft. To prevent it from loosening over time, I designed the gear's shaft entry to fit snugly, so you will need to press it on firmly.
- Place the stepper motor and gear into the gear mechanism housing, which is the main component, and secure it with two 4MM bolts.
- Insert the 608ZZ bearing by pressing it firmly into the socket located behind the blind tube gear.
- Place the bearing pin in the center of the bearing. Insert the 3MM bolt through the center of the blind tube gear; the other end of the bolt will come out of the bearing pin.
- Place the blind tube gear into the gear mechanism housing. The center bolt should come out from the back of the gear mechanism housing. Place a nut and bolt of the appropriate size, then tighten the bolt using a screwdriver. You can now move the blind tube gear back and forth along the gear mechanism housing.
The 3D gear mechanism housing assembly is complete. Let's prepare the circuit board before attaching the circuit enclosure.
Printed Circuit Board
The PCB has been redesigned to be as compact as possible and fits neatly into the integrated enclosure. It now uses an ESP32 board and offers both Wi-Fi and Bluetooth connectivity options.
As always, I chose PCBWay, opened the PCB order page, uploaded the Gerber file, and completed an order for five PCBs for just $5. PCBWay also offers PCB assembly and 3D printing services, so if you're looking for more professional assembly or high-quality 3D prints, this could be a great option. I'm very grateful to PCBWay for supporting this project.
At this stage, we can move on to soldering the components. Below, you can find a link to the project page containing the full component list and detailed information. To make SMT assembly easier, you can order a stencil along with the PCB and use it to apply solder paste. Alternatively, you can carefully tin the pads using a soldering iron, place the components, and then reflow them in an oven.
Programming
The full source code is attached. In short, the firmware uses the Blynk Cloud infrastructure and WiFi has been chosen as the communication method. The application's usage and features will be discussed in the next step. If you are using ESP32 S3 for the first time, here are the steps to follow for the initial setup:
Arduino IDE – ESP32-S3 Initial Setup
Before uploading any code, the Arduino IDE must be configured for ESP32-S3.
- Open Arduino IDE
- Go to File → Preferences
- Add the ESP32 board manager URL
- Open Tools → Board → Boards Manager
- Search for ESP32 and install the official Espressif package
- Select:
These settings are critical for stable serial output and WiFi behavior on ESP32-S3.
Libraries Used in This Project
The firmware uses the following libraries:
- WiFi – WiFi connection
- BlynkSimpleEsp32 – Blynk Cloud communication
- Preferences – Non-volatile storage (NVS)
All libraries are installed via Arduino Library Manager.
Blynk Cloud Setup
Creating a Blynk Template
- Sign in to Blynk Cloud.
- Create a New Template.
- Select:
- Hardware: ESP32
- Connection type: WiFi
Copy the Template ID and Authentication Token and add them to the code.
Data Stream Configuration
Within the template, go to Data Streams and create the Virtual Pins shown in the image.
All pins are of type Integer, and their maximum values can be increased based on your Travel Steps status. A value of 20,000 was defined for testing, but it was updated to 100,000 for actual use.
Uploading the Code
Before uploading:
- Enter your WiFi SSID and password
- Paste Blynk Template ID and Auth Token
- Select the correct COM port
After upload:
- Open Serial Monitor
- Baud rate: 115200
What You Should See on the Serial Monitor
If everything is correct, you should see the following:
Downloads
A Small Modification
Some ESP32-S3 Mini boards have relatively weak built-in antennas. Since this project uses an enclosure, the WiFi signal strength may be further reduced. To solve this problem, a short wire or external antenna must be added to the antenna pad. For more details, I recommend checking out this informative blog post: https://circuithelper.com/making-the-esp32-c3s-wifi-great-again/
To prevent this, I used a spare adhesive antenna left over from an old WiFi development board. I cut the antenna tip and soldered it directly to one side of the WiFi antenna pad. It doesn't necessarily require an adhesive WiFi antenna; soldering a short piece of copper wire can significantly increase the signal strength.
Place the PCB into the circuit enclosure. After connecting the stepper motor connector, connect the 5-volt power supply to the circuit. Next, plug the ESP32-S3 Mini into the PCB and route the antenna cable end outside the enclosure, which will significantly boost signal strength.
Finally, slide the circuit enclosure behind the 3D gear mechanism. Now we're ready for the next step!
Attach the Motor Gear Mechanism and Mobile App Setup
In this step, attach the 3D Roller Blind Motor gear mechanism to the roller blind and, if desired, complete the mobile app setup. I remove the original mounting parts from the blind profile and tube, then attach the special 3D motor gear set.
The Blynk Cloud web interface can be used to control the motorized roller blind, but I used the mobile app for better usability. You can download the app from app stores. Then log in with your email account registered with Blynk Cloud. The Templates you created in the web interface will appear on the screen; click on the template to be used. Add the tools to be used in the Template to the screen. These are:
- two Switch Buttons for Down and Up Blind control,
- one Labeled Value for Current data,
- one more Labeled Value for Travel Steps data,
- and finally a Push Button for Calibrate
The required values should be the same as the values you entered in the web interface. You can also see the required values for each tool in the images added.
If your mobile app is ready, it's time for the real test!
Real-world Test
Now let's test the application. First, move the roller blind to its starting position.
- Then press the Calibrate button once. This resets the current position and sets it to zero.
- Next, activate the Blind Down button. The motor gear will start moving and the blind will begin to descend. Wait until the blind reaches the desired position.
- When the blind reaches the desired position, press the Blind Down button again to stop the movement.
As you can see on the application screen, the number of steps is now stored in memory.
- From this point on, when you press the Blind Up button, the blind will automatically return to its starting position and move by a percentage based on the stored number of steps.
- When you activate the Blind Down button again, the blind will move back towards the final position and stop precisely at the calibrated point.
If you want to reset the start and end positions, press the Calibrate button again and repeat the process.
The application and motor gear operate very reliably during short movement tests. Now, let's see how the system performs over a longer movement distance. To do this, I mounted the roller blind in front of a window and began the real-world test.
- First, I moved the blind to its starting position. While the blind was in this position, I pressed the Calibrate button once.
- Then, using the Down button, I activated the motor gear and allowed the blind to move to its fully open position, completely covering the window.
At this point, I should mention that the video is sped up five times. Since a hobby motor was used in this project, it took about three minutes for the blind to reach its final position.
- When the blind reached the desired open position, I released the Blind Down button. As a result, the total number of steps was recorded and displayed in the application.
- Now, by activating the Blind Up button, the blind automatically closes according to the recorded percentage and allows the window to open again. As you can see, the blind reaches the zero position and stops automatically.
If you want to take it a step further, you can also use the built-in scheduling tool in the app. With this feature, the roller blind can operate completely automatically at predefined times throughout the day.
If you liked this project and want to see more content like this, don't forget to follow and like. Thank you for reading.