---
name: "i2ctinyusb"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/i2ctinyusb"
---

# i2ctinyusb(4)

driver for a USB / I2C bridge device

## NAME

**i2ctinyusb** – driver for a USB / I2C bridge device

## SYNOPSIS

To compile this driver into the kernel, place the following lines in your kernel configuration file:

**device i2ctinyusb** **device usb** **device iicbus**

Alternatively, to load the driver as a module at boot time, place the following line in [loader.conf(5)](/loader.conf/5.md):

```
i2ctinyusb_load="YES"
```

## DESCRIPTION

The **i2ctinyusb** driver provides support for the device designed by Till Harbaum known as i2c-tiny-usb. This is initially a very simple circuit built with an Atmel AVR ATtiny45, but a Raspberry Pi Pico (RP2040) implementation also exists.

The **i2ctinyusb** driver creates a [iicbus(4)](/iicbus/4.md) child bus to expose the iic functions, enabling I2C sensors, converters and displays to be connected to any computer with a USB port.

More information about this device can be found at:

```
https://github.com/harbaum/I2C-Tiny-USB
```

and (for the Raspberry Pi Pico version):

```
https://github.com/Nicolai-Electronics/rp2040-i2c-interface
```

The I2C controller supports read and write transactions with up to 1024 bytes of data, and a write followed by the repeated start followed by a read transactions up to 1024 bytes. Zero length transfers are not supported.

## SEE ALSO

[iicbus(4)](/iicbus/4.md), [usb(4)](/usb/4.md)

## HISTORY

The **i2ctinyusb** driver and this manual page was written by Denis Bodor ⟨*dbodor@rollmops.ninja*⟩.
