First, let me explain how this idea came about. I was having trouble
getting Snort to run - it kept quitting because their are certain
Snort rules that require hidden *magic*, and only exist in binary
form, and only for i386 or x86_64... no ARM.
Then I entered a bunnyhole. Maybe I could "virtualize" my way around
the rule problem. The short answer is no. The ARM design won't allow
For some reason that led into a remembrance of an experiment I ran in
grad school. I built a small OpenMosix cluster and ran some economic
simulations on it. Well, the BeagleBone has twice the processing power
that those old machines in the cluster had, and the cluster did some
pretty cool stuff. I leased it out on weekends to an aspiring video
artist to use for rendering.
What if there was a BeagleBone Cape for a BeagleBone? If that is even
possible, how high could you stack them before you ran out of pin
I realise that this is somewhat some pie-in-the-sky navel gazing. I'm
also interested in investigating the limitations of the hardware.
Please take that into consideration.
You would need to decide how they talk to each other. If they can talk over Ethernet or USB, then you have that today. Just get a 10 port hub and have a party. If you want something more than that I would look to create a Cape that would bridge the two together. If you want some sort of shared memory interface, then that could be done using a bridge Cape. Or you could build a big Cape and link a lot more together using some sort of shared memory interface.
I don't know why you are thinking a cape is needed to let multiple
BeagleBone boards talk. The I/O pins would provide plenty of usable
bandwidth. I don't know exactly how this would be managed, but that
is what the OP is asking.
Since each bone would be running the same software (most likely) and
have the same I/O pins available, there would need to be a way for
each BB to identify itself and be aware of the others. Then some
arbitration scheme would allow them to allocate I/O pins to the
various comm channels that are required. A multiplexed interface with
a random wait time and collision detection could serve this purpose.
Or possibly some dedicated pins could be picked and as each board
comes out of a random wait they pull down the next pin in sequence,
with some means of resolving contention again.
I suppose that a USB host port on one board could be used to make it
the controller over four others by using a four port hub.
Once you have each board identified, they can decide who talks on
which pins. The rest should be easy, but of course drivers would be
required to optimize communication speeds.
If Blake is interested in processors which have both high performance
and great comms, GreenArrays makes a multiprocessor chip with 144
processors on board. I am currently working on a board which is
targeted to provide high current and voltage I/O but will also have a
GA144 chip on board to offload processing for things like motor
control. It might prove to have more processing than the BB, sort of
like an airplane which produces more horsepower in the turbos than it
does in the actual engines.
Well, the BeagleBone has female connectors. You can’t just flip them over and connect them with Male headers because the signals will be swapped between connectors. I don’t think the processor would like 5V on the I/O pins…
You could design a sandwhich cape that goes in between the BeagleBones, connects the two together, and handle the routing from P8 to P8 and P9 to P9. It would require SMT headers on each side, but that can easily be done. Or you could do something like Gumstix has done and create a motherboard that lets you plug as many BeagleBones together as you like depending on how big you want to make the board.
We today have 6 BeagleBoard-xM boards all communicating through an Ethernet HUB and each driving a LCD panel. They work to break up a single image and display it across the six screens.
But the BB can be made with stack through connectors. Designing a
cape for this would be way overkill. I don't get the impression that
the OP is talking about doing this as a one-off. To be honest, I
don't understand why you make the CPU board without the stack through
pins. Like I said in another post, it is a good idea to learn from
others rather than make your own mistakes. PC-104 has been doing the
stack through thing for twenty years. They have a great spec and lots
of lessons learned. Making the main board with stack through
connectors allows daughter cards to be added on the bottom. You leave
off part of the outline on the Cape board to provide access to the
button and the LEDs on the main board, but when it is plugged into the
7" LCD board none of that is accessible because the BB is upside
BTW, using an SMT connector for a cape or motherboard would be asking
for trouble. I have seen any number of failures on SMT connectors
when used for board to board applications. There is just not enough
strength in the solder joints or in some cases it is the pads that
separate from the board. It is best to use through hole mounted
connectors when boards will be plugged and unplugged more than a few
times. Better would be through hole connectors that are offset
Yes, a Beagle could be made with pass through connectors, but that is not something we intend to start doing. With the ability to bend the pins and increase RMA hits, that is the reason we do not make it with pass through connectors. And with the requirement to fit in the Altoids box, that wasn’t going to work with he pass through pins.
Yes, SMT can be an issue and is not a clean solution, but I do suspectt that they exist for a reason and that a lot of people do indeed use them successfully.
Just to be clear, the problem with surface mount connectors is with
repeated insertion cycles. There are also alignment problems, but
they can be mitigated by using alignment pins on the connectors. A
customer used surface mount 2 mm headers without alignment pins and
found the connectors "floated" around on the pads making it hard to
plug in the daughter cards I was providing (which used alignment pins
on the mating connector).
I'm just sayin'...
I totally agree with you. I don’t like them either, but in certain instances they may be the best solution. At a minimum, they need alignment pads or bosses to help hold them in place. When going SMT I lean toward the Hirose FX series of connectors. I have had a lot of sucess using those.