This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BoosterPack Standard needs some work

Other Parts Discussed in Thread: BOOSTXL-DRV8301, ENERGIA, LM120

Dear Texas Instruments, 

I've been looking into using the BoosterPack standard as the expansion port for a product we are developing. The problem is the standard needs some work.

I've come across two conflicting BoosterPack standards:

1) http://www.ti.com/ww/en/launchpad/dl/boosterpack-pinout.pdf (last updated Sept 1, 2013)

2) http://processors.wiki.ti.com/index.php/BoosterPack_Standards_and_Design_Guide (last updated Oct 3, 2013)

The second link is the most recent and most detailed, but also has OBSOLETE written somewhat down the document. Is there some documentation that describes the dimensional aspects that is not labelled obsolete.

I can tell that the standard evolved rather than being planned.

For instance, the second document states "BoosterPacks should not extend more than 0.350 inches above the center of the top BoosterPack interface pin", yet all the BoosterPacks that I've looked at violate this "requiremnt". For instance, the BOOSTXL-DRV8301 Motor Drive BoosterPack extends 1.200 inches and the Sensor Hub BoosterPack for Tiva™ C Series LaunchPad extends 0.500 inches.

The standard allows boards to extend below the 20/40 pins to include two extra ground and an extra VCC pin, but non of the boards use this since then they would cover the Tiva launchpad user buttons.

Moving onto the electrical side it's a minefield.

The first link has pin A6 as Analog In, while the second link has pin A6 as GPIO. Similar problems on pins A9, A10, B6 and B7.

Pins B4 has been "lost" to various changes which is a big deal when you want to maximise what you can get from 40 pins. 

Pins B6 and B7 have changed from being I2C to SPI. This has created an interesting mess for the Tiva Launchpad. It shorts GPIO ports PB7 and PD1 together and GPIO ports PB6 and PD0 together. This is to bring both I2C and SPI to BoosterPack pins B6 and B7, so two microcontroller pins are "lost". Interestingly the PD0/PB6 combination appear on BoosterPack pin C3 and PD1/PB7 combination appear on BoosterPack pin C4, which means you cannot use these pins for analog input and I2C/SPI at the same time.

Even the latest TM4C129x Development Board is affected with links to swap pins around.

TI, when deciding on alternate GPIO functions, it pays to put I2C SDA on the same pin as SSInXDAT0/SIMO and I2C SCL on the same pin as SSInXDAT1/SOMI. For the TM4C129XNCAD microcontroller, asused on te TM4C129X Development Board, there where two intances of this, but one instance swpaped aroudn, which neciessited the links on the development board. Would be good to put this on a microcontroller pinout checklist.

