RoadTest: NXP Rapid IoT Prototyping Kit
Author: sauravshandilya
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?: Broadcom Wiced sensor. Did not find boards providing range of sensors, touch, buttons, LED BLE, thread all in a board nicely integrated and well packaged.
What were the biggest problems encountered?: 1. Lack of small sample code to build upon. Some sample code is provided but expected more sample code using each blocks. 2. Developer features in Atmosphere IDE lack useful blocks such as logical blocks, arithmetic blocks 3. Power consumption of device should be lower. Typical power consumed by the device was around 90 minutes.
Detailed Review:
A lot of fellow road test reviewers and NXP team has meticulously explained the unboxing, Kit features, SW installations and usage step, using sample codes, plotting graphs which can help readers get started with the kit. Here is a link to NXP Rapid IoT official page which I used for learning everything.
I would like to take this opportunity of reviewing the Kit to explain to you how Rapid is NXP Rapid IoT development kit for making an application. I will explain my experience, challenges faced and insights gained while developing my own application using the kit.
Overview:
The kit comes bundled with hardware such as
All this powered by an ARMcortex M4 core based NXPs designed Kinetics series microcontroller. The kit can be programmed using an online development environment called Rapid IoT Studio provided by NXP. There is also an option of using MCUexpresso for developers who love embedded C and bare bone microcontroller programming. It was first time with NXP microcontroller and considering the time factor, I choose the easier path (atleast what it seems to be when I started with the kit ) of using an Online Rapid IoT Studio IDE having features similar to drag-drop without requiring to write the C-Code. It uses Atmosphere IoT platform to supports feature of blocks, dashboard to deploy our application on cloud and visualize data, support for connecting through android and iOS app via BLE to visualize data and control the device.
The Story:
The kit came with Out-of-Box demo code installed, which gives the feel of using all the hardware present in kit. Rapid IoT studio has few sample projects which are useful to start with. After running samples experiments and tinkering around with mobile apps and dashboard in initial days, I thought of using the kit to write an application of my own. Being a person who drink less water and aware that I should not do this, I wished I could get a smart bottle which could remind me of drinking water at regular intervals and also help me keep a log of my drinking habit over a duration.
There are existing mobile applications where will have to manually go and log when we drink water, but those never work for a lazy person like me. Therefore I came up with an idea to make a system where Rapid IoT kit will be mounted on a water bottle, reminding me hourly to drink water and keep a log when I drank the water without me actual doing any work (except drinking water).
My Experience:
Once the application was finalized, I broke down the applications into smaller sub-tasks like
1. Reminder using Buzzer and snooze/stop
The buzzer should remind me of drinking water every hour. Seems easy so I added the interface to turn off buzzer using a user button or a tap. Below is block diagram:
The block uses a switch to trigger an interval time connected to a Buzzer. Every time switch is pressed, buzzer is turned off and timers starts again. On lasp of time interval, buzzer turns on.
I then modified the experiment to include feature of Tap detection. Tap detection is a feature provided over accelerometer module. When we tap anywhere on the Kit, tap detection happens. So I wanted to turn off buzzer by just tapping the kit without actually requiring to push the button. Below video shows the working.
2. Detecting if I drank water
This was accomplished using Accelerometer data. Kit was mounted on a bottle as shown in figure below. After conducting several test a proper threshold value was selected which signifies bottle was picked up for a duration in proper alignment (ensuring it is drinking position and not refill or bottle drop).
Block diagram for detection of acceleration value in all three axis is shown in figure below
The data for acceleration in all axis was also plotted on dashboard to help in selecting a proper threshold. One sample image is attached below.
A video of showing acceleration value through mobile app is attached below
3. Counter to keep track of how many times I drank water
Started with using two user switches, Top Right for counting up and Bottom Right for counting down(for case where switch is pressed more than once by mistake). The idea was to initially to have a switch which the user presses after drinking water to make a log. Next step was to use Tap detection to turn off buzzer and increment count. After which based on accelerometer data, count will be incremented. The figure below shows switch based increment logic
The video below shows the implementation of the counter using switch.
Implementation using counter was shown in Reminder using Buzzer and snooze/stop section above.
4. Integration
As already evident all task till now was implemented individually and finally, it was thought to integrate them together. This eventually turned up to be the most challenging because of certain feature limitations and/or lack of proper understanding of Rapid IoT studio. I will discuss challenges in a separate section below.
At time of writing this review, I am able to integrate the accelerometer and tap counter interface to log when water intake is made. The part of using buzzer as reminder at regular interval and logging count of time water intake is made based on accelerometer data is not working as expected. Also i wished to make it as part of out-of-box demo, but putting the feature needs more understanding of way blocks such as display page controller, labeled Icon, functions are implemented and used. The current implementation state is shown in the figure below.
Cons:
Pros and Insights:
Conclusion:
Vote of Thanks:
I wished I could have completed and shared a full demonstration video with the community here. However, it was a great learning experience and I am still working on the application hoping to complete in another week. This was my first experience in road test conducted by Element14 and I thoroughly enjoyed it. I would like to thank the Element14 team for organizing such initiative and NXP for designing and providing a nice platform to tinker.
Top Comments
Nice review! It was great to read about how your project developed, and the problems you encountered.
A great review where you have quickly included a real-world application - looks like a really useful module.
Rod