stacking more than 4 capes

From the Bone SRM sections

6.3.5: “I2C2 is used for the EEPROMS on the expansion boards and must always be accessible.”
8.0: “The BeagleBone has the ability to accept up to four expansion boards or Capes that can be stacked onto the expansion headers… Over time, this specification will change and be updated, so please refer to the latest version of this manual prior to designing your own expansion cards to get the latest information.”
8.1 “Each Cape (except proto capes) must have its own EEPROM containing information that will allow the SW to identify the board and to configure the expansion headers pins as needed… The address of the EEPROM will be set via either jumpers or a dipswitch on each expansion board.”

Note The cat24c256w EEPROM specified has 3 address lines available but only A0 and A1 are presently used with A2 being tied high.

Being as the cape EEPROMs have 3 address lines, why are only 2 being used thus limiting the stack to 4 capes? What is the reasoning to not use all 8 possible addresses thus allowing more capes to be stacked? I for one would like to stack more than 4 capes. What other limitations (if any) am I missing? Would it be a bad idea to allow (or even specify) use of A2 as well thus allowing more capes to be stacked? Why not stack 8 boards?

Thanks,

Eric

P.S.

wanting to stack:

Audio
Video Display
Battery
WiFi
Camera
Serial
FPGA
…and one more (maybe memory expansion, or gps, or 9DOF, or…)

The original idea was for four as a limit. The EEPROM came second. We did not base it on using up all the addresses from the EEPROM to decode how many capes was the limit. If you really need 8 capes, I might suggest that you add more functions to each of the capes to get the desired number of functions needed for your application.

In addition the EEPROM used in DVI/DVID monitors, we wanted to leave space for that on the I2C bus so that is why the A2 bit is tied high.

And we tried to choose a less expensive EEPROM selection to lower the cost hit on each and every cape. Hence the selection of three address lines instead of 4.

In addition typing more than four capes onto the LCD lines or the GPMC busses would interfere with their operation.

Plus there is practical limit of the lengths on some of the signals. I would not expect several of these signals to work on when cape #8 is installed.

Plus there is a practical current limit to supply power to al those capes.

Gerald

Gerald,

Thanks for your seemingly always quick replies to these queries, your tireless work in supporting the beagle platform(s) and answering seemingly endless questions such as this is appreciated and at least here never goes unnoticed. So based upon what’s below would it be correct to say that the LCD and GPMC buses may not function well if they were longer than a 4 cape stack? While ideally one would integrate multiple functions on a single cape thus reducing stack height and total number of capes I’m probably not in a position to build one off capes that combine functions. That said a thought comes to mind. Would it likely work if the boards that depended upon the LCD and GPMC buses were kept as close as possible to the bone (within the first 4 boards) and stacking with signal stealing was used such that the these 2 busses did not continue past the 4th cape? This would allow for things like a serial cape (say rs232) to be placed as a 5th cape, yet still be identifiable, or possibly the same thing for capes that involved an array of I2C based sensors. Could careful ordering of capes on the bus along with bus minimized bus signal length where it mattered might squeeze out that last ounce. what would be your thoughts on intelligently applying the above design idea to strech that last little bit where needed. (obviously power issues need monitored) kinda wondering how far I2C and serial busses for instance could be streched?

Thanks,

Eric

As you add connectors, you add capacitance and as you add capes that may use the same signals as GPMC and LCD, which is basically any signal on one connecotr, yes it can affect how well those signals work. LCD is a little less of an issue, but nonentheless it can be affected.

Keeping the LCD capes for example close to the BeagleBone is harder to do as they need to be on top so you can see them. If you spread them out, like i sdone on the 7" LCD panel, that actually makes it worse, but there a limited options in that particular case. So even in some cases adding three additional capes can be problematic depending on where they are plugged in. If this were tried, and if those signals were to have a connector on them, then that would still cause issues. You would need to make sure that the connectors stacked on those signals did not have any connector pins plugged into them. It would make it tough as you would only have one connector on one side to support all those other capes.

Based on the arguments I have given I see no practical way to add a bunch of capes on to the BeagleBone. If you want to ignore the EEPROM concept and add a bunch of boards and you are writing the software, then you can stack as many as you want to until you hit issues. Do not expect an RMA to be granted because cape number 8 does not wok when plugged into the BeagleBone.

Gerald

Gerald,

Again thanks… mostly just exploring the limits here though it would be nice in some cases to have many capes stacked. Should I try such you’ve laid out the design issues and challenges that need addressed and no I won’t be looking to RMA for such. Again thanks for laying out the difficulties and challenges in such a stack working.

Eric

Not an issue!

Gerald