New Adafruit generic OLED display driver for Raspberry PI
- 
 That's an interesting point, I did not tried on a PI V2, I have one at home, I need to test just in case, because the driver relies on old BCM2835 library that may be I need to update for PI V2, worth checking. Good to know it works with I2C but I understand you prefer SPI, for sure it's so much faster. 
- 
 Hi, Charles. Any progress with testing the library on a PI v2? Is the BCM2836 extremely different than the BCM2835? 
- 
 Thank you for the detailed blog post. I followed your instructions and got 2 problems : - there is no libi2c available, the only thing similar I've found is libi2c-dev so I installed that;
- I got error messages while trying to "sudo make" within the example folder, here is a photo showing the result.
 http://i.imgur.com/MkWvXbC.jpg
 Btw I am on a Pi B V2. One strange thing is that when I ran "sudo i2cdetect -y 1" there is nothing on the table. But while I tried to use Adafruit_SSD1306 library, the oled would respond (weirdly). Thanks 
- 
 the i2c smbus_ is a know problem you just need to intall again lm-sensors package (even if correctly installed) then all shoud go fine. Something obvious I’d like to understand, but it seems to work. look below how I resolved it. root@pi03:~/github/ArduiPi_SSD1306/examples# make g++ -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -Wall -lssd1306 ssd1306_demo.cpp -o ssd1306_demo /usr/local/lib/libssd1306.so: undefined reference to `i2c_smbus_write_i2c_block_data' /usr/local/lib/libssd1306.so: undefined reference to `i2c_smbus_write_byte_data' /usr/local/lib/libssd1306.so: undefined reference to `i2c_smbus_write_word_data' collect2: ld returned 1 exit status make: *** [ssd1306_demo] Error 1 root@pi03:~/github/ArduiPi_SSD1306/examples# dpkg --get-selections | grep i2c i2c-tools install libi2c-dev install root@pi03:~/github/ArduiPi_SSD1306/examples# dpkg --get-selections | grep lm lm-sensors install root@pi03:~/github/ArduiPi_SSD1306/examples# apt-get install lm-sensors Reading package lists... Done Building dependency tree Reading state information... Done lm-sensors is already the newest version. The following packages were automatically installed and are no longer required: libblas3gf liblapack3gf Use 'apt-get autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 14 not upgraded. root@pi03:~/github/ArduiPi_SSD1306/examples# make clean rm -rf ssd1306_demo teleinfo-oled root@pi03:~/github/ArduiPi_SSD1306/examples# cd .. root@pi03:~/github/ArduiPi_SSD1306# make clean rm -rf *.o libssd1306.* /usr/local/lib/libssd1306.* root@pi03:~/github/ArduiPi_SSD1306# make g++ -Wall -fPIC -fno-rtti -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -c Adafruit_SSD1306.cpp ./ArduiPi_SSD1306.h:51:21: warning: ‘oled_type_str’ defined but not used [-Wunused-variable] g++ -Wall -fPIC -fno-rtti -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -c Adafruit_GFX.cpp ./ArduiPi_SSD1306.h:51:21: warning: ‘oled_type_str’ defined but not used [-Wunused-variable] gcc -Wall -fPIC -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -c bcm2835.c g++ -shared -Wl,-soname,libssd1306.so.1 -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -o libssd1306.so.1.0 Adafruit_SSD1306.o Adafruit_GFX.o bcm2835.o [Install Library] [Install Headers] root@pi03:~/github/ArduiPi_SSD1306# cd examples/ root@pi03:~/github/ArduiPi_SSD1306/examples# make g++ -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -Wall -lssd1306 ssd1306_demo.cpp -o ssd1306_demo g++ -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -Wall -lssd1306 teleinfo-oled.cpp -o teleinfo-oled root@pi03:~/github/ArduiPi_SSD1306/examples#For the i2cbus detection, nothing to do with my lib, i2cdetect is a tool distribued with your linux distro. So to be sure I've just gone on my PI V2 to test root@pi01(rw):~/ArduiPi_OLED/examples# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --root@pi01(rw):~/ArduiPi_OLED/examples# ./oled_demo -o 3 x: 9y: 0dy: 3 x: 30y: 0dy: 2 x: 111y: 0dy: 2 x: 81y: 0dy: 4 x: 41y: 0dy: 2 x: 85y: 0dy: 5So @Mr_Tom yes it works on Pi V2 (at least in I2C mode) but should be the same for SPI; look below  
