Tiva C Series TM4C1294 Connected LaunchPad - Review

Table of contents

RoadTest: Tiva C Series TM4C1294 Connected LaunchPad

Author: hlipka

Creation date:

Evaluation Type: Evaluation Boards

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: mbed, Wiz550IO

What were the biggest problems encountered?: Missing documentation with regards to installing / using the software under Linux

Detailed Review:

Having some experience with the MSP430 Launchpad, and also with the Stellaris line of micro controllers I was quite delighted to finally see an Ethernet-capable Launchpad from TI. I had already an idea what to try with it.

Unboxing - first impressions

The unboxing was unspectacular. Like a typical Launchpad (or other TI development kit), the packaging is nice and solid. On a first look, one notices that the board is quite large (more than twice the size of an MSP430 Launchpad). To a certain extend this is due to needing to put the Ethernet connector somewhere, but a large part of that extension is due to having two complete sets of Boosterpack connectors.

Speaking of the connectors: I'm missing one of the small, but important details: the MSP430 Launchpads feature a small rocket symbol that indicates how to insert the Boosterpack (the Boosterpacks feature the same rocket, and both should line up). There are large arrows on the board, but the Boosterpacks miss a similar indication. And the Launchpad symbol that is on the board is rotated by 90 degrees...


During unpacking I also missed the software CD that I come to expect from all development kits. Instead, there is just a small quickstart guide telling me where to download all the needed files. Since they are quite large, this takes a while. Following the quick-start guide also reveals that it was written with Windows only in mind. This also extends to basically all the available software (but more to that later).


Fortunately the demo board is already pre-loaded with a demo application. It allows to get a look at the switches and the local temperature, and also to control the LEDs. There is no way to get access to all the other pins though. Such a generic UI would have been nice. Since the demo works via the board connecting to an external provider (Exosite), there is a significant delay when interacting with the board. It also means an Internet connection is required - it won't work just with a local network available. I would prefer to have something available which doesn't need that (and would also not need me to register with an external provider).


OK, what about the Launchpad itself? It came equipped with everything that is needed - USB cable and even a retractable Ethernet cable. Thats a nice touch. Big bonus points to TI for providing a comprehensive pin-out guide, showing all the connections and how they are mapped between the booster packs and the Tiva chip. The pin names are also on the board itself, but unfortunately hidden on the bottom.


The board also features a large double-row connector on one side (not populated) that can gives access to probably all meaningful signals of the Tiva. I'm not sure about its usefulness though. Since its two rows it cannot be used for breadboarding. For adding a full-fledged connector its just too large (98 pins). Doing away with it might have make it possible to add mounting holes in proper locations (to me they seem to be in random locations). Also, doing away with the second set of booster pack connectors might have made it possible to make the board smaller, and to make the debugging part detachable. I always found that a nice touch on the MSP430 Launchpads. Removing that part makes the board even smaller, and allows better debugging when using the board in a real application (since the debugger than can be connected via cable).

I also missed a standoff right below the push buttons. Pressing them tilts the board over, which will exert pressure on both USB connectors. So they are in risk of getting ripped off. (Apart from just making this doing the button presses kind of awkward - when touching them they start moving away from the finger tips...)


Enough nit-picking, what did I do with this board? Originally I planned to do Internet-based temperature monitoring. The heating system in our house is in risk of shutting down sometimes. And two years ago this happen in winter when we were away for vacation. So I want to get a look at whether the systems works, and get a proper alert when it doesn't. So the Connected Launchpad is kind of the ideal solution for that: it has Ethernet on board, is powerful enough to handle all the needed software. And with the TMP006 Boosterpack there is a neat temperature monitoring solution available. I want to use to measure the temperature of the pilot flame of the heater, so I get an early alert when the heater shuts itself down.

Software woes

So after playing around with the demo, I went ahead and started setting up the development environment. The CCS version 5.3 I had already installed didn't know about the Tiva 1294, so I downloaded the new CCSv6. The installation in Linux was quite painless (I'm on Kubuntu 14.04), the case of one missing library was documented and can be solved easily.


Unfortunately all the other software was not so easy to handle. TivaWare comes with a Windows installer only, so one need to apply some tricks. The file can be renamed as ZIP file and then it can be extracted. But the documentation assumes that the installer does run and installs it in some default location on a Windows machine. The TM4C123G Launchpad site fortunately links to the guide how to import the TivaWare projects and examples into CCS. Following these guidelines does not work perfectly (some additional files are needed for some of the projects, but this due to the project importing functionality of Eclipse), but it was a good starting point for getting everything to work.


TI-RTOS is only a little bit better. In CCSv6 it should be installable via the integrated AppCenter, but this does not open. According to the e2e forum, it seems to be an incompatibility with the integrated browser used by CCS. So one needs to download the installer, which is available for Linux. If you are careful to install TI-RTOS to the same location as done with CCS (by default, its /opt/ti), and then run CCS as root for the next time, it will pick up this new component and add it to CCS. If you install it to anywhere else, this does not work.

First project

Having done that allow to create a new RTOS project. I wanted to use because I hope that it makes the program I need to write easier, because it allows separation of concerns (measuring temperature, logging it, and create alerts). TI-RTOS comes with demo programs (even with one for the TMP006 booster pack, which I wanted to use), but there are no CCS projects for them. So I created a new project, copied over the got and started compiling. After fixing all the errors that come up (one also needs to add TivaWare to the project, add the includes and the libraries to the linker), this was successful.

Transferring the program to the Launchpad MCU was painless. The ICDI debugging interface was recognized automatically, there was no need for manual configuration or using the LMFlash programmer. CCS also automatically captured the 'printf' output from the program, which was a nice suprise (as Linux user one is used to always have to correct something manually). But the program hangs at startup, and there was no further output.


After some debugging I found that I just inserted the BoosterPack into the wrong headers. #1 were it should have been is the one over the debug interface, not the one in the middle of the board. Switching that made the program run perfectly.


So whats the final verdict? The board as such is great. It packs quite a bunch of functionality and features into a small form factor. Also, there is great deal of documentation and demo code and projects available. TiveWare and TI-RTOS make developing program much easier. On the other hand there are a number of usability issues with both the board and the documentation. Such small issues like where to have the pin numbers on the board can make errors easier to make, and they could have been so easily avoided. Also, the missing documentation with regards to Linux is a major issue. Its possible to get everything to work, but some parts can be a real hassle. Thats why demo software and support materials got some points removed in the final score. But I would still use this board again, it was a good choice for my project.