LaunchPad Pro MK3 Can You Please explain what is wrong

Hello Everobody

Still trying to get my LaunchPad Pro MK3 working with Zynthian OS

I have made the following

thanks to jofemodo the ctrldriver is now talking to the right midi interface which i the 3rd

I have disabled the zynthian service and I run zynthian.sh in a ssh term window

Here is the log I get

========================================================================

(venv) root@zynthian:~# zynthian.sh

X.Org X Server 1.21.1.7
X Protocol Version 11, Revision 0
Current Operating System: Linux zynthian 6.12.47+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.47-1+rpt1~bookworm (2025-09-16) aarch64
Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 cgroup_disable=memory numa_policy=interleave nvme.max_host_mem_size_mb=0 snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 bcm2708_fb.fbwidth=720 bcm2708_fb.fbheight=576 bcm2708_fb.fbswap=1 numa=fake=2 system_heap.max_order=0 smsc95xx.macaddr=D8:3A:DD:F2:2D:E4 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 root=/dev/mmcblk0p2 rootfstype=ext4 fsck.repair=yes rootwait console=tty1 logo.nologo modules-load=dwc2,libcomposite
xorg-server 2:21.1.7-3+rpt3+deb12u11 ( Debian -- User Support )
Current version of pixman: 0.44.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (–) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: “/var/log/Xorg.0.log”, Time: Sat Jan 10 21:43:45 2026
(==) Using config directory: “/etc/X11/xorg.conf.d”
(==) Using system config directory “/usr/share/X11/xorg.conf.d”
/zynthian/config/img/fb_zynthian_boot.jpg is a 720x576 JPEG image, color space Grayscale, 1 comp, Huffman coding.
Zooming image by 100%
done
Merging
done
didn’t find evidence of prior run.
Building XImage
done
INFO:zynthian_gui_config.: ZYNTHIAN-UI CONFIG 

INFO:zynthian_gui_config.: Kit Version: Custom
INFO:zynthian_gui_config.: Wiring Layout: V5
DEBUG:PngImagePlugin.call: STREAM b’IHDR’ 16 13
DEBUG:PngImagePlugin.call: STREAM b’bKGD’ 41 6
DEBUG:PngImagePlugin._open: b’bKGD’ 41 6 (unknown)
DEBUG:PngImagePlugin.call: STREAM b’pHYs’ 59 9
DEBUG:PngImagePlugin.call: STREAM b’tIME’ 80 7
DEBUG:PngImagePlugin._open: b’tIME’ 80 7 (unknown)
DEBUG:PngImagePlugin.call: STREAM b’IDAT’ 99 8192
ZynCore: Setting-up 20+4 x Zynswitches

ZynCore: Setting-up 2 x Zynswitches in RBPi GPIO

ZynCore: Setting-up Zynpots => 4 x PEC11 

ZynCore->gpiod_start_callbacks: Callback thread created successfully
INFO:zynthian_gui_config.config_zynpot2switch: zynpot2switch => [24, 25, 26, 27]
DEBUG:zynthian_lv2.load_engines: Loaded engine config with timestamp: 1767965436.1228387
Loaded libzynaudioplayer using libsndfile-1.2.0
INFO:zynthian_engine_audioplayer.zynthian_engine_audioplayer: Supported Audio Codecs: [‘aiff’, ‘aifc’, ‘au’, ‘caf’, ‘flac’, ‘mp3’, ‘vox’, ‘opus’, ‘ogg’, ‘wav’]
INFO:zynthian_main.: STARTING ZYNTHIAN-UI 

