Skip to main content

Peripherals & interfaces

MIMICK models everything attached to an appliance with two ideas: peripherals and interfaces. Together they tell you what you can talk to and how to address it.

Peripherals

A peripheral is a piece of hardware reachable from an appliance: a USB-to-serial cable, an FTDI adapter, a network-attached relay, and so on. Each peripheral has a durable address (its path) that stays the same across unplugging and replugging, for example:

usb:0403:6014:FT123456
platform:/dev/ttyUSB0

You can list the peripherals on your active appliance at any time:

mimick peripheral list

A peripheral that's currently unplugged still appears in the list. Commands against it return a clear error rather than failing silently.

Interfaces

An interface is a way of talking to a peripheral: a bus or protocol it exposes, such as a serial console, UART, SPI, GPIO, or a relay channel. A single peripheral often exposes several interfaces at once. An FTDI FT232H, for instance, can present SPI and GPIO from the same physical device.

When a peripheral exposes more than one of the same interface (say, several serial ports), you pick which one with a capability-channel index.

Interfaces available today

MIMICK supports these interfaces now:

  • Interactive console (TTY): a live terminal to a serial console.
  • UART: raw serial byte send and receive.
  • SPI: full-duplex transfers and register reads and writes.
  • GPIO: read, write, and watch individual pins.
  • Relay: switch discrete channels, for example to power-cycle a DUT.
note

More interfaces are on the roadmap, including I2C, USB pass-through, REST for network devices, CAN, and cameras. They aren't available yet.