I'm planning to do some DIY project, and I'd appreciate your help and advice in the matter.

So basically I'd like to build an automatic window shade system. It is a simple shade, that you can pull up/down and close/open the blades, but I'm only planning to use the latter. I'd like to use a phototransistor to measure the intensity of sunlight and close the blades in proportion by rotating the hanlde on the shade. Fortunately it doesn't need much torque to turn it, and I would check and adjust the blades once around every hour, so it won't take much power, however I'd like to make as self sufficient as possible, so my idea to power it with a battery source (preferably a phone battery or notebook battery), and recharge it with a small solar panel. So I need to find a solution to rotate the handle with a low-power actuator.

This is where my question lays. I'm not sure what kind of motor should I use for this:

1) Step motor:


  • would be ideal, because I don't need high RPM

  • no need for additional encoder to properly control tha angle of the blades

  • few extra mechanical parts


  • more expensive

  • more complex driver

  • more roboust power supply

2) DC motor:


  • cheap

  • easier control

  • lower voltage and current levels? (actually i'm not so sure about this :D)


  • needs additional encoder

  • needs a complex gearbox to achiev proper torque and RPM, which can be a pain in the @ss to make...

So this is my problem, what do you think?

  • \$\begingroup\$ Go with steppers IMO. Nowadays its easy to source them and their drivers (due to 3D printers, etc). \$\endgroup\$ – Wesley Lee Apr 26 '18 at 15:13
  • \$\begingroup\$ A somewhat larger than standard hobby RC servo motor may be suitable. Some are sold or modified to support continuous rotation, if 270 degrees of motion is enough then the servo would provide feedback. \$\endgroup\$ – KalleMP Apr 26 '18 at 15:48
  • \$\begingroup\$ Never even touch steppers. It's hobbiest level at most. Try using BLDC. \$\endgroup\$ – Gregory Kornblum Apr 26 '18 at 16:48

Out of your two suggestions, I would use the stepper motor.

You can easily and affordably find NEMA17 motors from ebay (or similar) along with associated dc driver and control by uC arduino etc. Its no longer voodoo in terms of complexity as there are many examples of code on the net that should do just what you are asking for with little modification.

If you wanted to explore a potentially lower cost solution that uses DC, you might also be able to modify a servo to do this (see 360 degree or continuous servo modification). This will negate your requirement for a custom or large gearbox, and again, can be driven and controlled very easily from a uC.

| improve this answer | |
  • \$\begingroup\$ Wow, that servo modification looks great, I think I may have some old unused servos laying around, so I am definitely going to try that! \$\endgroup\$ – Razero Apr 26 '18 at 17:28
  • \$\begingroup\$ Let me know how it goes :) \$\endgroup\$ – Rendeverance Apr 26 '18 at 21:21
  • 1
    \$\begingroup\$ I've found some TowerPro SG90 servos, and was able to modify and it works all right! I could even manage to make the potentiometer work sort of like an encoder, so even better...everything I need is in there! Thanks for the awesome tip! :D \$\endgroup\$ – Razero Apr 28 '18 at 20:18
  • \$\begingroup\$ Sweet - glad I was able to help and cheers for updating me. I will make a note that the SG90s are good candidates in that case :) \$\endgroup\$ – Rendeverance May 8 '18 at 10:07

Of your two suggestions, I'd posit that a DC servo (DC motor and gearbox would be the best and easiest to implement.

If you use a stepper motor you will need to measure the absolute rotation limits, use a much more complex controller and have to support much more weight. There are plenty of cheap Nema17 stepper motors but they will weigh in the 400g range which may be somewhat difficult to manage and will require peak current in excess of 2A no matter what the actual mechanical load.

If you use a simple RC servo, it can be modified or built for continuous rotation, you will still need to measure your rotation limits but with less complex drive and much lower weight. Typical servo weights are in 45-50g range and will likely draw significantly less than 1A peak in this application. You don't need any holding torque for your application so the servo and controller MCU can go to a low power state suitable for battery power.

I'd suggest you look at the servos at a place like Servocity as reference, but you could consider something low cost such as this Hitech HS422. This servo can be modified with an external 10 turn pot which would seem ideal for your application, providing a 10 turn limit.
Servocity have lots of addon items such as Servoblocks and gearboxes if you feel so inclined, which would potentially make your mechanical build easier.

| improve this answer | |

Consider what happens when the motor is not supplied. Either your mechanics has to ensure that the axis cannot move or your motor must have a holding torque. Only steppers have a (small) holding torque even if not powered. A DC-Motor has absolutely none. This is another (in my point of view: big) advantage of steppers.

The driver of a stepper is easy. I cannot see why you consider it more complex. There are many drivers available - with simple step signals or integrated motion controller. There is certainly one that suits your needs.

What do you mean by "more roboust power supply"? A DC motor easily draws 10Amps and more. A Nema17 is typically less than 3A. Bear in mind, that the maximum coil current of the motor (e. g. 3A) is not the maximum current that the power supply must provide. The driver for steppers is usually a chopper driver that behaves like a switching power supply. The permanent current that is drawn from the power supply is about 65% of the maximum coil current. So the driver of a 3A stepper draws only roughly 2A from the supply while in motion at full torque. By reducing the current, you can easily adjust the torque, which is not that easy with DC-motors.

| improve this answer | |
  • \$\begingroup\$ It seems unlikely that a the size of DC motor required here would require 10A (even peak) current in this application. \$\endgroup\$ – Jack Creasey Apr 26 '18 at 16:57
  • \$\begingroup\$ I think holding torque is not required here, there is more friction in the system than to move without applied force. And yes, @JackCreasey is right, I think a really small DC with a big gear ratio would be enough here. By roboust power supply I mean, that steppers - as far as I know - can draw quite more than the rated voltage (but than again, I have next to none experience with steppers, so correct me if I'm wrong) so e.g. a phone battery might not be enogh to power it (rather asking than saying :D) \$\endgroup\$ – Razero Apr 26 '18 at 17:18
  • \$\begingroup\$ I don't see why holding torque would be required here either??? \$\endgroup\$ – Rendeverance Apr 26 '18 at 21:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.