6. MetaSensors

The MetaSensors come standard with a battery, memory, Bluetooth low energy, a CPU, and sensors.

There are different types of MetaSensors available and they differ in three ways:

  • Form-factor
    • There are two major form-factors, round or rectangular.
  • Sensors
    • There are many sensors to choose from including accelerometers, gyroscopes, temperature and so on.
  • Memory
    • Some boards include extra memory so sensor data can be logged on the device.

GPIOs also allow you to add even more sensors and peripherals to your MetaSensor.

An ultra-bright LED and push button as well as many accessories such as cases and bands allow you to get even more out of your MetaSensor.

You can communicate and command the MetaSensor to do many things such as stream quternion data at 100Hz for 25 minutes using our Apps, APIs, Hubs, and Cloud dashboard.

Make sure you pick the MetaSensor that is right for you; check the sensor features of your purchase as well as the memory size.

6.1. Applications

Recommended usage:

Sensor Name Best Application / Usage
MetaMotion Motion, Sport, Wearables, Fitness Trackers
MetaTracker Cargo, Asset, People Tracking and Monitoring
MetaHealth Health, Bio, Medical, Research Tracker

6.2. Form-Factor

MetaSensors come in different shapes and sizes:

Sensor Name Form-factor Size
MetaMotionC Round 24mm dia
MetaMotionR Rectangle 17mm x 25mm
MetaTracker Square 26mm x 26mm
MetaHealth Rectangle TBD

Previous versions such as the MetaWear series are not shown here.

6.3. Sensors

MetaSensors come with many different sensors on-board:

Sensor Name Accelerometer Gyroscope Magnetometer Humidity Temperature Pressure Heart-Rate GSR
MetaMotionC X X X   X X    
MetaMotionR X X X   X X    
MetaTracker X X X X X X    
MetaHealth X X X   X   X X

Previous versions such as the MetaWear series are not shown here.

Please see the next section in the tutorial to learn all about Sensors on the MetaSensors.

6.4. Memory

MetaSensors have memory to log sensor data long term:

Sensor Name Memory Size Amount of Sensor data save in memory
MetaMotionC 8MB up to 500K data sensor entries time-stamped
MetaMotionR 8MB up to 500K data sensor entries time-stamped
MetaTracker 2MB up to 100K data sensor entries time-stamped
MetaHealth 8MB up to 500K data sensor entries time-stamped
Other sensors* 50K On-Board 5K – 10K data sensor entries time-stamped
  • All other MetaSensor types have a small amount of on-board memory to buffer sensor data (no logging memory).

See additional information below regarding MetaSensor memory.

6.5. Unique Identifier

The MAC address of the device is a unique identifier for each MetaSensor.

Each BLE device (MetaSensors, Bluetooth Beacons, FitBits, Heart rate and Blood pressure monitors, smart watches etc.) has a unique 6-byte MAC address. This address is available in the Advertising packet of the MetaSensor such as: F1:4A:45:90:AC:9D.

You can use the Windows and Android MetaBase App to scan or read the device MAC address.

On Android, the MAC and the signal strength are both easily detected using BluetoothAdapter.LeScanCallback in the APIs.

On iOS, the MAC is considered private information and is obfuscated by Apple. The MAC in the Ad packet is masked by iOS and replaced by an automatically generated CBUUID.

As such we have made the MAC available via our own MetaSensor APIs and via the Bluetooth Ad packet for easy and fast retrieval in iOS.

The MAC may also be available on the sticker in the back of your device.

6.6. Certification

Certification information for the MetaSensors is available on the Documentation page.

6.7. Datasheet

Datasheets for the MetaSensors are available on the Documentation page.

6.8. Core Features

The core refers to the standard set of features of every single MetaSensors. This includes the CPU, memory, Bluetooth Low Energy, LEDs, and buttons.

6.8.1. CPU

MetaSensors use the Nordic SOCs as the main CPU; these are powerful, highly flexible ultra-low power multiprotocol SoCs ideally suited for Bluetooth® low energy.

There are two generations in use:

  • nRF52832
    • The nRF52832 SoC is built around a 32-bit ARM® Cortex™ M4F CPU with 512kB + 64kB RAM. The embedded 2.4GHz transceiver supports Bluetooth low energy.
  • nRF51822
    • The nRF51822 SoC is built around a 32-bit ARM® Cortex™ M0 CPU with 256kB/128kB flash + 32kB/16kB RAM for improved application performance. The embedded 2.4GHz transceiver supports both Bluetooth low energy.

Many MetaSensor models incorporate the SOCs as part of a module from Taiyo Yuden. These modules includes an antenna and SOC under a metal protective can which is fully Bluetooth, IC, CE, TELEC, and FCC certified. Other models are certified by MbientLab; please consult the datasheet for details.

The Nordic SOCs come pre-loaded with our proprietary firmware which enables you to access sensor data and communicate (as well as send commands) to the board via the Bluetooth link.

You can get more information on our Documentation page.

6.8.2. Memory

The sensors all come with internal FLASH memory built into the CPU. Additional external NOR Flash memory is available for specific models.

The models with external memory can log sensor data for minutes, days, even years. The data will be available even after you power cycle or reset the board.

Sensors great for logging data:

  • MetaMotionC, MetaMotionR, MetaTracker, MetaHealth

In contract, the on-board memory only sensors are great for streaming. Sensors great for streaming data:

  • MetaWearC/CPRO/ENV/DETECT, MetaWear R/RG/RPRO

Please note that it may take up to 30 minutes to download 500K samples from Flash memory using the Bluetooth link.

We recommend downloading sensor data from MetaSensor memory using a Linux based system for the fastest Bluetooth download speeds.

6.8.3. Bluetooth

