Skip to main content

Automation HAT Driver

Project description

Automation HAT

Build Status Coverage Status PyPi Package Python Versions

Automation HAT is a home monitoring and automation controller featuring relays, analog channels, powered outputs, and buffered inputs (all 24V tolerant). This library will also work with Automation HAT's smaller siblings - Automation pHAT and Automation HAT Mini.

Where to buy


Full install (recommended)

We've created an easy installation script that will install all pre-requisites and get your Automation HAT, pHAT or HAT Mini up and running with minimal efforts. To run it, fire up Terminal which you'll find in Menu -> Accessories -> Terminal on your Raspberry Pi desktop, as illustrated below:

Finding the terminal

In the new terminal window type the command exactly as it appears below (check for typos) and follow the on-screen instructions:

curl | bash

Alternatively, on Raspbian, you can download the pimoroni-dashboard and install your product by browsing to the relevant entry:

sudo apt-get install pimoroni

(you will find the Dashboard under 'Accessories' too, in the Pi menu - or just run pimoroni-dashboard at the command line)

If you choose to download examples you'll find them in /home/pi/Pimoroni/automationhat/.

Manual install

Library install for Python 3

on Raspbian:

sudo apt-get install python3-automationhat

other environments:

sudo pip3 install automationhat

Library install for Python 2

on Raspbian:

sudo apt-get install python-automationhat

other environments:

sudo pip2 install automationhat


If you want to contribute, or like living on the edge of your seat by having the latest code, you should clone this repository, cd to the library directory, and run:

sudo python3 install

(or sudo python install whichever your primary Python environment may be)

In all cases you will have to enable the i2c bus.

Documentation & Support


What is the accuracy and resolution of the Automation HAT

The ADS1015 is a 12-bit ADC, but since the 12th bit is the sign-bit there are only 11-bits of resolution available for positive voltage readings. The input voltage for 24v channels is scaled from 0-25.85v (25.85 rather than 24 due to how the resistor divider is set up) to 0-3.3v.

Since the full-scale range of the ADC is set to 4.096v, this means that 0-3.3v gives only ~1649 possible usable values making the input measurement granularity somewhere around 0.015v (25.85 / 1649) for the 24v inputs and 0.002v for the 3.3v input.

More information on this topic can be found here:



  • Update for SN3218 v2.0.0


  • Switch to ADS1X15 library


  • Switch to setup.cfg
  • Switch to markdown based README
  • Support for ADS1115 board variant


  • 0.2.2 + bump for newer examples


  • Had ST7789 on the brain, swapped for ST7735


  • Add dependency on ST7789 for AMH


  • Fix: Fix thread interleaving and race conditions leading to spurious ADC readings
  • Fix: Switch to non-deprecated alias of thread.isAlive


  • Fix: Defer setup to avoid import side effects
  • Fix: Slowed LED update rate
  • Improvement: Switched to warnings to notify about unsupported features on pHAT


  • Fix for HAT/pHAT detection


  • Fix for Python 3 support


  • Added pHAT support
  • Rounded ADC output to 2 decimal places
  • Set initial state for outputs and fixed toggling
  • Fixed light toggling


  • Initial Release

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

automationhat-0.4.1.tar.gz (10.2 kB view hashes)

Uploaded Source

Built Distribution

automationhat-0.4.1-py3-none-any.whl (8.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page