This documentation includes hardware info, installation guidelines and sample code for your hardware.

Overall Info

IoT HAT is a Raspberry Pi I/O board which combines security and connectivity.




    I2C Port: Provides I2C connectivity with 'SCL', 'SDA', '3.3V' and 'GND' pins.
    Serial Port: Provides UART connectivity with 'RX', 'TX', '3.3V' and 'GND' pins.
    Digital Ports: Provides total 4 GPIO pins on 2 ports.
      Left Port: 'GPIO21', 'GPIO22', '3.3V' and 'GND' pins.
      Right Port: 'GPIO23', 'GPIO24', '3.3V' and 'GND' pins.
    Analog Ports: Provides total 4 Analog inputs on 2 ports with single-ended and differential measurement options.
      Left Port: 'AN1', 'AN2', '3.3V' and 'GND' pins.
      Right Port: 'AN3', 'AN4', '3.3V' and 'GND' pins.
    Relay Terminals: Optically coupled solid state relay ports with 'NO' and 'GND' connections.
      GND: Ground connection of the relay. Connect it to the GND of power supply.
      NO+: Normally open connection of the relay. Connect it to the target device.
    Photocoupler Terminals: Optically isolated digital inputs with '+24V' and 'GND' connections.
      GND: Connect it to the GND of power supply.
      IN+: Connect it to the +24V logic input.
    Stackable Raspberry Pi Connector: Connects the board to the Raspberry Pi. The connector is stackable, however, as IoT HAT 3 uses all the pins on the connector, stacking option is not practical.
I2C, Serial, Digital and Analog ports are 3.3V Grove System compatible. Pins on these ports are 3.3V tolerant.


    Securely connects to the cloud services via Cryptographic co-processor.
    Detects theft attempts.
    Senses ambient & RGB light, proximity, hand gestures, 3D acceleration, 3D tilt, and board temperature.
    Controls home electronics via IR remote transmitter.
    Carries 2Ch solid-state relays, 2Ch photocoupler inputs.
    Has Grove compatible I2C, UART, digital and analog ports.
    4Ch single-ended or 2Ch differential analog inputs are available.
    Carries a large user button and a piezo sounder.
    ID EEPROM for Raspberry Pi HAT specification compliance.


IoT HAT 3's specifications are as follows:

Microchip ATECC608A CryptoAuthentication Device

    Cryptographic Co-Processor with Secure Hardware-Based Key Storage:
      Protected storage for up to 16 keys, certificates or data
    Hardware Support for Asymmetric Sign, Verify, Key Agreement:
      ECDSA: FIPS186-3 Elliptic Curve Digital Signature
      ECDH: FIPS SP800-56A Elliptic Curve Diffie-Hellman
      NIST Standard P256 Elliptic Curve Support
    Hardware Support for Symmetric Algorithms:
      SHA-256 & HMAC Hash including off-chip context save/restore
      AES-128: Encrypt/Decrypt, Galois Field Multiply for GCM
    Networking Key Management Support:
      Turnkey PRF/HKDF calculation for TLS 1.2 & 1.3
      Ephemeral key generation and key agreement in SRAM
      Small message encryption with keys entirely protected
    Secure Boot Support:
      Full ECDSA code signature validation, optional stored digest/signature
      Optional communication key disablement prior to secure boot
      Encryption/Authentication for messages to prevent on-board attacks
    Internal High-Quality NIST SP 800-90A/B/C Random Number Generator (RNG)
    Two High-Endurance Monotonic Counters
    Unique 72-Bit Serial Number
This device uses 0xC0 address on the I2C bus. The address is user configurable.

TI ADS1018 Analog-to-Digital Converter

Measures 4x analog inputs and internal temperature. Distributed to 2 Grove System compatible ports.
    4 Channel Single-Ended Sampling:
      0V to 3.3V measurement with 1/1650 resolution. (2.000mV)
      0V to 2.048V measurement with 1/4096 resolution. (1.000mV)
      0V to 1.024V measurement with 1/4096 resolution. (0.500mV)
      0V to 0.512V measurement with 1/4096 resolution. (0.250mV)
      0V to 0.256V measurement with 1/4096 resolution. (0.125mV)
    2 Channel Differential Sampling:
      Same of above resolutions.
    Internal Temperature Measurement:
      Used for system-level temperature monitoring or cold-junction compensation for thermocouples.
      2C max error.
    Programmable Continuous Sampling:
      128 to 3300 samples per second.
      High speed SPI bus.
