Hi Robert,

I confirmed your issue:

nsh> nxhello
nxmu_start: Starting server task
ssd1306_setpower: power: 1 [0]
ssd1306_sendblk: ERROR: I2C_TRANSFER failed: -110
board_lcd_initialize: Bound I2C0 to OLED 0
ssd1306_setpower: power: 1 [0]
ssd1306_setpower: power: 1 [1]
ssd1306_getvideoinfo: fmt: 0 xres: 128 yres: 32 nplanes: 1
ssd1306_getplaneinfo: planeno: 0 bpp: 1
nx_runinstance: Received opcode=8 nbytes=8
nx_runinstance: Received opcode=3 nbytes=20
nx_runinstance: Re-draw background rect={(0,0),(127,31)}
ssd1306_putrun: row: 0 col: 0 npixels: 128
nx_eventhandler: Received msgid=1
nxhello_main: NX handle=0x3ffaff40
nxhello_main: Set background color=0
nxhello_listener: Connected
ssd1306_sendblk: ERROR: I2C_TRANSFER failed: -110
ssd1306_putrun: row: 1 col: 0 npixels: 128
ssd1306_sendblk: ERROR: I2C_TRANSFER failed: -110
ssd1306_putrun: row: 2 col: 0 npixels: 128
ssd1306_sendblk: ERROR: I2C_TRANSFER failed: -110
ssd1306_putrun: row: 3 col: 0 npixels: 128
ssd1306_sendblk: ERROR: I2C_TRANSFER failed: -110
ssd1306_putrun: row: 4 col: 0 npixels: 128
ssd1306_sendblk: ERROR: I2C_TRANSFER failed: -110
ssd1306_putrun: row: 5 col: 0 npixels: 128
ssd1306_sendblk: ERROR: I2C_TRANSFER failed: -110
ssd1306_putrun: row: 6 col: 0 npixels: 128
ssd1306_sendblk: ERROR: I2C_TRANSFER failed: -110

Probably someone broke something on ESP32 I2C.

I suggest you to try on Raspberry Pi Pico to confirm it still working
there, if everything works there then it will confirm that the issue
is only on ESP32.

I'm sending my config for reference.

BR,

Alan

On 11/9/22, Robert Alexa <robertalexa2...@gmail.com> wrote:
> Hi Alan,
>
> I've modified my defconfig file so that it looks almost exactly the same as
> the one you mentioned. I'm attaching it to this email so that you can have
> a look at it.
>
> Regarding the I2C address, I've used i2ctool and confirmed that the OLED
> display is discoverable and reachable at 0x3c. This is also consistent with
> the behaviour I've experienced - the ssd1306_sendbyte commands do not fail,
> it's only the block transfers that cause the issue.
>
> Thank you,
> Robert
>
> On Wed, 9 Nov 2022 at 14:33, Alan C. Assis <acas...@gmail.com> wrote:
>
>> Hi Robert,
>>
>> I suggest you to verify if all needed options for SSD1306 are met, you
>> can compare with other boards, i.e.:
>>
>> arm/rp2040/raspberrypi-pico-w/configs/ssd1306/defconfig
>>
>> Also you can enable the i2ctool (CONFIG_SYSTEM_I2CTOOL) to scan your
>> I2C bus to confirm the I2C OLED address.
>>
>> BR,
>>
>> Alan
>>
>> On 11/9/22, Robert Alexa <robertalexa2...@gmail.com> wrote:
>> > Hi,
>> >
>> > I'm trying to set up an OLED SSD1306 128x32 display with an
>> > ESP32-Wrover
>> > board. The display module is connected through I2C and has only 4 pins
>> > exposed: SCL, SDA, VCC, GND.
>> >
>> > My custom config file starts from an esp32-wrover-kit:nsh to which I
>> added:
>> > CONFIG_LCD=y
>> > CONFIG_LCD_DEV=y
>> > CONFIG_LCD_SSD1306_CUSTOM=y
>> > CONFIG_LCD_SSD1306_CUSTOM_DEV_NATIVE_XRES=128
>> > CONFIG_LCD_SSD1306_CUSTOM_DEV_NATIVE_YRES=32
>> > CONFIG_LCD_SSD1306_CUSTOM_DEV_XOFFSET=0
>> > CONFIG_LCD_SSD1306_CUSTOM_DEV_PAGES=4
>> > CONFIG_LCD_SSD1306_CUSTOM_DEV_CMNPAD=2
>> > CONFIG_LCD_SSD1306=y
>> > CONFIG_SSD1306_NUMDEVS=1
>> >
>> > However, I'm encountering an issue at boot time regarding the I2C block
>> > transfer.
>> > ssd1306_setpower: power: 1 [0]
>> > ssd1306_sendblk: ERROR: I2C_TRANSFER failed: -116
>> > board_lcd_initialize: Bound I2C0 to OLED 0
>> > ssd1306_setpower: power: 1 [0]
>> > ssd1306_getplaneinfo: planeno: 0 bpp: 1
>> >
>> > Interesting enough, it seems like the single transfer
>> > (ssd1306_sendbyte)
>> is
>> > working fine, the problem is only with the block transfer. Do you have
>> any
>> > ideas what might cause this?
>> >
>> > Regards,
>> > Robert
>> >
>>
>

Reply via email to