The PiKoder/SSC PRO Serial Servo Controller offers the control of up to eight servos either via I2C bus or through a UART serial port. Microcontrollers such as an Arduino or a Raspberry Pi feature these interfaces - there is no need for any additional hardware adaptor. If a PC is taking the host function then an off-the -shelf USB-UART would be needed to connect the PiKoder/SSC PRO to a USB port.
The UART interface is primarily used for progamming and for control in smaller projects. Two protocols are supported:
- miniSSC-II protocol, which is frequently used for interfacing Servo Controllers
- ASCII Control Interface, a two-way ASCII-protocol, which is designed to allow programming and control using a standard terminal program such as Tera Term, TTY or hyperterm.
For larger systems with serveral intelligent subsystems and sensors such as robots the I2C bus is advantageous compared to the UART port because the host controller needs only two pins to control the whole network.A plain protocol which has a lot of similarity with the miniSSC definition controls the actual servo positions.
When using the I2C bus the programming of the PiKoder/SSC PRO can be performed "in-place" via the serial port. This significantly simplifies the customization of the PiKoder/SSC PRO. Additionally, an "echo" - function is available, which converts all I2C commands received by the PiKoder to ASCII and copies them to the UART allowing you to monitor the system through a standard terminal.
Controlling the PiKoder/SSC PRO with an Arduino via I2C is described in my blog Makerprojekte.de (unfortunately in German but it offers an illustrative example sketch; another blog covers interfacing to the Raspberry Pi including the related Python demo code.
The PiKoder/SSC PRO User's Guide provides more detail about the features and the programming of the PiKoder/SSC PRO.
The PiKoder/SSC PRO is available as a fully programmed controller. For your testing a demo firmware is available for downloading. Please note that this firmware does not allow you to change the I2C bus address and to store updated system parameters.