CAN

also error codes. Copied with modification. We may want to abstract the
CAN channel as a separate object, of which a CAN module can possess an
array of. If that's an accurate model of how our CAN works...