Author Topic: I2C Smart Servos (Indiegogo)  (Read 622 times)

0 Members and 1 Guest are viewing this topic.

Offline statorworks

  • Contributor
  • Posts: 8
  • Country: us
I2C Smart Servos (Indiegogo)
« on: March 22, 2021, 09:24:08 pm »
Hello all, just wanted to share my concept of I2C controlled servos.

I'm trying to provide an intermediate product for robotics or animatronics.
This scheme let's you control the force and ramp as well as read the position and power, but without the interface becoming too complex. I think this should help make robots less 'jerky' and it also requires less hardware and software overhead.

I'm trying on Indiegogo, but at this point don't know if Kickstarter could've been better  ???

https://www.indiegogo.com/projects/kinno-smart-i2c-servos#/

Here are a couple of the videos



 
The following users thanked this post: thm_w

Online oPossum

  • Super Contributor
  • ***
  • Posts: 1182
  • Country: us
  • The other white meat.
Re: I2C Smart Servos (Indiegogo)
« Reply #1 on: March 24, 2021, 02:28:48 am »
IIC is a really bad choice for an interface. CAN, RS-485 or even S.Bus would be much better.
 
The following users thanked this post: janoc, Cyberdragon, Ian.M, alexanderbrevig, mairo, I wanted a rude username

Offline alexanderbrevig

  • Frequent Contributor
  • **
  • Posts: 602
  • Country: no
  • Musician, developer and EE hobbyist
    • alexanderbrevig.com
Re: I2C Smart Servos (Indiegogo)
« Reply #2 on: March 24, 2021, 07:08:29 am »
Seems like nice work!

From the first paragraph on I2C from Wikipedia:
Quote
...short-distance, intra-board communication

You should really concider a pivoting manouver and select one of the suggested physical layers in the post above mine.

Good luck!
 

Offline statorworks

  • Contributor
  • Posts: 8
  • Country: us
Re: I2C Smart Servos (Indiegogo)
« Reply #3 on: March 24, 2021, 05:56:48 pm »
Thanks for your replies guys. I've tested these to five feet and it's all pretty resilient at 100KHz.
I decided for this as a low cost, low complexity option, but certainly plan on making a RS485 version as well at some point :D  Thanks for the feedback.
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 12466
  • Country: gb
    • Mike's Electric Stuff
Re: I2C Smart Servos (Indiegogo)
« Reply #4 on: March 24, 2021, 06:03:09 pm »
I2C is a terrible choice for a servo, where you'll have motor noise flying around.
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 
The following users thanked this post: Cyberdragon

Offline Cyberdragon

  • Super Contributor
  • ***
  • Posts: 2518
  • Country: us
Re: I2C Smart Servos (Indiegogo)
« Reply #5 on: March 25, 2021, 06:38:03 am »
I2C is a terrible choice for a servo, where you'll have motor noise flying around.

It would also make a device susceptable to physical damage from electrical interferance if the motors went out of control.
*BZZZZZZAAAAAP*
Voltamort strikes again!
Explodingus - someone who frequently causes accidental explosions
 

Offline m98

  • Frequent Contributor
  • **
  • Posts: 444
  • Country: de
Re: I2C Smart Servos (Indiegogo)
« Reply #6 on: March 25, 2021, 09:56:10 am »
IIC is a really bad choice for an interface. CAN, RS-485 or even S.Bus would be much better.
Ever tried connecting a RS-485 or CAN device to the average dev-boards people are using?
This is perfectly adequate for hobby projects and prototypes, and don't tell me the PWM input of regular hobby servos is particularly resistant to interference.

I would still suggest another interface, daisy-chained SPI would be both a little more resilient and eliminate the need to program the address.
 

Online oPossum

  • Super Contributor
  • ***
  • Posts: 1182
  • Country: us
  • The other white meat.
Re: I2C Smart Servos (Indiegogo)
« Reply #7 on: March 25, 2021, 11:13:38 am »
IIC is a really bad choice for an interface. CAN, RS-485 or even S.Bus would be much better.
Ever tried connecting a RS-485 or CAN device to the average dev-boards people are using?

Yes. No problem at all. Many STM32 and even the ESP32 feature CAN peripherals. I have also written bit-bang CAN code (used for the NV2 unlock).

Even the lowly ATMega328 has features to facilitate proper RS-485 driver control. I have used them.

Quote
This is perfectly adequate for hobby projects and prototypes,

It's poor design. It will cause problems.

Quote
and don't tell me the PWM input of regular hobby servos is particularly resistant to interference.

It is. Totem-pole vs open collector. There is a difference.

Quote
I would still suggest another interface, daisy-chained SPI would be both a little more resilient

Uh, no.
 

