# Traintastic Hardware Interfacing

All hardware communication is performed using an interface. As not all hardware is created equally Traintastic needs to know what hardware capabilities to control/monitor, therefor each interface supports one or more *controllers*. A *controller* is a standardized system to control/monitor some piece of hardware.


## Controllers

This section explains the different types of controllers that are currently supported by Traintastic. As more hardware support is added additional controllers might be needed.


### Decoder controller

Controls locomotive decoders.


### Input controller

Reads (digital) inputs.


### Output controller

Controls outputs.


### Identification controller

Reads (train) identification sensors.
