Go Down

Topic: [SOLVED] Using u8glib with East rising ER-OLEDM028/32 (SSD1322) (Read 6523 times) previous topic - next topic

VladLuzin

Hi Oliver!

I have a question regarding anti-aliasing support for draw(circle, line... etc).

Is there any option to turn on it? :) or it's impossible for now?

olikraus

Hi

I once started working on this, but it never went to the library itself.
Maybe this is usefull for you:

https://github.com/olikraus/u8glib/blob/master/sys/sdl/2bit/main.c

Oliver

penjoseph

Thanks to this thread, Oliver Kraus' inputs & u8glib graphics library I was able to enable an East Rising 256x64OLED model ER-OLEDM032-1G connected to Arduino Uno through the hardware SPI bus


Video link:
Arduino with Graphics 256x64 OLED

Slow Coach

penjoseph

To enable 4 line SPI the data sheet mentions -

1)0 resistor (jumper) connected on :
                                           R19 below marked BS1
                                           R21 below marked BS0

2)shorting to ground (-ve) pins  :
                                           7  DB3
                                           8  DB4
                                           9  DB5
                                          10  DB6
                                          11  DB7
                                          12  /RD
                                          13  /WR




While ordering the OLED, I asked the seller to solder the resistances - R19 & R21 for SPI 4 line mode prior to shipping.



Slow Coach

olikraus


dio300

Made a separate post before but Didn't realize there was already a similar thread going on.

I am trying to make a custom boost gauge using the 3.12" 256x64 SSD1322 display from New Haven using u8glib. The left half of the screen displays a static 128x64 bitmap, and the right half displays the PSI reading. Even while using Hardware SPI and a larger page height, the screen is not refreshing smooth enough for my liking.

The only three solutions I suppose are
1. First draw the the bitmap on the left side, then switch the column start address to the middle of the screen so now it only has half as many pixels to refresh. (not sure if this is possible?)
2. Same thing as above, but use two separate instances of u8g addressing each 128x64 halves of the display. (again, not sure if that's possible)
3. Run the display in parallel mode

Though to run in parallel mode would be the easiest solution, im having trouble figuring out how to run the display in parallel mode using u8glib. I tried setting the initial parameters as:


U8GLIB_NHD31OLED_2X_BW u8g(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, U8G_PIN_NONE,  U8G_PIN_NONE);



However it does not work. Just a blank screen.


Would greatly appreciate any help  :)

olikraus

Hi
I have never tested this display in parallel mode. It should however work and often this is a hardware issue and not a software problem: Did you use level shifters? Are the RD and Reset lines wired correctly?

Oliver

dio300

Hi
I have never tested this display in parallel mode. It should however work and often this is a hardware issue and not a software problem: Did you use level shifters? Are the RD and Reset lines wired correctly?

Oliver
No I am not using level shifters. My mistake, I keep forgetting this is not a 5v display :P .
I assumed the RW and Reset lines were not used? I tried running it with and without and still no luck.
The parameters using RW and Reset I wrote as

U8GLIB_NHD31OLED_BW u8g(2,3,4,5,6,7,8,9,10,11);

and still no luck. The names of the hardware pinouts don't seem to match up with the code. On the data sheet the pins for M68 Parallel are:
d0-d7, DC, RW, E,  Reset and CS.

But the code only lists:
d0-d7, CS, DI, RW, Reset.

olikraus

Hi

This is the constructure
    U8GLIB_NHD31OLED_BW(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
        uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE)

"cs" has to be connected with CS from the display

"di" (data/instruction) must be connected with the data/instruction/command line of the display (i guess this is DS). Unfortunately there is no common naming convention for this, so several names are there in the datasheets.

"rw" must be connected to "E" (6800 mode)

"reset" might be connected to the reset line of the display. If you do not connect the Arduino with the reset line, you still have to feed some usefull reset into the display (e.g. a signal from an RC network)

There is another line in the display, which must be connected correctly. If i remember correctly, this is the WR line from the 6800 mode. It must be connected to GND (not sure) so that the Arduino has write access. U8glib does not read from the display, so the hardware setup can be in such a way, that the software only has write access.

Oliver

SHMN


CromSC

Hi,

I'm really happy that you finally get Arduino to work with ER-OLEDM028/32 (SSD1322). Can some please share the code that you used to display a simple text or just one pixel?

Thank you.

olikraus

SSD1322 Oleds are supported by u8glib and u8g2 library. Both libs include example code for checking the display. With u8g2 you could use the constructor for the NHD display with the same controller.

Oliver

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy