Skip navigation
> RoadTest Reviews

RSL10 Sensor Development Kit - Review

Scoring

Product Performed to Expectations: 9
Specifications were sufficient to design with: 7
Demo Software was of good quality: 7
Product was easy to use: 8
Support materials were available: 7
The price to performance ratio was good: 8
TotalScore: 46 / 60
  • RoadTest: RSL10 Sensor Development Kit
  • Buy Now
  • Evaluation Type: Development Boards & Tools
  • Was everything in the box required?: Yes
  • Comparable Products/Other parts you considered: The nearest comparison that I know of is the CC2650STK SimpleLink Bluetooth Smart SensorTag loT Kit . This is also low-power, wearable and provides similar sensors together with Android/iOS apps. It is lower cost than the RSL10, but the RSL10 has an RFID chip and realtime sound processing capability.There is also the Nordic Thingy:52, which is somewhat larger than the RSL10 but with similar features.
  • What were the biggest problems encountered?: The Android app seems to have some significant bugs.

  • Detailed Review:

     

    Introduction

    RSL10

    The subject of this RoadTest is the ON Semiconductor RSL10 Sensor Development Kit. There was some initial confusion with this RoadTest - the initial batch of kits sent to element14 did not include the debugger so some people only received the RSL10 device but some (like me) also received the associated Segger J-Link debugger board. There is another RoadTest where the participants were sent the debugger version. Consequently, I RoadTested the version without debugger first, to show what you could do with the RSL10 device as shipped from the factory. I then RoadTested the device with the debugger to show what benefits you would gain if you bought the debugger version.

     

    What is in the kit?

    {gallery} Unboxing the RSL10
    RSL10
    RSL10
    RSL10
    RSL10

     

    [Note: Egg shown for scale. It is not included in the kit!]

     

    The RSL10 Sensor Development Kit (RSL10-SENSE-GEVK) consists of:

    • A small (3cm diameter), circular circuit board containing the RSL10 SIP module (which is Bluetooth 5 certified to international wireless regulations (CE, IC, KC, MIC, FCC)) and the following components:
      • ON Semiconductor NOA1305 (Ambient light sensor) with 16-bit ADC and I2C interface

      • Bosch BHI160 (Integrated low power smart hub with 3-axis accelerometer and 3-axis gyroscope)

      • Bosch BMM150 (Low power, low noise 3-axis digital geomagnetic sensor)

      • Bosch BME680 (Integrated high-accuracy gas, pressure, humidity and temperature sensor)

      • INMP522 (Ultra-low noise digital Microphone)

      • APTF1616 (Programmable RGB LED)

      • N24RF64 (64kB NFC EEPROM)

      • Three programmable push-buttons

      • N24RF64 RFID/NFC tag (an ISO5693 NFC tag (with 64kb EEPROM)) with antenna connector
    • A flexible NFC (ISO15693) antenna
    • CR2032 coin cell battery holder with coin cell

     

    The debug version of the kit (RSL10-SENSE-DB-GEVK) also includes:

     

    If you only have the non-debug version, you will not be able to change the default firmware as the debug header is not populated. You would either need to solder an SMD 10 pin debug header or buy a TC2050 10-pin needle adaptor and connect it to the PC via a Segger J-Link board if you wanted to put different firmware on the board. The default firmware is designed to work with the companion RSL10 Sense and Control app (Android or iOS) to demonstrate the low-power use of the board with most of the onboard sensors.

     

    Who is it aimed at?

    You could buy the (non-debug version of) the kit and just use it "as is" with your mobile device. It would suit various applications including wearables, horticulture and sport. Most of this review covers the non-debug version so that people can understand what is possible and what the limitations are.

     

    The debug version of the kit is aimed at developers looking to use the RSL10 SIP module in their low-power designs. Towards the end of the review I will cover the other things that you can do with the RSL10 board if you have the debugger.

     

    A comparison of different IoT platforms

    This is not intended to be exhaustive, but I have RoadTested a fair few IoT devices over the past eighteen months and each of them has had its own "niche". The table below sets out some of the different devices that I have tested, and their associated "use cases".

     

     

    SymbisaParticle Xenon

    AVNET

    Azure Sphere MT360

    HARTING MicaON Semi RSL10
    Sensors included

    Yes

    Light, humidity, temperature, pressure, accelerometer, GPS

    NoYes (Light, accelerometer, gyro, temperature, pressure)No (Bosch CISS sensor recommended)Yes (Light, accelerometer, gyro, temperature, humidity, pressure, gas, sound)

    Intermediate

    transmission protocol?

    n/aThread meshn/an/aBLE
    Connection to cloud

    Built-in cellular modem (2G)

    WiFi (Particle Argon) or Cellular (Particle Boron)WiFiMQTT via hardwired Ethernet port
    MQTT via mobile device and 3G/4G/WiFi
    Key differentiator

    Works anywhere, includes GPS

    Uses Thread mesh to overcome poor WiFi coverage. Low-power applications
    Security – each field device is tied to an Azure accountIndustrial – designed and certified for harsh conditionsSmall size, low weight, low-power
    "Use cases"Suits periodic location and sensor monitoring e.g. asset trackingLow power applications
    General purposeCondition monitoringWearables, horticulture, sports
    DisadvantagesCost per message payload can make it expensive. No "real-time" data.
    Large deployments can be expensive due to Particle's cost model.
    Can be complex to set upExpensiveNeeds BLE device as intermediary
    Cloud platformPrivate cloud only – no public cloud optionsPrivate (Particle Cloud) or public cloud Public cloud onlyPublic cloud onlyPublic cloud only

     

    Documentation

    The ON Semiconductor website has a web page devoted to the RSL10 kit. One of the links on the "Documentation" section takes you to the main "go to" document for this kit (the RSL10-SENSE-GEVK User Guide (EVBUM2614)). After a brief hardware description, this takes you through six pages describing the process of downloading the debugging environment (which would be confusing for people with the non-debug version). I did think "Oh no. Not another IDE to install and learn", but at least the ON Semi IDE is based on Eclipse, upon which a lot of IDEs are based. The User Guide then describes the RSL10 Sense and Control app before moving on to describe how to install and debug new firmware.

     

    There is further documentation available on the RSL10 SIP web page.

     

    Generally, I would say that the documentation is quite comprehensive (but slightly hard to follow) except for the RSL10 Sense and Control app which is notably lacking (or at least I couldn't find it).

     

    The instructions in the “User Guide” do not quite match the current terminology on the On Semiconductor website. Where the User Guide refers to the RSL10 SDK, the website refers to RSL10 Software Package. It is not very clear that you have to install two "CMSIS packs” (one called ONSemiconductor.RSL10.3.0.534.pack and one called ONSEMICONDUCTOR.BDK.1.10.2.PACK). The Cortex Microcontroller Software Interface Standard ("CMSIS") is a vendor-independent hardware abstraction layer for microcontrollers that are based on Arm Cortex processors. For the purposes of this kit, the CMSIS packs are necessary in order to get the demo example code and dependencies.

     

    While looking for documentation, I came across an interesting alternative to On Semiconductor's software - Atmosphere. I haven''t pursued this avenue yet, but I will investigate further.

     

    Getting started

    NFC tag

    If you are deploying a number of these devices in the field, I guess it would be useful to have a quick way of identifying which is which and perhaps automating the discovery process. As delivered, the RSL10 emulates an ISO5693 NFC tag. I guess that there is a way to configure the chip but, if so, I didn't find it. However, I could read the tag easily.

     

     

    RSL10 Sense and Control app

    In essence, the RSL10 board connects via Bluetooth to a device running the RSL10 Sense and Control app. This is available for Android or iOS. I tested both versions (on my Motorola G6 phone and Apple iPad respectively).

     

    You use the app to pick which sensor data you want to monitor (or send to the cloud). You can save this as a “configuration” and give it a name.

     

    RSL10

     

    You can choose, in the app, whether to view sensor data on the Android or iOS device, or send it using MQTT to the cloud.

     

    The screenshot below shows an example of what you see if you choose to view sensor data on the device. Note that the air quality sensor is not available in the default low-power firmware that is installed when you receive the board.

     

    RSL10

     

    You can switch between "tile view" and "graph view" for each sensor on an individual basis. In the screen below, I have changed the Temperature display to "graph view".

     

    RSL10

     

    The app allows you to configure an MQTT broker of your choice. There are existing configurations but I think these are useful to keep as examples, so I set up my own connection to CloudMQTT, which has a free plan that is ideal for testing and low-volume applications.

     

    You can also choose whether to use a secure connection, which is essential for production environments. For my testing, I just used an unencrypted channel as there was no data of any significance being sent.

     

     

    {gallery} Connecting to the cloud
    RSL10
    RSL10
    RSL10

     

    I decided to send analyse and graph my data with Node-Red. This involved the following steps (on Windows 10):

     

    Install Node.js

     

    This can take a while. Sorry for the lack of a screenshot but I already had NPM installed.

     

    Install Node-Red

    Node-Red

    Install Node-Red dashboard

    Node-Red

    Connect to CloudMQTT

     

    CloudMQTT

     

    If you stream your data to the cloud, you will need to know how the MQTT payload is structured. After experimenting with MQTTlens and Node-Red, it seems that each sensor that you select in the app sends a separate MQTT message. The MQTT payload varies according to which sensor(s) is/are involved but each of the sensors sends a “cmd_id” message to identify the sensor and a “cmdVal” message containing the data. These are sent as strings.

     

    RSL10

     

    In the screenshot above, I had selected the "ALS-NOA1305" (light level) and "Environmental" sensors in the app and you can see that they have cmd_ids of "9" and "E" respectively. If you know the cmd_id, then you can make sense of the data.

     

    cmd_idSensorcmdValMeaning
    "9"ALS-NOA1305 (Light)String (e.g. "51")51 Lux
    "E"

    BME680 (Environmental)

    (only updated every five minutes

    in low-power mode)

    String array (e.g. "206,59,0,97")

    Temperature 20.6C

    Humidity 59% rh

    Air quality 0 (not available in low-power mode)

    Atmospheric pressure 9.7kPA

    "A"

    BHI160 (Accelerometer)

    (updated every three seconds in low-power mode)

    String array (e.g. "0,-10,-27")0, -10, -27 m/sec/sec in x,y,z planes respectively
    "G"

    BHI160 (Gyrometer)

    (updated every three seconds in low-power mode)

    String array (e.g. "21,0,980")21,0,980 deg/sec in x,y,z planes respectively
    "M"

    BMM (Magnetometer)

    (updated every three seconds in low-power mode)

    String array (e.g. "-197,-328,82")-197,-328,82 micro Tesla in x,y,z planes respectively

     

    How did it perform?

    Non-debug version

     

    The Sense and Control app comes in two versions – one for iOS and one for Android. I shall comment first on the iOS app.

     

    I found that, to be able to save a configuration with a (meaningful) name, you have to create it first with the “Enable broadcast” option turned off. If you try and create a configuration “Broadcast” enabled, it saves the configuration but gives it a name such as NewProfile, NewProfile_1 etc. You can delete unwanted configurations by pressing on the little wastepaper icon and releasing. Then a dialogue pops up (see below). Whilst you can save configurations (profiles) in the Android and iOS versions of the app, it seems that the “delete configuration” option in the Android version does not work.

     

    Screenshot

     

    Note that, in its default configuration the RSL10 is operating in low power mode (which means you need to have the RSL10 within a couple of feet of your iOS device). Also, several of the icons on the app do not apply to the RSL10 as supplied because they are intended for measuring or controlling additional sensors and actuators.

     

    I set up some flows on Node-Red to process the MQTT data. The first thing I discovered is that everything is published under one topic - and one that is not particularly easy to discover. It turned out to be (in my case "_565AF326-8421-4B66-AAB2-CB8A3EB1704E"). I found that subscribing to all topics (#) got me all the data, which made things easier.

     

    {gallery} Node-Red
    Node-Red
    Node-Red
    Node-Red
    Node-Red
    Node-Red

     

     

    In the default low-power mode, the environmental sensor only updates every five minutes (see Dashboard graphs below).

     

    Dashboard

     

     

     

    I found that, although the app appears to keep running when my iOS screensaver (autolock) kicked in (i.e. it seemed to be streaming data), this stopped the actual transmission of the data to cloudMQTT. Turning off autolock fixed it (although, of course, my iPad battery drained fairly quickly).

     

    Although it is called Sense and Control, as far as the (as supplied) RSL10 device is concerned, there is nothing to control. I suppose you could control the RGB LED, but that is not very exciting. In any case, I don’t know how you would discover what topic to publish to since the documentation doesn’t seem to tell you that anywhere.

     

    Each RSL10 has a unique "mac_id": (e.g. "60:C0:BF:28:7C:88"), so if you have more than one RSL10, you can filter by that too.

     

     

     

     

    Annoyingly, the MQTT output of the device is different depending on whether you use the Android app or the iOS app. Here is the JSON payload (two messages) from the Android app with just the Environmental sensor selected:

     

    {
         "token":"OSGatewayActivity",
         "event":"/updates/",
         "mac_id":"60:C0:BF:28:7C:88",
         "cmd_id":"6",
         "cmdVal":"27.86",
         "Temperature_6":"27.86",
         "Source_60_C0_BF_28_7C_88_Temperature":"27.86"
    }
    


    and

     

    {
         "token":"OSGatewayActivity",
         "event":"/updates/",
         "mac_id":"60:C0:BF:28:7C:88",
         "cmd_id":"E",
         "cmdVal":"279,37,0,98",
         "Environmental Sensor_E":"279,37,0,98",
         "Source_60_C0_BF_28_7C_88_Environmental Sensor":"279,37,0,98"
    }
    


    And here is the output (one message) from the iOS app with just the Environmental sensor selected:

     

    {
         "cmd_id":"E",
         "mac_id":"60:C0:BF:28:7C:88",
         "cmdVal":"234,62,0,98",
         "event":"/updates/",
         "Environmental Sensor_E":"234,62,0,98",
         "cmd":"","token":"OSGatewayActivity",
         "Source_60_C0_BF_28_7C_88Environmental Sensor":"234,62,0,98"
    }
    

     

    This is quite annoying because it means that you would have to have different code in Node-Red (or whatever you are using to analyse the data stream) depending on whether you were using the Android app or the iOS app.

     

    I only discovered this when I found that my Node-Red dashboard didn’t work properly when I switched apps.

     

    Debug version

     

    The Segger J-Link is a well-regarded debugger and the J-Link LITE for Cortex-M is a vendor-specific version for the RSL10 board. It is only licenced for use on the RSL10 board but I did wonder whether it would work on other boards. I tested it on an NXP FRDM-KW41Z board (Cortex M7) and it worked just fine but I leave it up to the reader to decide whether to make use of that knowledge.

     

    The main RSL10 circuit board has a row of 2.54mm pitch pin headers (unpopulated). As well as power, these allow access to the I2C bus and one GPIO pin. This would enable you to add different sensors or actuators to your design.

     

    Installing the ON Semiconductor IDE and RSL10 SDK

    To program the RSL10, you need to download and install the ON Semiconductor IDE and the RSL10 SDK from here.

     

    The instructions in the “Getting Started Guide” do not quite match the current terminology on the On Semiconductor website. Where the Getting Started Guide refers to the RSL10 SDK, the website refers to RSL10 Software Package. It is not very clear that you have to install two CMSIS “packs” (one called ONSemiconductor.RSL10.3.0.534.pack and one called ONSEMICONDUCTOR.BDK.1.10.2.PACK). Having done that, I got a warning message about unresolved dependencies. Trying to resolve this by right clicking on the yellow message and choosing “Install required packs” didn’t resolve the problem (whatever it was). Nevertheless, everything still seemed to work OK.

     

    IDE

     

    Once the IDE and SDK was installed, it was now possible to tweak the existing firmware. Some of the settings are available through a configuration file (CMSIS Configuration file).

     

    IDE

     

    However, I decided to install the “normal power” version of the demo app. This allows you to use the Air Quality Sensor and provides environmental sensor readings every three seconds, rather than every five minutes. I also found that you don’t have to keep the RSL10 right next to the iOS device. Compared with the low-power version, this was a welcome relief – it provided a reliable connection and frequent readings. Compare the smoothness of the readings with the one obtained with the default firmware above.

     

    Dashboard

    I think that this would make a better firmware to supply to people who buy the kit without the debugger.

     

    The SDK comes with around half a dozen  examples that you can use and modify.They are written in C and not very heavily commented, so it takes a lot of effort to work out what is going on in the code.

     

    Overall evaluation

    The RSL10 is a fantastic little device which is perfect for developing wearables and other applications. However, without the debugger, you'll be stuck with the low-power version of the sensor demo application which is a bit disappointing as the main sensors only update every five minutes.

     

    The documentation is, on the whole, poor.

     

    In addition to not being able to find any documentation about the RSL10 Sense and Control app, neither could I find the source code for the app. In the absence of any documentation, it is hard to see how you could control any additional devices without remaining tethered to the debugger.

     

    It appears that the Android app is the poor cousin of the iOS app and some of its functionality does not work fully:

    1. You can’t delete profiles

    2. Environmental sensor data is not updated unless you reboot the RSL10 board

    3. Publishing data to the cloud repeatedly fails due to network connectivity being lost

     

    As a result, I gave up on using the Android app.

     

    Neither version of the app supports the microphone or the RFID chip. One of the SDK examples supports the microphone and the EEPROM, so you can, at least test them out in "tethered mode".

     

    Screenshot

     

    I plan to investigate connecting additional devices a bit more and see if I can work out how to access them via the app. I will update this RoadTest report after I have done so.

     

    In summary, great little device, let down by poor or missing documentation.


Comments

Also Enrolling

Enrollment Closes: Nov 29 
Enroll
Enrollment Closes: Nov 18 
Enroll
Enrollment Closes: Dec 11 
Enroll
Enrollment Closes: Dec 12 
Enroll
Enrollment Closes: Nov 18 
Enroll