Skip to content

How to Connect to the USB 6008OEM Board!

Andres Torres edited this page Jul 7, 2021 · 2 revisions

I (@Ahsoka) managed to create a simple program that connects to the USB-6008OEM Board in the SEAL kit!

Here is a cleaned-up version of the code I used:

>>> import nidaqmx.system
>>> system = nidaqmx.system.System.local()
>> device = system.devices['Dev1']
>>> device
Device(name=Dev1)
>>> device.product_type
'USB-6008OEM1'
>>> device.terminals
['/Dev1/ai/StartTrigger', '/Dev1/PFI0']
>>> device.ao_voltage_rngs
[0.0, 5.0]
>>> device.ai_voltage_rngs
[-1.0, 1.0, -1.25, 1.25, -2.0, 2.0, -2.5, 2.5, -4.0, 4.0, -5.0, 5.0, -10.0, 10.0, -20.0, 20.0]

Although I am a no expert in this area, I can be pretty sure I successfully connected to the board because of the information displayed above. Let's go over why the information indicates this.

Information indicating I connected to the board

  • The first major indication is that device.product_type returns 'USB-6008OEM1' which the exact model of the board in the SEAL kit (as was uncovered in this wiki page).
  • device.terminals returns a list which contains the string '/Dev1/PFI0'. The text PFI0 appears in the code written by Dr. Jay Winkler here and here. This is likely some type of communication channel we have yet to figure out how to utilize.
  • The values in the list returned by device.ao_voltage_rngs directly correspond to the values in the technical specifications of the board. In this context, ao in ao_voltage_rngs is believed to stand for "analog output." If we examine the Analog Output section of the technical specifications the Output Range row lists 0V to +5V, the exact result seen above.
  • Building on the previous bullet point, the list returned by device.ai_voltage_rngs also directly corresponds to the information provided in the technical specifications. Here ai in ai_voltage_rngs is believed to stand for "Analog Inputs." If we examine the Analog Inputs section in the technical specifications we can see the values listed in the Input Range/Differential row match up exactly with the values listed in the result above.

Where to go from here?

The next important step is figuring out how to actually communicate with the board. After some light research into this subject area I learned that NI-DAQmx has an entire specification for communicating with boards within its ecosystem. I found this website which documents this specification in detail. This documentation is the best place to start.