Blinds LIFT project

Hey guys. This is my first post here. Yes, I have looked over similar topics as this. Of course the scope and objective is a bit unique when compared to some of hte existing topics. I currently have a rasberry pi running an openhabian server. It controls 9 blinds tilt servos. These are all kits from MKSmarthouse. He makes great stuff!

There are three blinds in my house that my wife wants lifted and not just tilted open. These blinds are all on the 2.5" blinds frame platform. I have a 38kgcm servo spec'd. With a 27:1 worm gear I want to lift the blinds that require a 25lb force to lift. I want to place an ES8266 in the blinds frame and use a relay with external power supply to provide the lift servo with 7.4V. The 3.3V output from the ESP8266 would open the relay to give the 7.4V to the servo. Signal goes back to the ESP8266 direct. I think I should have a reed switch at the top (open) and bottom (closed) positions as inputs back to the ESP8266. The servo would receive power each morning to lift until the open reed switch was made. At night at a set time openhabian would send out the "close" signal via wifi and the servo would get power to rotate in the other direction until the "closed" reed switch was made.

The purpose of the project is to manage blinds lift in a compact, nearly invisible package that is internal to the blinds frame. I have seen others tackle the blinds lift issue, but the solution is always messy with pulleys , ropes, big gear boxes, etc. mounted in and around the blind and window. My concept has two small reed switches mounted on the window frame and one or two power source cords ran up tight on the outside of the window trim. I currently use small command hooks to keep the tilt servos' power source cords tight to the trim, and you can't even tell they're there. I also want the solution to integrate with my openhabian (raspberry pi) server. The blinds that will be lifted will get a command to open prior to being told to lift (open) or lower (close). This means there will be two servos, and it'd be nice to eliminate the existing MKSmarthouse PCB in the blind and power only one board. The benefit here is there are less wires and less components in these blinds.

To start with; I am looking for an ESP8266/relay combination to power the ESP8266 and servo- which requires 7.4V for peak torque while the ESP8266 can only handle 3.3V. A combination with two relays for each of the servos listed above would be preferred. Is this a good solution? Will this relay hold up to 7.4V? It's a SRD-05VDC-SL-C. Will I need the SRD-09VDC-SL-C to hold up to the 7.4V? If so, can anyone link me to an ESP8266/9VDC relay module that's available for purchase off the shelf because I'm not finding it.

Thanks in advance for the help.

The 09 in the Songle relay designation refers to the voltage required to energize the relay coils, not the voltage it can switch.

I suspect that most relay modules will work for your needs, just check that 3V3 is enough to drive the optoisolator.

thanks for the reply, wildbill. Good clarification. I hope you guys give me a break. I'm a mechanical engineer by trade, and I'm slow at learning the electrical and programming aspects of things!! So with the ESP8266/relay package I linked to; I run 5V to the board, a voltage regulator on the board provides 3.3V to the ESP8266, and the ESP8266 through some components on the board switches the 5V relays. Am I understanding the functionality? It will be pivotal in my setup, so any input is appreciated. Again, this board package is HERE and the servo it will be controlling is HERE. Will I be able to run one single 7.4V power source to the aforementioned board combo or will that fry it?

That relay module looks as though it will do the job but it needs 5V. The 7.4V to power the servo would be switched by the relay. I would be inclined to use a Mosfet instead though.

Your servo does not appear to be configured for continuous rotation, which you appear to need. Of course you can disassemble it and fix that yourself .

can you explain the MOSFET option? That that I can run 5V to the board and step up to 7.4V? The servo does turn continuously.

It isn't a question of stepping the voltage up - the servo needs its own power supply, likely one that can provide several amps.

The relay or Mosfet simply acts as a switch to connect and disconnect power from the servo.

Limit angle: 180°± 10°
Pulse Width Range(0°~180°): 500~2500 μsec

These servo specs from the seller's page you linked and all the comments seem to say this is not a continuous rotation servo.

Did you make a link to the wrong servo?


I see that now. I can turn the output shaft continuously though. Shouldn't it stop at 180°? Either way, I can take it apart and remove the stop dowel or get a continuous rotation servo- which by the way, how do those keep position? Do they have internal hall effect sensors?

I'm looking for an integrated board that can be fed with one power feed of 7.5V. Anyone know what'll work?

They do not keep position. A "continuous servo" is no more than a geared DC motor that has speed (only) controlled by a servo type signal. It no longer has any means to set or sense a position. It is NOT a servo.

Most have a potentiometer as the feedback mechanism. A continuous servo has the pot (feedback mechanism) disconnected.

Do I need a 3V relay since the power signal will be coming from the ESP2866, and it only outputs 3.3V?

