What is the TI Stellaris LaunchPad in FIRST Choice?

Now that it has been open for window shopping for several days, I wanted to briefly explain to the community what TI was thinking when we decided to donate some of our Stellaris LaunchPad Evaluation Kits to FIRST Choice.

Like the product description says, the Stellaris LM4F120 LaunchPad is an evaluation kit for an ARM Cortex M4F based Microcontroller. What it doesn’t say, is how this is of any use to you, the FRC team.

With a simple flash of some new firmware, the LaunchPad can enumerate as a generic USB gamepad. In fact, we’ve written code that has it enumerate as a composite set of two gamepads. Having the LaunchPad enumerate as a gamepad makes it trivial to interface into your driver stations. To the driver station, the LaunchPad looks like any set of two plug and play gamepads or joysticks.

Additionally, we are working on a Breakout BoosterPack (an expansion board, like an Arduino shield) that breaks all the signals out to screw terminals that make it really easy to connect custom buttons, potentiometers, and other circuits.

So with the LaunchPad, Breakout BoosterPack, and the gamepad firmware, you will have access to:
[li]8 analog inputs [/li][LIST]
[li]X, Y, Z, and XRotation for each gamepad[/li][/ul]
[li]22 digital inputs[/li][ul]
[li]11 per gamepad[/li][/ul]
Please bear with us as we get more documentation online. We plan to have the BoosterPacks ready in distribution, a webpage with step by step instructions, the firmware ready for download, and a few other resources by the time (or soon after) FIRST Choice opens for purchasing.

In the future we will also be able to release the source code for the gamepad firmware. This gives you the opportunity to change how the gamepad works to better suit your needs. For example, one could connect motion sensors to the LaunchPad and modify the gamepad code to do some pre-processing before it sends the data over the gamepad data structure. Did somebody say power glove? :wink:

Stay tuned for more information!


We’re really excited to see that the LaunchPad has sold out on FIRST Choice! Thank you all for being patient as we got everything ready.

If you missed out on getting a LaunchPad from FIRST Choice, you can still buy them from both DigiKey and the TI eStore:

DigiKey - $13.49 + Shipping
TI eStore - $12.99 (Free Shipping)

You can now order the BoosterPacks from DigiKey and the TI eStore as well:

DigiKey - $27.98 + Shipping
TI eStore - $19.59 (Free Shipping)

Remember, you can use your 2014 DigiKey PDV and take $25 off your DigiKey order. If you’re not using the PDV for anything else, then DigiKey may be the less expensive option (depending on shipping).

Note: At the time of writing this post. Both DigiKey and the eStore were showing “out of stock” or very long lead times. This isn’t accurate. We’re waiting on a flag to propagate through the system that indicates the real status of “in stock.”

Step-by-step instructions on how to use the LaunchPad and BoosterPack to create a custom control interface on your Driver Stations can be found here at the TI Wiki:

Using the Stellaris or Tiva C Series LaunchPad in the FIRST Robotics Competition


How would we wire the Stellaris without the Booster Pack?

The LaunchPad can also be wired up using the header pins on the top. Basically, the same way you’d connect to an Arduino if you weren’t using a shield.

One solution is to use something like SchmartBoard jumpers.

First, take a look at the GPIO Breakout BoosterPack User’s Manual. There is a schematic and several tables that will help identify the LaunchPad signals used by the Gamepad Firmware so that you can connect them without the BoosterPack.

Looking at Table 2-3. Standard BoosterPack Pinout Compatibility you’ll see the columns divided into Pin, Breakout Use, and Standard. The Pin and Breakout Use columns will help you translate which gamepad button or analog input is mapped to which LaunchPad header pin. The LaunchPad has these headers labeled as J1, J3, J4, and J2 (from left to right) on the board. Pin one (e.g. J1.1) starts with the top most pin (with the square pad).

Table 2-2. Tiva Port and Pin Mapping may also be useful. You can match the Breakout signals with the ports labeled on the LaunchPad board.

Digital inputs will be wired similarly as described on the wiki page, but you will connect the switch and ground wires directly to the port and ground pins on the LaunchPad.

Analog inputs will be a little trickier because the ADC on the Stellaris (or Tiva) microcontroller has a maximum source resistance requirement of 500Ω. The BoosterPack provides you with an amplifier that allows you to connect a very wide range of potentiometers rather than the less-than 500Ω range without it. Otherwise, wiring potentiometers is just as similar without the BoosterPack.

If you’re just using buttons or other digital signals, then it is almost a toss-up. The BoosterPack makes it a little simpler, provides ESD protection, and has mounting holes that the LaunchPad does not have.

If you’re also using analog, I would recommend using the BoosterPack, though it isn’t impossible to do without it.

Hope this clears it up a bit.


Thank you TI!

We are looking at using the TI Stellaris LaunchPad for a “project” :smiley: on the control station but we would definitely need access to the code to finish it. How far out are you looking before the code is released? I know we could do it with a Arduino as well, but since this neat toy came in the KOP we wanted to look at giving it a try.



We’re happy to still be involved in some way now that Jaguar is at a different home. :slight_smile:

The source code will be coming out with our next TivaWare release which should be at the end of January.


Has the source code been released? We would really like to use the Launch pad but with out the source code we wont be able to use it the way we would like.

Hunter Movius 4106

Does anyone know if the TI Stellaris can be used to process data and send it to the cRIO? Similar to an Arduino


We are close to releasing the software on our website, however it may still be a couple of days. PM me and I may be able to send you a beta release.

Out of curiosity, how are you planning on using it? I’m sure the community would love to see some creative uses. I may be able to add your project ideas to the wiki page as well.

I responded to your PM, but I also wanted to respond here for others to see.

The simplest way (hardware wise) would be to program the LaunchPad as an I2C slave since the cRIO can only be an I2C master. You could also use SPI.

Serial may be simpler on the software side of things, but it would require a TLL to RS232 transceiver to shift the LaunchPad voltage levels up to the RS232 levels of the cRIO.