EFM32™ Zero Gecko Starter Kit w/ Sensor Card - Review

Table of contents

RoadTest: EFM32™ Zero Gecko Starter Kit w/ Sensor Card

Author: ss_shrenik

Creation date:

Evaluation Type: Evaluation Boards

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?: Not 100% comparable product out there. But yes there is STM32L0 discovery board which can be compared to this board. It has epaper display on board + its cortex M0+ board.

What were the biggest problems encountered?: I came across many errors after auto update of Simplicity studio. After update it was not able to start and hence I needed to spend lot of time in solving that issue. I am mentioning that issue and solution in detail below.

Detailed Review:

    I always love to review products by implementing some sort of applications which would make use of the board capabilities. Now there could be some opinions that it is not always necessary. Agree, but while implementing any applications on board like this you will find lot of difficulties and limitation because of which you get stuck while implementing applications. And this is how you can judge whether the product you have is suitable for this kind of application or not.

 

Application overview -

    Hmmm, what's the best way to convey your application information to readers. I feel its video/audio and hence before proceeding further, following is the video which can help you to understand concept of my application that I have implemented on Zero Gecko STK + Sensor Expansion board.


 

    Isn't it exciting? No worries even if you are not able to understand it completely. Have a look at this video to understand what Moto X active display is  https://www.youtube.com/watch?v=82qOs5XFqdU

Yes, I tried to replicate same on EFM32 Zero Gecko STK+ Sensors expansion board. From last 30-40 days I was thinking about some unique application that would make use of both display and sensors and hence this idea is result of that. Now, let me put overview of the idea.

    So, Moto X mobile phone is one of the phone which has some cool features out of which touchless control and active display are few to name. I saw the video on youtube showing active display on moto X 2nd generation mobile and then I thought lets implement this on EFM32 Zero Gecko Kit. Idea is to show clock on Memory LCD when we bring our hand in proximity to Proximity Sensors placed on Sensor Expansion board. And yes it took very less time to implement concept as the material and example codes provided by SiLabs is appreciable.

 

 

Implementation details -

 

    So, as the application was simple and had two modules in it. 1. Proximity detection and 2. Clock.  Obviously, I used Simplicity studio in order to implement this. Lets see first what are the sample codes it comes with,

image

It comes with many example projects which can be used as start. I tried all examples as part of testing. Then as my application required clock as one of module I selected STM3200_clock as my base project. Now I wont give procedure how to create and import example project as you can get it online. Lets move to main part.

    As you can see there is a project as shown STK3200_weatherstation. This project demonstrate STK3200 + Sensor Expansion board capability including proximity sensors library. I used libraries required for proximity sensors which are shown as below named si1147_i2c.c,si114x_algorithm.c and si114x_functions. Each of these gives HAL configuration, gesture detection and init, read/write mechanism for si1147 respectively. Also you need to add i2c libraries in to the project.

 

image

 

    The STK3200_clock project has demo for analog + digital clock out of which I removed analog clock part and used digital clock part for the project. The clock in this makes use of RTC and shows it on Memory LCD display. And now comes the main.c file where I am going to give some important code snippet and you can find whole project attached with this review in order to know more about implementation.

 

One of the important thing is GPIO setup. I added GPIO configuration required for the si1147 like as below

 

/**************************************************************************//**
* @brief Setup GPIO interrupt for pushbuttons.
*****************************************************************************/
static void gpioSetup(void)
{
  /* Enable GPIO clock */
  CMU_ClockEnable(cmuClock_GPIO, true);


  /* Configure PC8 as input and enable interrupt  */
  GPIO_PinModeSet(gpioPortC, 8, gpioModeInputPull, 1);
  GPIO_IntConfig(gpioPortC, 8, false, true, true);


  NVIC_ClearPendingIRQ(GPIO_EVEN_IRQn);
  NVIC_EnableIRQ(GPIO_EVEN_IRQn);


  /* Configure PC9 as input and enable interrupt */
  GPIO_PinModeSet(gpioPortC, 9, gpioModeInputPull, 1);
  GPIO_IntConfig(gpioPortC, 9, false, true, true);


  NVIC_ClearPendingIRQ(GPIO_ODD_IRQn);
  NVIC_EnableIRQ(GPIO_ODD_IRQn);


  /* Configure PD4 as pushpull. (5v enable signal) */
    GPIO_PinModeSet(gpioPortD, 4, gpioModePushPull, 0);
    GPIO_PinOutClear(gpioPortD, 4);


    /* Configure PD5 as input and enable interrupt - proximity interrupt. */
    /* Interrupt is active low */
    GPIO_PinModeSet(gpioPortD, 5, gpioModeInputPull, 1);
    GPIO_IntConfig(gpioPortD, 5, false, true, true);


    /*Enable 5V supply to add-on board. */
    GPIO_PinOutSet(gpioPortD, 4);
}

 

SI114x Initialization part

 

/**************************************************************************//**
* @brief  Init si114x sensor
*
*****************************************************************************/


void initsi114x(void)
{
  I2C_Init_TypeDef i2cInit = I2C_INIT_DEFAULT;
  bool si1147_status;
  /* Initialize I2C driver, using standard rate. */
  I2CDRV_Init(&i2cInit);
  si1147_status = Si1147_Detect_Device(I2C0, SI1147_ADDR);
  /*configure prox sensor to enter low power state*/
  // Si1147_ConfigureDetection(I2C0, SI1147_ADDR, true);
}

 

 

And Proximity detection part

 

Si1147_MeasureUVAndObjectPresent(I2C0, SI1147_ADDR, &uvData, &objectDetect);
    if(objectDetect)
    {
      digitalClockShow(1);
    }
    else
    DisplayClear();

 

These are important changes in order to achieve this application.

    To try this out you can download, import the project attached.

 

Testing and observation -

    One of the unique feature for Energy Micro is its Energy profiler and hence review will be missing main thing If I am not adding that so following are some screen shots I have taken in different working scenario

 

 

image

     Above Figure showing graph when proximity sensor scanning was ON

 

 

image

 

     Figure shows current when continuous RTC update and display update was ON


image

     Figure Shows when both Proximity scanning and Display update was OFF. The power consumption in this case is almost negligible.


     I was successful in implementing the Moto X feature on the STK3200 but I found some problem with proximity sensors. It's not really a problem but its property of IR proximity detectors that their intensity reduces when they reflect back from black surfaces unlike white surfaces hence I was not able to get same behaviour as its with white objects.

   

Simplicity Studio update issue -  Problem - Could not create the view: com/silabs/studio/internal/api/launcher/product/data/MCUDataManager

Solution - http://community.silabs.com/t5/Simplicity-Studio-and-Software/Simplicity-Studio-October-Update-Issues/m-p/132876

 

Conclusion -

- As EFM32 is known for lowest power MCU architecture out there, it truly shows here.

- Demo were easy to use and useful to start with EFM environment

- Simplicity studio is one stop shop for all your documents. sample codes and application notes -  one of the favourite in this review. And more important its FREE. image

- I feel cost of the board is little high compared to competitors like STM32 discovery boards.

- SiLAB should test updates for Simplicity studio in order to avoid trouble for developers, before giving any updates.

 

 

     I try to give review in best manner even I rarely get time for this road test implementation. Hope, you all will like it. Please comment/ suggestions if any.

 

Thanks once again element14. Now I am ready for one more unique application in roadtest in future.

 

Regards.

Shrenik.

Anonymous