SPI/I2C OLED display


#181

Any ideas how to get this to work?


#182

probably remove the resistor at the spi location and bridge the connection at the iic location...


#183

I actually tried it. I also same time added the bridge between R8.

How to wire? I wired like this:

GND: power ground --> GND
VCC: --> VDD
D0: CLK clock (sdk/scl k) --> PB8
D1: MOSI data (sda) --> PB9
RST: reset --> VDD
DC: data/command --> GND
CS: chip select signal --> GND

But the screen stays black.


#184

Okay, I got it work now, this is pretty cool!!


#185

What did you do to get it going?


#186

I just removed all the wiring from breadboard and wired it again. Then it worked


#187

The SSD1309 is compatible with the SSD1306.

This 2"42 OLED needs to be modified for I2C : remove a resistor, add three straps, connect the DC pin to zero for @0x3C or 3v3 for @0x3D...

The RES (reset) pin is more tricky and i had to experiment quite a lot before having something on the screen. :face_with_raised_eyebrow:

At the moment i use a little RC circuit so that the OLED display resets automatically on power up... but i think it needs some more experimentation to say if it is reliable enough. (without this RC the OLED does not work)

   VDD
     |
    | | 10k
     |
     +----------+-------->Res pin
     |          |
   ----- 68nF  | | 100k
   -----        |
     |          |
    GND        GND

Here are a 2.42" a 0.96" and a 1.3" displays.


What should a standard metal enclosure look like?
#188

You're the best, got some ssh 1106 on the way but will also order some ssd1309 now!


#189

I'm working on an object that will allow to display 8 lines of 21 characters...

Work in progress...


#190

Is it possible to have a oled screen working with knobs so that when knob is turned the screen shows the value and string for the knob automatically, so it wouldn't need to have any buttons pushed. And after like 15sec when no knob is touched oled would show scope.


#191

You can do that in the patch with objects -- knob turn to send a trig to the object to switch to that string and then a timer to switch back to "main" string page display.

I'm away from the patcher, sorry I don't have any more detailed object names :sweat_smile:


#192

Thanks alot! I knew there was a way :slight_smile:


#193

You can also have a look at the "remind4" objects.


#194

Hey just a quick question about these connections. Did you just solder wires onto the Axocontrol board pins that were already soldered or are you running you wires from the axoloti pins underneath?


#195

Can I show midi clock pulse on Oled somehow? Maybe just a blinking pixel on corner or something :slight_smile:


#196

just use the period "." for example. i did something like this. you will need a string mux, one input with an empty string, the other with the period. connect the midiclock output to the mux in via a pulselength object, so you can adjust how long the point is lit. i also made some concatenate objects for strings, so you can still display other things on that line.

as a sidenote, it will be more precise and easier to just have a tempo LED....


#197

Anyone have any more precise tips how to do this:

"Is it possible to have a oled screen working with knobs so that when knob is turned the screen shows the value and string for the knob automatically, so it wouldn't need to have any buttons pushed. And after like 15sec when no knob is touched oled would show scope."

"You can do that in the patch with objects -- knob turn to send a trig to the object to switch to that string and then a timer to switch back to "main" string page display."


#198

check out the reminder object from @SmashedTransistors


#199

Hey i know i had this working before but i am currently egtting these errors on compiling in a very empty project... any idea @SmashedTransistors?

! /Users/blndr/Documents/axoloti/build/xpatch.h.gch
. /Users/blndr/Documents/axoloti/axoloti-contrib/objects/tiar/HW/tiar_font5x8.h
/Users/blndr/Documents/axoloti/build/xpatch.cpp: In member function 'void rootc::instanceOLED128x64__1::calcScopePage(int, uint8t*)':
/Users/blndr/Documents/axoloti/build/xpatch.cpp:340:27: error: 'class rootc' has no member named 'instance_i'
uint16_t y = ((parent->instance_i.t[i]+64)*3 )/8;
^
/Users/blndr/Documents/axoloti/build/xpatch.cpp: In member function 'void rootc::instanceOLED128x64__1::sendTextPage(int)':
/Users/blndr/Documents/axoloti/build/xpatch.cpp:388:21: error: 'class rootc' has no member named 'instance_i'
tY[i]=((parent->instance_i.t[i]+64)*3 )>>3;
^
make: *** [/Users/blndr/Documents/axoloti/build/xpatch.bin] Error 1
shell task failed, exit value: 2
Compiling patch failed ( untitled )

edit: nevermind. apparently this was because i had no tiar scope present in the project.
all working fine as expected from one of the GOATs, @SmashedTransistors


#200

Hey @SmashedTransistors what do you think is a maximum realistic amount of OLED on one I2C line? i have some that can jumper-select adresses 0x3c/0x3d and some with 0x78/0x7a, if i change the aderesses in your object these should work right? or would this even work with one of these i2c expanders/multiplexers?

also does anybody have experience with adding several SPI devices? can i just use other GPIO digital pins as additional CS/SS pins for the same MOSI/MISO/SCLK?