Pushing the I2C SSD1306 OLED to its limits


Larry Bank
 Share

0

Recommended Posts

Armbian is a community driven open source project. Do you like to contribute your code?

23 minutes ago, Larry Bank said:

Has anyone found a way to easily change the I2C speed on Mainline kernel Armbian without doing a custom build?

You could try using an overlay to add a "clock-frequency" property to the I2C controller node: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt

Link to post
Share on other sites

12 minutes ago, zador.blood.stained said:

You could try using an overlay to add a "clock-frequency" property to the I2C controller node: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt

Sorry for being thick, but exactly what does that entail? Just adding a "param" line to armbianEnv.txt?

Link to post
Share on other sites

3 minutes ago, Larry Bank said:

Sorry for being thick, but exactly what does that entail? Just adding a "param" line to armbianEnv.txt?

No. If you are using, for example, a H3 based device, a recent enough Armbian image and want to change frequency of the I2C controller 1, you need to install kernel headers, create a file (i.e. "i2c1-change-frequency.dts")

/dts-v1/;
/plugin/;

/ {
	compatible = "allwinner,sun8i-h3";

	fragment@0 {
		target = <&i2c1>;
		__overlay__ {
			clock-frequency = <200000>;
		};
	};
};

and add it via "armbian-add-overlay"

 

Or for testing purposes just decompile, change and recompile the DT in /boot/dtb using dtc. Since there will be no node labels you'll have to check the original DT for node names, i.e. I2C 1 node would be named "i2c@1c2b000".

Link to post
Share on other sites

Thanks for the response. I took the path of least resistance and tested it on a Raspberry Pi Zero. On that platform I can edit the /boot/config.txt to change the I2C speed. It maxes out at 400Khz no matter what value you give it. That's fast enough to do decent animation:

 

 

I wrote a blog post and shared the code on github:

 

http://bitbanksoftware.blogspot.com/2018/05/practical-animation-on-i2c-ssd1306.html

 

Link to post
Share on other sites

Guest
This topic is now closed to further replies.
 Share

0