Offline m98

  • Frequent Contributor
  • **
  • Posts: 444
  • Country: de
Re: I2C Smart Servos (Indiegogo)
« Reply #8 on: March 25, 2021, 12:45:41 pm »
Ever tried connecting a RS-485 or CAN device to the average dev-boards people are using?

Yes. No problem at all. Many STM32 and even the ESP32 feature CAN peripherals. I have also written bit-bang CAN code (used for the NV2 unlock).

Even the lowly ATMega328 has features to facilitate proper RS-485 driver control. I have used them.
There is no RS-485 or CAN driver on any regular Arduino, NodeMCU or Blue Pill board.

Quote
This is perfectly adequate for hobby projects and prototypes,

It's poor design. It will cause problems.
Literally nobody is going to care about occasional bus upsets that might or might not happen in a toy robot.
And with properly dimensioned pull-ups or a current source, standard-rate I2C runs just fine over a few meters in a regular home/lab environment.

Quote
and don't tell me the PWM input of regular hobby servos is particularly resistant to interference.

It is. Totem-pole vs open collector. There is a difference.
There is, but you're still relying on the noise immunity of the unprotected logic input of some unnamed servo controller ASIC.

Quote
I would still suggest another interface, daisy-chained SPI would be both a little more resilient

Uh, no.
So you haven't got any qualified arguments?
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 12466
  • Country: gb
    • Mike's Electric Stuff
Re: I2C Smart Servos (Indiegogo)
« Reply #9 on: March 25, 2021, 01:03:06 pm »
I wouldn't use SPI due to the risk of clock glitches.I2C has the same potential issue, plus slow risetimes.
For the simplest interface, I'd go for TTL UART, with some simple RC filtering to filter out out-of-band noise spikes.
 
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline janoc

  • Super Contributor
  • ***
  • Posts: 3348
  • Country: fr
Re: I2C Smart Servos (Indiegogo)
« Reply #10 on: March 25, 2021, 02:23:26 pm »
Literally nobody is going to care about occasional bus upsets that might or might not happen in a toy robot.
And with properly dimensioned pull-ups or a current source, standard-rate I2C runs just fine over a few meters in a regular home/lab environment.

You think? When such "bus upset" freezes the robot/gadget because the hw I2C peripheral is now stuck waiting for that clock line to be released? Or worse, when it causes the motor to keep spinning until something breaks because the micro is unable to read some sensors?

Cheap DC motors like those in those servos are terrible when it comes to EMI. I had one of those cheap yellow plastic gear motors in a project and without a boatload of extra noise suppression components (two chokes, several capacitors, ferrite ring ...) there was absolutely NO chance  to run an I2C line to a sensor nearby. And we are talking about maybe 15 cm of wire, not a 50cm+ long antenna you may easily get in a small robot once you actually dress the wires properly.

That I2C runs "just fine over a few meters in a regular home/lab environment" means squat all about running in an environment where you have several brushed motors spewing EMI in one place, along with a wifi or some other radio and a bunch of sensors.

This is a terrible design decision even for toys and will give the user no end of grief. And the OP a lot of customer support/returns/bad reviews.

RS485 would cost literally peanuts to add and would work much better - all you need is a transciever (few cents) and an UART on both sides of the link. Oh and you can actually make a multidrop bus with RS485 too with some care (even though then CAN is probably better).

There is no RS-485 or CAN driver on any regular Arduino, NodeMCU or Blue Pill board.

That's wrong. Blue Pill certainly has CAN (but you can't use it with USB at the same time). Also the more recent Black Pill has CAN peripheral, I believe. You only need a transciever like MCP2551.



Arduino Due (ATSAM3X8E) has 2 CAN peripherals built-in, possibly others. There are also CAN shields available. You can also attach a dedicated CAN controller that talks to the host over SPI if the host doesn't support CAN natively - like MCP2515.

This is literally all you need to make CAN work even on a lowly Uno:

https://www.mikroe.com/can-spi-board

Two chips + a few passives, maybe $5 in parts.

RS-485 does not need any special hardware support, only UART which all of the above have - you just need to add a transciever IC. Those cost peanuts and are typically a simple 8 pin device. Heck, there is even an official Arduino shield with an RS485 transciever.
« Last Edit: March 25, 2021, 02:56:11 pm by janoc »
 
The following users thanked this post: Cyberdragon, Ian.M

Online oPossum

  • Super Contributor
  • ***
  • Posts: 1182
  • Country: us
  • The other white meat.
Re: I2C Smart Servos (Indiegogo)
« Reply #11 on: March 25, 2021, 02:38:09 pm »
So you haven't got any qualified arguments?

I do, but I am going to bow out and let others with more clout continue with the arguments.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf