# `CircuitsFT232H`

Use an [Adafruit FT232H breakout](https://www.adafruit.com/product/2264) as an
I2C master, SPI master, or GPIO controller from your host machine, via the
[`circuits_i2c`](https://hex.pm/packages/circuits_i2c),
[`circuits_spi`](https://hex.pm/packages/circuits_spi), and
[`circuits_gpio`](https://hex.pm/packages/circuits_gpio) APIs.

Plug the FT232H into a USB port, point one or more of the Circuits libraries
at the backends supplied by this package, and your existing drivers run
unchanged against real hardware on your laptop.

    # config/config.exs
    import Config

    config :circuits_i2c, default_backend: CircuitsFT232H.I2C.Backend
    config :circuits_spi, default_backend: CircuitsFT232H.SPI.Backend
    config :circuits_gpio, default_backend: CircuitsFT232H.GPIO.Backend

A single chip can act as either an I2C *or* an SPI master at any one time
(first-open wins), and as a GPIO controller alongside whichever protocol is
active — the `CircuitsFT232H.Device` GenServer enforces this and rejects
open requests that would conflict.

See the [README](readme.html) for wiring diagrams, Linux/macOS setup, and
per-backend caveats.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
