Overclocking I2C to 800KHz with FreeIMU v0.3

I’m having some fun with my new Rigol DS1052E oscilloscope and the brand new FreeIMU v0.3 and it’s integrated logic level converter.

I’m using the scope to stress test the I2C logic level converter and I found out that with Arduino and the Wire library hacking the code to overclock I2C to non-standard frequencies is actually extremely simple.

It’s just a matter of changing the line

#define TWI_FREQ 100000L

in twi.h and upscale that to whatever you want by changing 100000L into eg 400000L or 800000L.

With FreeIMU v0.3, I’ve been able to reach the unbelievable speed of 800 KHz. Even at this speed, communication looks extremely stable and reliable. Also the quality of the signals through the logic level converter is still very good.

Of course, as all the sensors on FreeIMU v0.3 aren’t designed for such speed, going so fast may actually damage the sensors and “woid your warranty”. So, I wouldn’t suggest trying this on your boards.

Here is a picture of the SCL signal scoped when running at 800KHz through the logic level converter. Cool!!!

Scroll to Top