You need a driver that can be actuated by 3.3V. It is extremely unlikely that you will find a relay coil that can be driven by a 3.3V (<10mA) output pin. The driver can be a logic level MOSFET that can be turned on by 3.3V or a BJT (Bipolar Junction Transistor).

Since you need a diver transistor it may make sense to just use the transistor as the switch instead of the driver + a relay. Depends on what you are controlling.

I want to control power to the servos. One servo is lifting the blinds and one is tilting. I understand I need an external 7V power supply to the servos. I need a 3.3V power supply for the ESP8266 or 5V power supply for an ESP8266 with onboard voltage regulator such as the adafruit huzzah or sparkfun esp8266 thing.

Won't using a mosfet require me to have some PCB or breadboard in my blind frame? I want pre-made and packaged, clean items assembled in it.

Can anyone point me to a MOSFET that can be triggered from the ESP8266's output to supply the servo with 7v and 2.5amp? How do I put these components together in a permanent fashion? I'm not putting a bread board in my blind is there some sort of "naked" PCB that can be bought and used to solder these components together?

I have come further along on this project. Again, here is the servo I am using. Since I can physically continuously spin the shaft I thought there would be some programming wizardry I could pull to make this function as a continuous rotation servo.

I am trying to make this function with my current blinds tilt and openhabian MQTT raspberry pi server. The blinds tilt mechanisms I have are courtesy of MK Smart House. They work great. The plan is to leave the sparkfun esp8266 thing dev board in the blinds frame at all times similar to how the current blinds controls are in the blinds frame. Since I will be losing position control on the blinds the UP and DOWN positions will be determined when a reed switch is made, and the servo will need to rotate until these inputs are seen by the sprakfun thing board.

I thought I should start with the current blinds tilt sketch from MK Smart House so everything integrates well. I'm realizing I'm in way over my head, and this is part of a project due Monday, 12-6-2021. I have all the physical components. Here are questions and issues:

1.) if i tear the servo open and disconnect the potentiometer will this function as a continuous rotation servo?

2.) i downloaded and arduino-compatible files to interact with the sparkfun thing esp8266 dev board through arduino ide, but it still will not interact with the board or upload my sketches. I did have the selection available to choose the thing dev board, but now I only have the thing (minus the "dev") after removing some arduino folders and trying to reinstall the software. Can I start making the sketch in arduino IDE and transfer it directly to the esp8266 thing dev after I get the software worked out, or does the esp8266 thing dev require its own unique commands to complete the same functions as a typical arduino?

ttt. Can anyone help with this?

I’d drop the servo and go for a dc motor with worm gearbox … but anyway ..
( The servo is likely to have a mechanical stop inside as well as the pot )
You will need limit switches anyway at the top and bottom of travel .
I’d sort the mechanics out first and get it driving open/closed with just a switch , then move on .

Have a look at commercial items or what other have done for inspiration


thanks a lot for the reply! I have to go with the servo at this point as the mounting brackets for it and the worm gear have been machined already. Furthermore, I am out of time. This must be finished and presented by Monday morning.

I just ordered a different servo that was built for continuous rotation.

So a servo.write(180) will make it go quickly one way while servo.write(90) will make it go quickly the other. What commands should be used to go X direction UNTIL the reed switch is made and a high signal is received on an input pin #4?

Any ideas on why im having issues with programming the esp8266 spark fun thing dev? is the language the same for it as it is for the arduino?

Usually 90 will stop the servo, less than 90 will go in reverse, faster toward 0, more than 90 will go forward, faster toward 180. You may have to experimentally find the stop point, it may (probably) will not be right at 90. Use writeMicroseconds() for finer control.

See the Servo.write() function reference.

thanks, gF. Alternatively, when the servo drives the blind to the reed switch can't I drop power from the pin supplying 3.3V to my mosfet? This will mean the only power the servo sees is the signal, and I think this means it will stop rotating. I ask this because I have read a lot of stories on the internet about continuous rotation servos being hard to stop, being hard to stop accurately, and I think if I drop power to it I can alleviate this issues. I will still try to find that stop point, so say it's 80° I would have the arduino program say:

if topreed==HIGH //input & high reading from up position reed switch
servo.write(89) //stop servo command
pin2==LOW //drop mosfet power supply to stop servo power

is this good insurance?

How is the servo wired to the MOSFET? Are you switching the servo ground with and N channel MOSFET or the positive power wire with a P channel MOSFET? Post a schematic, please.

I do not know how a servo would react to having its ground switched off while the postive side still has power. There is a chance of backfeeding through the Arduino output, perhaps.