This device uses the CS0 line of the SPI bus.

NXP MMA8491Q Accelerometer & Tilt Sensor

Measures 3 axis acceleration. Generates interrupt on tilt detect.
    Acceleration: Measures +/- 8g acceleration data with 1 mg accuracy.
    Tilt Detection: Generates interrupt over 0.688g acceleration or 43.5 degrees of tilt. X, Y and Z interrupts are connected to separate pins.
The sensor uses 0x55 address over the I2C bus.

Broadcom APDS-9960 Ambient light, RGB, Gesture and Proximity Sensor

Measures ambient light, RGB values and proximity. Detects hand gestures.
    Ambient Light: Measures ambient light with UV and IR blocking features.
    Color Detection: Measures RGBC channels with UV and IR blocking features.
    Hand Gesture Detection: Detects left, right, up and down directions within 20cm to the sensor. Generates interrupt on gesture buffer fill.
    Proximity Detection: Detects distance to the object up to 20cm from the sensor.
The sensor uses 0x39 address on the I2C bus.

LCA717S Solid State Relays

Turns DC devices on or off with optically coupled MOSFET (OptoMOS) technology.
    2x Relays: DC30V 2A solid state relays can switch small devices.
Relays can be activated using GPIO 20 and 12 pins respectively.
Do not use devices whose peak current consumption is over 2A.

LTV-827S Photocoupler

Provides 2 channel optically isolated digital inputs. Generates interrupt on input state change.
    2x Photocoupler Inputs: Reads optically isolated DC 24V inputs. (Min: 9V, Max: 30V)
Photocoupler inputs can be read using GPIO 16 and 19 pins respectively.

Vishay VSMB10940X01 IR Transmitter

Transmits infrared remote control signals.
    The 940nm high-speed IR emitter is at 104mW power.
    Angle of half intensity: +/- 75 degrees.
The IR LED circuit is connected to GPIO18 (PWM0) pin.

I/O Ports

IoT HAT has 6 Grove System compatible ports.
    Serial Port: Provides RX, TX, 3.3V and GND pins for UART (serial) communication.
    I2C Port: Provides SCL, SDA, 3.3V and GND pins for I2C and SMBus communications.
    2x Digital Port: Provides a total of 4 GPIO and power pins distributed in 2 ports.
    2x Analog Port (Mentioned above): 4 Channel analog inputs connected to the Analog-to-Digital Converter.
All digital and analog pins are 3.3V tolerant. Do not sink more than 50mA from the 3.3V power pins.
GPIO Pins on I/O sockets are connected to Raspberry Pi's GPIO 21, 22, 23 and 24 pins respectively.


A user button for event generation.
When using button events, we recommend using a minimum 20ms bounce time.
The button is connected to the GPIO5 pin. It is active-low and uses Raspberry Pi's pull-up resistor on GPIO5.


A piezoelectric sounder for simple audio feedback.
The buzzer is connected to the GPIO13 (PWM1) pin.


This memory holds manufacturer information, GPIO setup and device tree. The OS loads required drivers and configures GPIO pins according to the data on this memory. ID EEPROM is required for Raspberry Pi HAT specification compliance.
Do not try to overwrite or erase the contents of the EEPROM as it may block the device's operation.
The EEPROM is connected to the I2C1 bus and requires root privileges for user access.


To get maximum performance from your hardware, please make sure you'll meet the following requirements.


We designed IoT HAT 3 to work with Raspberry Pi. Alternatively, you may wish to use any Raspberry Pi pin compatible device as an host.

Operating System

You can use IoT HAT 3 with any operating system that supports I2C communication and GPIO access. We officially support Raspbian operating system.

Development Environment

IoT HAT 3's Raspbian library supports Python. You can write Python code in any text editor. We recommend using Visual Studio Code as an editor.


Select your operating system for set-up and programming guidelines.
Last modified 2yr ago