Proposal (sort of a dream now): An extension card with Raspberry Pi Compute Module

I would like to propose a project which I probably won’t be able to build myself due to time constrains. But please, allow me to dream at least :slight_smile:

The idea is to create a new extension card for X32 which would have an FPGA and a Raspberry Pi computer model at it’s core. The idea is not just to extend the functionality of the X32 but also to be a platform for various future experiments and developments.

Here is brief overview on how this could work:

The first main block would the the FPGA which would connect to the X32, the RPi and other peripherals. The FPGA would contain an audio matrix to switch channels between various sources, a clock matrix, a “soundcard” interface towards the Raspberry Pi CM and some control stuff around.

The RPi CM would have the ethernet port connected to the outside world. This would not just allows for connections like AES67 or Dante (there are already some opensource implementaions and the interface is 20 years old so most probably the patents will expire soon) but also for other ethernet and/or IP based protocols.

Also, a NVME slot would be connected to the one PCIe lane of the CM allowing for much more comfortable recorer/player capabilities. The internal WiFi/BT could be used e.g. for direct streaming. The USB2 port could be programmed as a soundcard.

The interesting question is, how the connection between the RPi and the FPGA could be done. The internal SPI interfaces (theoretically 60MHz but reports are of only 30-33MHz) of the RPi seem to be too slow for 32 or more channels each direction.

The only viable solution for a larger number of channels seem to be the SDIO interface or the parallel SMI interface.

For this reason I propose to just pass ALL of the 28 standard GPIOs from the RPI into the FPGA to allow for flexibility and experimenting with various interfaces.

Then the question is how the FPGA can be programmed, there are two more GPIOs on the CM4 and yet another two additional on the CM5 which can be used for that purpose (maybe with a little MCU in between to make that easier.

The important idea is that this card can work in some basic mode with the original X32 firmware BUT also could have extended capabilites which would only be available from the OpenX32. E.g. it would be possible to try to increase the number of channels between the card and the mixing console by using TDMA16 - which you have to support on both sides in each FPGA. Also there could be a mechanism for OpenX32 to detect the card and make more functions available over the UART.

Yet another idea is to add an Ultranet input which would then be connected to the Ultranet OUT of X32. That way you could increase the number of channels of the card by 16. So that way you could have 48i+32o or even 80i+64o with TDMA16.

In order not to lose some sort of in-ear-monitoring bus, the card could have either an Ulktranet OUT or a Stageconnect connection (for the Stageconnect, however, smaller connectors, like the miniXLR would need to be used).

Well, I know that this would be a big project but maybe someone will take the opportunity before I find the time to do so :wink:

do you know this? → GitHub - xn--nding-jua/XFBAPE

Yes, I know. But with raspberry pi you could have an NVME and ethernet (i.e. AES67 / Dante / …)

This proposal’s idea is based on X-FBAPE