Type of pinX.configure function

Im looking at the second example, BlinkOMatic, and curious about types i can give to pins.
here i understand that after using hardware.pin9.configure(DIGITAL_OUT_OD_PULLUP)
What does each type means, in simple language? English isnt my native one, and i do have basic understanding in electricity but its a bit too much.
giving 0/1 to this type, as i see from the behavior, is open/close the circuit, yes?
what about other types?

I found the Wikipedia article on open-collector (open-drain) very useful: http://en.wikipedia.org/wiki/Open_collector

Basically what’s going on is: a push-pull output (DIGITAL_OUT) has two transistors: one (activated when a “1” is set) that “shorts” the output to +3.3V via a very low resistance, and one (activated when a “0” is set) that “shorts” the output to ground. This is called being “strongly driven” low or high.

A DIGITAL_OUT_OD has only one transistor: when a “0” is set, it shorts to ground, but when a “1” is set the output is “disconnected” or tri-stated. So that sort of output can strongly drive low, but can’t drive high at all.

A DIGITAL_OUT_OD_PULLUP has a transistor and a pull-up resistor. The resistor, which isn’t tightly-specified in value but is about 10Kohm, attaches the output to +3.3V. When a “0” is set, the transistor shorts to ground. This has the effect that the output can be strongly driven low (because the tiny transistor resistance is negligible compared to the pull-up resistor), but only weakly driven high (by the resistor).

In the particular case of Blink-O-Matic, I think it would work just the same with a DIGITAL_OUT. The wiki page (written by someone who knows way more about electronics than I do) suggests that if a DIGITAL_OUT_OD were used, when the output is “off” (tri-stated), a tiny amount of residual or leakage current might flow from the pin. This would be a tiny current, a microamp or less, but it might be enough to make an LED just glimmer, so it’s best not to use a plain open-drain.


thank you