The Raspberry Pi is a cost-effective single-board computer (SBC) with a huge variety of use cases. When it comes to physical computing, whether in industrial spaces, smart home uses, or the Internet of Things, the GPIO pins allow for various interaction possibilities.
However, the stock Pi experience lacks a few features. This is where Digilent and MCC's Raspberry Pi DAQ HATs come in. They are a series of HATs compatible with all 40-pin Raspberry Pi Models, each extending how they can be used in several ways. Today we are looking at the MCC 152, which adds analog voltage outs to the Pi, and can extend digital inputs and outputs way beyond the ranges of a regular Raspberry Pi.
What is the MCC 152 DAQ HAT?
The MCC 152 is a HAT for the Raspberry Pi, which adds two analog outputs of up to 5v and eight digital input/output pins. It is one of a series of expansion boards aimed at turning the Raspberry Pi into professional-grade industrial monitoring and data logging solutions.
Alongside the screw terminals for analog, digital, and supply voltage out, the board comes with jumpers for selecting between 5 and 3.3v operation. Also, it has jumpers for combining the DAQ HAT with others. Up to DAQ HATs can be stacked on top of one another, greatly extending the usual I/O of the Pi.
All MCC DAQ HATs come with library code in both C and Python, and plenty of example code, along with a GUI app if you are running a desktop version of Raspberry Pi OS.
Measurement Computing has clearly put a lot of thought into these DAQ hats, and it shows. With a range of specs designed for a wide variety of use cases, they've created a modular extension system for the Raspberry Pi that is not only easy to install but simple to use too.
I'm no embedded engineer, but the simple instructions for both hardware and software installation meant I was up and running in minutes. The example code gives clear use cases, the reference library is easy to read, and the IFTTT example shows just how powerful something like this can be for remote logging and monitoring.
While I didn't use the GUI app all that much, I could see it being indispensable for testing and opens up the hardware setup to non-programmers too.
In short, the MCC 152 DAW HAT is a well-thought-out and well-made add-on for the Raspberry Pi and among the most user-friendly professional tools I've used for the platform. Rather than jam every kind of functionality under the sun into one HAT, it sets out to do a few things very well, and succeeds.
MCC 152 DAQ HAT Specifications
- Two 12-bit simultaneous voltage outputs
- 5 mA output drive, sourcing
- 0.8 V/µs slew rate
- Eight bidirectional digital bits
- 5V / 3.3V operation; CMOS input thresholds
- Programmable input polarity
- Screw terminal connections
- Product Compliance:
- HTC: 8471809000
- ECCN: EAR99
Setting up the hardware requires an extensions header for the Raspberry Pi GPIO pins, along with some standoffs and screws, all of which are included. Installing the board is pretty self-explanatory, but MCC provides detailed documentation for both single and multiple DAQ HAT installations.
Multiple boards are assigned different addresses physically via jumpers on the board, with a total of up to 8 DAQ HATs. These can be mixed and matched on the fly so long as you update the EEPROMs in software.
It's worth noting that you can still use the camera and display connectors on the Pi (tested on the Pi 3 B+) while the HAT is in use. You'll need to attach them before attaching the DAQ HAT, and it's certainly a bit of a squeeze, but in my brief testing, both functioned perfectly well in conjunction with the DAQ HAT, which can only serve to add even more possible use cases.
The DAQ HAT line has a software library supporting the entire hardware range. Installation is incredibly simple. After cloning the git repository, a BASH script handles installation and backs up the EEPROM of the HAT.
There is the option of adding Python2 support - something I was glad to turn down, but with many systems tied to legacy code and requiring that compatibility, it was nice to see it was included as a standard installation option rather than something that needed adding after the fact (or worse, ported in manually).
Each example provides a simple terminal menu for changing values, and looking at the code makes it clear what each method requires as an input. This is intentional, and most of the example code labels which methods each example is showing you. It's a simple, neat way to introduce each element of the code library.
The GUI is a simple way of controlling multiple boards without any code or terminal skills at all. I didn't use it a lot, but it allows for quick switching between input and output states on the digital pins, and features sliders for changing analog power output values.
The C and Python libraries are direct ports of one another and share functionality with no apparent advantage for using one over the other, though the Python library does include example code for using IFTTT, making it easy to set up notifications based on certain events.
Use Cases for the MCC 152 DAQ HAT
In my testing, I barely scratched the surface of what the MCC 152 can do. Alongside large-scale monitoring of digital signals (or analog if using other HATs in the range), the analog outputs can be scaled to work with actuators, motors, and valves. 5 mA of output drive is plenty, and the reported 0.8 V/µs slew rate is pretty nippy too!
Being able to quickly configure digital inputs and outputs to work bidirectionally adds a lot of possibilities too. Having an interrupt on every pin allows for a simple way to digitally monitor many things at once, all attached to relevant callback functions.
The MCC152 DAQ HAT is a robust and highly functional extension for the Pi, and the fact that DAQ HATs are stackable makes it a powerful tool for working in a variety of scenarios. While it'll shine in highly automated industrial environments, it's clearly been designed to be easy to use for all users.
The clear example code, GUI option, and short time getting up and running make it a great choice for professionals and home automation enthusiasts alike.
- Variable true analog output
- Super fast slew rate
- Easy to implement code and GUI option
- Priced a little high for some users