Page 1 of 1

Reverse engineering PCI/PCIX/PCIe-424 configuration protocol?

Posted: Fri Jan 05, 2024 6:41 pm
by motucitizen
Has anyone done this, or is aware of an open-source project that has done this? For example, a third-party configuration app alternative to MOTU's own "PCI Audio Setup" and/or "CueMix" apps?

I have a system with four 24 I/O interfaces attached to a PCIe-424.

As a Windows developer myself, I am aware that the PCI Audio Setup and Cue Mix apps both use the Windows API function DeviceIoControl() to communicate with the PCI card and connected interfaces. I can watch these calls (using an API monitoring program), but I have no idea what the format of the buffers of information sent back/forth is. I wonder if anyone has already figured it out? I had hoped the format might be deciphered by watching the DeviceIoControl() buffer contents whilst making configuration changes with the MOTU apps, but so far the format has not been easily apparent.

My interest here: I would love to determine (or obtain) the format and then write my own configuration app -- mainly to implement a "grid-style" UI for routing inputs/outputs, to make it much easier/intuitive (IMO) to use my bank of 24 I/O units as one big virtual patch bay.

Cheers for any info or thoughts.

Re: Reverse engineering PCI/PCIX/PCIe-424 configuration protocol?

Posted: Sat Jan 06, 2024 12:45 pm
by mikehalloran
Windows might still work. MOTU still has the drivers up.

https://motu.com/en-us/download/product ... rue&page=3

This cannot be done on any Mac built after 2012 — and then only on those with internal PCI slots. Apple changed the firmware in 2013 so that external PCIe boxes cannot work and when the slots were reintroduced id 2019, the 424 card firmware was still incompatible.

Re: Reverse engineering PCI/PCIX/PCIe-424 configuration protocol?

Posted: Sat Jan 06, 2024 1:05 pm
by motucitizen
Thanks for the reply, Mike. But... how does it apply to the question posed in my original post? My system is working fine (under Windows). I am not in need of drivers.

My question was "has anybody reverse-engineered the configuration protocol" (for the PCI-424 card) such that someone (like me) could write their own (alternate) configuration software?

MOTU's software (mainly the CueMix app) is pretty awful for configuring/reconfiguring a large bank of inputs/output when using a bunch of interfaces (in my case, four 24 I/O units) as a big virtual patch bay (instead of as a big virtual mixer).

CueMix's paradigm of multiple independent stereo mixes (output pairs), each with some number of sources (inputs), is quite cumbersome for simply routing a bunch of inputs to a bunch of outputs. You constantly have to switch between separate mixes (output pairs), instead of being able to think about (for example) a specific "bank" of 12 outputs, or 4 outputs, or whatever.

Personally, I'd much rather have a user-interface that presents an overall "routing matrix", where a connection (or multiple connections) can be made more directly (not to mention, being able to see everything at once).

I could create such a UI myself if only I knew what the configuration protocol was.

Re: Reverse engineering PCI/PCIX/PCIe-424 configuration protocol?

Posted: Sat Jan 06, 2024 1:10 pm
by mikehalloran
We've been talking about this for a dozen years now and there are hundreds of posts on the subject. I don't know if your specific version of the question has come up but others have over the years. The search fields may reveal something. I am certain that no one has accomplished it—that I would remember.

Re: Reverse engineering PCI/PCIX/PCIe-424 configuration protocol?

Posted: Tue Jan 09, 2024 6:15 pm
by monkey man
I wish the OP the very-best of luck.

A config app (and driver?) that would allow this would be a Godsend to many users.