Была надежда что можна просто заменить экран с диагональю 0.96. Но 1.3 оказался совсем не пин-то-пин. Выводы питания и земли поменяли местами. Ну не идиоты?! Но ладно, так вот какая хрень. Код работающий на 0.96 не хочет работать с 1.3. Причем не совсес чтоб не работать, он его включает, но весь вывод идет только в первую страницу пикселей - верхние восем. Смотрим видео как один и тот же код на 2-х экранах отображает.
Была надежда что можна просто заменить экран с диагональю 0.96. Но 1.3 оказался совсем не пин-то-пин. Выводы питания и земли поменяли местами. Ну не идиоты?!
На самом деле все гораздо хуже: среди 0.96 тоже попадаются разведенные и так, т так. Один из 0.96 у меня уже лишился белого дыма именно по этой причине.
Цитата:
Но ладно, так вот какая хрень. Код работающий на 0.96 не хочет работать с 1.3. Причем не совсес чтоб не работать...
Там контроллер другой - SH1106. По крайней мере у моих, но внешние признаки такие же.
PS. Все никак руки не дойдут добавить в ASOLED поддержку этого дисплея.
Там явно прописан тип контроллера, соответственно, нашел в И-нете библиотечку для него, проверил - работает. Ну а выяснять соответствие, повторюсь, руки не дошли.
Контролер SH1106. Библиотека OLED_I2C с этим экраном не работает(Кому важно барите с контролером SSD1306 такие экраны есть на 0.96 дюйма) . ВСЁ РАБОТАЕТ КАК НАДО.
То есть контроллер всетаки другой.
В Ардуино замечательно работает под управлением Аdafruit, при чём библиотека именно под SH1106 там имеется специальная, а вот у U8G и U8G2 замечена неприятная особенность: изображение как бы сдвинуто на два пикселя влево,
У меня к стати с контроллером SSD1306 тоже изображение было сдвинуто на 2х экранах как написано выше.
Посмотрел на команды SH1106 пристальней. У него совпадает с 1306 включение - Display OFF/ON 1 0 1 0 1 1 1 d. А остальное почти все не совпадает. Есть тема для справки - https://forum.arduino.cc/index.php?topic=256374.0 И там есть момент "There is only one small difference between SSD1306 and SH1106: The SH1106 controller has an internal RAM of 132x64 pixel. The SSD1306 only has 128x64 pixel." Может оттуда и растет корень проблемы со сдвигом на 2 пикселя.
Расковырял маленько работу с экраном. Похоже да, таки SH1106. Либ на него посмотрел с гитхаба, все типа SSD1306&SH1106, внутри всех кроме одной - шлак. Люди пишут что попало, смешивают адреса регистров одного и второго. Вобщем програмные различия этих контролеров:
1. Часть регистров управления не совпадает. Часть совпадает, что видно и провоцирует бардак.
2. Буфер под экран в 132 пикселя - это по два невидимых по краям получается для 128-пиксельного, потому каждую страничку выводить начиная с смещения в два пикселя. Отсюда и смещения появляются при применении либ не с той "кривизной" что у железа. Правим запись в регистры SH1106 SETLOWCOLUMN и SETHIGHCOLUMN.
3. Самое неприятное. У SSD1306 была такая фишка. После записи последнего байта страницы, по адресу 127, следующий автоматом пишется в следующую страницу на адрес 0. Это позволяло загонять хоть все 1024 байта сразу, одной транзакцией. У SH1106 переход на следующую страницу не происходит, а адрес после 127 идет 128, что вполне логично, затем 129 и только потом 0. Потому передавать данные приходится постранично, с командами SET_PAGE_ADDRESS и SETLOWCOLUMN и SETHIGHCOLUMN перед каждой страницей.
psn26, скачайте с гитхаба либу u8g2 , это новая либа, в ней очень много поддержки всяческих OLED , и разного железа arduino, esp32,... (как раз сегодня 5штук разных OLED диспов с помощью неё подключал, удачно)
Была надежда что можна просто заменить экран с диагональю 0.96. Но 1.3 оказался совсем не пин-то-пин. Выводы питания и земли поменяли местами. Ну не идиоты?! Но ладно, так вот какая хрень. Код работающий на 0.96 не хочет работать с 1.3. Причем не совсес чтоб не работать, он его включает, но весь вывод идет только в первую страницу пикселей - верхние восем. Смотрим видео как один и тот же код на 2-х экранах отображает.
https://www.youtube.com/watch?v=8kUUTRA6pqs
https://youtu.be/gkoXtUhHpdc
Отсюда вопросы, что за контроллер стоит в 1.3 и чем он отличается от 0.96?
У меня всё было указано в названии.
https://ru.aliexpress.com/item/1-3-inch-X-OLED-Schild-for-WeMos-D1-mini-...
SH1106 и адрес 0x3C, с мегой запустил, с ESP8266 пока с глюками. Там ссылка есть.
Была надежда что можна просто заменить экран с диагональю 0.96. Но 1.3 оказался совсем не пин-то-пин. Выводы питания и земли поменяли местами. Ну не идиоты?!
На самом деле все гораздо хуже: среди 0.96 тоже попадаются разведенные и так, т так. Один из 0.96 у меня уже лишился белого дыма именно по этой причине.
Но ладно, так вот какая хрень. Код работающий на 0.96 не хочет работать с 1.3. Причем не совсес чтоб не работать...
Там контроллер другой - SH1106. По крайней мере у моих, но внешние признаки такие же.
PS. Все никак руки не дойдут добавить в ASOLED поддержку этого дисплея.
Хороше Вам! Я смотрел даташит на SH1106, у него регистры все совсем по другому, врядли он так бы даже запустился. На самой плате у меня ниче полезного не написано, брал здесь https://ru.aliexpress.com/item/1PCS-1-3-OLED-module-blue-color-IIC-I2C-128X64-1-3-inch-OLED-LCD-LED/32683121416.html?spm=a2g0s.9042311.0.0.AAIT9E
Один из тех дисплеев, что я покупал: https://ru.aliexpress.com/item/1-3-inch-oled-white-display-with-4PIN-4-SPI-default-I2C-Drive-IC-SH1106/32662696567.html
Там явно прописан тип контроллера, соответственно, нашел в И-нете библиотечку для него, проверил - работает. Ну а выяснять соответствие, повторюсь, руки не дошли.
Смотри что пишут в отзывах
Контролер SH1106. Библиотека OLED_I2C с этим экраном не работает(Кому важно барите с контролером SSD1306 такие экраны есть на 0.96 дюйма) . ВСЁ РАБОТАЕТ КАК НАДО.
То есть контроллер всетаки другой.
В Ардуино замечательно работает под управлением Аdafruit, при чём библиотека именно под SH1106 там имеется специальная, а вот у U8G и U8G2 замечена неприятная особенность: изображение как бы сдвинуто на два пикселя влево,
У меня к стати с контроллером SSD1306 тоже изображение было сдвинуто на 2х экранах как написано выше.
Посмотрел на команды SH1106 пристальней. У него совпадает с 1306 включение - Display OFF/ON 1 0 1 0 1 1 1 d. А остальное почти все не совпадает. Есть тема для справки - https://forum.arduino.cc/index.php?topic=256374.0 И там есть момент "There is only one small difference between SSD1306 and SH1106: The SH1106 controller has an internal RAM of 132x64 pixel. The SSD1306 only has 128x64 pixel." Может оттуда и растет корень проблемы со сдвигом на 2 пикселя.
Расковырял маленько работу с экраном. Похоже да, таки SH1106. Либ на него посмотрел с гитхаба, все типа SSD1306&SH1106, внутри всех кроме одной - шлак. Люди пишут что попало, смешивают адреса регистров одного и второго. Вобщем програмные различия этих контролеров:
1. Часть регистров управления не совпадает. Часть совпадает, что видно и провоцирует бардак.
2. Буфер под экран в 132 пикселя - это по два невидимых по краям получается для 128-пиксельного, потому каждую страничку выводить начиная с смещения в два пикселя. Отсюда и смещения появляются при применении либ не с той "кривизной" что у железа. Правим запись в регистры SH1106 SETLOWCOLUMN и SETHIGHCOLUMN.
3. Самое неприятное. У SSD1306 была такая фишка. После записи последнего байта страницы, по адресу 127, следующий автоматом пишется в следующую страницу на адрес 0. Это позволяло загонять хоть все 1024 байта сразу, одной транзакцией. У SH1106 переход на следующую страницу не происходит, а адрес после 127 идет 128, что вполне логично, затем 129 и только потом 0. Потому передавать данные приходится постранично, с командами SET_PAGE_ADDRESS и SETLOWCOLUMN и SETHIGHCOLUMN перед каждой страницей.
Аdafruit - это та в которой?
не. спасибо поблевал уже.
...........
Правим запись в регистры SH1106 SETLOWCOLUMN и SETHIGHCOLUMN.
Если не сложно, расскажите подробней
psn26, скачайте с гитхаба либу u8g2 , это новая либа, в ней очень много поддержки всяческих OLED , и разного железа arduino, esp32,... (как раз сегодня 5штук разных OLED диспов с помощью неё подключал, удачно)
На всякий случай отмечу и в этой теме: PS из сообщения №3, уже давно не актуален: http://arduino.ru/forum/proekty/asoled-kompaktnaya-biblioteka-dlya-oled-displeya-128kh64-s-kirillitsei-utf-8 поддерживает и SH1106.
...........
Правим запись в регистры SH1106 SETLOWCOLUMN и SETHIGHCOLUMN.
Если не сложно, расскажите подробней
Так что там расскажеш. Тоска одна. Было просто
а стало сложно
Так что там расскажеш. Тоска одна. Было просто
ОЧЕНЬ спасибо))
Ща попробую разобраться
чтоб проще понималось дальше в коде
на тихере тоже купил дисплей.
описание @@@@ ППЦ
на деле ISP по умолчанию, там без какой то там матери толком не запустишь торлком.
Да ещё и двухцветный.
Погуглил и кое как подключил по квадратной шине, там отпаять, туда перепаять, сям резистор туда то завести.
И ради такого безценного сообщения регились?