LCD and OLED displays: Hardware hacks - dwhinham/mt32-pi GitHub Wiki
This page contains a collection of hardware hacks you can carry out to get various off-the-shelf display/control HATs working with mt32-pi.
⚠️ Note: These modifications are user-submitted and NOT endorsed, NOT encouraged, and NOT tested by the project maintainers. Any hardware modifications are performed AT YOUR OWN RISK. These modifications are provided as-is and purely for educational purposes. If you break something, you get to keep the pieces!
Waveshare 1.3" OLED HAT
The Waveshare 1.3" OLED HAT offers a nice control interface and display that fits the footprint of a Raspberry Pi Zero. This HAT uses an SH1106 display. Unfortunately, it requires some hardware modifications to work with mt32-pi.
- First, move the 5 resistors to the I²C positions shown on the table printed on the back of the HAT. The DIN, CLK, DC, CS and BS1 resistors all need to be repositioned.
- You must also tie the reset pin high (VCC), otherwise the display will not work in I²C mode.
- Also, adding a pair of 4.7k pull up resistors will assure the functionality of the display flawlessly.
- To get the buttons to work, you will need to cut the traces and rewire them to the correct pins according to the control surface page. This is because the HAT's original pinout conflicts with the I²S signals used for audio.
Configuration file settings
[lcd]
type = sh1106_i2c
width = 128
height = 64
i2c_lcd_address = 3c
Waveshare 2.23" OLED HAT
The Waveshare 2.23" OLED HAT offers a large 128x32 OLED display that fits the footprint of a Raspberry Pi Zero. The display is an SSD1305 OLED, which can be used with the ssd1306_i2c
driver via the magic width
value of 132.
You must modify the resistor positions on the back of the HAT to switch it to I²C mode as shown below.
Configuration file settings
[lcd]
type = ssd1306_i2c
width = 132
height = 32
i2c_lcd_address = 3c