STATORWORKS

ROBOTICS, MICROCONTROLLERS, DESKTOP, GRAPHICS AND MORE


DIY I2C SMART SERVO BOARD
12/19/20
Introducing a new motion board for low cost robotics and animatronics!



This little board lets you convert a standard servo from the normal pulse-width control, to a smart but simple I2C interface. This allows for less wiring, pin-count, and controller overhead on your project.
Works with Arduino/Raspi and other boards that have an I2C port. Purpose HERE


Features:
- Input voltage: 4.5 to 9V.
- Drive current: 1.5Amps.
- Fits standard 40mm, 3 to 6-Kg servo.
- Dimensions: 17x20mm
- Accessories: PH 4-pin connectors (24Ga wire)
- I2C interface (3.3v). Fast, smart yet simple and practical.
- Programmable I2C address. Have multiple servos on bus.
- Control power, speed, ramp-time and ramp-profile.
- Read actual position, velocity, power.
- Programmable position sequence. Runs without controller.
- Optional CRC8 checksum on I2C read and write


Get it on:

Check out the Github repo for documentation along with Arduino And Rpi example projects:


FAQ:

Q:
How do I set the I2C address?
A:
To the current address, write to register 0x01 the new address, within the range 0x07-0x70
Example #3 on the Github projects does this. If you dont know the current address, you can use example #4 to print it out.

Q:
Does this work with a 3.3v or 5v i2c bus?
A:
It works with a 3.3v i2c bus. For 5v microcontrollers you can add an inexpensive level shifter board.

Q:
Can I run the power feed above 6.5V?
A:
The controller board itself works fine with up to 9V. You will also obtain a lot more torque but keep in mind that above 6.5 the motor itself has a reduced lifetime. This is still nice for robotics experimentation.

Q:
Does this offer force compliance?
A:
Yes, when you set MAX_POWER to a value less than 100% the servo will deflect by an external force.
The force will increase in proportion to the deflection angle.
This is useful for forcefeedback mechanisms or adjustable shock damping on a robot leg etc.

Q:
How long does it take to install the board on an existing servo?
A:
This takes an intermediate soldering skill. Total time is about 10-15 minutes.

Q:
Will you offer ready-to-go servos with this system?
A:
Yes, complete servos are being tested and will be offered soon.

Q:
Any special recomendations for robust wiring?
A:
It's especially important in any design that the power and ground lines are robust enough to support the currents involved.
Ground in particular needs to be able to carry all energy back, otherwise if it 'backs up' the I2C bus levels might be affected.
For a total system return of 5amps use at least 18Ga wire, for 10 amps use at least 14Ga wire, etc.

Q:
Can I drive a more powerful servos like the MG955 or 996 with this board? How about a smallservo?
A:
This board can support up to 1.5Amp servos or 6Kg. The MG995 and 996 are 3Amp, 12Kg servos and will overload the board but will not damage it (there will be a short pause in power).
You can still use it by setting MAX_POWER to 70% or lower. It works but with less torque of course.
For large and small servos there are two other board models coming with appropriate drivers.

Q:
Can the board withstand overloads?
A:
Yes this is a pretty rugged driver. An overload will cause a small pause in power, but it recovers.
Q:
How do I cascade servos on my design, any recommendations?
A:
Use the provided JST connectors and/or cascade and tap each servo, soldering your harness to those.
Your power and ground wires should be thick enough to support all the added current from the servos.
Keep the I2C lines thin (i.e. 24gauge) to keep impedance low.


For more information, see the full manual:



Coming soon:
Ready to go I2C servos!