OLED 1.3 SPI/I2C

Szeroko pojęta elektronika z różnych dziedzin życia
mcexperts
Posty: 609
Rejestracja: 19 kwie 2016, 18:40
Kontaktowanie:

Re: OLED 1.3 SPI/I2C

Postautor: mcexperts » 07 maja 2016, 12:24

To rob tego oleda, mam oleda przy multiwii, wyjme i bedzie :+)

Ten mi pasowal wymiarami do wyswietlacza w cube, gdyby ruszyl, bym wymienil 1:1

Awatar użytkownika
Miś
Posty: 750
Rejestracja: 22 kwie 2016, 14:23
Kontaktowanie:

Re: OLED 1.3 SPI/I2C

Postautor: Miś » 07 maja 2016, 14:50

Tyle że przy multiwii te oledy chodzą po i2c. A tu najlepiej by było zastosować 4-wire SPI, bo komunikacja jest najszybsza przy takim połączeniu.
-- MIŚ --

Garreth
Posty: 981
Rejestracja: 20 kwie 2016, 6:59
Lokalizacja: Katowice
Kontaktowanie:

Re: OLED 1.3 SPI/I2C

Postautor: Garreth » 09 maja 2016, 19:33

IMG_20160509_212433.jpg


Jest pierwszy sukces:) Sygnały przepuszczone przez level shifter dla pewności (czekam na info od sprzedawcy czy mogę podłączyć bez niego).

W konfiguracji (dogm_lcd_implementation.h) zamienione:

Kod: Zaznacz cały

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);


na:

Kod: Zaznacz cały

 U8GLIB_SH1106_128X64 u8g(SCK_PIN, MOSI_PIN, LCD_SDSS,DOGLCD_A0,LCD_PINS_RS);


gdzie:

Kod: Zaznacz cały

      #define LCD_SDSS 53
      #define LCD_PINS_RS 16
      #define DOGLCD_A0  44
      #define SCK_PIN          52
      #define MOSI_PIN         51


Jutro dalszy ciąg zabawy, żeby uruchomić to cudo pod HW SPI - bo zdaje się, że przy tym wywołaniu używam SW SPI niestety, ale to jedyne które mi jakoś zadziałało.

Fakt jest, że wyświetlacz choć malutki, to jest baaardzo czytelny. Kąty widzenia jak dla typowego OLEDa - wyśmienite.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Garreth
Posty: 981
Rejestracja: 20 kwie 2016, 6:59
Lokalizacja: Katowice
Kontaktowanie:

Re: OLED 1.3 SPI/I2C

Postautor: Garreth » 10 maja 2016, 18:23

Nie mogę edytować, także wybaczcie, że podbiję.

Po wymianie mailowej z botland (nawet przetestowali dla mnie ten wyświetlacz u siebie, wielki szacun dla nich za poświęcenie czasu na to) okazało się, że wyświetlacz śmiga na 5V bez konieczności użycia level shiftera.

Także podłączenia zostawiłem jak wyżej, ale bez pośrednika w postaci level shiftera, zasilanie zostawiłem 5V i śmiga:)

Dodatkowo zmodyfikowałem linijkę wywołania konstruktora wyświetlacza na

Kod: Zaznacz cały

U8GLIB_SH1106_128X64 u8g(LCD_SDSS,DOGLCD_A0,LCD_PINS_RS);

i dalej działa, także mamy pełne Hardwarowe SPI, pełen sukces:D

Dla ciekawskich, użycie konstruktora U8GLIB_SH1106_128X64_2X (double RAM) również działa :)

Moje wyniki testów - szkic FPS, wyniki pokazują ilość klatek na sekundę o ile dobrze przeanalizowałem ten kod, więc czym więcej tym lepiej
HW SPI double ram:

Kod: Zaznacz cały

clip 44.5
clear 8.3
draw 11.2
draw pixel 5.2
Szkic używa 12 242 bajtów z (4%) pamięci programu. Maksimum to 253 952 bajtów.
Globalne zmienne używają 418 bajtów z (5%) dynamicznej pamięci, pozostawiając 7 774 bajtów dla lokalnych zmiennch. Maksimum to  8 192 bajtów.


HW SPI:

Kod: Zaznacz cały

clip 34.7
clear 5.8
draw 7.2
draw pixel 2.8
Szkic używa 12 182 bajtów z (4%) pamięci programu. Maksimum to 253 952 bajtów.
Globalne zmienne używają 290 bajtów z (3%) dynamicznej pamięci, pozostawiając 7 902 bajtów dla lokalnych zmiennch. Maksimum to  8 192 bajtów.


SW SPI:

Kod: Zaznacz cały

clip 25.5
clear 5.5
draw 6.7
draw pixel 2.7
Szkic używa 12 360 bajtów z (4%) pamięci programu. Maksimum to 253 952 bajtów.
Globalne zmienne używają 299 bajtów z (3%) dynamicznej pamięci, pozostawiając 7 893 bajtów dla lokalnych zmiennch. Maksimum to  8 192 bajtów.


SW SPI double ram:

Kod: Zaznacz cały

