NI USB-845x Hardware Overview

Looking for an SPI or I2C controller for LabVIEW? National Instruments sells the USB-8452 with the 845x drivers. I experienced my fair share of problems using the older USB-8451 for a project, and I documented my findings during a 2018 Chicago LabVIEW User Group meeting. My biggest takeaway is I wish I had bought the 8452 instead of the 8451. Fortunately, the 8451 won’t be sold anymore starting April, 2022. Check out the video below for technical details on how SPI works in the LabVIEW 845x drivers.

Some key takeaways:

  • You don’t need specialized hardware to communicate with SPI and I2C devices using LabVIEW, but it does make things easier.

  • Check out Kevin Darrah for details on bit-banging.

  • 845x driver scripts have a limit to how many commands can be included in each script, enforced at runtime.

  • USB-8451 and USB-8452 cannot be simulated in NI-MAX, at least as of 2018. You’ll need a physical device with your development system.

When it comes to speed and data rate, be aware that you’ll send messages much slower than the max clock speed of your device.

  • Intra-byte delay: If your message contains multiple bytes, there will be a short delay between bytes.

  • Intra-message delay: Between every message the chip select line needs to toggle, which takes time.

  • Script delay: When running one script after another, control goes back to LabVIEW and you’ll experience a millisecond delay. It’s possible this is shorter on a real-time system.

  • Batch delay: This is only present on the USB-8451 and is not documented by National Instruments. The device cannot hold the entire script and a millisecond delay is introduced every 13 messages in my case. Just buy an 8452 and you won’t have to worry about this.

View the slides from my talk in PDF format.

Welcome To LabVIEW

During the pandemic I wanted to play Welcome To Your Perfect Home with friends online. I tried setting up my phone to display the cards on my table, but juggling multiple devices and poor video quality on a Zoom call wasn't as fun as I hoped. I decided to build the card flipping aspect of the game in LabView so I could share my screen instead. Check out the final result in this video:

The code is up on github including an executable and installer using non-copyright assets. I walk through the block diagram in this video:

If you like this game, you can buy it from the publisher or play it online at Board Game Arena!