SSD1305 screen?

Hey all - completely new to the Arduboy, and I have a compatibility question. I recently got a 2.42in 128x64 OLED screen thinking that a 128x64 oled based display was all that was necessary for making an Arduboy clone, but it’s come to my attention that I may have picked up the wrong one from Adafruit. Is the SSD1305 based screen at all compatible with the 1306? Or am I just gonna have to take the hit with this one and cough it up for a 1306 or 1309?

Hi @Nateo87, welcome to the community! If you are willing to rewrite some arduino library code to adapt it for the SSD1305 you would probably be fine. You will find people on this forum who would be able to help you if you get stuck. But if not, you may need to think up a new project for this screen and buy one based on SSD1306. @Mr.Blinky probably knows lots about screens and controller chip compatibility.

1 Like

The SSD1305 is basically an SSD1309 with added features and is compatible with the SSD1306 However like the SSD1309 it does not support the charge pump command and may cause the picture not to be displayed correctly.

This is not a big problem as existing hex files can be patched using the uploader from the Arduboy Python utilities and with the Homemade package you can easily compile for SSD1309 by selecting the display type from the Arduino IDE

2 Likes

Wow, thank you! I just bought a 1309 specific display after some trepidation following the previous reply, but this is good news! It definitely will not hurt to have two good screens.

Can’t wait to get started with Arduboy!

@Mr.Blinky does that mean if a normal Arduboy game compiled for the SSD1306 is uploaded to a microcontroller and the microcontroller sends a charge pump command to an SSD1309 there are sometimes issues, but if the display boot etc functions in whatever Arduboy library has been used are amended, the 1309 is known to be reliable? I’m considering a 2.4" SSD1309 OLED as a replacement for my “not really tenable” LCD.


EDIT: Sadly it seems that the SSD1309 needs ~12V (7-16V) to drive the OLEDs. The OLED modules have the boost converter included (check for the inductor) but it might be a bit more than I’m prepared to add to a custom PCB unless someone knows of a foolproof boost circuit for 12V that is low part count and cheap to implement.

Back to the drawing board. Perhaps the SH1106 driving a 1.3" will have to do for now.


Another EDIT: seems like you can build a switching power supply for very little BoM cost using something like this switching IC and some $0.1 inductors, a couple of resistors and a couple of caps. But I think the SH1106 is a safer bet for now.

When an SSD1309 display receives the charge pump command it flips the left and right half of the display (left most pixel is displayed as 64th pixel and the pixels 64+ wrap over to the left starting at pixel 0)

The voltage determines the brightness of the display. The higher the brigher.

Yes they usually are made up of a booster chip, inductor and schotky diode and charging cap. With variable booster chips there are also a couple of resistors to determine the output voltage.

Advantage of using a boost converter is thay you can have avery bright display.

According to the spec sheet it only pulls 580uA when full-on at 12V

In theory you can throw out the 5 cents switching IC and use the MCU directly to pump a coil or two.
You got 20mA recommended maximum per pin (40mA absolute max).

But I’ve never tried it myself. I need to find some coils and play with that idea.

1 Like

I think that may be the controller chip current draw. The OLEDs’ current draw needs to be added to this and will depend on the size of the display and how many pixels are on.
I love the idea of muntzing the screen power supply but the switching is probably worth keeping as a hardware solution, rather than trying to incorporate in the microcontroller.

1 Like

You don’t need inductors for this. You can use just capacitors and diodes (or MOSFETs). However, @SimonMerrett is likely right that you may not have enough current, since it has to power the OLEDs.

1 Like

I like charge pumps but not for this kind of multiple, or whole-display current!

1 Like

I just tried hooking up my 1305 screen to my Sparkfun Pro Micro using the alternate wiring, and I’m not getting a picture. I used a buck converter to reduce the voltage of the screen to 3.3v and have a 4050 level shifter to convert the logic. I uploaded the code using the 1309 screen setting. Is there anything else I should make sure to do?

EDIT: Looks like I may not be supplying the OLED with enough base voltage? Should it be taking 12v?

EDIT AGAIN: I confused myself with regards to voltage - the SSD1305 module that I’m using is DEFINITELY 3v DC.

OK - I think I figured it out (in fact, I’m almost certain of it): on the back of the SSD1305-based screen there are a couple jumpers that need to be wired together for the desired mode (SPI, I2C, and 8-bit mode). My screen came with 8-bit mode by default, so it looks like I need to do some delicate surface mount soldering, something I have very little experience with. Wish me luck!

2 Likes

Good luck! SMT isn’t as hard as it sounds. Use flux.

2 Likes

Well, false alarm. I successfully soldered a jumper wore across the two necessary pads according to this tutorial (https://learn.adafruit.com/1-5-and-2-4-monochrome-128x64-oled-display-module/assembly) but had no luck at all. Still bupkis. Would anything else be wrong? Here’s a photo of my handiwork:

What did you do to test whether it had worked or not?

I have Picovaders loaded up to the Pro Micro, and I have all of the wires from the screen going through a level shifter to the Pro Micro. Power for the screen is coming from the Micro to a buck converter so it supplies the proper 3.3v, and then on to the screen. I get the feeling though that I’m not getting enough current to the screen this way?

EDIT: Also, the instructions were written to the Micro using the homemade Arduboy package, using 1309 settings.

Just tried wiring it to its own power supply, nothing. Checked the wiring to the Micro to make sure everything was ok, turns out that I accidentally confused the Data In and Reset wires. Did I fry my screen?