RoadTest: TI DK-TM4C129X Connected Development Kit
Author: ss_shrenik
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?: I found there are boards which does more or less comparable functionality like HY-LPC1788-CORE Board or STM32F4 board which comes with touchscreen, but Tiva C Series development board is feature rich and has many on board peripherals which are needed for development of many projects. E.g. SD card, Speaker, Ethernet, Touchscreen, USB OTG. And most important part is SDK provided is very useful.
What were the biggest problems encountered?: While creating project my board is resetting while executing code, I couldn't use debugging in Keil as the debugging process was getting stuck and i needed to close and open the Keil project again. So main problem I came accross debugging this board with keil UV4. Hence I used LM flash programmer to flash program.
Detailed Review:
Overview of Use of Board in application -
The application what I thought with this board is result of feature what it provides. First it has big resistive touchscreen and another is it has ethernet interface. The application what i did is HMI over Network (Human Machine Interface) which will simply controls motor on another network node. Here I used python program with pygame library to emulate rotating motor shaft. I found one sample code which makes rotating shaft online, and I added my socket code in that in order communicate with Tiva board over TCP. Anyway, host side program is not important here, its only to show that the demo is working as I didnt have motor to interface with. Tiva board sends data based on touchscreen actions in order to take decision of program running on host.
Development board details-
The Tiva™ C Series TM4C129x Connected Development Kit is a versatile and feature-rich engineering platform that highlights the 120-MHz Tiva C Series TM4C129XNCZAD ARM® Cortex™-M4 based microcontroller, including an integrated 10/100 Ethernet MAC + PHY as well as many other key features.
Features
The kit also includes an In-Circuit Debug Interface (ICDI) and extensive software offerings that provide libraries for key functions, source code examples, and important utilities to allow professional engineers to build and debug C code-based solutions quickly and efficiently in one of the several supported integrated development environments (IDEs), including Keil, Mentor Embedded, IAR Systems, and Code Composer Studio™.
Rather than going into all features and details about boards again here, you can find all related documents and SDK on this link http://www.ti.com/tool/dk-tm4c129x
Implementation details -
The idea was clear in my mind when I thought of this project, I just wanted to look in to some sample code which will do TCP connection which I can use for communication interface between Tiva board and The other node. I found one sample code which implements a simple basic webserver which use GET method. The sample code project is enet_up which you can found in SDK provided for this board.
I added other needed library files such as touch.c, hello_widget.c, etc. which enables touchscreen APIs and widget framework in order to simplify button implementation those are needed to implement basic HMI which will control Motor emulation
As you can see above, I created two pushbuttons by referring TIs graphics library example code which are really nicely written and detailed manner. The Screen above gives Motor On/Off and Rotation direction control. The touch event will send data over TCP in order to control the motor, on host machine side python program will poll for data and accordingly controls the rotation of emulated shaft.
I used Keil for programming on Tiva side and python on host machine. I didnt come across problems while testing the sample codes, only the problem I got is debugging Tiva board with keil UV4. I didnt try to find out the reason because I didnt get much time to spend on this project, but soon i will post about the reason of debugging failure. The working code and python program is attached with this post so that if somebody wish to test and give suggestion they are welcome.
Conclusion-
I found this board is feature rich and powerful in order to create multiple IoT applications. You can add more peripherals easily thanks to the addition pin headers are given on board for boosterpacks which can again increase functionality of the same board. According to me this one board should fulfil most of developers projects with the use of additional hardware. The only cons I can say is cost which is little high compared to features and functionality. Documents for the APIs are very well provided in SDK. USB OTG, Ethernet gives more options for communication interfaces and projects which makes use of such peripherals.
Finally, working demo video as I always post though I have some bugs in current project, I cant hold it back hence posting.
Watch it here
Thanks element 14 once again for giving me opportunity to review the product through my application ideas
Regards,
Shrenik.