Welcome to Synthiam!

The easiest way to program the most powerful robots. Use technologies by leading industry experts. ARC is a free-to-use robot programming software that makes servo automation, computer vision, autonomous navigation, and artificial intelligence easy.

Get Started
Asked — Edited

I2c Questions

I seemed to be having issues with I2C BlinkM's I keep adding the control to the layout and connect the blink M to one of the i2C ports and it disconnects the EZB, every single time. To make sure I have connected the wires correctly could someone point me to a call out that has the break down of the I2C ports, i.e +,-,c,d

Thanks in advance.


Upgrade to ARC Pro

Unleash your creativity with the power of easy robot programming using Synthiam ARC Pro

AI Support Bot
Related Content
Based on your post activity, we found some content that may be interesting to you. Explore these other tutorials and community conversations.
Yup that's the one thanks! Seems I have I wired correctly. Not sure what's happening with the disconnect.
There's ONLY two ways an i2c can cause a disconnect...

1) It's not wired correctly - which is why it's disconnecting.

2) the i2c address is specified incorrectly
EZB v4 I2C ports are a single bus, do you have anything else connected ?
Nope nothing else connected. Checked the 4 wires again and they are connected correctly. (Black Neu, red pos, white D, Yellow C) All are addressed at 0x09. This is for Alans eye color control.
User-inserted image

User-inserted image

There are a few different blinkm versions and revisions.

blinkm min product info:


3.6-5v operating voltage, 60mA max
5-volt standard TTL inputs

EZB is 3.3v

did you used that device before with EZB ?
Hmm good point. The Original Alan was built with the same product. They still work and I can change colors for his eyes using the control for it. But that was 4/5 years ago. Perhaps the product has changed. I won't put too much energy into it. For this project I can just select a color and set that with the programmer, then just Apply voltage .
I agree with @PTP it looks like the BlinkM operating voltage may have changed.

Their pull-up resistor values on the SDA and SCL lines may also have changed. You could try placing low value (330 to 1kohm) resistors on your wiring harness (SDA to VCC & SCL to VCC) to place them in parallel with the pull-up resistors on the board. Putting these parallel resistors in place with decrease the resistance on the SDA and SCL lines pulling them up stronger.
Thanks Jeremie, I'll give it a try today!

I need your input:

I traced the EZB pcb and it seems EZB does not have pull-ups on SDA, SCL lines, neither a resistor in series, can you confirm this ?

Regarding the Pull-Up values, several times I've used 4.7K with STM32F103, STM32F205 and other 3.3v micro-controllers.
When adding 2 devices with same values 4.7K brings down to 2.35K and still works, but if i bring down below <1.5K i had problems.

I know there are other factors:
1) cable length (let's assume we are using normal distances 30 cms)
2) I2c Bus speed

Q2) EZB I2c BUS Speed ?
*** EDIT: The default value is 100 kbit/s and can be configured in the ARC

Q3) I never heard before the recommendation for 330 to 1K, Isn't the value too low ?

Q4) Can you explain why the recommendation is different for EZB when compared to other/same 3.3 micro-controllers ?
*** EDIT 2:
STM32F205 (EZB microcontroller)
page 114
When you have long wires, the series resistors limit the slew rate, but i believe we don't need them.