RoadTest: AVNET IoT Starter Kit
Author: brianchilders
Creation date:
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?: There are starting to be a large number of products similar to this one - a quick and easy link to use would be this: https://www.newark.com/webapp/wcs/stores/servlet/Search?categoryId=800000134029
What were the biggest problems encountered?: It wasn't a problem for me, as I was able to find the correct documentation after some hunting around, but for others who may not be familiar with AWS IoT and doing software development, the documentation is not in one cohesive place / format and is some what dated. Due to my experience with AWS, I had success with the IoT device. This is why I would rank "Support materials were available" as a "9". They were available, just had to hunt a bit for them. Had the documentation been updated, I would have given it a "10".
Detailed Review:
By Brian Childers - February 2020
1. Summary Brief / Intended Audience
The RoadTests & Reviews of the Avnet BCM4343W IoT Starter Kit goal is intended to reach the entire element14 community at large, from someone new at this site and just getting started in IoT, all the way to a seasoned veteran who knows IoT inside-and-out and works with this type of technology in their sleep. If you find this Road Test helpful, please Share, Bookmark, Like, or Comment on this review. Thank you! If you need any clarifications, please comment and I'll be glad to expand / go into detail any questions you may have about this product.
Note: Making a personal observation here - in the element14 forums, I have recently noticed an uptick in confusion regarding the purpose of the element14 website. element14 is not a company that sells products, but rather, a social community platform for hobbyists, electronic engineers, and nerds like me and so on to discuss electronics, projects, and other related topics. element14 provides links to websites that are doing the actual selling and fulfillment - https://www.newark.com/ being one - (e.g. online storefront like Amazon). The company that manufactured this starter board is Avnet. Kits may also use Linux or other open source software which are not "officially" supported by device manufacturers. This means you may need to search this community (as well as other online communities) to find out answers to your questions regarding Linux / open source software used in a kit. |
2. About Me / Road Test Interest
Computers, technology and electronics have always piqued my curiosity, so it should come as no surprise then, that I work in Information Technology for my profession in the med-tech / healthcare sector. I have worked with AWS for the past four years and am Associate-level certified as a Developer, Solutions Architect and Sysops Administrator. Recently I have been exploring Machine Learning / AI / Big Data and IoT with AWS services and submitted an application for this Road Test / Review with the hope that this would be a good way to stay current and get some practical hands on experience with AWS IoT Core. Please note that I will have an inherent bias favoring AWS as I've worked with AWS services. However this IoT Starter kit may also be used with the IBM® Watson™ IoT Platform as well.
3. History / Why Internet-of-Things (IoT)?
IoT is actually not a new concept, rather it started in the 1980s with a Coke machine.[1][2] While I wasn't at University when the first version of the CMU Coke machine came out, I do remember being able to use the 'finger' client to know what the status of the Coke machine was while I was at UW-Milwaukee. Fast forward 37 years from now, and we no longer need a PDP-10 to maintain state, we have small micro-processor units that are able to be wired up to anything that generates data. (Note: Some may say that the "Prancing Pony Cooperative" was the first IoT device [3] - while I agree that it was connected to the network and you could pay for the item against your account, the vending machine did not maintain "state", e.g. it was unknown if the machine was empty or full.)
In reflecting on the concept of Internet-of-Things (IoT), the collection, analyzing and use of data has always been a part of how we operate. What has changed, is the speed of which we are able to collect, analyze and modify our behaviors with data, which is made possible in part, with IoT.
[Avnet BCM4343W IoT Starter Board]
5. About the Avnet BCM4343W IoT Starter Board
The Avnet BCM4343W IoT Starter Board uses an Arduino (Arduino UNO R3 [4]) form-factor baseboard and embeds the pre-certified Avnet BCM4343W SoC Module.
Note: If you are new to working with electronics, the purpose of using a starter board like this one, is that it provides the solutions designer a quick way to prototype a solution for a module (like the Avnet BCM4343W SoC Module or the Avnet Azure Sphere MT3620 Module) without having to go through the trouble of soldering / wiring up the module itself. In addition to the ambient light sensor on board, user push button, 2 user LEDs, you can use the Arduino form-factor shield expansion connector and other ports to quickly wire up additional sensors and inputs. Once the design is complete, you or your organization would then purchase and hard wire / solder the module for your production solution. |
Features: [5]
- Arduino™ form-factor baseboard
- Pre-certified Avnet BCM4343W SoC Module
- WiFi + BLE + MCU module
- STM32F411 ARM® Cortex™ M4 MCU
- 512KB Flash, 128KB SRAM, 8Mb SPI Serial Flash
- Supports 802.11 b/g/n and Bluetooth 4.1 (with an upgrade path to Bluetooth 4.2)
- Dual fractal PCB antennas supporting antenna diversity
- Arduino compatible shield expansion connectors
- GPIO (4)
- Analog inputs (3)
- Two I2C ports (1 shared)
- SPI port
- Two UARTs (1 shared)
- Supports 3.3V I/O only
- 2x6 Format peripheral expansion connector
- I2C port (shared)
- USB-based JTAG debugger/programmer and serial UART port
- Reset push button switch
- User push button switch
- Two user LEDs - UART, JTAG and WLAN activity LEDs
- Ambient light sensor
- USB Powered (5V), onboard high capacity 3.3V regulated supply
To help me understand what hardware connection options are available in detail, I went to the Hardware Platform Guide. In doing so, I learned about a new connector type called the PMOD-compatible connector, which is a standard way of connecting peripherals. I did some quick research (Google) and discovered that Diligent came up with the Pmod Interface Specification. In investigating Diligent further, I saw that their store offers modules and splitter cables - which may be of interest, depending on the use case. I ordered a splitter cable and some modules to test with this starter board if I have time beyond my initial project proposal.
There is a basic setup document that one can walk through to do initial experimentation with the board without having to setup any electronics or SDKs.
tl;dr - Navigate to AWS IoT and create the Thing, Certificate, and Policy. Note: Policy will need to be created in AWS IAM and not AWS IoT. Connect to WICED_AWS (SSID of WICED Module), use default password of 12345678, use the same name as thing in AWS, upload certificate / private key, and then connect it to your network.
Upon completion of this, you'll be able to use the on-board button / lights to demonstrate basic state of the "thing" - as shown in the IoT Shadow.
Part 1 - Toolchain install, USB drivers and AWS Shadow | Part 2 - Getting started with Broadcom SDK |
Like with the Initial Setup section, there is also two user guides that go into detail to help you get your development environment setup: Part 1 and Part 2.
Installing WICED Studio
I verified that I had a Java version more recent than version 6.0 I attempted to use the link in the documentation above to download the SDK tool (4.x), but found that the version was no longer there. I did a search on WICED SDK and landed on the following url: https://www.cypress.com/products/wiced-software. I ended up downloading version 6.4.
Note: You will want to download the WICED Studio or the WICED WiFi SDK (and not the WICED Smart SDK). I downloaded the WICED Studio and was able to get it successfully installed. You will need to set up an account with Cypress in order to download the SDK. |
If applicable, make sure you have administrator rights to install the software and have a Java version greater than Java 6 prior to installing.
Setting up WICED Studio
There are some additional steps that you will need to do before you can start compiling the demo AWS IoT applications. Continuing to follow along in the instructions, you are directed to download the platform files from: https://github.com/CloudConnectKits/WICED-SDK-3.7.0-3_Platform_Files. Don't download these platform files. I would recommend that you traverse up one folder, e.g. https://github.com/CloudConnectKits to look at all the repositories available. In doing so, I found that there was an updated target platform files set available at: https://github.com/CloudConnectKits/WICED-STUDIO-6.x_Platform_Files. I download these files and placed them into the SDK folder location that I specified when I installed WICED Studio, e.g. C:\tools\sdk\WICED-Studio-6.4\43xxx_Wi-Fi\platforms.
Modify the Makefiles for each demo AWS project as instructed, e.g. thing_shadow.mk. The file paths have changed slightly as well, so you'll find yourself navigating a similar but different path.
The Make Target instructions also need to be slightly modified, using a period . instead of an underscore _ between aws and iot - e.g.
demo.aws.iot.shadow.thing_shadow-BCM94343W_AVN download download_apps run
Once you've successfully completed these steps, you should not get any build errors and it should install on your evaluation kit.
Reprogrammer Utility 2.0
Take the time to download the reprogrammer utility. This can be downloaded here: https://github.com/CloudConnectKits/Default_AWS_IOT_Shadow_app_reprogrammer.
MQTT.fx
The MQTT.fx link described in the documentation is currently invalid, and the link to download the software is: https://mqttfx.jensd.de/.
[2019-NOV-22] Notified that I was a finalist and confirmed that I would be able to complete my review within 60 days of receiving the evaluation Avnet BCM4343W IoT Starter Board.
[2019-NOV-26] The ability to start creating this Road Test Review was enabled and I started organizing my thoughts into Sections 1-5, 11.
[2019-NOV-27] Started formatting the Road Test Review into a cohesive format and added project goal to Section 9. As I started setting up the SDK, I noticed that the documentation had old links and it is not quite clear if / where the latest version of the setup documentation is. I added my own instructions to the setup documents for those that may wish to try using the SDK.
[2019-NOV-30] Received evaluation unit - packed in my backpack to look at while at AWS re:Invent
[2019-DEC] Prepared first draft
[2020-JAN] Final edits
[2020-FEB] Submission
9. Observations and Closing Thoughts
The documentation is somewhat clunky, however if you take the time to look / read through what's provided and utilize the updated links in this Road Test Review, you'll be able to successfully connect the IoT Starter Kit to AWS. AWS does update their console screens and what you see in the documentation does not match what AWS shows today.
If you're planning on doing any coding / development, download the 6.4 version of Cypress WICED Studio IDE and the needed target files. Otherwise you will not be able to compile and deploy successfully the sample programs that are made available in the IDE. With modifications, the sample code does successfully build for the BCM4242W platform. The documentation references 4.0 which is no longer available.
The target audience of this Avnet BCM4343W kit is for the home hobbyist / IT professional who is comfortable with AWS and the C++ programming language, or the experienced industrial IoT developer. However the industrial IoT developer will then deploy this onto the Avnet BCM4343W SoC Module for the final product (e.g. hard wire the module to sensors - temperature, humidity, pressure, proximity, level, accelerometer, gyroscope, gas, infrared and optical).
This can be used for a home-based project. In addition, I would recommend this product for prototyping an industrial IoT PoC (Proof of Concept) as the breakouts support both digital and analog sensor data, and using the Pmod interface, one can hook various sensors (which is where I'm going next with this board in my next project).
Overall I would recommend this product for anyone who wants to experiment with AWS IoT and pick up some basic knowledge of how IoT works.
beacon_dave / BigG / genebren / phoenixcomm / shabaz / jw0752 - for providing input and thoughts on my mini blog post of the start of the drink dispenser project
rscasny - Running the RoadTest program and giving opportunities to the community to evaluate hardware
clem57 - Pointers on JTAG
danzima - Helping me realize where my "draft" RoadTest went
e14mindi - For a timely reminder to cite sources as part of the content that gets shared here [6]
Dudley - Moving the Actions panel to an intuitive location, making it easier for me to edit the "draft" of the RoadTest
[1] https://www.cs.cmu.edu/~coke/history_long.txt
[2] http://cseweb.ucsd.edu/~bsy/coke.history.txt
[3] http://ifindkarma.com/attic/HUMOR/Archive1/cokes
[4] http://cloudconnectkits.org/sites/default/files/5304-UG-AES-EVB-BCM4343W-V2_0.pdf (page 12)
[5] http://cloudconnectkits.org/sites/default/files/AES-EVB-BCM4343W-G-Product%20Brief-v5.pdf
[6] https://www.element14.com/community/message/285783/l/get-a-gold-star-by-citing-your-sources
Top Comments
clem57 - it certainly did - I connected with an individual who did AWS IoT before and walked me through what is needed to set up devices in the AWS IoT console. I'd recommend the re:invent conference for…
Did AWS re:Invent help you in this RT? Thanks brianchilders
Great idea - I'll try to find some time to cover some additional detail of this device. Thanks!