INFO:zynthian_state_manager.init: Creating state manager
Started libzynmixer
INFO:zynthian_chain_manager.init: Creating chain manager
DEBUG:zynthian_engine_alsa_mixer.get_controllers_dict: MIXER CTRL LIST: [‘Headphone’]
DEBUG:zynthian_engine_alsa_mixer.get_controllers_dict: Added zyncore Headphones Amplifier volume control
Started libzynseq
Started libzynsmf
DEBUG:zynthian_state_manager.start: Opened temperature sensor ‘/sys/class/hwmon/hwmon0/temp1_input’
DEBUG:zynthian_state_manager.start: Opened undervoltage sensor ‘/sys/class/hwmon/hwmon1/in0_lcrit_alarm’
DEBUG:zynthian_ctrldev_manager.update_available_drivers: Loaded ctrldev driver class ‘zynthian_ctrldev_launchpad_pro_mk3’
DEBUG:zynthian_ctrldev_manager.update_available_drivers: Loaded ctrldev driver class ‘zynthian_ctrldev_launchpad_mini_mk3’
DEBUG:zynthian_ctrldev_manager.update_available_drivers: Loaded ctrldev driver class ‘zynthian_ctrldev_korg_nanokontrol2’
INFO:zynthian_ctrldev_manager.update_available_drivers: Found ctrldev driver ‘zynthian_ctrldev_launchpad_pro_mk3’ for devices with ID ‘Launchpad Pro MK3 IN 3’
INFO:zynthian_ctrldev_manager.update_available_drivers: Found ctrldev driver ‘zynthian_ctrldev_launchpad_mini_mk3’ for devices with ID ‘Launchpad Mini MK3 IN 1’
INFO:zynthian_ctrldev_manager.update_available_drivers: Found ctrldev driver ‘zynthian_ctrldev_korg_nanokontrol2’ for devices with ID ‘nanoKONTROL2 IN 1’
INFO:zynthian_autoconnect.init: Initializing 27 slots for MIDI input devices
INFO:zynthian_autoconnect.init: Initializing 24 slots for MIDI output devices
DEBUG:zynthian_autoconnect.midi_autoconnect: Connected MIDI-in device 0: system:midi_capture_4
DEBUG:zynthian_autoconnect.midi_autoconnect: Connected MIDI-in device 1: system:midi_capture_5
DEBUG:zynthian_autoconnect.midi_autoconnect: Connected MIDI-in device 2: system:midi_capture_6
DEBUG:zynthian_autoconnect.midi_autoconnect: Connected MIDI-in device 3: ttymidi:MIDI_in
DEBUG:zynthian_autoconnect.midi_autoconnect: Connected MIDI-out device 0: system:midi_playback_4
DEBUG:zynthian_autoconnect.midi_autoconnect: Connected MIDI-out device 1: ttymidi:MIDI_out
DEBUG:zynthian_autoconnect.midi_autoconnect: Connected MIDI-out device 2: system:midi_playback_5
DEBUG:zynthian_autoconnect.midi_autoconnect: Connected MIDI-out device 3: system:midi_playback_6
DEBUG:zynthian_autoconnect.midi_autoconnect: Connected MIDI-out device 4: ZynMaster:midi_in
DEBUG:zynthian_autoconnect.midi_autoconnect: Connected MIDI-out device 5: ZynMidiRouter:seq_in
INFO:zynthian_ctrldev_manager.load_driver: Loaded ctrldev driver ‘launchpad_pro_mk3’ for ‘Launchpad Pro MK3 IN 3’.
DEBUG:zynthian_chain_manager.add_chain: ADDED CHAIN 0 => midi_chan=None, mixer_chan=16, zmop_index=None
INFO:zynthian_state_manager.set_power_save_mode: Power Save Mode: OFF

DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!
DEBUG:zynthian_ctrldev_base.update_seq_state: Update sequence playing state for zynthian_ctrldev_launchpad_pro_mk3: NOT IMPLEMENTED!

DEBUG:selector_events.init: Using selector: EpollSelector
INFO:zynthian_gui_patterneditor.get_custom_keymap: MIDI channel 0 has not synth processors.
DEBUG:zynthian_gui_brightness_config.get_backlight_sysctrl_fpath: Can’t find a display brightness control file
INFO:zynthian_gui_brightness_config.init_ctrls: Setting LED brightness to 1.0.
INFO:zynthian_gui.zynswitches_init: INIT 30 ZYNSWITCHES 

INFO:zynthian_gui.wiring_midi_setup: CUSTOM I/O SETUP

INFO:zynthian_gui.osc_init: ZYNTHIAN-UI OSC server running in port 1370
DEBUG:zynthian_gui.prune_screen_history: SCREEN HISTORY =>
DEBUG:zynthian_gui.prune_screen_history: PRUNE ‘loading’ FROM SCREEN HISTORY =>
DEBUG:zynthian_gui.close_screen: CLOSE SCREEN ‘loading’ => Back to ‘audio_mixer’
INFO:zynthian_state_manager.load_snapshot: Loading snapshot ‘/zynthian/zynthian-my-data/snapshots/last_state.zss’ 

INFO:zynseq.restore_riff_data: Restoring RIFF data


INFO:zynthian_gui.wiring_midi_setup: CUSTOM I/O SETUP

INFO:zynthian_processor.get_bank_list: Loaded 1 banks
DEBUG:zynthian_gui.prune_screen_history: SCREEN HISTORY =>
DEBUG:zynthian_gui.prune_screen_history: PRUNE ‘audio_mixer’ FROM SCREEN HISTORY =>
DEBUG:zynthian_state_manager.update_thread: ************ CHECKING FOR UPDATES 
 ************

==========================================================================

So something gets wrong when the 16 PADS of the LP ProMK3 try to get the state of the 16 Zynthian PADS

