I signed up for a class on edX that involves microcontroller programming, and my kit arrived today so I wanted to start experimenting a bit, the only problem is, I have no clue how to connect the LaunchPad (TI Tiva C Series TM4C123GXL) to the breadboard. I was hoping to create a simple "traffic light" project, following Arduino Street Traffic Light - Breadboard Edition

The problem is that tutorial uses an Arduino. I see on the back of my LaunchPad there are several female headers marked PA#, PB#, PC#, PD#, PE#, PF#, 2 GNDs, RST, VBUS, and +3.3V.

I have a very (very) limited knowledge, so I know GND is ground and goes to the - column on the breadboard's voltage rail. Is there a difference which GND I connect? Do I need to connect the Reset, VBUS, or +3.3V pins? Are any of the P... pins similar to the digital out pins on the Arduino? I'm just trying to figure out which pins on the LaunchPad I need to connect to the breadboard.

I have extensive programming background, but hardware is a mythical beast to me, so if this should be obvious (or if what I was thinking is impossible) please forgive me.

PX#, PBx, etc are Port X, Pin #. PA1 is Port A Pin 1.

You would need a ground connection (all grounds should be connected together internally, i.e. they are the same), and depending on how you want to connect your leds, either 3.3v or Ground, and the other end into a PX#. (VBUS is the USB 5v, and not all pins on the Tiva are 5v tolerant!)

For the most part, the Tiva is like the ATMega on an Arduino. But the Arduino provides more than just hardware, it also adds a level of software abstraction by hiding certain tasks in libraries, like the digitalwrite function, which enables an output pin to a high or low.

The nice part is, the Arduino Language has a great port to Texas Instruments Launchpads, called Energia. It works with the Tiva Launchpad (Essentially a renamed Stellaris Launchpad) as seen here: Guide to the Stellaris LaunchPad (EK-LM4F120XL)

A fair deal of beginner and intermediate Arduino projects can move over easily with little rewriting, including your Traffic Light project.

• So it wouldn't matter which of the PX# I connect to the row with the LED? I'm also a little confused by what you mean by "connect your leds, either 3.3v or Ground" Do you mean run a wire from the Tiva 3.3v/GND to the LED, or plug the shorter leg of the LED into the + or - column on the breadboard? – awestover89 Dec 6 '13 at 15:15
• Nope, all PX# are essentially the same, especially when used as simple GPIO (General Purpose Input/Outputs). And by leds to 3.3v or ground, I mean sometimes you need to sink current instead of source it (pull vs push). If you connect the led + resistor to ground and a PX# pin instead, then it's normal logic (0 or Low would mean off). If you connect your led + resistor to 3.3v and a PX# pin, then your code would have an inverted logic (1 or High would actually mean it is off). – Passerby Dec 6 '13 at 20:00
• I would suggest to use driverlib. It provides easy initialization of peripherals as I've used it in many projects. ti.com/tool/sw-tm4c – lucas92 May 2 '16 at 13:45

All grounds are connected , LED's should be connected to the female header pins with current limiting resistors. You can use the GPIO poster to figure out the positions. Here's some sample code that uses the GPIO you can copy paste directly on Energia.

void setup()
{
// initialize the digital pin as an output.
pinMode(PF_1, OUTPUT); // red led on board
}
void loop()
{
digitalWrite(PF_1, HIGH);
delay(500);
digitalWrite(PF_1, LOW);
delay(500);
}


Also thh edX class will use IDE from Keil as a compiler not Energia