touchio – Touch related IO

The touchio module contains classes to provide access to touch IO typically accelerated by hardware on the onboard microcontroller.

All classes change hardware state and should be deinitialized when they are no longer needed if the program continues after use. To do so, either call deinit() or use a context manager. See Lifetime and ContextManagers for more info.

For example:

import touchio
from board import *

touch_pin = touchio.TouchIn(D6)

This example will initialize the the device, and print the value.

class touchio.TouchIn(pin: microcontroller.Pin)

Read the state of a capacitive touch sensor


import touchio
from board import *

touch = touchio.TouchIn(A1)
while True:
    if touch.value:

Use the TouchIn on the given pin.


pin (Pin) – the pin to read from

value :bool

Whether the touch pad is being touched or not. (read-only)

True when raw_value > threshold.

raw_value :int

The raw touch measurement as an int. (read-only)

threshold :Optional[int]

Minimum raw_value needed to detect a touch (and for value to be True).

When the TouchIn object is created, an initial raw_value is read from the pin, and then threshold is set to be 100 + that value.

You can adjust threshold to make the pin more or less sensitive:

import board
import touchio

touch = touchio.TouchIn(board.A1)
touch.threshold = 7300

Deinitialises the TouchIn and releases any hardware resources for reuse.


No-op used by Context Managers.


Automatically deinitializes the hardware when exiting a context. See Lifetime and ContextManagers for more info.