And when I try to use the buttons on the side of the LP and the arrows I get this error

=========================================================================

ERROR:zynthian_state_manager.zynmidi_read: zynthian_engine.set_bank() missing 1 required positional argument: ‘bank’
Traceback (most recent call last):
File “/zynthian/zynthian-ui/zyngine/zynthian_state_manager.py”, line 746, in zynmidi_read
if self.ctrldev_manager.midi_event(izmip, ev):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/zynthian/zynthian-ui/zyngine/zynthian_ctrldev_manager.py”, line 250, in midi_event
return self.drivers[idev].midi_event(ev)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/zynthian/zynthian-ui/zyngine/ctrldev/zynthian_ctrldev_launchpad_pro_mk3.py”, line 148, in midi_event
self.zynseq.set_bank(row + 1)
TypeError: zynthian_engine.set_bank() missing 1 required positional argument: ‘bank’
ERROR:zynthian_state_manager.zynmidi_read: ‘zynthian_ctrldev_launchpad_pro_mk3’ object has no attribute ‘zyngui’
Traceback (most recent call last):
File “/zynthian/zynthian-ui/zyngine/zynthian_state_manager.py”, line 746, in zynmidi_read
if self.ctrldev_manager.midi_event(izmip, ev):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/zynthian/zynthian-ui/zyngine/zynthian_ctrldev_manager.py”, line 250, in midi_event
return self.drivers[idev].midi_event(ev)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/zynthian/zynthian-ui/zyngine/ctrldev/zynthian_ctrldev_launchpad_pro_mk3.py”, line 144, in midi_event
self.zyngui.cuia_arrow_right()
^^^^^^^^^^^
AttributeError: ‘zynthian_ctrldev_launchpad_pro_mk3’ object has no attribute ‘zyngui’

=================================================================

Is it something that I can try to fix by myself or is it irremediably a dead end

Thank You for Reading

Alain

What zynthian hardware are you using? What version of zynthianOS are you using? What version is it updated to? You say you have made changes, but not shown those changes.

I would expect the driver provided with Oram to work out-of-the-box for this device without any changes, unless there has been a firmware change to the Launchpad which changes its behaviour. The Oram driver uses port 1 and you say it needs port 3 which suggests a difference in Launchpad firmware. What Launchpad firmware are you using.

I see you have other USB MIDI devices connected. It may be worth removing those whilst trying to debug issues.

Having said all of that
 I just looked at the source code of the Oram driver and I can’t see how it ever worked
 There is an event handler that is never triggered so the default prints out "“NOT IMPLEMENTED!”. The driver has @jofemodo and my names at the top but I don’t recognise having done any work on this driver. (I don’t own this device so would have not been able to do much beyond the skeleton / wireframe code.) This leads me to believe this driver may be incomplete and inadvertently included in the Oram release.

Okay

First of all , please excuse my poor english , I am French and will turn 70 yo next week


I have both LaunchPAD mini MK3 and LaunchPAD pro MK3

The LP mini MK3 works great ,so my assumption was that all the drivers in the zyngine/ctrldev were fully functionnal.

I then tried my LP pro MK3 anf there were 2 problems (more to follow)

the first one was

lib_zyncore.dev_send_midi_event(self.idev, msg, len(msg))

instead of

lib_zyncore.dev_send_midi_event(self.idev_out, msg, len(msg))

so jofemodo made the correction

the second one is that the LP pro MK3 uses the 3rd midi interface in DAW/Session mode

so I changed

dev_ids = [“Launchpad Pro MK3 IN 1”] by dev_ids = [“Launchpad Pro MK3 IN 3”]

so now the LP pro MK3 is able to go in DAW/Session mode

but after that nothing happens

About my setup

It is not an official kit

Raspberry Pi 4 Model B Rev 1.5
Audio: RBPi Headphones
Display: Generic HDMI/DSI Display
Wiring: V5
I2C: Not detected
Profile: v5

Debian GNU/Linux 12 (bookworm)
Build Date: 2025-11-05
Memory: 6% (483M/7820M)
Internal Storage: 29% (16G/57G ext4)
Temperature: 52.1ÂșC
Overclock: None

about the other USB devices , this is the ones I own (but they are not connected)

I have moved all other drivers that I do not need in the examples folder

==========================================================

I perfectly understand that it is impossible to work something as tricky as a driver for a device that you do not own ,

I do not know if the Universal sysex for device identification is used in the process

but since the driver for the LP mini MK3 works perfectly , is it possible to use it with some tweaks (changing sysex messages) and turn it into a LP pro MK3 driver

Anyway

Thank You

Alain

1 Like