Users can define their own devices that can then be used by other scripts. The device needs to subclass NonBowlerDevice and implement the connection and disconnection methods.