SyRen 10

The SyRen 10, made by Dimension Engineering, is a flexible and rugged motor controller for use in medium scale robots. The controller supports four modes of communication, which makes interfacing with it a breeze. These modes include:


 * Servo PWM
 * Analog Voltage
 * Simple Serial
 * Packetized Serial

Dimension Engineering provides a very useful manual, which is provided here.

Source(s): SyRen solutions

Arduino Support
Because the Arduino is so flexible, one can use any of the four supported modes to control the SyRen. The specifics for each mode are outlined below

Source(s): SyRen solutions

Servo PWM
Using the SyRen in servo mode is just like using any normal servo motor with the Arduino.

Source(s): SyRen solutions

Analog Voltage
The Arduino supports Analog output on several of it's pins. These pins are usually marked "PWM" on the Arduino board. Using the Arduino's analogWrite command, you can output a voltage to the controller.

After setting the SyRen controller to Analog Input mode via the DIP switches, you can directly connect the SyRen's S1 line to one of the Arduino's PWM output pins. For best results, however, a low pass filter should be used between the Arduino output and the SyRen's input.

Source(s): SyRen solutions

Simple Serial Mode
This mode requires use of the Arduino's Serial Out capability. Standard serial and software serial will both work.

Source(s): SyRen solutions

Packetized Serial Mode
This mode also requires the use of the Arduino's Serial Out capability. This serial mode is the most robust and error resistant way to communicate with the motor controller.

Note: The SyRen expects the first packet it sees after power-up to be the Baudrate sync (Serial.print(170, BYTE);). Once the motor controller sees this, the LED on the board dims and the baud rate is set, and further commands complete successfully. If the LED dims and subsequent commands do not work, try to power cycle the motor controller and try again.

Packetized Serial mode requires one to send the motor command followed by a checksum, in order to avoid communication errors. The process on how to do this is quite simple, a sample is provided below.

Source(s): SyRen solutions