clip 30.3
clear 7.7
draw 10.0
draw pixel 4.9
Szkic używa 12 424 bajtów z (4%) pamięci programu. Maksimum to 253 952 bajtów.
Globalne zmienne używają 427 bajtów z (5%) dynamicznej pamięci, pozostawiając 7 765 bajtów dla lokalnych zmiennch. Maksimum to  8 192 bajtów.


Czyli najlepszą opcją wydaje się być HW SPI double RAM, co potwierdza teorię:)
Tym samym zamykam moje wypociny na temat tego wyświetlacza. Czas stworzyć i zakodzić płytkę z przyciskami zamiast enkodera:)

Awatar użytkownika
Miś
Posty: 750
Rejestracja: 22 kwie 2016, 14:23
Kontaktowanie:

Re: OLED 1.3 SPI/I2C

Postautor: Miś » 10 maja 2016, 21:34

Jako ciekawostka:
Repetier z wyświetlaczem 0.96'' OLED po I2C:
Obrazek

Oczywiście to jako ciekawostka, bo I2C będzie raczej zbyt wolne i podczas normalnej pracy używanie opcji z LCD powodowało by prawdopodobnie przyninki. No i rozmiar tego LCD wymusza posiadanie lupy jako niezbędnego akcesorium.
No ale da się i działa :P
-- MIŚ --

Garreth
Posty: 981
Rejestracja: 20 kwie 2016, 6:59
Lokalizacja: Katowice
Kontaktowanie:

Re: OLED 1.3 SPI/I2C

Postautor: Garreth » 11 maja 2016, 5:54

No tak, I2C może sprawiać problemy, aczkolwiek trzeba by przetestować. 0.96" to w ogóle maleństwo, ale 1.3" też szału nie robi. Mi akurat pasuje, bo normalnie to wyświetlacza nawet nie używam bo mam octoprint, ale czasem podczas druku przyda się zmienić prędkość albo flow, a to nawet na małym wyświetlaczu da się ogarnąć:)

Awatar użytkownika
imrahil
Posty: 191
Rejestracja: 19 kwie 2016, 18:44
Lokalizacja: Bydgoszcz
Kontaktowanie:

Re: OLED 1.3 SPI/I2C

Postautor: imrahil » 11 maja 2016, 7:03

jakby ktoś szukał większych OLED'ów: http://www.newhavendisplay.com/oled-col ... 9_626.html
pozdrawiam
Jarek

Garreth
Posty: 981
Rejestracja: 20 kwie 2016, 6:59
Lokalizacja: Katowice
Kontaktowanie:

Re: OLED 1.3 SPI/I2C

Postautor: Garreth » 11 maja 2016, 8:05

imrahil pisze:jakby ktoś szukał większych OLED'ów: http://www.newhavendisplay.com/oled-col ... 9_626.html


Miałbym kolorowy oled to może bym pokombinował ze zmianami w marlinie aby tych kolorów używać. Nie jestem pewien jak by działał kolorowy oled przy obecnych wywołaniach biblioteki.

Garreth
Posty: 981
Rejestracja: 20 kwie 2016, 6:59
Lokalizacja: Katowice
Kontaktowanie:

Re: OLED 1.3 SPI/I2C

Postautor: Garreth » 12 maja 2016, 18:20

Jeszcze mnie natchnęło, kolejna ciekawostka... Włączyłem flagę O3 zamiast Os do kompilacji kodu, także nowe wyniki (ale tylko dla wersji double ram, dla innych nie ma sensu):

Kod: Zaznacz cały

clip 49.0
clear 8.4
draw 12.2
draw pixel 4.9
Szkic używa 13 202 bajtów z (5%) pamięci programu. Maksimum to 253 952 bajtów.
Globalne zmienne używają 418 bajtów z (5%) dynamicznej pamięci, pozostawiając 7 774 bajtów dla lokalnych zmiennch. Maksimum to  8 192 bajtów.


Pomimo ograniczeń interfejsu udało się wyciągnąć jeszcze kilka FPS więcej, także polecam innym przetestowanie tego.

Awatar użytkownika
balum
Posty: 8
Rejestracja: 01 maja 2016, 8:33
Lokalizacja: Warszawa
Kontaktowanie:

Re: OLED 1.3 SPI/I2C

Postautor: balum » 13 maja 2016, 19:18

Witam kolegów.
Ostatnio zmontowałem sobie małą drukareczkę biurkową. Jest to konstrukcja na bazie ramy Mark34 Jelweka jednak od nowa przeprojektowałem plastiki i wzmocniłem Z-etkę (chodziło o zwiększenie sztywności). Ze względu na wymiary potrzebowałem jakąś małą elektronikę do sterowania. Dlatego wybrałem jako wyświetlacz OLED 1.3 I2C i Arduino Mega Mini, oraz zaprojektowałem małe płytki pod stepstiki i tranzystory mocy. W środku siedzi Marlin. Nie zauważyłem żadnych przycinek podczas drukowania (z karty i z komputera). Jedyny mankament do dłuższe odświeżanie (przewijanie) listy plików jak jest ich więcej niż kilkanaście na karcie.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.


Wróć do „Elektronika”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości