Crius OLED and Nucleo F401RE (Nucleo_i2c_CriusOLED)

02 Jan 2015

Hallo! Nach dem auf der Projektseite keine Möglichkeit für Feedback besteht, mache ich das halt hier.

Hi! Because it's not possible to get feedback on the project-page directly, lets' do this here.

http://developer.mbed.org/users/michaelruck/code/Nucleo_i2c_CriusOLED/

Regards Michael

02 Jan 2015

I guess the code does not run the f401. That may be caused by the i2c.start() and byte write operations which dont seem to work well on the f401. See the similar discussion and solution that I prepared for the SSD1308 library yesterday.

03 Jan 2015

Your guessing wrong. Sure it runs correctly on a Nucleo f401re board. IF you first fix the OLED-Module. Google for this: "crius oled ack problem". My fixed module looks like this:

/media/uploads/michaelruck/p1020696.jpg

Regards, Michael

03 Jan 2015

The problem is that without the modification the display does not send an Ack for the I2C commands. Libraries that use the normal I2C blockwrite operations (ie send multiple bytes) will abort the message transmission when there is no acknowledge. You can use the low level I2C start, byte write and stop operations instead of the blockwrites. These transactions dont get acknowledged either, but your software can ignore that and the display will work as expected. The problem with these low level methods was that they work fine on the LPC1768, but did not work correctly on the F104. Obviously it is nicer and faster to use a (modified) display that does send I2C Ack.

03 Jan 2015

I had the same problem. Software workarounds on the F401RE didn't worked for me ether. STM32F4 seams a little bit more complicated to me than other processors. But however, what can we expect from one of the cheapest solutions?