For a project we're building a robot arm, using three MG946R servos and one MG90S servo. Now I was wondering how to control those since I've been tasked with acquiring the hardware.

I think the MG90S takes a 3.3v PWM signal since I've worked with its 'brother', the SG90, before. Can we use a 3.3v PWM signal for the MG946R servos too? Seeing that they use 6V for power.

Also, what micro controller would you recommend? I assume it would need four pins with PWM to control the four servos

Thanks for any help!

  • 1
    \$\begingroup\$ Arduino will do the job. \$\endgroup\$
    – Miss Mulan
    Commented Apr 1, 2021 at 14:56
  • \$\begingroup\$ @MissMulan something like this? ebay.de/itm/… \$\endgroup\$ Commented Apr 1, 2021 at 15:00
  • \$\begingroup\$ yes but make sure you buy the original Arduino not any by-products(Funduino) \$\endgroup\$
    – Miss Mulan
    Commented Apr 1, 2021 at 15:49

1 Answer 1


I think you would need a 5V PWM signal to use the full range of speeds/torques of the motor for both types of servos. This components101.com link talks about your motor some and how to control it. An Arduino with 4 independent PWM outputs should work, like the Uno or Atmega2560 version. It looks like you will have to power the servos with a 5V/GND pair that can supply up to 1.2A for the MG946R servo if it stalls. If you try to power it with the wrong pins from, say, an Arduino board you could trip the board or blow a fuse, so make sure whatever pins you use can handle the current max that could be drawn. IIRC the Uno has 6 PWMS and a 5V output pin that can provide enough current for you.

  • \$\begingroup\$ I have some dc-dc voltage converters which I'll use to power the servos. If I use 3.3V for the PWM, will the range be smaller than normal? Speed and torque are not the most important thing, we'll only pick up small balls with it. Could I hook the 3.3V PWM pins up to a transistor (I've got some 2N2222s) to get 5V PWM? And would something like this work too? Its not an official arduino but compatible and using the same chip. It also has 6 individual PWM pins \$\endgroup\$ Commented Apr 1, 2021 at 17:34
  • 1
    \$\begingroup\$ PWM is a way to provide power to the device in chunks (on/off cycles) at a given voltage. If you compare a 5V and 3.3V PWM signal operating at same frequency and duty cycle, 5V will give more power. The datasheet says that a 1.5 ms ON pulse (with the operating frequency at 50 Hz, 20 ms period) means your arm will be at neutral position, 2 ms gives you 90 degrees. It might work to use 3.3V volts but increase your duty cycle above what you need so the right power in a cycle has been delivered, not sure though. Otherwise, yes I think you can use that transistor to set up the 5V voltage PWM. \$\endgroup\$
    – jakob
    Commented Apr 1, 2021 at 17:51
  • 1
    \$\begingroup\$ This post seems to detail the setup you would want to do. electronics.stackexchange.com/questions/488337/… \$\endgroup\$
    – jakob
    Commented Apr 1, 2021 at 17:52
  • \$\begingroup\$ @jakob If you compare a 5V and 3.3V PWM signal operating at same frequency and duty cycle, 5V will give more power. ... that is true if the PWM signal is connected to the motor directly ... in a servo, the PWM signal is used as a digital control signal ... the signal amplitude does not affect the power being sent to the motor ... the circuit inside the servo has to only be able to tell the difference between high and low ... 3.3 V may be enough for some servos \$\endgroup\$
    – jsotola
    Commented May 6, 2023 at 18:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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