RoadTest: AVNET IoT Starter Kit
Evaluation Type: Development Boards & Tools
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?: The B-L475E-IOT01A Discovery kit for IoT node and Azure Sphere MT3620
What were the biggest problems encountered?: Unfortunately, I had quite a few problems, but the biggest was to connect to AWS IoT, despite I’ve followed the Quick Start Guide and AWS documentation I was not able to connect the board to AWS.
Unboxing and First steps
The kit includes the board, a micro USB cable and a quick start guide to the initial configuration. This is very similar to other kits like Azure Sphere MT3620. The quick start guide has the first steps to connect to AWS IoT and a link to a tutorial to connect to IBM Bluemix IoT.
The board is based on Avnet BCM4343W SoC Module which includes WiFi (802.11 b/g/n) and Bluetooth Low Energy (4.1). The MCU used is a STM32F411 ARM® Cortex™ M4 MCU that seems to be enough to run the Cypress software stack without performance issues.
I like the peripheral connector that includes 4 GPIO, 3 Analog Input, 2 I2C, 2 UART and 1 SPI. It is compatible with Arduino Pinout, which for me is an advantage over Azure Sphere MT3620.
But I would like to have more built-in sensors, there is only one light sensor which is not enough nowadays. I would say that adding a temperature and humidity sensors in the board would be the minimum for this kit, and missing this is the main downside for the hardware for this kit.
There is a very good documentation about the hardware at http://cloudconnectkits.org/sites/default/files/5304-UG-AES-EVB-BCM4343W-V2_0.pdf .
The Cypress's WICED® (Wireless Internet Connectivity for Embedded Devices) is the Software Development Kit for this board that includes the WICED Studio and a software stack for supported boards with support to WiFi and Bluetooth stacks. The WICED Studio is an Eclipse based IDE that is pretty easy to use. The only problem I found was the BCM4343W board support is not included by default in the SDK, to fix that I needed to download a new package from https://github.com/CloudConnectKits/WICED-STUDIO-6.x_Platform_Files and add at \WICED-Studio-6.x\43xxx_Wi-Fi\platforms folder. Unfortunately this step was not part of the initial tutorial.
Connecting to IBM Bluemix IoT
To connect Avnet IoT Started Kit to IBM Bluemix I followed the tutorial from http://cloudconnectkits.org/product/avnet-bcm4343w-iot-starter-kit named “AV01: Connect to IBM Watson IoT using Avnet BCM4343W IoT Starter Kit”. At first look the tutorial seems to be easy to follow, but I’ve faced some issues that delayed my task to complete the tutorial.
First I’ve downloaded the bluemix_iot.zip as once again this file is not included by default in the SDK, honestly I would expect that everything needed to run a very simple example for this kit to be included on the SDK, but that is not the case.
Another issue that I face was some compilation errors, for example, there is a typo in bluemix_iot.c where SUBSCRIBED was replaced by SUBCRIBED:
After cleaning up the compilation issues there was another issue. The build time was huge at my machine, I’m using an old Lenoxo X1 Carbon with Intel i7 8 Gb RAM and 512 Gb of SSD with Windows 10 Pro and the full compilation took about 4 hours, even though I created a target build only for my example project it seems the full software stack from Cypress was build and this took so long. I’ve tried to move to another more powerful machine running Linux (Manjaro) but the problems showed bigger in Linux and I decided to return back to Windows.
Finally after build process completes, the example code works as expected and the good thing for IBM Bluemix IoT was that there was no need to perform a complex project setup in the cloud, that was very easy to follow:
There is also a serial port where user can monitor the board connection with WiFi and MQTT Broker
Connecting to AWS IoT
After successfully connecting the kit to IBM Bluemix IoT I’ve moved to connect the kit to AWS IoT, but instead to get an example and compile from source, this time I decided to use the builtin application that is shipped out of the box in the board. As I had flashed my board with IBM Bluemix IoT example I used a recovery process to restore the AWS IoT Application, the Avnet IoT Starter Kit App Reflash v2 was pretty easy to use, it uses a JTAG interface to reflash the board :
With AWS IoT example application restored to the board, it was time to configure it. Basically the application started a WiFi AP which I’ve connected to my PC and was able to configure the board via browser accessing a WebServer at 192.168.0.1 running in the board:
I’ve to create a new “Thing” at AWS to have access to my certificate, public and private keys and was later uploaded to the board through the configuration page:
Next step would be to see the example working, but here starts a big issue, the only one that was not able to resolve. Even after review the “Thing” configuration at AWS IoT and also redoing the steps to configure the board it was not able to connect to MQTT Broker from AWS IoT, I’ve many tried different solution but none worked out until this time:
The Avnet IoT Starter kit has good hardware, although for me it is missing two more sensors. The Arduino compatible connector and brings to the user the possibility to use very cheap expansion boards. The WiFi and Bluetooth LE also add the basic connectivity needed to IoT board out-of-the-box, no need to add an external expansion board to connect to the internet.
Unfortunately, the software has some issues that could make the user spend hours debugging from the time this board was launched these issues should be already fixed on newer SDK versions. I also noted that some tutorials date from 2016 and there are no new versions, so step-by-step configurations examples from cloud providers as totally outdated. The last point I’ve noticed was that there are few blog posts and questions at forums regarding this board when compared to Azure Sphere MT3620.
A concise review.. It was better , if you add some possible practical uses.