Closed GoogleCodeExporter closed 9 years ago
This is great news. There will probably be one small tweak required before it
works with the OLED128 module, because on that module we enable/disable the
higher voltage power for the OLED (a 15V boost converter power supply is
onboard the OLED128) by toggling GPIO0 on the SSD1351 itself (it has two GPIOs
built in.)
Original comment by rainw...@gmail.com
on 3 Sep 2013 at 9:21
Just added some text, i am using a freetonics OLED128 module which has a PSU
added on that requires that GPIO to be enabled. That may be the reason why its
very dark.
Original comment by rainw...@gmail.com
on 3 Sep 2013 at 9:23
what exactly has to be done to solve your problem?
Is there some additional init sequence needed?
Is there a link to this OLED module available?
Original comment by olikr...@gmail.com
on 3 Sep 2013 at 11:23
I assume this is the oled:
http://www.freetronics.com/products/128x128-pixel-oled-module#.UieSnMWLe1F
Discussion is here:
http://forum.freetronics.com/viewtopic.php?t=5477&p=10695
Still the question is: What are the required controller commands.
Original comment by olikr...@gmail.com
on 4 Sep 2013 at 8:07
The required commands look like simply turning on the first GPIO output.
void OLED::setDisplayOn(bool on)
{
// GPIO0 drives OLED_VCC, driving it high turns on the boost converter
// module, driving it low turns it off.
if(on) {
setGPIO0(OLED_HIGH);
delay(100);
}
assertCS();
writeCommand(on ? 0xAF : 0xAE);
releaseCS();
if(!on) {
setGPIO0(OLED_LOW);
delay(100);
}
}
and here is the GPIO segment
void OLED::setGPIO0(OLED_GPIO_Mode gpio0)
{
assertCS();
gpio_status = (gpio_status & ~0x03) | (uint8_t)gpio0;
writeCommand(0xB5, gpio_status);
releaseCS();
}
Original comment by rainw...@gmail.com
on 4 Sep 2013 at 11:41
thanks
Original comment by olikr...@gmail.com
on 5 Sep 2013 at 5:10
from the datasheet:
A[1:0]
GPIO0: 00 pin HiZ, Input disabled
01 pin HiZ, Input enabled
10 pin output LOW [reset]
11 pin output HIGH
--> 0xB5 0x03 (GPIO0 output high, GPIO1 input HiZ)
Original comment by olikr...@gmail.com
on 5 Sep 2013 at 5:35
from u8g_dev_ssd1351_128x128.c:
U8G_ESC_ADR(0), /* instruction mode */
0xb5,
U8G_ESC_ADR(1),
0x00, /* Set GPIO */
This could be changed to:
U8G_ESC_ADR(0), /* instruction mode */
0xb5,
U8G_ESC_ADR(1),
0x03, /* Set GPIO */
--> wrote e-mail
Option are:
- update the existing device
- create a new u8glib device for the freetronics OLED
Original comment by olikr...@gmail.com
on 5 Sep 2013 at 5:45
Original comment by olikr...@gmail.com
on 5 Sep 2013 at 5:46
maybe also update the sleep mode (--> new u8glib device for freetronics display)
Original comment by olikr...@gmail.com
on 5 Sep 2013 at 5:47
Make it a define perhaps?
You dont want to have to have all those new classes just because of one GPIO
Maybe even just a "FreeTronics_OLED(On)"
Thanks for looking at this
Oleds are pretty crazy. Contrast ratio!!!!!!!
If i can get line drawing down fast they would make an amazing mini CRO.
Original comment by rainw...@gmail.com
on 6 Sep 2013 at 10:59
takeover new devices to u8g.h and U8glib.h
u8g_dev_t u8g_dev_ssd1351_128x128gh_332_sw_spi
u8g_dev_t u8g_dev_ssd1351_128x128gh_332_hw_spi
u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_sw_spi
u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_hw_spi
u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_sw_spi
u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_hw_spi
u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_sw_spi
u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_hw_spi
Original comment by olikr...@gmail.com
on 3 Oct 2013 at 3:31
done, verfied as far as possible
Original comment by olikr...@gmail.com
on 3 Oct 2013 at 6:15
Original issue reported on code.google.com by
rainw...@gmail.com
on 3 Sep 2013 at 5:07