I decided to follow my previous road test approach and blog about my early experiences getting started with TI's new Bluetooth 5 CC2640R2 Wireless MCU LaunchPad, which is a new addition to TI's SimpleLink platform. In other words, I'm sharing my rather subjective thoughts and impressions on whether the ducks (i.e. documentation, hardware, software, getting started guides, demo apps, etc.) are all aligned in a row, to get me, who has limited experience with the SimpleLink platform, developing quickly and with minimal hassle.
That's me on the right btw! (ducks courtesy of openclipart.org)
As they say, "You never have a second chance to make a first impression". So, starting with the packaging. It's nicely designed and pretty sturdy. The box feels great and the graphics are clean and minimal. When you get it, you want to open it... and get started working on your design.
On opening the box, you're presented with your entrée (the in-box documentation). The first is a double-sided printed leaflet, which has the getting started URL printed in smallish font on the one side, and the board's pinout configuration on the reverse side (which I see has a slightly different graphic style to the CC2650 pin layout diagram). There are also two glossy, double-sided folded pamphlets included. I noticed that the leaflet was marginally longer, dimensions wise, than these pamphlets, so I had to sit down for a moment with that one :-) I can hear many of you now muttering, but it's only a leaflet...
The one pamphlet is the standard terms and conditions for using evaluation modules, and the other is a generic "thank-you note" for purchasing an evaluation kit, which also includes a set of abbreviated terms and conditions for evaluation modules (appears almost identical to standard set, except the abbrev. T&C's aren't numbered).
For the main course, you get a compatible USB cable and the CC2640R2 LaunchPad inside an anti-static bag.
Nice and organised.
Right so. Now, what's for the dessert? To get that, you need to get onto a computer and enter that URL from the leaflet into a web-browser.
You are now presented with TI's Resource Explorer on the CC2640R2 LaunchPad landing page.
Oooh! Looks good, as I'm presented with a nice "first-dates" picture of the LaunchPad and some warm welcoming words saying... "Congratulations on choosing the SimpleLink™ Bluetooth® low energy CC2640R2F wireless MCU and LaunchPad™ development ecosystem!"
The next paragraph provided me with two important links, and a brief explanation about the MCU and how to make use of the platform provided in conjunction with the SimpleLink Starter app:
- The CC2640R2 LaunchPad kit (LAUNCHXL-CC2640R2); and
- the SimpleLink ultra-low power CC2640R2F wireless MCU.
I'm really liking this...
I'm now offered the opportunity to really indulge with the next section "A Closer Look at the Hardware".
Or so I thought. I felt a little cheated as that is just a picture of the CC2640R2 with it's clothes on. Maybe I should've chosen some other dessert, such as the CC2650, as that offered far more detail here.
Right, enough with the looking. It was time to follow the tasting menu or how-to-eat guide with the next key section "Getting Started". This section starts with some clear instruction, "Please visit CC2640R2 Project Zero page to be able to see a very basic project in action, including ability to program your device and connect to a phone. This is the quickest way to get started and a good starting point for your application". An html link to that page is provided.
This is where I diverted from the tasting menu and bypassed this section and went straight to the next course, namely the Out of the Box (OOB) demo. Seemed more logical to me.
Here, this section starts with a brief explanation, "To test the functionality of the Out of the Box Demo, download the Simplelink Starter app". Cool. Although I noticed that it only provides a link for IOS devices and not for Android devices. So, after a quick search on Android Play Store I found it and downloaded the app. However, my app screen (once connected to the CC2640R2) did not look exactly as per the document. I'm assuming that's because the document shows the IOS app and the Android app, which I downloaded, has a different UI.
The TI Resource documentation then went on to say "This app lets you control the LEDs, see the state of the buttons, send data to the UART and control the I/O signals on the LaunchPad headers". But not much more information is provided. What I did discover with my app is that if I pressed the buttons on the board (BTN-1 and BTN-2) the down arrow above the buttons in the "Keys" section on the app changed colour and there was an animation of sorts along the chained dots below (which for sensors is a graphical output). So, at least the app is able to see the state change of the buttons.
I could not see how to control the LEDs from the Android app, so was not able to test that functionality for the OOB demo.
I clicked on the "Advanced" button within Cloud View. Here, you are presented with three (well, four actually) MQTT options. There are two options for IBM, one for Dweet.io and one option for custom configuration. I tested the custom option by getting the app to link the Adafruit MQTT broker (io.adafruit.com) - I assumed this worked as I eventually did not get an error message. However, I could not find a way with the OOB demo to send data. Either that is because the OOB demo does not do that, or my custom config information was still incorrect.
I will soon find out once I get onto Project Zero...
Then, last but not least, we have the section "Advanced use of the LaunchPad hardware". There are two sub-sections here. The first, "External Debug Target", was a little confusing to be honest, as it jumps straight into the use of the XDS110 debugger. It probably would have been much clearer if some html links were provided here to allow the reader to learn more. The second sub-section was "Running the CC2640R2F from External Power", which helpfully explains the need to disconnect the 3.3 V jumper when connecting the board with an external power supply.
According to the Getting Started section, Project Zero is a very basic project in action that includes the ability to program your device and connect to a phone. When you click on the link provided you are taken to a new page within TI Resource Explorer.
This page starts with a nice intro, "The functionality and architecture of the example is presented on this page. It also explains how to flash and test the example on your LaunchPad. The next step is to load the project into CCS Cloud or download it to your computer for further development".
It turns out there is actually a third way to try out the project, which is to go to the bottom of the page ("Sources" section) and click on the button "CC2640R2 - powered by CCS Cloud". If your CC2640R2 Launchpad is connected to your computer via USB, it will then flash the LaunchPad with this firmware. It worked first time for me.
The first thing I noticed once the new firmware was uploaded was no more flashing LED's as per OOB demo. At first I thought it was not working, but when I opened up my serial monitor, I was presented with all the log messages as described in the project page. So far so good.
The next section "Connect to Project Zero with your phone" didn't quite work out for me to start with as I was not paying attention to the text. At first, I tried to test the example using the TI SimpleLink App I just downloaded for the OOB demo. But this does not work and was left pondering why (I missed seeing the tab on the screen for Android).
I used the nRF Connect App from Nordic, which works just as well as the BLE Scanner App. I was able to use the LED service (0x1110) to turn on and off the red and green LEDs. With the button service (0x1120) you have to turn on notifications and my app detected the button presses (state change). With the data service (0x1130) I sent a text string "hello" and this was displayed in the log message on the UART serial monitor.
Then, below the project description is the section "Sources". Here there is a very important link for the "ProjectZeroApp" project. You use this link to import the app code to CCS Cloud etc. I did not test this as yet (will form part of formal review). Then we are presented with a "10.000? feet overview" of how the application is structured. This will be really handy to help me understand the code.
Finally, there is a section "Additional Tools". Here it gives you the link to the CCS Cloud IDE. Thanks, that is exactly what I needed, as I have never tried the cloud IDE before.
So, I was quite happy with Project Zero, as it works, and this makes for a good starting point to get on with developing code.