Wednesday, January 13, 2016

Texas Instruments Educational Boosterpack II - Review

23331_LaunchPad_Booster_MKII.JPG

I would like to thank Element14 and Texas Instruments for giving me the opportunity to review the new MSP432P401R and the Educational BoosterPack MKII. Seeing a new low power device from Texas Instruments excited me as the MSP430 is a proprietary core that for some reason some people turn away from. I was looking to compare the support and easy of use to that of previous TI launchpads I have used in the past. Also the MKII brings a whole new offering in the launchpad space allowing those wanting to learn embedded software a single test bed to experiment with so many different sensors and protocols.

Introduction
The new MSP432 uses an ARM Cortex M4F core which opens Texas Instruments up to compete with all the latest innovations by other manufacturers in this space. While Texas Instruments has had the MSP430 in the low energy space for a long time, it is a proprietary core and this has caused some potential users to skip over it. The choice of a M4F core gives the user a lot of options while still, hopefully, keeping power consumption to a minimum.

When I applied for this road test I was really excited as I am an avid user and promoter of Texas Instruments products for various reasons. Firstly, the launchpads I have used in the past have all been very well supported with demo code that is well commented and easy to manipulate. This allows for a project to be easily and quickly started by simply joining a few projects together to get the skeleton of the project completed before adding any task specific code. The second reason I enjoy Texas Instruments products is their documentation. I have not found another manufacturer with such well and clearly written documentation.

MSP432P401R

When I applied for the road test I was interested in the MSP432P401R for a few reasons. The first reason was the ARM core. With the basis of the core being an ARM Cortex M4F this was something new and something that if it could be as low energy as Texas Instruments wanted us to believe it to be would be an interesting and very useful controller. The second reason I was interested in this launchpad was the EnergyTrace technology. Having seen the same idea first from Energy Micro with their Geko Boards a few years ago (now bought out by Silicon Labs), I was wondering how Texas Instruments implemented this functionality. Lastly I was wondering how well the MSP432P401R was supported by both Code Composer Studio as well as Energia. Included in this was how well third party applications such as Temboo and 2lemetry could be integrated with the MSP432P401R through either Code Composer Studio or Energia.

MSP432P401R Board Layout and Specs
As with all previous Launchpads the the MSP432 comes with an onboard programmer and debugger. The open source XDS-110-ET is included on the top of the board in away that should it be desired it can be fully isolated from the target controller. The extent of isolation can be selected using jumpers between the two blocks, a user could select from 5V, 3.3V, UART jumpers when isolating the two sections. There is also the possibility to use an external programmer via a JTAG connector. Along with the built in programmer is a backchannel that allows for serial data to be transmitted back to a PC without the need for a UART - USB adapter.

2016-01-12 15_47_17-www.ti.com_lit_ug_slau597a_slau597a.pdf.png
Figure 1. MSP432 launchpad overview

2016-01-12 15_48_14-www.ti.com_lit_ug_slau597a_slau597a.pdf.png2016-01-12 15_47_44-www.ti.com_lit_ug_slau597a_slau597a.pdf.png
Figure 2. MSP432 launchpad layout and isolation

In terms of user interfaces, the MSP432 has two user input buttons and two LEDs. On this launchpad LED2 is a RGB LED allowing for a full array of colors to be output via a PWM signal. Along with these interfaces are the two 20 pin header pins that allow this launchpad to interface with any of the many boosterpacks created for the launchpad ecosystem. It should be noted that the pin assignments follow the launchpad pin assignment standard. In addition to the these 40 pins there are an additional 30 pins broken out but without headers at the bottom of the board should some functionality be needed for a project.

2016-01-12 16_21_19-www.ti.com_lit_ml_slau596_slau596.pdf.png
Figure 3. MSP432 launchpad pin configurations

Educational BoosterPack MKII
I was also interested to see the Educational Boosterpack as it incorporated a lot of interesting inputs and outputs (display, servo control, buzzer, sensors, etc.). This is useful for someone looking to start learning embedded programing as there are numerous devices to play with without needing to wire anything extra to the launchpad. With the layout of the board and the incorporation of the sensors, this boosterpack seems to have a large advantage over a lot of the other boosterpacks mainly because of it’s large array of possibilities.

