[RELEASE] ESP8266 / Arduino servo controlled smart blinds

That looks like what I need. I just checked amazon (for prime reasons). Will look at ebay US. Thanks!

No problem !

I double checked the pins on the Wemos D1 Mini, the servo connects to the 5v and GND connection on the board. The Wemos is powered by a 5v USB plug. Just the PWM signal is coming from the D port.

I like using the Wemos or NodeMCU boards because they can handle the 5v or so coming from a USB/Phone power adapter. I looked at a less expensive ESP8266 however I’d need more chips and work to get the voltages around to what I needed. Keeping to these two boards helps keep it simple.

Im also attempting to power a bank of three blinds. The only results i can find when searching for a 5v 6A power supply are multiple port usb hubs. Guessing this is not a proper solution to the issue

1 Like

Are you able to modify the code to support stepper motors with rotary encoder inputs to detect top/bottom positions?

I have stringless cellular shades on all of our windows and would really like to raise/lower them. They use a spring loaded tensioner in the top that prevents the shades from falling down. If I use your setup with the gears, and drive it with a stepper or continuous rotation servo and a rotary encoder for positioning, I could easily open/close the blinds on a whim.

Sadly, I have no development skills, but could easily test, as I already have all of the hardware and just need to print the gearbox you have designed.

Here is something on AliExpress… maybe look for 8-10 amps though at 5 volts as I have no idea the quality of these and how hard they really can be driven.


@Synthesis unfortunately I do not have any cellular blinds to develop with, and the faux wood blinds are far too heavy to lift.

@jetpuf, thanks for responding to my post.
I’d be willing to do testing and poke at things if you could guide me a bit. Steppers work by defining the number of steps to move in a direction. The stepper will move that distance until it hits a stop, and will continue to try to complete the process unless told to stop by the software.

If the software is able to maintain awareness of the blind position by listening to the encoder, then you can program in a stop position at either end of the lift/lower limits.

I may just have to convert all of my windows to a slatted design in order to have blind control… Not something I’m sure I need if that’s the step I have to take. Besides, the cats will just tear whatever I put in place up.

why not use this idea and power with a battery and use solar panel to recharge the battery. this will equal a cleaner look and no wires to see or run.


Worth looking into for sure. Certainly would easily add on. I would be a little concerned about amp draw though and if there is enough daylight to have a net gain on the battery.

I finally got mine set up today – For some reason it would compile fine but my MakerFocus NodeMCUs got stuck in a boot loop trying to connect to wifi. Once I removed the 40 retries, it came up great and works!

I integrated it with my HA Bridge, and now Alexa knows how to open and close my office blinds :slight_smile:

I’m a very beginning developer, so I need to understand the code a bit more. I want to hack together control for another servo on a second GPIO since I have 2 blinds pretty close together. I also need to understand and tweak the values, because the range of motion isn’t complete – After I click 100 to open, I still have to click around 70/80/90 to make minute adjustments.

I can’t thank you enough for creating the springboard for getting me interested in blind control. Your 3D models are dead on for my blinds, the 8266 code fits into what I’m just learning, and this is a really fun project. THANK YOU!

I had the same problem with ESP8266 loop trying to connect. Finally i found my answer somewhere (can’t remember the source). Basically the problem was GPIO0 which when pulled LOW causes ESP8266 to enter flash mode. Apparently, opening Arduino’s serial monitor pulls GPIO0 LOW. The ESP8266 will cycle trying to connect and you’ll see gibberish on the serial monitor.

I fixed the problem by uploading the code without opening the serial monitor. Once that’s done, use CoolTerm or something similar to connect to the serial port and reboot. Done!

I’m pretty new to all this so I apologize if some technical details are not accurate but i think that’s the overall idea. Just wanted to share since it took me forever to find the solution. Also, i wish i remembered where i found this information.

1 Like

I have WPA2 setup for network security. I have not had any luck with this connecting. I can drop down to WEP and connection is fine. What am I missing?

Happy to read people getting these setup! I’m hoping to get some better pictures and documentation setup this weekend.

@yarkovski1981is right, if you have the serial monitor open when the NodeMCU first boots it causes some issues. I usually would plug in the NodeMCU, then open the serial monitor to verify that everything is connecting.

@MoreBeer that’s an interesting behavior, I have not experienced that on the blinds I have setup. Maybe the delay needs to be adjusted before the servo disconnects. I’ve considered setting it up for 2 or even 3 blinds however I’m worried that the amp draw may be too much for a standard 2000mah USB wall adapter. You could run the servo’s in parallel if you want the blinds all set the same, however still limited to the power supply.

@dannyt597 I have WPA2 setup and it’s working just fine. Maybe something to do with the serial connection like @yarkovski1981 is talking about?

1 Like


I have installed the code on my Wemos D1 and I am connected to the webserver. When I select say ’30’ it rotates fine thereafter if I select ’20’ or ’40’ it doesnt rotate at all until I restart the Wemos D1.

Can you please help me with that?


You’d either need a big solar panel (blocking a lot of your window) or would need to be somewhere with direct sunshine 300+ days per year. I live in Seattle so we have over 200 cloudy days a year which means I have to look into a different solution. I’m going to have low power arduinos with RF radios that connect to a base station that has an ESP8266 in it. This should give me a few weeks of battery life if it gets too cloudy. The ESP would be too power hungry to be self-sustained on a solar panel.

Great job @jetpuf !!! I started off trying this on my own. Love this SmartThings Community. You just made me pull the trigger on the 3d printer tonight. I’ve been jamming all sorts of things in there to get the servo stable. Your blinds look exactly like mine. I got a Lulzbot mini. I was using various types and torques of servos and never could get it to work. Finally I stumbled upon someone that said TAKE THE PULL STRING OUT!! I have the code working with my NodeMCU 8266, got the servo turning the blinds, can’t wait till Saturday for my 3d printer to arrive so I can print your mount / gear system!! Any tips? Also, which servo(s) are you using? I have a radio shack standard, a Traxxas 2055, and 4 x Futaba S3003s coming Saturday along with my printer. We have a local electronics store that sells 6ft super thing USB mini cables for less than $4. I’m loving this project!! Keep up the great work!!

so doesn’t seem like this would work for you. but for others like myself it would, my windows get plenty of sun. Also remember most people do not control their blinds all day which shouldnt draw alot of power. the ESP and the servo can stay powered by the battery and the charging would get done by the solar panel, ensuring the battery always stays charged.

cool, i would definitely be interested in your documentation write up for the ESP8266. If you can get it with solar panels that would be a game changer.

I used some inexpensive TowerPro MG996 clones available on AliExpress for the servo’s they are said to have about 10kg/cm of force.

I’m not familiar with the lulzbot Mini printer. All 3d printers have a bit of a learning curve. Certainly if you like to tinker though they are a lot of fun! I have a Malyan M150 that I picked up for super cheap. It’s a clone of a clone of the Prusa i3.

You’re looking at ~62mA of power drain from the ESP alone, not including the inefficiencies of the solar charging circuit. You could certainly make it work with larger solar panels and a larger battery. Using a 2200mAh battery (decent size for most arduino projects) you’d only get 22 hours of battery life (that’s battery life without actually using the servo at all). That means you’re one cloudy day from having dead blinds. You could get a larger battery (~6600mAh) but it would still only give you less than 3 days of battery life. Throw in 2-3 movements a day and you could run into trouble.