rust-embedded-community / sh1106

SH1106 driver for use with embedded_hal and (optionally) embedded_graphics
Apache License 2.0
34 stars 36 forks source link

Different column offsets on 128x64 panels #21

Closed antonok-edm closed 4 years ago

antonok-edm commented 4 years ago

@mvirkkunen noted in #6 that many 128x64 SH1106 panels use a 132x64 internal buffer, with a centered 4 pixel offset. I've come across a 128x64 panel with a 0 pixel offset (in particular, this one). Using this library causes the entire content of the display to be offset.

This is of course very easy to patch by tweaking DisplaySize::column_offset to provide an offset of 0, but it would be great to support both kinds of display upstream.

jamwaffles commented 4 years ago

That display is super confusing! Apparently it uses a CH1115 driver IC, where the datasheet claims it's compatible with the SSD1306. Have you successfully used this SH1106 crate with it?

antonok-edm commented 4 years ago

Yes, I've found the information about display drivers to be pretty inconsistent sometimes...

I initially tried using your SSD1306 crate with it, but the display was completely garbled and unusable. Then I tried this SH1106 crate, I basically just swapped the display out for a different one I'd been using before in a working system - and everything was fine except for the pixel offset.