« Close

Datasheets and User Guides

App Notes

Software & Driver


What are digital I/O? (IO, D, DIO, FIO, EIO, CIO, MIO)


DIO = Digital Input/Output
IO/D/FIO/EIO/CIO/MIO = Somewhat arbitrary monikers for specific DIO ports on different LabJacks.

Digital I/O stands for Digital Input and Output. Digital Inputs allow a microcontroller to detect logic states, and Digital Outputs allow a microcontroller to output logic states.

Each digital I/O on a LabJack can be individually configured to one of 3 states: input, output-high, or output-low.

Digital Input: A digital input detects if a voltage is above/below a specific threshold. If the voltage is higher than some value, the computer will detect the digital input as high/set/1. If the voltage is lower than some value, the computer will detect the digital input as low/clear/0.

Digital Output: A digital output allows you to control a voltage with a computer. If the computer instructs the output to be high, the output will produce a voltage (generally about 5 or 3.3 volts). If the computer instructs the output to be low, it is connected to ground and produces no voltage.


Turn an LED On/Off using a digital I/O.

LabJack Digital Output LED Example

  1. Wire the LED as shown. Optionally connect a current-limiting resistor.
  2. Set the state of FIO0 to output-high on the computer. The LED will turn on.
  3. The LED will turn Off if the state of FIO0 is set to output-low.

Hardware with Digital I/O

LabJack U3 USB Digital Input Output Device
LabJack U6 USB Digital Input Output Device
LabJack UE9 USB Ethernet Digital Input Output Device
LabJack T7 USB Ethernet Wireless 802.11b/g WiFi Digital Input Output Device
LabJack U12 USB Digital Input Output Device

For LabJack-specific info on digital I/O, go to the user's guide or datasheet for the device of interest.  Start at the main support page and go to the device of interest.  For example, in the Section 2 of the U3, U6, or UE9 User's Guide, there is a Section about digital I/O, and Appendix A of each has electrical specs.



Hi, I am interested in the U6, and am wondering how quickly the digital I/O can capture digital data?  I have a 1 bit digital stream that be as fast as 4MHz.  Also, if I have an input data stream with accompanying clock, is it possible to write code that will tell the U6 to capture data on only the positive edge of the clock input?



The fastest you can do is stream mode which is up to 50 ksamples/second (Section 3.2 of the U6 User's Guide), so not fast enough for a 4 MHz signal.

The behavior you describe of capturing data on a clock edge can be done with an externally triggered stream, but only the UE9 supports that (Section 3.2.1 of the UE9 User's Guide), and still limited to the normal stream mode speeds.

Is your 4 MHz signal some sort of standard serial protocol such as SPI, I2C, or asynronous UART?  The U6 does have support for some serial protocols discussed in Sections 4.3.10 to 4.3.12.