User Tools

Site Tools


ssd1315

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ssd1315 [2019/04/25 13:33]
sausage
ssd1315 [2021/02/02 01:24]
Line 1: Line 1:
-====== SSD 1306 oLED Module for the Pi1541 ====== 
- 
-As mentioned in my [[pi1541|previous article]], while building the [[https://​cbm-pi1541.firebaseapp.com|Pi1541]],​ I had a lot of difficulty getting the oLED module to work. 
- 
-I blamed it on the fact I had accidentally purchased an SSD1315 instead of an SSD1306. 
- 
-I fiddled a lot with the [[https://​github.com/​pi1541/​Pi1541/​blob/​master/​options.txt|options.txt]] file and ensured I had the correct configuration soldered. But still, I got no display on my tiny oLED and had to resort to using the external monitor to select games. Not a very portable option. 
- 
-I was pleased when my new SSD1306 arrived yesterday and I was keen to try it out. 
- 
-This is the one I ordered: https://​www.aliexpress.com/​item/​32920071528.html 
- 
-I plugged it in: no screen. OK. 
- 
-Now here is something I didn't mention at the end of my last article: the fact that when I turn on the Pi1541, I do see the message: 
- 
-  I2C not found on Bus 1. 
- 
-That was something I didn't really go back to. So I took a closer look at [[https://​github.com/​pi1541/​Pi1541/​blob/​master/​options.txt|options.txt]]:​ 
- 
-<​code>​ 
-// If you are using a LCD screen then specify it here 
-//LCDName = ssd1306_128x64 
-//LCDName = ssd1306_128x32 
-//LCDName = sh1106_128x64 
-// If you are using a LCD screen and you would like PageUp and PageDown keys to work with it then specify this option 
-//​KeyboardBrowseLCDScreen = 1 
- 
-// If you are using I2C LCD you can optionally change what pins it is connected to. 
-// (defaults to 0 for non-split lines (Option A) or 1 for split lines (Option B)) 
-//​i2cBusMaster = 0 //SDA - pin 27 SCL - pin 28 
-//​i2cBusMaster = 1 //SDA - pin 3 SCL - pin 5 
-//​i2cLcdAddress = 60 // I2C display address in decimal and shifted. 60 == 0x78, 61 == 0x7A 
-//​i2cLcdFlip = 1 // Rotate i2c LCD screen 180 degrees 
-//​i2cLcdOnContrast = 127 // Allows you to adjust the contrast on your i2c LCD screen 
-//i2cScan = 1 // scan i2c bus and display addresses on screen 
-//​i2cLcdUseCBMChar = 0 // set it to 1 to use CBM font on LCD. Small but fun ! 
-</​code>​ 
- 
-The part that tripped me up was: 
- 
-  (defaults to 0 for non-split lines (Option A) or 1 for split lines (Option B)) 
-  ​ 
-That seemed to indicate that for an Option B Pi1541, the screen should be configured for Bus 1. I didn't know if this was the same "Bus 0" I configured earlier on the daughterboard or something local in the oLED module itself. 
- 
-Of course, as it mentions //​defaults//​ that means it's configurable either way. 
- 
-Essentially,​ for an Option B machine, I should be able to leave everything to default and it should work. But as I'd fiddled around so much previously, I went with the following to ensure the settings were explicit: 
- 
-<​code>​ 
-LCDName = ssd1306_128x64 
- 
-i2cBusMaster = 0  
-i2cScan = 1  
-</​code>​ 
- 
-Restarted the Pi1541. Guess what? It worked beautifully! The external screen no longer showed any output, and the oLED now took over and I could use it to select a D64 image. 
- 
-And the amusing part of the tale? I swapped out the SSD1306 with the SSD1315, restarted, and  it works too. So it was just me all the way along. 
- 
- 
-===== Conclusion ===== 
- 
-So there'​s a couple of good things to come out of this: 
- 
-  - If you built an Option B Pi1541 and chose the same Bus selection that I did (Bus 0), the above option.txt config items will work for you. 
-  - You can use an SSD1315 as a 100% compatible replacement for the SSD1306 (but still call it ssd1306_128x64 in your config). 
-  ​ 
-And I think I'll stick with the SSD1315. I prefer the blue/yellow colours rather than monochrome white. 
  
ssd1315.txt ยท Last modified: 2021/02/02 01:24 (external edit)