Hardware implementations for a low-cost ADC array project
There is no such thing as a "lowish cost system" when you are talking about data acquisition of 300 to 500 audio-bandwidth signals. This is out of scope for an Arduino or even a Beaglebone. You probably have to start looking into some serious hardware with an FPGA in it (e.g., a Zynq board).

For starters, data transfer bandwidth is an issue. At a minimum nyquist frequency for a &lt;10KHz bandwidth signal you have 300 channels * 16 bits * 20000 S/s = 96Mb/s. That will require Gb ethernet and will saturate PC USB ports without a dedicated software driver (forget about the serial drivers used by Arduino boards, for example, I saturate those with just 2Mb/s).

Then, as you are considering a beam-forming application, you would have to seriously consider simultaneous sampling. That is, all of your ADC channels synchronized and sampling at the same time, otherwise you would need additional signal processing. That makes finding the proper ADCs and dividing the problem into multiple low-channel count modules more difficult (e.g., 10 BeagleBone boards at 30 channels each).

Next, is the data acquisition front-end and signal conditioning. You can find 8-channel simultaneously sampling ADCs with some specific signal conditioning relatively easily, but if you need to add conditioning circuitry to each individual channel you are talking about a lot of passives. Also, you would be hard-pressed to drive two of these ADCs out of a single simple serial port such as SPI, you would need faster interfaces and, very likely, multiple individual communication channels.

And last, but not least, comes the software to handle all those channels in real time. Modern-day PCs can do it, but they will struggle (forget about Matlab, Python or other similar languages, you need C#/C++/Swift or other languages that compile as close to bare metal as possible).



My advise, divide the problem into separate low-channel count modules (e.g., 16 to 64) that can be replicated easily. Design a controller board that can drive multiple modules at the same time. Use Ethernet, USB's master-slave architecture makes it problematic, Ethernet drivers are designed for speed.