MetaSensors are Bluetooth Low Energy compliant. The MetaSensors are loaded with the Nordic BLE stack.

The latest MetaSensors run BLE4.2 and will be updated to BLE5.0 in late 2017.

You can read more about Bluetooth in the previous sections.

6.8.4. LED

MetaSensors all include an RGB LED.

Typically, the LED does not turn on when the board is charging or downloading data. The LED will only turn on when commanded to do so by an App or API function.

The MetaSensors will blink blue for a short period of time when the MetaBase App programs them.

6.8.5. Push Button

MetaSensors all include a small push button.

The button can be programmed for a variety of functions, however it has no functionality out of the box. For example, you can program it to call 911 or turn on a lamp.

The button can be used to soft reset the board, see the Troubleshooting page. for more information.

6.9. Peripherals

Peripherals refers to board add-ons.

This is made possible by GPIOs, I2C, SPI, and PWM that enable users to add extra sensors including buzzers, motors, force sensors and much more to the MetaSensors.

6.9.1. PWM

Pulse Width Modulation, or PWM, is a technique for getting analog results with digital means. Digital control is used to create a square wave, a signal switched between on and off.

This on-off pattern can simulate voltages in between full on (3 Volts) and off (0 Volts) by changing the portion of the time the signal spends on versus the time that the signal spends off. The duration of “on time” is called the pulse width. To get varying analog values, you change, or modulate, that pulse width.

If you repeat this on-off pattern fast enough with an LED for example, the result is as if the signal is a steady voltage between 0 and 3v controlling the brightness of the LED.

MetaSensors R series all have PWM support at the hardware and API software level, please consult the datasheet and developer page for more details.

6.9.2. I2C

The Inter-integrated Circuit (I2C) Protocol is a protocol intended to allow multiple “slave” digital integrated circuits (“chips”) to communicate with one or more “master” chips. Like the Serial Peripheral Interface (SPI), it is only intended for short distance communications within a single device. Like Asynchronous Serial Interfaces (such as RS-232 or UARTs), it only requires two signal wires to exchange information.

MetaSensors all have I2C support at the hardware and API software level, please consult the datasheet and developer page for more details.

6.9.3. SPI

Serial Peripheral Interface (SPI) is an interface bus commonly used to send data between microcontrollers and small peripherals such as shift registers, sensors, and SD cards. It uses separate clock and data lines, along with a select line to choose the device you wish to talk to.

MetaSensors all have SPI support at the hardware and API software level, please consult the datasheet and developer page for more details.

6.9.4. GPIOs

GPIO stands for General Purpose Input/Output and a GPIO pin can be set high (taking the value 1) by connecting it to a voltage supply, or set low (taking the value 0) by connecting it to ground.

The MetaSensor can set the pin to take either value and treat it as an output, or it can detect the value of the pin and treat it as an input.

MetaSensors all have IO support at the hardware and API software level, please consult the datasheet and developer page for more details.

6.10. Adding Sensors or Peripherals

6.10.1. Adding a Buzzer

Piezo buzzers are used for making beeps, tones and alerts.

Users can drive a buzzer (to create a tone/beep) with 3-30V peak-to-peak square wave.

You can purchase your own buzzer or find one available on the MbientLab Sensor store. Use the PWM on the MetaSensor to drive the buzzer.

Connect the red wire pin of the buzzer to power on pin 11 (3V) and the other wire (blue or black pin on the buzzer) to pin 10, the haptic driver pin on the MetaSensor Then connect a 1KOhm resistor in parallel (between pin 10 and 11) For the loudest tones, stay around 4 KHz, but it will work at frequencies between 2KHz and 10KHz. The duty cycle is always 50%.

6.10.2. Adding a Vibration Motor

A small shaftless vibratory motor is perfect for non-audible indicators. Use it in any number of applications to indicate to the wearer when a status has changed. Once anchored to a PCB or within a pocket, the unit vibrates softly but noticeably.

Due to their small size and enclosed vibration mechanism, coin vibrating motors are a popular choice for many different applications. Pancake motors are compact and convenient to use. They integrate into many designs, because they have no external moving parts, and can be affixed in place with the adhesive sticker on the back.

You can purchase your own motor or find one available on the MbientLab Sensor store. Use the PWM on the MetaSensor to drive the motor. The required voltage to drive a vibration motor is 3V (60mA).

User can directly solder the vibrating motor positive lead (red) to pin 11 on the MetaSensor board. The ground pin on the motor (black or blue) is connected to pin 10, the high current haptic driver on the board which will be used to turn on the motor.

If you want to reduce the current draw and motor strength you can use a series resistor (100 to 1000 ohms).

6.10.3. Adding a Temperature Sensor

Although there is a temperature sensor embedded on board the MetaWear; some use cases require precision. All you need to do is attach the thermistor that best fits your needs and you can start taking accurate temperature measurements using MetaWear.

A thermistor is a thermal resistor – a resistor that changes its resistance with temperature. Technically, all resistors are thermistors – their resistance changes slightly with temperature – but the change is usually very very small and difficult to measure. Thermistors are made so that the resistance changes drastically with temperature so that it can be 100 Ohms or more of change per degree.

The thermistor is hooked up the GPIO0 (pin 8) and the 3V pin (pin 11) on the MetaSensor board. a 10K bias resistor is hooked up in series between GPIO1 (pin 9) and GPIO0 (pin 8)

To measure the temperature, we measure the current resistance of the thermistor (the variable resistor). First GPIO1 is on low (connected to ground – 0V) and then the analog value of GPIO0 is recorded.

Look at the datasheet of the thermistor as well as the temperature during your calibration readings and develop a look up table or equation to convert all future readings from analog values to F or C degrees.