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

Sixteen LV Digital Inputs 8-Layer Stackable HAT for Raspberry Pi

SKU: SM-I-009

Regular price $45.00


  • Sixteen LV Digital Inputs 8-Layer Stackable HAT for Raspberry Pi
  • All inputs opto-isolated reading 3V-48V AC/DC
  • Eight layer stackable to 128 inputs
  • Can interrupt Raspberry Pi on any change of input (no need for polling)
  • Pluggable Connectors 26-16 AWG wires
  • RS485/MODBUS port
  • 8 LEDs showing status of groups of 8 inputs
  • General purpose push-button
  • Reverse polarity protection
  • Sixteen Inputs Raspberry Pi
  • Uses only I2C port, all GPIO pins available
  • Works with any Raspberry Pi from ZERO to 5
  • ECCN Code EAR99
  • Command Line Driver 
  • Python Library
  • Node-Red nodes
  • OpenPLC module
  • CODESYS Library


Raspberry Pi can read 26 Input signals through the GPIO header, but sometimes you might need to read more. Since all GPIO pins are wired directly to the local processor, some hardware is required to connect them to the real world.
The card has 16 optically isolated Digital Inputs. Input ranges can be jumper-selected for each channel, from 3 volts to 24 volts. Digital Inputs can read both DC and AC signals. The card communicates with Raspberry Pi using only the I2C port, leaving all the other 24 GPIO pins available for your use. It has also an RS-485 port, a power LED and a push button that can be used to shut down the Raspberry Pi. Pluggable connectors make the 16-INPUTS card easy to use when multiple cards are stacked up.  
The Digital Inputs card is compatible with all Raspberry Pi versions from Zero to 5. All stacked cards 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 Digital Inputs card needs 5V to operate and can be powered from Raspberry Pi or from it's own 2 pin pluggable connector. The card draws 10mA.  If power is applied to the 2 pin pluggable connector, no other power supply is needed for the Raspberry Pi.
A power LED shows when power is applied to the board. Due to space limitations, eight LEDs shows the status of groups of 8 inputs. Inputs 1-8 or 9-16 can be selected from a jumper or from a Raspberry Pi GPIO pin. 
Up to eight Digital Inputs cards can be stacked on your Raspberry Pi. Each card is identified by jumpers you install to indicate the level in the stack. Digital Inputs cards can be installed in any order. A three position jumper selects the stack level.
For your convenience, two jumpers are provided with each card. 
The board is protected to accidental reverse power supply with a 5.8A, 39 mOhm MOSFET which breaks the ground line if reverse power is applied. 
Shutting down the Raspberry Pi by turning off the power can result in SD Card failure. To prevent this, a shutdown command needs to be used before power cut-off. But this requires a monitor, keyboard and mouse connected to the Pi. 
A momentary on push button installed at the edge of the board provides a convenient way to shut down the Raspberry Pi. The button is routed to pin 37 (GPIO 26). You need to write a script which monitors this pin, and if pressed for more than a desired time, issues the shut-down command.
An RS485 transceiver enables the Raspberry Pi to connect to other industrial sensors or actuators. In order to use the RS485 port, a jumper needs to be installed on the RXD line going to Raspberry Pi. The jumper is marked RS485 in the layout below. If the jumper is not installed, the RXD line from Raspberry Pi can be used as GPIO.
  • Power Supply: 5V/8A pluggable connector with reverse polarity protection
  • On board resettable fuse: 3A
  • Opto-isolated Digital Inputs:
  • Input Forward Current: Typical 5 mA, maximum 50 mA
  • Low Voltage Input Series Resistor: 1.2K
  • High Voltage Input Series Resistor: 10K
  • Isolation Resistance: Minimum 1012 Ω



You can write your own application using the Command Line or Python Library provided. No programming is required if you use the Node-Red nodes we supply. You can drag-and-drop the functional blocks to design your application. Examples are provided at GitHub.
RS485 port
A standard RS485 transceiver permits the Raspberry Pi to communicate using any protocol including MODBUS, PROFIBUS, camera PTZ control, etc. The transceiver is connected to the serial port of the Raspberry Pi from the GPIO connector, pins 8 (GPIO14, TxD0) and 10 (GPIO15, RxD0). The Rx line is routed through a 2 pin jumper. The jumper needs to be installed in order to use the RS485 port. If the jumper is not installed, both pins can be used as GPIO's
The 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. Shown here is a perpendicular installation which can be expanded to 8 cards.


When you purchase the 16 Universal Inputs Card you will receive the following items:
1. 16-INPUTS add-on card for Raspberry Pi
2. Mounting hardware
  • Four M2.5x18mm male-female brass standoffs
  • Four M2.5x5mm brass screws
  • Four M2.5 brass nuts
3. Two jumpers
4. Mating connector plugs


  1. Plug your 16-INPUTS 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 card software from
  • ~$ git clone
  • ~$ cd /home/pi/16inpind-rpi
  • ~/16inpind-rpi$ sudo make install
  • ~/16inpind-rpi$ 16inpind -h
    The program will respond with a list of available commands.

Customer Reviews

Based on 6 reviews
Lots of optoisolated inputs and RS485 port

If you need to read many inputs with your Pi, this is the best solution. Up to 128 opto-isolated inputs which you can read even without a Raspberry Pi, using MODBUS and a standard PLC. Great HAT

Rakesh Verma
works good

it has been working good.

Francesco Montorsi
Wonderful integration for 12V alarm sensors

I used this board to integrate my wired 12V alarm sensors into a custom alarm system built with HomeAssistant (the Raspberry is publishing readings through MQTT).
The board is using I2C to communicate with the Raspberry and I had some issue with that. The support has been exceptional and provided me good advices. My problem turned out to be an HW issue on the Raspberry side.
Since I replaced the faulty Raspberry I had no more any issue.

One thing to point out is that there is a nice (undocumented) feature: the I/O expander chip is able to provide an interrupt to the Raspberry over GPIO11 whenever one of the input changes state. This makes it possible to write an interrupt-based (vs poll-based) logic on the Raspberry.

I also want to mention that the plug-in connectors are really good because they make it possible to easily unplug a particular input without imposing mechanical stress on the whole board.

wade locke
Arrived on time, boards look to be in good shape.

All seems well

Flexible, Easy, Works Great!

Requirements for my existing application changed, needing detection of multiple voltages (ac and dc). This card is the perfect match for that need.

I simply plugged it onto the existing GPIO bus, set the appropriate jumpers, made an easy change to my Python code, and was off and running in an hour or so. I also found the plug-in connectors especially handy.

Notify Me When Available

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