Yes, by default JeVois is configured to use all of the isochronous bandwidth, so as to minimize latency. In a nutshell, isochronous transfers are the ones that guarantee real time data delivery, and hence are desirable for audio and video. On a 8MHz clock, each connected device can request some time slots, for example, a device may request to transmit 1kb every 8 clock cycles. The host then finds a way to accommodate the various requests of all connected devices. Now, on jevois, by default we request the max, which is 3kb every clock cycle, with the goal of pushing all the video data as fast as possible to the host to minimize delay. Unfortunately there is no way to request slots only as needed, you just request them or not, i.e., once allocated to jevois they cannont be used by others even after the current frame is done transmitting. Once you are out of bandwidth you get the no space left on device error. Isochronous data can use no more than 80% of the total USB bandwidth, which is why serial over USB still works (it uses bulk transfers).
It is a setting in the kernel. We will add an option to drop this down to 1kb/cycle which should allow you to connect 3 cameras, but then you won’t be able to transmit big frames, which should not be a problem for you. In principle, several settings can be exposed by the camera (eg, 512b/frame, 1kb/frame, etc) but then the host would usually select the one with the lowest bandwidth requirement for the chosen video resolution, which defeats our efforts to minimize latency (low resolution video would be stretched into many tiny packets as opposed to a few big packets)
We will let you know when a custom microSD image is ready for you.