Sensing the World

Last updated July 22, 2011

See the newest version of this demo at:

The Idea

The embedded platforms like smart-phone, e-book and net-book use many digital sensors to provide a modern and amazing user experience. STMicroelectronics STEVAL-MKI062V1 is a good platform to explore this class of embedded application.

Why don't use the multitasking approach to discover the sensors world?

Main Components

  • STEVAL-MKI062V1 evaluation board - powered by STM32F103RE MCU.
  • real time scheduler. Tested with version 6.0.1.
  • STMicroelectronics USB library. Tested with version 2.2.1.
  • OpenOCD On-Chip debug solution for embedded target system. Tested with version 0.4.0 RELEASE.
  • Eclipse open development platform. Tested with Galileo release.
  • Versaloon hardware IF.

The Demo


These bits of code are based on the firmware package provided by STMicroelectronics. It provides the same functionality and can be used with the PC software application that can be downloaded starting from ST's evaluation board web page.

Developer environment setup

To build the firmware and to program the board I use the same Eclipse based IDE of all others demo in this web site. Feel free to look at the Eclipse demo (STM32) for more information on how to setup the IDE.

Running the demo

To test the demo you can use the software application provided by STMicroelectronics.
  • To download the software application visit the ST's evaluation board web page, or use this direct link.
  • Install the software.
  • Launch the iNEMO Software Tool application from the Start | All Programs | STMicroelectronics | iNemo Application menù.
  • Connect the board to PC.
  • Press the Connect button (the first on the right of the toolbar. See Fig. 1) or choose the Connect command from the Tools | Communication menù. Look the log on the bottom to be sure that the board is connected to the software.
  • You can now start to acquiring data from the board, plot the data and save the data into a file for further analysis.

Fig.1 - INEMO application

NOTE: the software come with an SDK to build custom PC application communicating with the board. For more information, please refer to the software documentation.

More details...

The tasks organization

The application runs three tasks as displayed in Fig.2

Fig.2 - Tasks

  • The Test task is implemented in the file test.c. It has the highest priority. When the system start it waits about 5 second for the key pressed event. If the user button is pressed the Test task perform an hardware test on the board. Note that a pre-formatted microSD card must be in the slot during the test execution. If the test ends with success the user led on the board is kept on for two second, else the user led blink for a while. In each case the Test task ends and the Command task take the control.
  • The Command task is implemented in the file iNemo.c in the iNemo folder. It wait for a frame from the PC application. When the USB driver receive a full frame, it wake-up the Command task that parse the frame and send the ACK back to the PC.
  • The Data task is also implemented in the file iNemo.c in the iNemo folder. It is synchronized with the timer 2 interrupt. When the Command task receives a START_ACQUISITION command, it enables the timer. Now the Data task reads all sensors data and sends the data to the Pc at the user specified frequency.


The latest version of the demo file is located in the Download page of the site. To build the demo are needed the following components:
  • The FreeRTOS source files:
  • The files shared by all demos:
  • The demo specific files:
Please look at the Download web page for more details.

Latest news

  • New version 2.0.0 released The demo is a porting of iNEMO v2 engine on ODeV.I published a new web site in order to review my development approach without disposing all information I collected ...
    Posted Jul 22, 2011, 3:48 PM by Stefano Oliveri
  • Uploaded demo version 1.1.0 What's news:- ST Standard Peripheral Library v3.2.0 (CMSIS 1.3.0 compliant).- Configured to use OpenOCD 0.4.0 RELEASE. The component Common version 1.3.3 ...
    Posted Mar 26, 2010, 11:53 AM by Stefano Oliveri
  • Added the new demo "Sensing the World" This demo (tries to) shows a platform to explore the MEMS based application. What's new:- Firmware version 1.0.0
    Posted Nov 22, 2009, 12:04 PM by Stefano Oliveri
Showing posts 1 - 3 of 3. View more »

Known Issues

All known bugs will be reported in this section.

Questions, Suggestions, Bugs, and...

Every feedback is welcome. If you have a suggestion to improve a demo or the web pages, it's ok. If you found a bug in a demo, please let me know. If you have an idea to improve a demo, I'm pleasure to discuss about it. If you have any questions about a demo, I hope to have the answer!

Users wishing to obtain support or have new ideas to discuss should use the Open Forum - Sensing the World. 

All the code is developed for test purpose and it is unsupported. The author assumes no responsibility for any damage caused by improper uses.
    Subpages (1): Latest news