PI-SPI-2AO Analog Output I/O Module for Raspberry Pi  4-20mA 0-10 VDC

Pi-SPi-2A0 Raspberry Pi Analog Output (mA + VDC) I/O Module

Regular price $25.95 USD Sale

The Pi-SPi-2AO I/O Module provides 2 channels of 4-20 mA output and simultaneous 2 channels of 0 to 10 VDC output.

The MCP4922 Digital to Analog Converter provides two channels of 12 bit conversion. The output circuit is configured to give full 20 mA Output at 3VDC, and the DAC has a 3.3 VDC reference. Full output is equal to 3/3.3 VDC * 4096 DA Counts = 3723 counts.

All Accessories Including Ribbon Cables Sold Separately

 Node-Red support is now available.

The GPIO expansion port is duplicated on either side of the module, so more modules can be added.

Port Pins Used:    
SPI-MISO  (GPIO9)     
SPI-SCK    (GPIO11)      
CS_2AO    (GPIO4)


  • Identical foot print to the RPi 3
  • Separate field power input (9-24VDC) for output drive (mA or VDC)
  • Each module has its own 3.3VDC LDO regulator operating from the RPi 5VDC bus
  • No loading on the RPi 3.3VDC bus
  • Terminal Block for analog output signals
  • LED indicators for power
  • Dual GPIO connectors (left and right)
  • MCP4922 Dual A/D Converter with 12 bit resolution
  • mA Output signal Strength LED
  • VDC Output channel follows mA Output channel

Pi-SPi-2AO Accessories:

  • Pi-SPi-PS-24VDC Field Power Supply
  • Pi-SPi-CABLE-40x26-2 (40 Pin to 26 Pin x 2") Required to connect to RPi
  • Pi-SPi-CABLE-40x40-2 (40 Pin to 40 Pin x 2")
  • Pi-SPi-CABLE-26x26-2 (26 Pin to 26 Pin x 2") Required to connect to PI-SPI module
  • Pi-SPi-MTG-HDW Mounting hardware 4x1/2" Aluminum spaces c/w 8 4-40 Stainless Steel Screws



PCB Layout

Sample Software (Python)

Please download the latest Widgetlords libwidgetlords library. The instructions can be found at

Getting Started with PI-SPI Libraries

All of the sample code examples are based on the latest library installation. Please note the code samples all use Python 3.

Basic Python "Write" Analog Outputs Program:

from time import sleep
from widgetlords.pi_spi import *

outputs = Mod2AO()

while True:
    outputs.write_single(0, 745)     # 4 mA
    outputs.write_single(1, 3723)    # 20 mA

The PI-SPI-2AO sample code programs and instructions can be found at

PI-SPI-2AO Python Code Samples

A complete set of Python demo code examples for the PI-SPI and PI-SPI-DIN series can be found on our GitHub repository:


For DIN Rail applications, the PI-SPI-ENC series of DIN rail mount enclosures are available in the Accessories Collection