# Hardware

Each hardware device in SolversLib is based on the `HardwareDevice` interface. This comes with two methods inherited by every device:

* `disable()`: disables the device
* `getDeviceType()`: returns a String characterization of the device

Optional power caching has also been added to the `Ex` type classes as well to help further loop times as well.

SolversLib offers *a lot* of hardware devices that can be implemented or customized into your program. The best advice we can give to users is to take a look at the subpages in this catogery ([Servos](https://docs.seattlesolvers.com/0.3.3/features/hardware/servos), [Motors](https://docs.seattlesolvers.com/0.3.3/features/hardware/motors), and [Sensors](https://docs.seattlesolvers.com/0.3.3/features/hardware/sensors)) and the [hardware package](https://github.com/FTC-23511/SolversLib/tree/master/core/src/main/java/com/seattlesolvers/solverslib/hardware) in the SolversLib repository.