In order to help a novice as well as an experienced programer, everything is meticulously labeled, part name and header assignment, on the devices (RGB LED; blu: J4.37, grn: J4.38, red: J4.39, Buzzer; J4.40  , Gator hole; J4:34, Servo; J2.19,  etc). This makes matching a device to a pin a lot easier as well as allowing for stand alone use through jumper wires as it is clear now where to connect a jumper to access a particular device without referencing the schematics.

Educational BoosterPack MKII Specs
The MKII follows the standard boosterpack pin assignments allowing for the MKII to be used in a stack with other boosterpacks. Interestingly enough the MKII incorporates stacking pins on top which if used would block the screen as well as could only be used by a board that could accommodate the joystick.

On the MKII there is a large bag of goodies to play with. Starting with the inputs, the most noticeable thing about the MKII is the joystick and how it helps give the whole board a game console fee and lookl. The joystick is a two axis and one push button joystick. The inputs on the two axis are both analog and the pushbutton is digital. Along with the joystick giving the console feeling are the two pushbuttons, these are simply two standard press to connect push buttons.

Next we have some interesting sensors. Instead of including a standard contact temperature sensor, Texas Instruments and Circuitco have chosen to use a infrared sensor instead. This allows for a larger array of uses as well as opening the door for more learning opportunities in a real educational setting. Also included is a light sensor that again is a non-contact sensor. Measuring values without coming into contact with what you are measuring is always a peculiar thing, and for those in an educational setting this can be used to introduce other related topics. Lastly in the sensor package, there is a 3-axis analog accelerometer. The interesting thing about including such a sensor is that again it incorporates multiple learning aspects. There is obviously the acceleration aspect, measuring how the device accelerates is interesting but then to do so using analog signals incorporates the fact that the world is analog while microcontrollers are not.

Lastly there is also a microphone for sound input and gator connectors that can presumably used for any type of input. While this last one may not be high on my list of interesting inputs/outputs I’m sure there will be someone who will find a very interesting and unusual use for this connection point.

The outputs, while there are fewer of them,  are just as interesting as the inputs. As a basic indicator, there is a RGB LED. This is great for basic debugging as well as displaying a vast array of colors using both PWM and on/off control. For a more complex visual output , there is the 128x128 color TFT display that uses SPI. While I have not been able to get this to do anything outside of the demo code provided, this opens up a lot of interesting options. It should also be noted that the control line for the backlight and the red LED share the same pin through a jumper and as such only one can be used at a time. On the sound side there is a buzzer, while one user has noted that it would be nice to disconnect the buzzer from the available PWM pins through a jumper, this is not possible and therefore one PWM pin is used up by the buzzer unless desoldered from the board. Lastly is a servo output, this is nice as it would allow input from an accelerometer to influence a mechanical output. While Texas Instruments has clearly labeled the three lines to the servo (GND, POWER, SIGNAL) it should be noted not all servos follow this arrangement on their connectors.

2016-01-12 15_40_43-www.ti.com_lit_ug_slau599_slau599.pdf.png
Figure 4. MKII boosterpack overview

Unboxing
The unboxing of the kit was a mixed bag of tricks. The MSP432 was packed in the new standard launchpad box. The launchpad was in an anti-static as would be expected and under a side flap in the box was the needed USB cable. On top of everything in the box was the quickstart guide along with the regulatory approvals.

IMG_1652.JPG
Figure 5. Unopened boxes of both the MKII and the MSP432

IMG_1659.JPGIMG_1658.JPG
Figure 6. Unboxing the MKII and the MSP432

The Educational BoosterPack MKII was packed in a non-standard box. The large white box reminded me of a previous road tested from Texas Instruments that was also a new product (TI C2000 InstaSPIN™-FOC LaunchPad w/ Motor Driver). At this point I was concerned as I was remembering the issues I and others had in getting the C2000 to do anything other than flash a LED or run the quickstart demo.

Getting Started
After the package arrived I was eager to get started. Opening the boxes and mounting the Educational BoosterPack MKII to the MSP432P401R was easily accomplished due to the 40 pin headers that easily allow for boosterpacks to connect to most of the launchpads in the launchpad family.

