Use FREE-SHIPPING discount code for all US orders over $15

Sixteen Analog/Digital Inputs 8-Layer Stackable HAT for Raspberry Pi

SKU: SM-I-018

Regular price $70.00


  • Sixteen Universal Inputs, 8-Layer Stackable HAT for Raspberry Pi
  • Each input can be configured to process analog or digital signals:
    • 1K thermistors
    • 10K thermistors
    • 0-10V analog inputs, 500Hz sample rate
    • Dry contact inputs
    • Counter inputs
  • Eight Level Stackable
  • Pluggable Connectors 26-16 AWG wires
  • Eight software programmable bi-color LEDs
  • RS485 in and out ports
  • 5VDC Power Supply powers also the Raspberry Pi
  • Real Time Clock with Battery Backup
  • On board hardware watchdog
  • Resettable fuse
  • TVS protection on all inputs
  • 32-bit Processor running at 64MHz
  • Uses only I2C port (address 0x58 to 0x5f), leaves all GPIO pins available
  • Works with any Raspberry Pi from ZERO to 5
  • ECCN Code EAR99
  • No jumpers: input mode selection from DIP switches
  • Command line
  • Python Library
  • Node-Red nodes
  • Node-RED Data Acquisition Example
  • Arduino Library
  • All mounting hardware included: stand-offs, screws and nuts
  • Open source hardware


SIXTEEN Analog Inputs for Raspberry Pi

Brings to Raspberry Pi the 16 universal analog or digital inputs. Convenient DIP switches permit each input to be configured to read 1K or 10K thermistors, 0-10V analog signals, or digital contact closure/counter inputs.

Bi-color status LEDs can be programmed to show the status of any digital input, or to trigger at a pre-set level of the analog inputs.

The Real Time clock will keep the time almost indefinitely during power failure using a CR2032 battery backup.

The hardware watchdog will monitor and power cycle the Raspberry Pi in case of software lockup. TVS diodes on all inputs protect the card for external ESD, and the on-board resettable fuse protects is from accidental shorts.


Connect the card to other Industrial Automation systems using RS485/Modbus communication ports. The RS485 can be driven either from the local processor implementing Modbus RTU device, or directly from the Raspberry Pi using the dedicated pins on the GPIO connector, which are routed to the RS485 driver. In and out connectors simplify daisy-chain wiring to other devices.


The Sixteen Universal Inputs Card share the I2C bus using only two of the Raspberry Pi’s GPIO pins to manage all eight cards. This feature leaves the remaining 24 GPIOs available for the user. The card is compatible with all Raspberry Pi versions from Zero to 5.


The Sixteen Universal Inputs Card requires a 5VDC/4A external power supply to operate and has to be powered from it's own pluggable connector. The card supplies 5V and up to 3A to the Raspberry Pi on the GPIO bus. A local 3.3V regulator powers the rest of the circuitry. The card needs only 50mA to operate.


All the IO's are connected to heavy duty (8A), 3.5mm pitch pluggable connectors which make field wiring very convenient for installation and debugging.


Up to eight Sixteen Universal Inputs Cards can be stacked on your Raspberry Pi. Each card is identified by the position of the three left-most switches of the DIP switch.

Selecting the stack level

Cards can be installed in any order. 


Sixteen Universal Inputs for Raspberry Pi

  • Power supply: 3.5mm Pluggable Connector, 5V/4A
  • Power consumption: 50mA
  • On board resettable fuse: 3A
  • 0-10V Inputs:
    • Maximum Input Voltage: 12V
    • Input Impedance: 20KΩ
    • Resolution: 12 bits
    • Sample rate: TBD
    • Full scale linearity: 0.15%
  • Contact closure inputs max. frequency: 500Hz


BAS Mechanical Dimensions


Sixteen Universal Inputs Downloads



You can write your own application using the Command Line or Python Libraries. No programming is required if you use the Node-Red nodes provided. You can drag-and-drop the functional blocks to design your application. Examples are provided at GitHub. 


All the analog inputs are calibrated at the factory, but firmware commands permit the user to re-calibrate the board, or to calibrate it to better precision. All inputs can be calibrated in two points; select the two points as close to possible to the two ends of scale. To calibrate the inputs, the user must provide analog signals. (Example: to calibrate 0-10V inputs, the user must provide a 10V adjustable power supply). Calibration process can be done using the command line interface provided.


The Sixteen Analog/Digital Inputs card contains a built-in hardware watchdog which will guarantee that your mission-critical project will recover and continue running even if Raspberry Pi software hangs up. After power up the watchdog is disabled, and becomes active after it receives the first reset or first period set.

The default timeout is 120 seconds. Once activated, if it does not receive a subsequent reset from Raspberry Pi within 2 minutes, the watchdog cuts the power and restores it after 10 seconds.

Raspberry Pi needs to issue a reset command on the I2C port before the timer on the watchdog expires. The timer period after power up and the active timer period can be set from the command line. The number of resets is stored in flash and can be accessed or cleared from the command line. All the watchdog commands are described by the online help function.

RS485/MODBUS Communication

The card contains a standard RS485 transceiver which can be accessed by the local processor or by Raspberry Pi. The desired configuration is set from three bypass DIP-switches marked TX and RX.

RS-485 Selection

If DIP-switches are ON, Raspberry Pi can communicate with any device with an RS485 interface. In this configuration the card is a passive bridge which implements only the hardware levels required by the RS485 protocol. To use this configuration, you need to tell the local processor to release control of the RS485 bus:

~$ 16univin [0]  cfg485wr 0 0 0 0 0

If DIP-Switches are OFF, the card can operates as MODBUS slave and implements the MODBUS RTU protocol. Any MODBUS master can access all the card's inputs, and set all the outputs using standard MODBUS commands. A detailed list of commands implemented and parameters addresses can be found on GitHub:

In both configurations the local processor needs to be programmed to release (DIP-switches ON) or control (DIP-switches OFF) the RS485 signals. See the command line online help for further information.


The card firmware can be updated in the field by running a command. The update is made with the latest firmware version located on our servers. More instructions about the process can be found on GitHub. Please make sure there is no process, like Node-Red or Python scripts, that tries to access the card during the update process.



The Sixteen Analog/Digital Inputs card can be installed parallel on a DIN-Rail using the DIN-Rail Kit Type 1, or perpendicular using the DIN-Rail Kit Type 2.


The Smart Fan provides a stackable cooling solution for Raspberry Pi. Its on-board processor powers the fan just enough to maintain the preset temperature of the Pi.


When you purchase the Building Automation Card you will receive the following items:

1. Sixteen Universal Inputs HAT

16 Universal Inputs for Raspberry Pi

2. Mounting hardware

  • Four M2.5x18mm male-female brass standoffs
  • Four M2.5x5mm brass screws
  • Four M2.5 brass nuts

Building Automation HAT brass hardware

4. All required connector plugs

16 Universal Inputs for Raspberry Pi - Connector plugs


  1. Plug your card on top of your Raspberry Pi and power up the system
  2. Enable I2C communication on Raspberry Pi using raspi-config.
  3. Install the software from
    • git clone
    • ~$ cd /home/pi/16univin-rpi
    • ~/16univin-rpi$ sudo make install
    • ~/16univin-rpi$ 16univin

The program will respond with a list of available commands.


Customer Reviews

Based on 1 review
Georg Schloms
Very versatile unit

That is a very interesting concept for unknown input capturing tasks with a minimum of components - great job!

Notify Me When Available

Fill in the required details to get notified when the product is again in stock!