Download free music MP3s on genuine quality, the world’s largest online music catalogue, powered by your scrobbles. Free listening, videos, photos, The world’s largest online music catalogue, powered by your scrobbles. Free listening, videos, photos, stats, charts, biographies and concerts. stats, charts, biographies and concerts.
Sunday, March 2, 2025
Almost “All in one” MiniDexed IO Options
As I was browsing around I happened to notice a couple of interesting add-on boards that comprise a OLED display, rotary encoder and some buttons. With the addition of a I2S DAC (or just using the existing PWM output) these make a really interesting …
As I was browsing around I happened to notice a couple of interesting add-on boards that comprise a OLED display, rotary encoder and some buttons.
With the addition of a I2S DAC (or just using the existing PWM output) these make a really interesting option for MiniDexed IO.
Warning! I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments!
If you are new to microcontrollers and single board computers, see the Getting Started pages.
The Displays
There are lots of cheap display boards out there. These are the boards I've been looking at:
Which are called some variation of the following:
"0.96 inch OLED IIC 12864 OLED Display with 4x4 key I2C SSD1315 LCD Screen".
"1.3 inch OLED display screen with EC11 rotary encoder module IIC".
"0.96 inch OLED display screen with EC11 rotary encoder module IIC".
These particular ones have the following display parameters
SH1106 (1.3"), SSD1306 (0.96"), and SSD1315 (0.96" with buttons).
1.3" Encoder Display
0.96" Encoder display
0.96" button display
SH1106
SSD1306
SSD1315
128x64
128x64
128x64
2 Buttons
2 Buttons
4 Buttons
Switched Rotary Encoder
Switched Rotary Encoder
SSD1306 is directly supported by MiniDexed, but the other two are not. But it turns out that the SSD1315 display works fine as a SSD1306 and all three have the same I2C addressing scheme - 0x3C is the default.
The SH1106 based display however will need some updates to the core operating environment used by MiniDexed before it can be used, so for now that one can't be used.
0.96" Encoder Display
The following wiring and configuration should allow the use of this display with MiniDexed.
Raspberry Pi GPIO Connections
Display VCC
3V3
5V
Display SDA
GPIO 2 SDA
5V
DAC VIN
Display SCL
GPIO 3 SCL
GND
Display GND
GPIO 4
GPIO 14 TXD
GND
GPIO 15 RXD
Opt: MIDI IN
GPIO 17
GPIO 18 PCM CLK
DAC BCK
GPIO 27
GND
GPIO 22
GPIO 23
3V3
GPIO 24
Display TRB
GPIO 10
GND
Display TRA
GPIO 9
GPIO 25
Display PSH
GPIO 11
GPIO 8
GND
GPIO 7
ID_SD
ID_SC
Display BAK
GPIO 5
GND
Display CON
GPIO 6
GPIO 12
GPIO 13
GND
DAC SCK / GND
DAC LRCK
GPIO 19 PCM FS
GPIO 16
GPIO 26
GPIO 20
DAC GND
GND
GPIO 21 PCM DOUT
DAC DATA
Note: I ended up swapping TRA/TRB over (which can be done either in the wiring or in the definitions in minidexed.ini) to make the encoder operate in the direction I wanted.
I've also chosen to wire the "CONFIRM" button as a HOME button, but this could be used for SELECT if required. I'm using the encoders switch for SELECT.
The display board doesn't include any audio so a I2S DAC is highly recommended, which has to be connected separately. It is also possible to connect up a MIDI IN circuit to GPIO 15 (RXD) if required.
It is possible to leave SSD1306LCDHeight=32 and then the display is double-height, but it is also a little grainy, so I prefer just to use half the display with a "fuller" text myself.
0.96" Button Display
Here is how to use this display with MiniDexed.
Raspberry Pi GPIO Connections
Display VCC
3V3
5V
Display SDA
GPIO 2 SDA
5V
DAC VIN
Display SCL
GPIO 3 SCL
GND
Display GND
GPIO 4
GPIO 14 TXD
GND
GPIO 15 RXD
Opt: MIDI IN
GPIO 17
GPIO 18 PCM CLK
DAC BCK
GPIO 27
GND
GPIO 22
GPIO 23
3V3
GPIO 24
Display K1
GPIO 10
GND
Display K2
GPIO 9
GPIO 25
Display K3
GPIO 11
GPIO 8
GND
GPIO 7
ID_SD
ID_SC
Display K4
GPIO 5
GND
GPIO 6
GPIO 12
GPIO 13
GND
DAC SCK / GND
DAC LRCK
GPIO 19 PCM FS
GPIO 16
GPIO 26
GPIO 20
DAC GND
GND
GPIO 21 PCM DOUT
DAC DATA
As there are only four buttons, I'm mapping them to Next, Prev, Select and Back.
The rotary encoder is on by default, so needs turning off.
Closing Thoughts
I was hoping to be able to get all three up and running, but although the third display is recognised and can be poked to some degree, at the moment it is just showing a garbled output. I suspect it will need some alternative mappings or something.
It was nice to see that the ssd1315 just worked as is.
I notice that MT32-Pi has support for SH1106 and it seems like a relatively thin layer on top of the core SSD1306 support, so I'll take a look and see if I can get this into circle in a useful way. It would certainly be nice to be able to add support for more displays in MiniDexed.
No comments:
Post a Comment