Dear Texas Instruments, it would be good to resolve the issues with the standard and put out a single official document. 

  • Yes,  The standard has evolved.  Let me explain a bit of the history, since it will help others to understand how we got here and the future.

    The original launchpad was simply a set of pin headers on a MSP430 dip device.  The pinout "standard" was nothing more than the pinout of that family of MSP430.  It was not planned to be a standard.

    The next step was the introduction of the Stellaris (now Tiva) and C2000 LaunchPads. We did our best to match the original pinout "standard".  Given different MCU cores and peripherals developed by different teams and in the case of Stellaris a heritage as a different company (Luminary Micro), it was a challenge. For example the LM4F120 / TM4C123 does not have a single pin that has both I2C and SPI the same way the original 430 did. Hence the zero ohm jumpers. In hindsight i agree those zero ohms have created as many problems as they solved. The 20 pin original LaunchPad became the de-facto standard.

    When creating the 40 pin LaunchPads we originally had the idea that the outer pins would be strictly the same and inner pins would be more flexible per MCU family.

    This past summer we got all of the MCU teams together and modified the standard slightly in order to in our opinion improve the eco-system that has been created around LaunchPads and BoosterPacks.  

    The primary change is moving I2C from the right side to the bottom left side.  This prevents the collision of I2C and SPI on the same pins.  The standard you see with this format will be the one we use going forward.  Pins now have at most a GPIO function plus one alternate function.  This simplifies BoosterPack and LaunchPad design.

    The DK-TM4C129X is not a proper LaunchPad but does have the BoosterPack pinout.  The timing of this board is such that it was completed and sent to manufacturing just before the new standard was final.  It will probably be the last board built to the old standard. 

    The Stellaris and Tiva LaunchPads are highly compatible with both standards.  An additional I2C unit is available at the new location.  The zero ohm resistors can be removed for BoosterPacks that don't use I2C on the right.  Other LaunchPads are coming to market with the new standard.  In the transition some BoosterPack / LaunchPad combinations may have to use software I2C or SPI.  We agree this is unfortunate but feel the long term benefit of the new standard to be worthwhile.

    We have created a hardware review board with members from each MCU family to review and verify compatibility to the new standard primarily for LaunchPads but also for internally developed boosterpacks.  With the diversity of TI's MCU line up 100% compatibility may never be the reality but we intend to be as close as we can.

    I believe we have dropped physical size requirements for the BoosterPacks.  The pin spacing requirements have not and to my knowledge will not change.  

    I realize this is a very long answer.  But my hope is that it provides some insight into where the standard came from and where it is going.  I believe the new standard provides a future for the eco-system with much greater compatibility across our MCU families.

    One final note, a benefit of this change is that it simplifies and improves the Energia experience across LaunchPads and should make Energia sketches more portable across hardware.

    Dexter

  • May I take this opportunity to applaud your obvious care & effort in providing this narrative?   I believe you've provided much clarifying - thus welcome detail.  So easy to attack - yet so, so hard to, "satisfy multiple masters - often w/different agendas/wants etc."  And - now thanks to your caring writing - so much more about your "standard's evolution" is clear.  Thank you, Dexter.

    At the risk of over-stepping (again) my outsider bounds - might the "selective fill" of 0-ohm jumpers - such that a "1 of n" connection routing becomes user enabled/selected - offer even more flexibility?  You can't fully predict all use-case implementations - but often you can provide for those, "most probable" - via this "1 of n" technique.  (we do this - several of our firm's boards - where "fine client/user/field tuning" is desired or necessary.)  There is a slight size penalty resulting from this 1 of n method - but our firm's experience is that "user flexibility" trumps slight size saving...

    Again thanks for the detail - rumor has it that some here suggest such... w/some frequency...

    For those interested - "1 of n" detail, (n=3, this instance).  Selective "fill" enhances user flexibility, no trace cutting required... Unselected MCU signals may be "escaped" to a header (on a different pin) or be captured via a jumper lead (inserted w/in thru-hole via) connected to & adjacent to each 0-ohm R. (and @ the MCU side)

  • Stellaris Dexter said:

    One final note, a benefit of this change is that it simplifies and improves the Energia experience across LaunchPads and should make Energia sketches more portable across hardware.

     Dexter thank pointing me to this view, zero OHM costed me a LM120 board, MSP430 is a more robust processorr and shorting pin together result in a less damage than Stellaris one... Why not using a 20-100Ohm resistor from both pin processor to launchpad pin?

     Thank highlight also TM4c129 DK board suffer this trouble so I can save an expensive board to burn, rework on BGA is expensive and also this time obtain a processor replacement is not so simple as getting board too.

  • Thanks Dexter,

    Yes, I knew the BoosterPack “standard” was an evolution rather than a planned effort. However, effort can now be put into making it a robust standard going forward. Existing boards will work in most cases and if a strongly supported standard becomes available, BoosterPack developers would be happy to do some minor modification to include headers to switch between the standard and legacy configurations.

    I can see that it makes sense to limit each pin to just one function. And you need some pins that are dedicated to be just GPIO. This will ensure that BoosterPack developers use the dedicated GPIO pins when all they want is digital I/O. I think that 8 Analog In, 4 PWM, 2 Timer Capture, 1 SPI, 1 I2C, 1 UART and 8+ GPIO will satisfy just about any BoosterPack requirement.

    As far as SPI and I2C on the same pins for MSP430 and otherwise separated, I don't see a problem going forward as BoosterPack developers can provide jumper to connect to I2C "for MSP430" or the standard.

    We need to get rid of the need fort compatibility table for BoosterPacks. BoosterPacks should work with any LaunchPad or board that provides BoosterPack connectors (the TM4C129x development board provides two BoosterPack connections!) This confusion is limiting BoosterPack’s adoption and growth. If the standard adopted in http://www.ti.com/ww/en/launchpad/dl/boosterpack-pinout.pdf is the only standard then BoosterPack developers can all jump on this standard and provide jumpers on BoosterPacks to make them "for MSP430". This effort will only occur if there is a well considered, robust and well documented standard.

    Now, when I connect to my product’s BoosterPack expansion port, I will be doing the opposite of what the standard wants to do. Rather than limit each pin to one function, I want to assign the BoosterPack function and then lump on as many other possible functions. That way I can use "any” BoosterPack or develop my own daughter board with maximum functionality.

    I would really make sure there is a dimension standard with regard to the board size. The 3-pin GND, GDN, 3.3V headers comes into play here. Do we want this connection or not? If so, the push buttons of the current LaunchPads are under the BoosterPack and probably inaccessible (but we get extra grounding and improved VCC noise reduction). If we don't want the three pin header then get rid of the extra connector, in which case the lower edge of the board is 150 mil below the lowest centre pin (or whatever it is for current BoosterPacks). This means that if you need more space you need to go up (horizontally). The maximum would have to be 1200 mil since this would bring it up to the same height as the underlying LaunchPad. 1200 mil may be a lot of space, but there needs to be a limit and the (now obsolete) limit of 350 mils has effectively been abandoned. I would keep the width of 2000 mil in all cases, however, as the Click BoosterPack adaptor has shown (it's 2100 mil wide) it does limit the ability to label the pins. I'd still go for 2000 mil wide in all cases and either forego labeling or make the labeling text smaller.

    I would also get rid of the GPIO assignments as a secondary function for some pins (eg PWM out and Timer Capture). That is, each pin has only one function. This way BoosterPack developers know exactly where to put their function.

    The issue of stackability also needs to be addressed. What guidelines are there to ensure sackability. I can only think of putting jumpers on any non-bussable pins so that as boards are stacked they can move around to which resource to use. In any case, it needs to be thought out and guidelines put out. 

    In summary, as the thread title says, some work needs to be done. Following this work a complete standard needs to published that replaces all the existing documentation (and mark it obsolete). The standard needs to discuss pin assignments, mechanical dimensions and how to design for stackability.

    We need to draw a line in the sand so that going forward this valuable standard is locked in. We'll then see many more BoosterPacks come on the market, more LauchPad adoption, BoosterPack adoption, BoosterPack connectors in al sorts of places (like my product under development) and many exciting new opportunities.

    Regards, Vito

  • Roberto Romano said:
    Thank highlight also TM4c129 DK board suffer this trouble so I can save an expensive board to burn, rework on BGA is expensive and also this time obtain a processor replacement is not so simple as getting board too.

    The TM4C129 DK does not suffer from the problem of shorting since it uses jumpers to swap the pins over. (One SPI is OK directly of the micro (BoosterPack 1) while the other (BoosterPack 2) needs to have pins selectively reversed deepening on whether you want the SPI or I2C (for MSP430) function on the "SPI" pins.)

  • I wouldn't get too concerned about squeezing functionality into the 20/40 available pins. Mikro Elektronika with their mikroBUS only have 16 I/O pins. These provide one each of Analog In, SPI, PWM, UARTT, I2C and GPIO. Sounds limiting, but they've got 75 different boards. And they look pretty impressive.

    Admittedly, they are not stackable.

  • Vito Casa said:
    The TM4C129 DK does not suffer from the problem of shorting since it uses jumpers to swap the pins over. (One SPI is OK directly of the micro (BoosterPack 1) while the other (BoosterPack 2) needs to have pins selectively reversed

     Thank you a lot Vito for all information we are sharing, I am not currently using that board and due to recent family trouble I delay a lot it use.

     About compatibility a great improvement can be also to convert MSP launchpad to a new revision incorporating the new 40pin dip and high end launchpad, high end MSP also can share SPI and I2C on different pin  same way of TIVA and also remove at all trouble of sharing shorting the two pin of low count launchpad.. so new light to old scene, is this way saving both version and opening a new world too? IMHO Launchpad appeared to be a clever response to Arduino, that a bad standard centered to a single old processor family, locked by an off grid "Shield", got a popularity due to MIT work but forever remain a poor design.

    Again IMHO a completely new design with some (possibly cheap) adaptor to glue up new and old family can support a completely different clever layout for both launchpad and boosterpack too.

  • Vito Casa said:

    I wouldn't get too concerned about squeezing functionality into the 20/40 available pins. Mikro Elektronika with their mikroBUS only have 16 I/O pins. These provide one each of Analog In, SPI, PWM, UARTT, I2C and GPIO. Sounds limiting, but they've got 75 different boards. And they look pretty impressive.

    Admittedly, they are not stackable.

    At first look  price appear as worst,  who need survive from business cannot gift board and development time, adapter solve problem of stackability by multiple socket on it and price is just slight more like any other dev kit with a flexibility and reusability of modules too, the ready to use board overcompensate this price and finally win over other solution saving time and development time!

    http://www.mikroe.com/mikromedia/plus/stellaris/

     I was looking few day ago these miniboard from TIGAL site where I bought Beagle Board Black to substitute Stellaris LM3S9D series...

  • Hi Vito,

    Thanks for this post. I have been searching for some time now, if I can buy any MSP430 boosterpack and use it for my Tiva Connected Launchpad, and details in this post answers a lot of my questions.

    However, this boosterpack website below adds to my confusion, as you can filter that these boosterpacks can only be used for this launchpad type. I hope TI make it clear to other readers, that MSP430 launchpad boosterpacks can be used for other launchpad type.

    http://www.ti.com/ww/en/launchpad/boosterpacks.html

    -kel

  • Markel Robregado said:

    However, this boosterpack website below adds to my confusion, as you can filter that these boosterpacks can only be used for this launchpad type. I hope TI make it clear to other readers, that MSP430 launchpad boosterpacks can be used for other launchpad type.

    http://www.ti.com/ww/en/launchpad/boosterpacks.html

    -kel

     A question is still remaining, I bought some old launchpad, some difference remained on series, TIVA stellaris has male/female stacking, C2000 (old I own) has male/male stacking MSP430 (old style) has no soldering side expansion is just single row male on component side.

     Are new version uniform across series? C2000 male/male is not a good idea, boosterpack can be inserted both way and just one is the right risking damage of board and boosterpack and reducing stackability to half the other board.

     Again Male on soldering side can result in some short circuits if no bottom socket is used, I plan build an High voltage boosterpack to evaluate a new 3phase driver on C2000 (isolated from JTAG) (may be TIVA too) and bottom socket is my preferred way to have all pin available to logic analyzer and board firmly locked to an isolating structure with limited access to high voltage parts also when isolation trasformer is in place. (Security transformer must be forever in place to avoid main voltage damage to person and instrument)

  • Going forward we have settled on the standard of Tiva/Stellaris style pass through stacking.  Male (pins) on top and female (sockets) on bottom.

    Dexter

  • Stellaris Dexter said:

    Male (pins) on top and female (sockets) on bottom

     Thank A lot Dexter, from pictures there where no visibility of C2000 launchpad bottom. It pose some issue to old hardware but it is a good job to uniformity.