When an I/O controller (Arduino, Microbit, etc.) is programmed with Synthiam firmware that is compatible with ARC, we refer to it as an EZB. The firmware then allows the EZB I/O controller to use additional capabilities available in ARC. An EZB connects sensors, motors, and peripherals to the computer running ARC.
Based on the type of computer selection (embedded or remote), EZBs will support specific connection types. For example, an EZB Arduino Uno uses a USB, which requires the computer to be embedded in the robot. An EZ-Robot EZ-B v4 can use both Wi-Fi and USB which supports a remote computer or embedded computer configuration.
Each EZB will provide various hardware and custom commands. To identify the capabilities of an EZB, ARC provides abstract methods that represent the EZB's capabilities. For example, if the connected EZB supports a hardware UART, the respective EZB index in ARC will provide hardware UART commands. The capabilities of each EZB are determined by the Firmware Capability Manager. An EZB will report its capabilities to ARC. If an unsupported command is issued to an EZB, ARC will notify you.