SPI/I2C OLED display


#1

Hi all,

recently I've stumbled upon these LINK dirt cheap, nice looking chinese OLED displays and my immediate thought was this:
Nice little screen to use without needing the Control, perhaps when using analog ins to control parameters of the Axoloti. There's a catch though: As a sound guy I have ZERO idea of the coding that would be necessary in order to accomplish this. Is it possible firmware-wise? How hard would it be to implement?

Cheers,
Matyas


Guide for screen connection?
Axoloti and ESP8266 simple communication example
Axoloti Control
Gate/Trig Output from Axoloti Pin outputs
Two layers Arpeggiator
Multiple pages of parameters for Axoctrl
#2

Hmm looks interesting think I'll buy some !


#3

I know this is old, but to answer this for others, who do want fancy stuff but dont know how much effort it takes :smile:

Its not a problem to code the PIS or I2C for "talking" to the Display, wheather it may be your OLEd or some electronic assembly or whatever, what is the problem, or rather the time consuming part, is the presentation of the diplay data.
You have to write routines for diplaying text, then lines, then maybe graphs and stuff like that, then you have to allign them in the right places on the display and then you have to do that in a very general form, since this was only one screen, and probably you want to show more different stuff in a menu kind of style... and that just takes a huge amount of time to program, it is not very difficult to do, but it is very time consuming.

To tell a bit more, normally the Displays have an controller onboard with which you have to communicate, therefore you have to read a big datasheet to get to know all the possibilities you have and commands you have to implement and so on.


#4

One easy solution could be to pair the Oled display with a Teensy 3 and use an existing graphics lib and then talk to the Teensy via Serial.


#5

I have few of these on the way. They look really cool.
I will report back as and when I have had the chance to have a play.


#6

I already have a teensy + display setup going, this sounds tempting :slight_smile:


#7

would be great one day to control axoloti patches the way like Futuresonus Parva


#8

yeah, definitely worth keeping an eye on the price of OLED displays.
the cheap ones are quite small still. (I guess same size as on minilogue?)

I will say the parva oled has come under some criticism, some say its too small to read (easily) , and others that its not bright enough. but still looks nice :slight_smile:

I do think, once the resolution increases (as it would for larger oled displays) it makes sense for the oled to also be controlled by a dedicated controller rather than axoloti directly, so makes sense to use something that already has software to drive it. then its just a matter of sending parameters/display data from axoloti.

... and of course, we shouldn't forget axoloti control is still 'in the works' :wink:


#9

Is it any estimations when Axoloti control prototype will be ready or it is still in a stage of concept?


#10

+1 for that. I'd love to know, too.

a|x


#11

... and me too; still highly interested in Axoloti control :wink:


#12

This is what I do. See the Mongiloti thread.

I use an Adafruit 128x64 1.3" OLED with the ssd1306 chipset. Previously I tried a SPI 1.3" from a random chinese mob and toasted it changing over to i2c (I needed my SPI pins for microsd). I talk to Axo over TX to RX using the Teensy midi library and Hugo's fixed serial patch. No extra components needed (resistors etc). Works great although I do have disconnect issues with Axo and the GUI while developing meaning a power cycle.


#13

I'm playing with a 0"96 128x64 OLED, it is really too small for my eyes, but i really like that they are quite bright whatever the angle of vision.
I have ordered a 1"3... irt would suit my eyes better.
I'm trying to control them directly (without teensy nor duinos) to display text and curves.
I think that by limiting the use cases (font size, alignment with SSD1306 pages) I can optimize the code and avoid to use a 1k buffer on the Axoloti...


#14

Here's an object for sending data directly to one of those oleds, courtesy of the Believotron project.


#15

Thanks @mongrol
I did not find a working axo object in the repository, just some C++ code based on the Adafruit library and empty script2 based objects :thinking: maybe, i wasn't looking at the right places.


Anyway, I have achieved to talk to the SSD1306 and fill its memory 'pages' with bytes.
As I plan to have limited use (text or bargraph or curve), i try to avoid using complete buffering.
I'd like to have a minimal memory and CPU footprint.


I implemented an old Sinclair ZX inspired font I made long ago, with optimised x2 scaling -> ~500 bytes
For my eyes, smaller characters are not practical (0"96 OLED)

I can display 4 lines of 11 characters.


#16

Hmm, I'm sure I found a proper object in there before but now I can't find it. :frowning:


#17

No problem, the SSD1306 is easier to use than i expected (well, that's partly because my characters are aligned on the "pages").
I'll share my little object when it will be decent.

For my personal use, I just need to display chord and note names (parameters for a chord oriented keyboard). With this direct control I won't have to add an Arduino...

At the moment, the object simply have 4 string inlets, one for each line.


#18

Got a 1"3 I2C 128x64 OLED display from Taiwan today.

At first, only the first 8 lines seemed to sort of work (blinked) while the rest of the display was random dots. I browsed the web and it seems that many 128x64 1"3 displays use an almost compatible circuit (SH1106 vs genuine SD1306).
I finally achieved to make it work with slight edits in my code... internet and tech forums are great resources when it comes to this kind of frustrating issues.

Even if it can seem a slight improvement on paper, going from 0.96" to 1.3" greatly improves the readability :smiley:


#19

I've found the 1.3" displays a lot harder to source than the 0.96" ones.
Maybe that's changed, since I last looked.

a|x


#20

I bought it on Amazon. I found some cheaper ones on AliExpress, but i did not dared to order those...


The 0.96" (16 yellow lines 48 blue lines) and the 1.3" (white) OLED displays with x2 font


It's quite difficult to avoid buffering when plotting functions or scope displays, but I got an idea, I'll give it a try...
[EDIT 12/12/17]

Seems to work (the scope curve is steppy because its input is a steppy "SixStepsBLISync oscillator).


I added a second 1"3 OLED display and changed its I2C address so that it can be used with the other one.

I made a "double" object that manages both devices in the same thread (using two separate object did not work).

I uploaded the objects in the tiar/HW library folder along with help patches even if they are in experimental stage.


Axoloti Control still in dev?