Page 1 of 1
No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 6:32 am
by Idelacio
Just receieved my MT32-Pi and trying to get it up and running. I've tried a few options but no matter what I do I can get sound everytime but cannot get the display to show ANYTHING. OSD via MiSTer OS does show the boot process going through when the MT32-Pi is switched on but never shows anything on the latters own display.
I am using the following MT32-Pi connected with the included USB cable (yellow lcd)-
https://misterfpga.co.uk/product/mister ... -hat-v2-1/
Using a MiSTer setup with the following digital IO board, SDRAM (x2), USB board and power supply-
https://misterfpga.co.uk/product/mister ... -with-fan/
https://misterfpga.co.uk/product/mister ... mb-module/
https://misterfpga.co.uk/product/mister ... er-supply/
https://misterfpga.co.uk/product/usb-hu ... ster-fpga/
Power is plugged in through the IO board with USB board power cable plugged into DE10 Nano.
IO switches set to up/down/down/down for digital configuration per requirement.
Only the 3 Fan 3V pin jumper has been set from default 5V, nother else has been touched.
Sound is output via TOSLINK and video over HDMI.
I have tested with a Pi3 B+ and a Pi4, both powered via the MT32-Pi hat alone and MT32-Pi hat plus USB Power.
Cable has been plugged in from the MT32 hat itself to teh User IO port on the IO board, not the USB sockets.
Software versions used-
Mister v220723
OS v220413
MT32-Pi v0.12.1
Also tested with v0.10.0
I have tried different SD cards, all formatted to FAT32. (curiously the 128MB one doesn't work at all for this but all the larger ones do tested up to 8GB do)
The following options in the cfg file have been set:
Code: Select all
[audio]
output_device = i2s
[control]
# Required for physical buttons
scheme = simple_buttons
# Required for OSD controls
mister = on
[lcd]
# Required for OSD "LCD-On" and "LCD-Auto" modes even if you don't have a real OLED display connected
type = ssd1306_i2c
# You can use either 32 or 64 pixel height
height = 64
I've watched multiple videos for this device and I've done everything everyone else has done yet nothing seems to bring that screen to life.
Again I'm getting sound completely fine without issues and the buttons on the hat are adjusting settings as heard via sound and seen via the OSD.
Am I missing something obvious here?
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 9:04 am
by Malor
You might have the display type wrong, maybe? When I first set mine up, I entirely missed the section on legacypixel's website with a working MT32Pi config for their hardware. The default MT32Pi config file had good comments in it that suggested the right device to use. I can't easily check what I used, because my Pi has no network connection set up, but it should be relatively straightforward.
Oh, I just remembered I documented the changes I made in an email. These are the settings I used, with LegacyPixel's choice of display:
Code: Select all
type = sh1106_i2c
width = 128
height = 64
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 10:40 am
by Idelacio
Worth a shot, I'll give it a go when I get home. Width and height would be unchanged so just the lcd.
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 4:05 pm
by Idelacio
Nope, does absolutely nothing.
In fact the OSD goes awry on that setting making me suspect I had it set right originally as that's what the system thinks should be there? Tried a few other settings with the height but no dice.
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 4:07 pm
by Malor
Probably best to contact your seller and ask what the proper settings are, then. It all depends on what display they chose.
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 4:40 pm
by MorkMikael
this on works for me got it from misterfpga.co.uk
so unless they changed parts since i got mine this config should work for you.
Code: Select all
# ________ _______ __
# __ /_____ `. /____ `. /__`
# ____ ____ __/ /____ _______) / ______) / ____ ______ __
# / __ v __ `./__ _____//_____ < / _____. /____// ___ `. / /
# / / / / / / / /____ _______) // /______ / /____/ // .__
# /__/ /__/ /__/ \______//_________. /_________/ / ______. \____/
# /////////////////////////////////////////////////////// / / //// /// // /
# ```
# mt32-pi.cfg: mt32-pi configuration file.
# Default options are marked with an asterisk (*).
# -----------------------------------------------------------------------------
# System options
# -----------------------------------------------------------------------------
[system]
# Enable or disable verbose startup and error output.
#
# When enabled, outputs more information to the LCD when starting up, and when
# MIDI/UART errors are detected.
#
# This also may hide the boot logo on smaller graphical displays.
#
# Values: on, off*
verbose = on
# Set the default synthesizer to be made active on startup.
#
# If the default synthesizer is unavailable (e.g. missing ROMs or SoundFonts),
# the first working synth is made active.
#
# Values: mt32*, soundfont
#
# mt32: Use mt32emu (Munt) for Roland MT-32 emulation
# soundfont: Use FluidSynth for SoundFont synthesis
default_synth = mt32
# Enable or disable support for USB devices.
#
# Disable this to speed up boot time if you are not using any USB devices.
#
# Values: on*, off
usb = on
# Set the I2C baud rate/clock speed for all peripherals (Hz).
#
# Most peripherals will work fine at the default speed (400KHz "fast mode"),
# but larger LCD/OLED displays (e.g. 4-line I2C HD44780 and 64 pixel high
# SSD1306) won't be able to refresh at 60FPS at the default setting.
#
# Try increasing this value to 1000000 (1MHz) for a smoother LCD refresh rate.
# If your display doesn't work, try backing off the speed 100KHz at a time
# until it does.
#
# Values: 100000-1000000 (400000*)
i2c_baud_rate = 400000
# Set the timeout for power saving mode (seconds).
#
# After the specified number of seconds of silence, the CPU clock speed will be
# reduced, the audio device will be stopped, and and the LCD's backlight will
# be turned off to save energy (certain I2C displays only).
#
# Any MIDI activity will instantly bring the system out of power saving mode.
#
# If set to 0, power saving mode is disabled.
#
# Values: 0-3600 (300*)
power_save_timeout = 300
# -----------------------------------------------------------------------------
# MIDI options
# -----------------------------------------------------------------------------
[midi]
# Set the baud rate used for GPIO MIDI.
#
# For connecting to standard MIDI devices (i.e. via DIN cable), this should be
# left at the default rate of 31250.
#
# For connecting to PCs, set this to match the baud rate of the other host.
# SoftMPU's serial MIDI mode, for example, uses a baud rate of 38400.
#
# Values: 300-4000000 (31250*)
gpio_baud_rate = 31250
# Enable or disable software "MIDI thru" on the GPIO Tx pin.
#
# When enabled, all data received via the GPIO Rx pin will be re-transmitted
# verbatim on the Tx pin. This may be useful for debugging or for passing MIDI
# data through to another synth.
#
# Values: on, off*
gpio_thru = off
# Set the baud rate used for USB serial MIDI.
#
# The same considerations from the gpio_baud_rate setting above apply here.
# The default value is a PC baud rate and matches SoftMPU's serial MIDI mode.
#
# The range of valid baud rates may vary depending on the chipset of your USB
# serial device, so the range of values suggested below may actually be greater.
#
# Values: 9600-115200 (38400*)
usb_serial_baud_rate = 38400
# -----------------------------------------------------------------------------
# Audio options
# -----------------------------------------------------------------------------
[audio]
# Select audio output device.
#
# Values: pwm*, i2s
#
# pwm: Use the headphone jack
# hdmi: Use the HDMI port
# i2s: Use an I2S DAC
output_device = i2s
# Sample rate of audio output (Hz).
#
# mt32emu uses an internal sample rate of 32000Hz (just like the real hardware)
# which is then resampled to this value.
#
# FluidSynth renders at this sample rate directly.
#
# Values: 32000-192000 (48000*)
sample_rate = 48000
# Set audio rendering chunk size (samples).
#
# A single stereo frame of audio has two samples, and so this value is double
# the number of frames per chunk.
# The smaller the chunk size, the lower the latency, but too low a value will
# cause underruns (distortion artifacts).
#
# Latency is a function of chunk size and sample rate, for example:
# 256 samples / 2 channels / 48000Hz * 1000ms = 2.67ms of latency.
# See documentation for recommended values for various Raspberry Pi models.
#
# The minimum value varies depending on audio output device.
# For PWM, the minimum is 2, for I2S the minimum is 32.
# For HDMI, the minimum is 384, and will be rounded to the nearest multiple of
# 384.
#
# Values: 2-2048 (256*)
chunk_size = 256
# -----------------------------------------------------------------------------
# Control options
# -----------------------------------------------------------------------------
i2c_dac_address = 4c
i2c_dac_init = none
[control]
# Set the physical control scheme.
#
# See documentation for GPIO pinouts/wiring details.
#
# Values: none*, simple_buttons, simple_encoder
#
# none: No physical controls
# simple_buttons: Simple 4-button scheme
# simple_encoder: Simple 2-button + rotary encoder scheme
scheme = simple_buttons
# Set the rotary encoder type (if used by control scheme).
#
# Different rotary encoders may complete different fractions of a Gray-code
# cycle per detent ("click").
#
# If four clicks are needed for a single movement, try "quarter".
# If two clicks are needed for a single movement, try "half".
#
# Values: quarter, half, full*
encoder_type = full
# Reverse the rotary encoder direction (if used by control scheme).
#
# Some rotary encoders may have their CLK/DAT signals swapped, resulting in
# a reversed rotation direction.
#
# Use this option to correct the direction.
#
# Values: on, off*
encoder_reversed = off
# Enable or disable the I2C MiSTer control interface.
#
# If using mt32-pi with a MiSTer FPGA system and custom hardware to interface
# with MiSTer's User Port, enable this option to allow controlling mt32-pi via
# the MiSTer's on-screen display.
#
# Values: on, off*
mister = on
# Set the timeout for switching SoundFonts (seconds).
#
# When switching SoundFonts using the physical button, there is a short delay
# before loading begins. This option allows you to set the number of seconds to
# wait before loading.
#
# Values: 0-3600 (3*)
switch_timeout = 4
# -----------------------------------------------------------------------------
# MT-32 emulator options
# -----------------------------------------------------------------------------
[mt32emu]
# Set gain factor applied to synthesizer output channels.
#
# This is independent of the master volume that can be set via MIDI SysEx or
# the volume knob.
#
# Values: 0.0-256.0 (1.0*)
gain = 1.0
# Set gain factor applied to reverb wet output channels.
#
# Values: 0.0-infinity (1.0*)
reverb_gain = 1.0
# Select quality level for the resampler.
#
# If set to none, audio output will sound wrong unless you set the sample rate
# option to 32000Hz, which is the MT-32's native sample rate.
#
# Values: none, fastest, fast, good*, best
resampler_quality = good
# Select initial MIDI channel assignment.
#
# The MT-32 uses an unusual MIDI channel assignment by default. On a real MT-32
# this is set using a button combination. Use this option to change the initial
# channel assignment on startup.
#
# Values: standard*, alternate
#
# standard: Parts 1-8 = MIDI channels 2-9, Rhythm part = MIDI channel 10
# alternate: Parts 1-8 = MIDI channels 1-8, Rhythm part = MIDI channel 10
midi_channels = standard
# Select initial ROM set to use.
#
# If multiple ROM sets are available, this option determines which set to use
# on startup. If the ROM set specified here is unavailable, the first available
# set is used instead.
#
# Values: old*, new, cm32l
rom_set = old
# Set whether the stereo channels should be swapped or not.
#
# The MT-32 interprets values for MIDI CC#10 (panpot) differently to later
# synthesizers, which means that 0 = right and 127 = left; the opposite of what
# is stated in the most recent versions of the MIDI specification.
#
# Enable this option to swap the channels and make MT-32 mode's panning
# behavior match the behavior of SoundFont mode. Note that this can also be
# switched at runtime with a custom SysEx command.
#
# Values: on, off*
reversed_stereo = off
# -----------------------------------------------------------------------------
# SoundFont synthesizer options
# -----------------------------------------------------------------------------
[fluidsynth]
# Set the initial SoundFont to use.
#
# If multiple SoundFonts are available, this option determines which SoundFont
# to use on startup.
#
# On startup, the "soundfonts" directory is scanned for valid SoundFonts, which
# are added to a list and sorted into alphabetical order.
#
# This setting is a zero-indexed offset into that list (i.e. 0 is the first,
# 1, is the second, and so on).
#
# If the index specified is unavailable, the first available SoundFont will be
# used.
#
# Values: 0-255 (0*)
soundfont = 0
# Set the maximum number of voices that can be played simultaneously.
#
# Depending on the complexity of your SoundFont, you may need to reduce this
# value to prevent audio buffer underruns (distortion) when playing music
# featuring lots of notes being played at once.
#
# On the other hand, you may want to try raising this value if your Pi is
# being run overclocked or has a more powerful CPU (e.g. Pi 4/CM4).
#
# N.B. larger file size of the SoundFont does not imply higher CPU usage.
# SoundFonts that use more real-time effects (modulators) are more likely to
# require a reduction in polyphony.
#
# Values: 1-65535 (200*)
polyphony = 200
# The following settings set the default parameters for FluidSynth's master
# volume gain, reverb and chorus effects.
#
# Each setting can be overridden on a per-SoundFont basis by creating a .cfg
# file adjacent to the SoundFont file with the same name. For example,
# when "foo.sf2" is loaded, mt32-pi will look for a file called "foo.cfg" and
# apply any effects settings found inside it.
#
# Full descriptions and valid value ranges for each setting can be found in the
# FluidSynth documentation: https://www.fluidsynth.org/api/fluidsettings.xml
gain = 0.2
reverb = on
reverb_damping = 0.0
reverb_level = 0.9
reverb_room_size = 0.2
reverb_width = 0.5
chorus = on
chorus_depth = 8.0
chorus_level = 2.0
chorus_voices = 3
chorus_speed = 0.3
# -----------------------------------------------------------------------------
# LCD/OLED display options
# -----------------------------------------------------------------------------
[lcd]
# Select LCD driver.
#
# Note that LCDs connected via I2C, you must also set the correct address for
# your device via the i2c_lcd_address option. Consult its datasheet, or see
# our documentation for tested models and their configurations.
#
# Values: none*, hd44780_4bit, hd44780_i2c, sh1106_i2c, ssd1306_i2c
#
# none: No LCD
# hd44780_4bit: Hitachi HD44780 or compatible (e.g. WS0010, RS0010) character
# LCD connected to GPIO pins in 4-bit mode (see documentation for
# pinout)
# hd44780_i2c: As above, but using an I2C "backpack"
# sh1106_i2c: Small I2C-based OLED graphical display (usually 1.3")
# ssd1306_i2c: Small I2C-based OLED graphical display (usually 0.96")
type = ssd1306_i2c
# Set the width of the LCD.
#
# If the display is a character display, this value is measured in characters.
# Otherwise, for a graphical display, this is measured in pixels.
#
# Note that not all dimension settings are valid; see documentation for valid
# configurations for each LCD driver.
#
# If set to 132, assume this display is an SSD1305 (see wiki).
# Note: the correct settings for the SSD1305 may change in future.
#
# Values: 20-132 (128*)
width = 128
# Set the height of the LCD.
#
# Same characters vs. pixels considerations as for width.
#
# Values: 2-64 (32*)
height = 64
# Set address (hexadecimal) of I2C LCD.
#
# This will be used to communicate with LCDs connected via the I2C bus.
#
# Values: 00-80 (3c*)
i2c_lcd_address = 3c
# Rotate the display output (graphical LCDs only).
#
# Some graphical displays support rotation. Use this option if you need to turn
# the display around.
#
# Values: normal*, inverted
#
# normal: No rotation
# inverted: The display output is upside down
rotation = normal
# Mirror the display output horizontally (graphical LCDs only).
#
# Some graphical displays display columns right-to-left rather than left-to-
# right. Use this option if you need to mirror the display horizontally.
#
# Values: normal*, mirrored
#
# normal: No mirroring
# mirrored: The display output is mirrored horizontally
mirror = normal
# -----------------------------------------------------------------------------
# Network options
# -----------------------------------------------------------------------------
[network]
# Select the network mode.
#
# For setting your Wi-Fi SSID and encryption key, see wpa_supplicant.conf.
# Note that if using Ethernet on a Raspberry Pi 3B/3B+, USB must be enabled.
#
# off: Disable networking
# ethernet: Enable using the Ethernet interface
# wifi: Enable using the the Wi-Fi interface
#
# Values: off*, ethernet, wifi
mode = ethernet
# Enable or disable DHCP for configuring the network.
#
# If disabled, the manual settings below will be used to configure your network
# interface instead.
#
# Values: on*, off
dhcp = on
# Manual settings for configuring the network interface.
#
# These settings will be ignored if DHCP is enabled.
#
# Values: correctly-formatted IP address/subnet mask, e.g. AAA.BBB.CCC.DDD
# (four numbers in the range 0-255 separated by periods)
ip_address = 192.168.1.100
subnet_mask = 255.255.255.0
default_gateway = 192.168.1.1
dns_server = 192.168.1.1
# Set the network hostname.
#
# Values: a valid hostname using ASCII letters 'a' to 'z', digits 0-9, and
# hyphens (mt32-pi*)
hostname = mt32-pi
# Enable or disable the RTP-MIDI/AppleMIDI server.
#
# This allows you to send MIDI data to mt32-pi over the network using macOS'
# built-in network MIDI features, or rtpMIDI by Tobias Erichsen on Windows.
#
# Values: on*, off
rtp_midi = on
# Enable or disable the UDP MIDI server.
#
# This allows you to send MIDI data to mt32-pi via raw UDP socket on port 1999.
# Compatible with MiSTer MidiLink.
#
# Values: on*, off
udp_midi = on
# Enable or disable the embedded FTP server.
#
# This FTP server is a very basic implementation which DOES NOT feature any kind
# of transport layer security/encryption. Therefore, you should NOT enable this
# feature on a public network or expose the Raspberry Pi to the Internet.
#
# The FTP server should be considered a convenience feature only, for performing
# updates and configuration changes without having to replace the SD card.
#
# Values: on, off*
ftp = on
# Set the FTP server username and password.
#
# Values: any ASCII string (mt32-pi*)
ftp_username = mt32-pi
ftp_password = mt32-pi
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 5:13 pm
by Idelacio
At a glance looks like the settings I'm using at the moment.
Chucked them into the cfg anyway in case I missed something and nope, no working still.
Starting to wonder if this screen is just faulty tbh but will see if the store can suggest anything as well. T_T
Might also try with a clean Mister OS build just in case.
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 5:15 pm
by Malor
A thought: make sure the display connectors are plugged into the board?
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 5:47 pm
by Idelacio
On the MT32-Pi itself? The screen is soldered on to the board.
Joints seem fine at a glance.
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 5:50 pm
by MorkMikael
also if you have this pin on the digital io board if you have then put a pin here.(do not know if it is only on the vga io board or also on the digital io board)
- 1.jpg (94.07 KiB) Viewed 3932 times
also are you using any of this usb3 cables.
MiSTer FPGA: Tested USB cables
https://github.com/dwhinham/mt32-pi/wik ... USB-cables
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 6:01 pm
by Idelacio
Yup the digital board has the IO pins as well: set to the IO jumper. Cable provided by the store is that 'approved' CY 90 degree cable.
To be fair I suspect that sound and power would be impacted if these were issues and both seem pretty stable? Actually it's a lot better to my pi4 than it is to my pi3 for power stability.
Does the MT32-Pi screen boot up without the Mister if the pi is powered independently? If so that might indicate a device fault on my own.
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 6:06 pm
by MorkMikael
this is frrom wiki
This is because I²C is not really designed to be used over lengths of cable, and so signal degradation can occur due to capacitance in the cable and/or signal reflection. If you experience a corrupted OLED screen display or erratic synth switching behavior (e.g. as in issue #59), try a shorter cable.
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 6:18 pm
by Idelacio
Oh sure but that talks about corruption, I get no screen output at all yet strong stable sound coming back through.
But yah it's the 20cm 90 angle cable, possibly this one:
https://www.aliexpress.com/item/32888943640.html
I'll dig about my cables but I know for a fact that all my cables are minimum 30cm. That said corruption indicates SOMETHING if I get that instead.
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 6:30 pm
by MorkMikael
ok try this remove the usb cable form your mister to mt32-pi
plugin the pie using the micro usb to a power adaptor using the config i gave you do your screen light up then and show info then.
if it is the pie 4 try the usb-c power cable
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 6:33 pm
by Idelacio
Longer USB cable I have doesn't work, does still power the pi thuough.
And nope, doesn't do anything on the screen even if the pi is idnependently powered. If it does for you then I think this hat is borked.
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 6:35 pm
by MorkMikael
yes mine display alot of info on the screen.
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 6:42 pm
by Idelacio
Bum, doesn;t work on either pi3 or 4 for me when independently powered.
I think we can conclude mine is defective.
I'll see what the store says, in the meantime I'll sit here and listen to the appropriately dissapointing yet baffling Elite Plus MT32 rendition of Blue Danube.
Thanks btw, interestingly no videos or documentation of what happens when you do try with this hat on just the pi alone so I had no frame of reference there.
Re: No Display on MT32-Pi but Sound Works
Posted: Wed Aug 31, 2022 8:19 pm
by Malor
It should absolutely power up, and display something ten or fifteen seconds later. Exactly what displays depends on your default synth mode (mt32 or fluidsynth), but you'll get a display in either case, even when it's not connected to the Mister. It can be driven over the network, or over a MIDI cable. The fact that it works so nicely with the Mister is because the author is cool, not because it has any need for the DE-10.
I was going to suggest fiddling with the hat connection, but since you're getting good sound, that's more likely to mess something up than to fix it. I think a dead screen is reasonably well proven at this point. It might have gotten whacked in shipping or something.
Re: No Display on MT32-Pi but Sound Works
Posted: Thu Sep 01, 2022 3:41 am
by Idelacio
Might be correlation rather than causation but yeah this was one of those next day deliveries that took almost two weeks so added jostling is a possibility.
Sometimes stuff just breaks though.
Re: No Display on MT32-Pi but Sound Works
Posted: Tue Sep 06, 2022 6:25 pm
by Idelacio
Yup, it was a faulty screen. Came to an agreement with the seller that it's deffo borked and the replacement boots up just fine.