rp3.+ raspberry OS lite (or better PatchboxOS as a starting point)
https://blokas.io/patchbox-os/
testing notes
Disable bluetooth or send bt to another serial port
sudo nano /boot/config.txt
enable_uart=1
dtoverlay=midi-uart0
midi-uart0 ttymidi will set Serial S&R MIDI at 31250 when using 38400 baudrate automatically
Remove UART serial shell option in boot/cmdline.txt
sudo nano /boot/cmdline.txt
delete:
console=serial0,115200 console=tty1
Disable Bluetooth
dtoverlay=disable-bt
sudo systemctl disable hciuart.service
sudo systemctl disable bluealsa.service
sudo systemctl disable bluetooth.service
OR move Bluetooth to other serial port
dtoverlay=pi3-miniuart-bt
install wiringpi ( optional )
sudo apt-get install wiringpi
gpio readall (check tty dev tx rx)
download and install ttymidi to access pi serial http://www.varal.org/ttymidi/
wget http://www.varal.org/ttymidi/ttymidi.tar.gz
tar -zxvf ttymidi.tar.gz
cd ttymidi/
nano Makefike
add -lpthread in "all:"
make
sudo make install
start serial midi and stay in background
ttymidi -s /dev/ttyAMA0 -b 38400 -v & // It will s&r at 31250 since midi-uart0
change midi device name
ttymidi -s /dev/ttyAMA0 -v -n device_name
Depending on your setup you can manage ttymidi midi port instance after creation with ALSA MIDI or JACK
send the ALSA midi to Jack Midi for system messages (clock etc) to pass through as well
a2jmidid
ALSA - list and connect to available ALSA MIDI input clients
aconnect -l aconnect id:0 id2:1
Connect TX/RX/GND (use midi specs circuitery for protection etc)
https://www.midi.org/specifications-old/item/midi-din-electrical-specification <-----