I have a servo with an operating voltage of 4.8V. I want to drive the servo from a MCU running on 3.3V. I haven't tried it yet, but was wondering if I needed to drive the signal line to 4.8V using a MOSFET or NPN transistor. Is it possible to drive a 4.8V servo using 3.3V signal? Will the performance be impacted?

If I need to drive it with 4.8V how should I connect it? The gate obviously goes to the signal (with the necessary resistance) but how do I connect the servo's signal line? Should I connect the signal line to 4.8V and the ground to the drain? I'm guessing this wouldn't work. Is this even possible?

  • 1
    \$\begingroup\$ Just try it. Nothing to lose. \$\endgroup\$
    – Passerby
    Commented Jul 8, 2014 at 23:21
  • \$\begingroup\$ @Matt I have a simlar issue, can you tell me whether it worked? \$\endgroup\$
    – Sathees
    Commented Aug 13, 2015 at 10:31
  • 2
    \$\begingroup\$ It did work without a mosfet or transistor. You just need to be sure that the grounds between the MCU and servo power are common. \$\endgroup\$
    – Matt Ruwe
    Commented Aug 14, 2015 at 11:47
  • \$\begingroup\$ @MattRuwe Did you have to give 3.3V as a PWM signal though? \$\endgroup\$
    – John M.
    Commented Jun 15, 2017 at 12:41
  • \$\begingroup\$ @JohnMunroe It worked with 3.3V \$\endgroup\$
    – Matt Ruwe
    Commented Jun 15, 2017 at 16:12

2 Answers 2


It will probably work with 3.3V as a PWM signal level as long as VCC is at the rated 4.8V. The Vcc label, as opposed to Vdd, suggests TTL level logic where logic high is 2V to Vcc. Just try it with a 3.3V PWM and see what happens. The important thing is to have the servo and microcontroller GND references connected.

Edit: You can also use a nMOS or npn BJT using an inverting configuration. Connect the gate/base to the MCU PWM pin, the source/emitter to ground. The drain/collector is the output and must also be connected to V+ through a resistor. When the transistor is on, the output is pulled to ground. When the transistor is off, the output is at V+, minus the voltage drop across the resistor. Since this is a control signal and the current small, that voltage drop will be insignificant.

Note that in order to use a pMOS to avoid the inversion, you would have to pull its gate to V+ to stop current flow. However, since your PWM from the MCU is only 3.3V you won't be able to do that. You are thus limited to using a n-channel MOSFET.

  • \$\begingroup\$ I will give it a try, but I'm curious, is it even possible to drive the signal from a MOSEFT? \$\endgroup\$
    – Matt Ruwe
    Commented Jul 9, 2014 at 0:05
  • \$\begingroup\$ @Matt, there is no need, but you could. Take a P-channel mosfet and drive the gate with your MCU (N-channel would invert the signal), ground the drain, and connect the source to Vcc through a resistor. Then take the output from the source terminal. The signal line is just a control line and all current consumption is drawn from Vcc, not the signal. Servos typically drawn large spikes of current as they move which would most certainly burn the output drivers of your MCU. \$\endgroup\$
    – sherrellbc
    Commented Jul 9, 2014 at 0:51
  • \$\begingroup\$ @Evan I have a similar issue right now. Do I understand the answer correctly 1.that that if thee VCC is 4.8V and not 6V it the PWM signal will work? 2. The ground pin of the servo has to be attached to gnd of microcontroller? \$\endgroup\$
    – Sathees
    Commented Aug 13, 2015 at 10:30
  • \$\begingroup\$ @Sathees the context of this answer is a PWM controlled servo rated at 4.8V. If your servo is rated at 6V, then that should be the Vcc, unless you are deliberately trying to limit the maximum voltage on the leads of the servo or you are level shifting voltages at some point in the circuit or there is something else happening in your circuit. Note that although similarities may exist between the original question and your case, the details are important. If you think your case is not the same, I would suggest posting a new question with as much information you think may be relevant. \$\endgroup\$
    – Evan
    Commented Aug 13, 2015 at 14:29
  • \$\begingroup\$ @Evan well I just posted a questio electronics.stackexchange.com/questions/185534/… where I decided to make use of a 4.8V battery to run servo that might work with 4.8/6V ....so therefore I see the question to be similar...and wanted to ensure that the PWM signal coming frm 3.3 V microcontroller will be fine \$\endgroup\$
    – Sathees
    Commented Aug 13, 2015 at 14:53

Depending on what microcontroller you're using for PWM they often have the ability to set the output pin as open drain so you can take you PWM signal and have it set as any voltage you want

  • 2
    \$\begingroup\$ What about the protection diodes? they do turn on at some point. What about absolute maximum ratings? \$\endgroup\$
    – Voltage Spike
    Commented Feb 15, 2017 at 6:19
  • \$\begingroup\$ Indeed, this would only be workable for an MCU rated to allow the output voltage to be higher than the relevant I/O bank supply, aka a "5v tolerant" pin. Otherwise, for an ordinary I/O not rated for overvoltage it's possibly that whatever pullup resistor you use may be large enough to limit the current to what the protection diode can safely tolerate but that diode will limit the voltage to a diode drop above the rail meaning the goal would be only partially achieved. \$\endgroup\$ Commented Feb 15, 2017 at 7:16
  • 1
    \$\begingroup\$ The 'goal' is unnecessary because all modern rc receivers output 3.0~3.3V pulses, so any servo sold today has to work at this voltage. \$\endgroup\$ Commented Feb 15, 2017 at 9:19

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.