Comments (9)
You did not mention which display type and interface you use...
But such things may happen when the I2C signals are corrupted occasionally.
- check your pull-up resistors, and wiring,
- check power supply to display
- reduce I2C clock frequency. By default is 700kHz used, which is beyond I2C specification. Try a value lower than 400kHz, e.g. 100kHz.
from esp8266-oled-ssd1306.
I got the same problem. After couple time, content of the screen is shifted. I tested screen on lower speed, checked hardware and everything is okay. I think the problem is in buffer, because when the content is shifted I can change screens (with anime transistion), and content of screen changes properly but it has shifting similar like on pictures at @Elmi77.
from esp8266-oled-ssd1306.
I am witnessing exactly the same issue. Using a different microcontroller and SPI at 8mhz.
The content shift is persistent for a few iterations. After ~2 consecutive shifts the content shifts back to the "normal state".
from esp8266-oled-ssd1306.
@Elmi77 @dobraMorda @Tbscml I wonder how this could be a software issue with this library. Can I ask you to try other 4.x versions (4.0, 4.1, etc. see https://github.com/ThingPulse/esp8266-oled-ssd1306/releases) to understand if the behavior changes?
from esp8266-oled-ssd1306.
@marcelstoer I'm not able to test different release version right now, but i found very similar issues using other libraries:
adafruit/Adafruit_SSD1306#139
MarlinFirmware/Marlin#14431
I'd suppose that the problem is not within the library, as data corruption would be cleared by the next frame.
from esp8266-oled-ssd1306.
I already have checked hardware and wiring and limited I2C clock to 100 kHz, it does not change anything.
As the shifted layout is NOT corrected after some refreshes here, my original question again: how can I do/force a complete reinitialisation of the display in order to let it "start from scratch"?
from esp8266-oled-ssd1306.
@marcelstoer I found bug in my own code - sometimes I2C crashes because two threads used the same I2C bus, and it was without control - and now my display works well. So sorry for my first thinking about bug in library. @Tbscml @Elmi77 I think you should check your code where u using the same I2C to read multiple sensors and how it works.
from esp8266-oled-ssd1306.
Thanks @dobraMorda, kind of confirms my suspicion.
from esp8266-oled-ssd1306.
I had the same problem with the Adafruit library and switched to this library hoping to fix it. However the problem continued. So it seems it's not related to the library. I am using an ESP-01 and assigning GPIOs 0 and 3 (RX) to I2C, only the SSD1306 is connected to I2C. Maybe this hardware is unable to maintain I2C timing correctly?
My solution has been to re-init the display every couple of minutes - so far this is working.
from esp8266-oled-ssd1306.
Related Issues (20)
- Compatibility with ST7735S or ST7789
- help working exmaples with heltec v2 HOT 1
- при выводе картинки она не отображается коректно HOT 1
- display.drawString() cannot utilize the first rows of the display HOT 10
- Can not use the "Wire1",as the secend i2c HOT 3
- String in negative HOT 2
- I2C_ONE / I2C_TWO are not declared but the HW_I2C enum is?
- display.flipScreenVertically(); does not rotate or flip display
- drawStringMaxWidth doesn't return 0 even though text fits
- How change color text? HOT 1
- The bitmap drawing is not compatible with the img2cpp websites. The data needs to be fliped every 8bits. HOT 5
- display.init() crashes serial on ESP32-C3-01M HOT 1
- Unused variable warning on ESP8266 HOT 3
- SSD1306Wire.h, line 145 causes compilation error 'byte' is ambiguous HOT 1
- rotate 90
- SSD1306TwoScreenDemo ESP32 doesn't work HOT 2
- Reset signal HOT 2
- No way to clear logBuffer HOT 1
- Speed, lots of it!
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from esp8266-oled-ssd1306.