Voltage, load, and current information of microcontroller output

i’ve been looking at the specifications of the vex microcontrollers output in order to see what devices i can plug into the digital outputs without causing any damage to the microcontroller.

I do not have very much experience with electrical engineering, and would like some help clearing up some terms.

When the digital and analog outputs are mentioned they are specified as :
“As outputs these ports can drive an open circuit to 0.6v or lower for a low and 4.0 volts or higher for a high.
They can drive a 1 mA load to 1.6v or lower for a low and 3.0 volts or higher for a high.”

I assumed 1mA stood for 1 milliampere, a measured of current. From what i’ve tried to research about load, it has to do with the resistance and power consumption of the circuit attached to a voltage source.

Can anyone help clarify what is defined by load so that i may better interpret the micro-controller’s specifications?

Also, i am curious to know whether the devices attached to the microcontroller are wired in parallel or in series when they are plugged in and running. the specifications state that the microcontroller runs on 4 amps max for the motors. Does this mean that the motors are wired in parallel, and that a constant power output is applied to all the motors combined, and not individually?

thanks for any info electrically saavy people can provide

This type of question comes up a lot, and it is not entirely clear to most people how voltage, current, and resistance interact in real working circuits like a Vex robot. I’ll attempt to clear up some of these terms, but there are also lots of good books & websites on the general subject.

A digital output on the vex can either drive the port high (up toward 5V) or low (down towards 0V). Specifically, when driven high, current can flow from the white wire (+) to the black wire (-); when driven low, current can flow from the red wire (+) to the white wire(-). For the following discussion, we’ll assume you are driving the signal high, so the current we talk about will be flowing from white to black.

A load can be thought of as a resistance placed across a pair of wires. A high resistance doesn’t let much current flow. The absence of a load is kind of like an infinitely-large resistance, in which case no current flows - this is what they mean by “open circuit”.

If you place a 1000Ω load across the white/black wires, then that would ideally result in 5mA @ 5V flowing (E=IR, or 5V=0.005A1000Ω). Of course, the drivers in the microcontroller aren’t perfect. First, they cannot drive all the way up to 5V (nor down to 0V when driving low), which is where the 4.0V and 0.6V numbers come from.

Second, they cannot provide unlimited current flow. What happens is that as the resistance of the load goes down, the driver tries to provide as much current as E=I*R would expect, but it can’t. So the voltage starts to drop to keep the equation in balance.

So, the 1mA @ 1.6V (or 1mA @ 3.0V) numbers are just points on a curve giving you an idea how the outputs will behave as you place them under increasing load. In practice, I’ve found they can do a bit better than this, so you should consider these as minimum values rather than typical values.

As for whether the motors are in parallel… The power to the motors is wired as a parallel circuit. Each motor or servo has its own internal controller that decides when to run the motor. So they are powered in parallel, but have individual controllers.

I hope this helps to clear things up a bit.


  • Dean