I stumbled across the bug concept while looking for an embedded controller for an industrial application, and have been reading with interest. Both what I see here, and my own work, often comes back to one interesting design question, which I don’t think has a single clear answer.
What are the comparative merits of traditional interconnect schemes such as the bug module interface and it’s supporting technologies like SPI, serialized LCD interface, etc, vs just hanging all the parts off of USB?
Obviously synchronous serial solutions like SPI are the "native language" of many peripheral chips, and are fairly easy to support in embedded software and programmable logic.
But capability is getting cheap, while wiring harnesses remain expensive. I noticed the thread about users wanting BMI cables to remote modules, and the answer that they exist but aren’t compatible with the housings and are quite expensive.
For many of the modules (GPS, motion, perhaps camera, anything network related, any GPIO that doesn’t need to be very low-latency), building around a USB-enabled microntrollor would seam feasible, and one permitting USB firmware download gives a kind of unbrickable customizability that’s actually quite tricky to implement in an SPI-based peripheral.
On the other hand, things like the LCD don’t have as obvious a USB solution, though it probably could be done with a larger microcontrollor in the module. And the camera might need to go to a more webcam-like jpeg/mjep paradigm. So it’s by no means clear that USB is better than the BMI solution.
I would be curious if USB was considered at some point in the system design philosophy.
More practically, it would appear that a present bug system can already be extended by any USB peripheral with a linux driver that can be made to compile for it. So maybe the best of both worlds is available already.
Perhaps a future version of the bug base could make a USB pair available on each BMI connector? Or place a mini-usb connector next to the BMI, so that USB modules would be an option as well?
Anyone who has tried using USB to tie together an embedded system have any comments on reliability? The plug and play aspect does give me a certain degree of concern that the configuration may not always come up as expected.