- 
 I've got the lm-sensors module in there, and the make on examples worked. But only still I can't get my Pi to recognize my oled screen, and I have another device on the i2c bus which works perfectly. 
 I just ordered another oled (a seeed 96*96) to see if that would work.Thank you for your detailed reply! 
- 
 Meng, Even if Seeed OLED will be seen, it won't work because it"s another driver in it (SSD1308) and I didn't port this one in the example code, something I wanted to do but never had time do do it. By the way Seeed OLED 96x96 is the best OLED I ever saw, excellent display and gray level. 
- 
 Meng 
 did you tried your non working OLED on an Arduino with I2CScan sketch just to see ?
- 
 Hi, Charles, I've tested my oled with I2CScan, and it wasn't detected... maybe a broken one. And I have another oled screen here which can be detected on Arduino, but not on Pi. Here is a library by Seeed themselves : https://github.com/DexterInd/GrovePi/tree/master/Software/Python/grove_oled 
 I'll see if that would work once the oled screen arrives. Happy to know that it looks amazing.
- 
 Meng, 
 yeah Seeed library works fine on Arduino, but not sure there is a port on Raspberry Pi
- 
 This 96*96 oled screen is detected by my Pi and it is working with Seeed's own library, and it would also put out stuff while running your oled_demo. Does your library has a manual? It doesn't looks like python when I peek into your library files... Sorry I am quite a beginner. Thank you. I use my Pi to generate sound, and if I do oled operations within the same piece of .py file that does sound, any oled writing operations would block the sound. But if I open 2 terminal instances (I am using SSH), and run sound code on one, oled code on another, it wouldn't block the sound. So it is certainly not a CPU speed issue... Why does this happen? And if I make my Pi running some python code at boot, how I can make the codes running like within multiple terminals? Thank you! 
- 
 I also try to run it on RPi2 with an SPI OLED 128x64 and ran into the same problem. The program freezes in display.begin(). What can be wrong? 
- 
 Hi gbona, 
 Did you checked that your I2C oled is visible with i2cdetect ? If so does his I2C address is 0x3C ?
- 
 Hi Charles. I am trying to use your library to drive a 128x64 SPI OLED display I got from the internet. It is advertised as being SSD1106 (which I assume means SH1106). I have hacked the CS detect line of your code to force it to use SPI instead of the default I2C (this display has no CS pin). I am getting something on the display, but quite garbled. Here is a video of it running your OLED_demo. https://youtu.be/bETtabNliYc Are these symptoms familiar to you. Any ideas of what might need tweaking. Many thanks Graham 
- 
 @boik, 
 Strange, first time I see SPI oled without CS line, would you mind post a picture of the back ?You're right I forgot to add SPI option for SH1106 in oled_demo. 
- 
 Hi Charles, [IMG]http://i68.tinypic.com/6zwsjl.jpg[/IMG] Heres a pic of it running the circle, square, triangle cross demo. Just displays the bottom 8 lines of the image but at the top of the OLED. [IMG]http://i64.tinypic.com/2mhbn7k.jpg[/IMG] Not sure if this forum accepts IMG tags? Graham 
- 
 Hello Charles I got a freebox server out of ordre. There is a ssd1327 screen on it. If i send you the pcb pictures can you help me to find the good pin to plug it to my PI ? 
- 
 @Deennoo 
 you can post the picture on the forum, may be some other will know, because I'm not sure I will.
- 
 Hi, did you succeed getting the freebox server Oled Display work with a raspberry or Arduino? Did you find any wiring schema, or source code. I would like to reuse the whole SSD1327 and CAP1066 pad of the freebox. Regards 
- 
 I followed your procedures and up to the part of : git clone https://github.com/hallard/ArduiPi_OLED and received the following error message and can't go further : fatal: could not create work tree dir 'ArduiPi_OLED'.: No space left on device I am using a 8GB SD card and I think I have enough space - don't I ? I then issued df -Bm command to check space with following : Filesystem 1M-blocks Used Available Use% Mounted on 
 /dev/root 4196M 4087M 0M 100% /
 devtmpfs 483M 0M 483M 0% /dev
 tmpfs 487M 0M 487M 0% /dev/shm
 tmpfs 487M 7M 481M 2% /run
 tmpfs 5M 1M 5M 1% /run/lock
 tmpfs 487M 0M 487M 0% /sys/fs/cgroup
 /dev/mmcblk0p6 63M 20M 44M 31% /boot
 tmpfs 98M 0M 98M 0% /run/user/1000Am I running out of memory or what, please advise - thanks 
- 
 I forget to mention that in my SD card - I also have installed a media player OS (OpenElec) in addition to the Raspian OS 

