Let's Make Robots!

Open source 12 channel I2C servo controller anyone?

Hey guys!


I am thinking about this for a few weeks now but I'm still not sure ifI should do it. 

I have designed a 12 channel I2C servo controller and I had some proto boards manufactured by iTead studio. Of course the design will need some more refining but the main functionality is there.

 Now I'm thinking about making the controller an open source hardware project and releasing the design files, schematic and code under the creative commons license (share-alike) and therefore make it open source hardware. 


To top things off I might even go to Seeedstudio and let them manufacture and distribute the board (as I have no big rep I certainly couldn't sell the boards.

The things that are keeping me back are the question if there is even any need of yet another 12 channel I2C servo controller or if there is just too much well known and proven products out there.


Do you think this is a good idea and that I should be attempting it?


###### Update 08.08.2012 #####


Today the final components arrived and I have assembled one of the boards that have arrived earlier this week. 

Here is an image of the assembled board and two unassembled ones:

And some more unassembled boards:




So any other suggestions?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I could do with a micro 12 channel servo controller for a mini humanoid project.

and on the cheap :)

That is going to depend on the manufacturing cost and the share I'll get from Seeedstudio :)

Has it any special nice functionalities?

I am thinking of functions like saving positions and returning to them at power-up until next command. Scaling?


As I said the design has to be refined further so adding

      features wouldn't be a problem, especially if they are

      software wise. 

      The position saving shouldn't be a problem as it's completely

      solvable in software. The only issue would be that every new

      position has to be stored in the EEPROM (only has 100,000

      write/erase cycles)


      What do you mean by scaling? I assume you mean mapping the

      pulsewidth to an angle in degrees, meaning that the user only

      has to send a value from 0 to 180.


      Again easily solvable in software, could be established by

      adding some sort of config register for the user to select

      between sending a barebone compare value or the angle in



      The only issue with this is, that the user still has to tweak

      the angle because every servo has a slightly different

      pulsewidth for e.g. 90 degrees. 

      I have been suggested using a dedicated chip to make a 16

      channel controller,  but this would eliminate all the

      features except bare servo control. 

Thanks a lot and keep the suggestions coming! 


bump. See update for some pictures of the assembled prototype :)