Opening Code Composer Studio (CCS) was the next step, as I use CCS for all my work with Texas Instruments controllers. I then attempted to import a project for the MSP432 but to my dismay there was an issue. I was unable to import the project due to an issue that I am no longer able to replicate (CCS has been updated and the issue apparently fixed). This issue persisted until I was able to revert back to a previous version of CCS.

Once this issue was resolved the next step was to run some demo code. Texas instruments provides a good deal of demo projects for this setup (MSP432 + Educational Boosterpack), there are at least 5 projects to get started with, each focusing on a different input/output on the boosterpack. When attempting to compile and run these projects a new error would pop up.

“Message: CORTEX_M4_0: Error connecting to the target: (Error -1063 @ 0x0) Device ID is not recognized or is not supported by driver. Confirm device and debug probe configuration is correct, or update device driver. (Emulation package 6.0.14.5)”

Once this had happened the MSP432 would no longer respond and I had assumed I had bricked the launchpad, thankfully I was not the only one with this issue. After following some simple steps the MSP432 was back up and running but I was still not able to run the joystick or accelerometer projects without this issue reoccurring.

By this point I had spent a good deal of time attempting to get the kit working with CCS and was not having much success. While I did want to try out EnergyTrace as well as third party applications I was hitting a wall to often and was feeling it was time to wait for Texas Instruments to fix CCS before reattempting my tests.

Energia
After having no luck with CCS I decided to give Energia a try. Since Energia is supposed to be an Arduino type user experience, that is easy to get started with little to no background in programming when you start I thought this was the place to go. Sadly this too was to not be, there appeared to be an issue with the screen driver to which a solution was posted, but I was unable to get this to work. Besides this issue there were issues with compilation of other sketches as well as issues programing the MSP432 though Energia. This last issue is an incompatibility with the firmware on the XDS 110-ET on board programer.

Next Steps
Moving forward with board and boosterpack will be a slow process, with no clearly defined projects (although an IoT type project may be in need for a cold room environment monitoring) there is nothing pushing to make the board work before Texas Instruments fixes the issues with both CCS and Energia.

Hopefully the fixes will come soon and at that point I will get a chance to try the MSP432 with EnergyTrace to see how it compares with what Energy Micro had done a good few years back. I would also like to eventuly see how easy it is to use this board with an online graphing site such as Xlivley.com, plot.ly or 2elemetry.com. As for the educational boosterpack, if I could get something working with the joystick and buttons I have someone who would really like to play with that.

Conclusion
At this point in the the product life I would be hesitant to go out and get this board just for the fun of it. If someone had a project in mind and this fitted there needs then I’m sure the demo code for the MSP432 would serve just fine. That being said with the speed Texas Instruments appears to be fixing the mentioned issues I do not believe it will be long before this will be a really good board to get started with ARM Cortex controllers.

With respect to the boosterpack the demo code is also getting patched at a reasonable pace. It can be seen that Texas Instruments is actively working to ensure these issues are resolved quickly. With respect to the hardware, this is a very well thought out board. It has a great mix of inputs and outputs as well as different protocols. In an educational setting I would find this to be a very valuable yet cost effective tool for teaching the basics of electrical projects.

Overall while I have had frustrations with these boards I am happy in that I know they will be useful and soon the demo projects and surrounding issues will be fixed usable and I will be working on my next project with yet another Texas Instruments launchpad.

Links that Solved Issues

LaunchPad MSP-EXP432P401R – Beginning


How to unbrick a MSP-EXP432P401R

CORTEX_M4_0: Error connecting to the target: (Error -1063 @ 0x0) Device ID is not recognized or is not supported by driver. Confirm device and debug probe configuration is correct, or update device driver. (Emulation package 6.0.14.5)


CORTEX_M4_0: Error connecting to the target: (Error -1063 @ 0x0) Device ID is not recognized or is not supported by driver.


MSP432 LaunchPad: Error connecting to the target since upgrading CCS 6.1


MSP432 LP, and the EPB MK II examples for Energia?


When I Import MSP-EXP432P401R_Software_Examples' sources toCSSv6.1 , it can't be build successfully.


6.1.1 Debug Error using MSP432P401R Launchpad


msp432 problem with XDS110 and firmware version 2.2.4.2




Original post on Element14 can be found here