Skip to content

Releases: mbientlab/MetaWear-SDK-Android

New Data Filters and Bug Fixes

13 Mar 01:10
Compare
Choose a tag to compare

Version 1.6.0 adds support for two new filters, fixes a bug in the GPIO class, and deprecates a few methods in the GPIO and Temperature classes.

Features

  • Supports delta value and threshold filters
    • Requires firmware 1.0.1 to use
  • Deprecates functions that were misspelled or misrepresents the purpose of the function
  • Fixes bug in the GPIO class that would cause a crash when used with firmware prior to 1.0.0

Code Changes

FilterConfigBuilder

GPIO

  • Modified code that executed the analog and digital input callbacks to pass in -1 if GPIO pin is not available
    • This change also fixes a bug in the callback code that is caused when using the class with firmware prior to 1.0.0
  • Deprecated receivedAnalogInputAsAbsValue method

Temperature

Stability Improvements for v1.5.0

06 Mar 10:46
Compare
Choose a tag to compare

Version 1.5.3 improves the stability of the Android API to be able to handle a high volume of Bluetooth LE commands.

For instructions on how to add the MetaWear dependency to your app's build.gradle file, please read the Library Setup section of the Android Guide on our website at http://docs.mbientlab.com/?page_id=40#post-73

Accelerometer and Android Studio

02 Mar 23:40
Compare
Choose a tag to compare

Version 1.5.0 adds new features to the Accelerometer class, LoggingTrigger enum, and updates to the manifest file for Android Studio usage.

This release also is the first release to support Android Studio. For instructions on how to add the MetaWear dependency to your app's build.gradle file, check out the first section of the Android Guide on our website at http://docs.mbientlab.com/?page_id=40#cat-26

Features

  • Adds sleep mode support, power mode support, and low pass filtering for tap detection to the Accelerometer class
  • Added logging support for board orientation
  • Fixed manifest merge errors in Android Studio and updated manifest with required permissions and features

Code Changes

Accelerometer

LoggingTrigger

BytesInterpreter

AndroidManifest.xml

  • Added Bluetooth permission and Bluetooth Le required feature
  • Removed activity tag

Update for Firmware v1.0.0 support

14 Feb 02:00
Compare
Choose a tag to compare

API version 1.4 updates the library to support the new features and changes added in firmware v1.0.0.

Features

  • Added classes for Timer, I2C, Settings, and Macro modules
  • Added support for peak detector and pulse detector filters
  • Added TriggerBuilder class to simplify creating data processing or logging triggers
  • Updated GPIO callback functions to match data format for firmware v1.0.0
  • Updated TimeDelayBuilder to include differential filter mode
  • Added ability to pass in own LocalBroadcastManager for the MetaWear service to use

Descriptions of the new modules are provided below:

Module Description
Timer Internal timer that periodically sends notifications
I2C Use the I2C bus to directly communicate with sensors
Settings Change Bluetooth LE advertisement parameters
Macro Program persistent commands to the board that can be run at boot time

Code Changes

GPIO

Accelerometer

  • Changed enableTapDetection to return a TapConfig object
    • TapConfig extends ThresholdConfig and provides methods to configure the pulse time limit, latency, and window

Logging

  • Added removeLogEntries method
    • Removes a number of entries from the logger, requires a disconnect for the erase to occur
  • Added addReadTrigger method, which logs data from register read

DataProcessor

  • Added addReadFilter method, which processes data from a register read

Debug

  • Added resetAfterGarbageCollect method
    • Disconnects the board, performs indicated erase operations, then resets the board

TimeDelayBuilder

MetaWearBleService

LoggingTrigger

TriggerBuilder

  • Added methods to construct triggers for accelerometer axis data, gpio pins, and data filters

BytesInterpreter

  • Added logBytesToGs method which converts bytes to Gs for log entries containing combined axis data

Bug Fix and Code Improvement

06 Jan 21:15
Compare
Choose a tag to compare

Version 1.3.7 adds further improvements to the v1.3 release.

Changes

  • Improved stability of Bluetooth LE activity
    • Triggering ble activity in the connected callback function would cause some ble packets to be dropped
  • Redid the code for the connect and disconnect intents
    • Original code would throw an UnsupportedOperationException if an old controller was in use when an unexpected disconnect occurred
  • Added else clause to the implementation of the alternative close function that behaves like the original if false is passed in the second parameter

Bug Fix for Deprecated Functions

30 Dec 11:03
Compare
Choose a tag to compare

Version 1.3.4 addresses bugs for two of the deprecated connection functions in the MetaWearBleService class.

Fixes

  • Fixed connection bugs with the connect and reconnect functions
    • Users could not connect to the Gatt server using these two functions, breaking backwards compatibility

Bug Fix for v1.3 and Feature Tweak

29 Dec 23:37
Compare
Choose a tag to compare

Version 1.3.3 fixes the known issue from v1.3 and tweaks the functionality of the MetaWearController class.

Fixes

  • Fixed issue with BluetoothGattCallbacks being called multiple times
    • Issues stemmed from not properly freeing GATT resources

Changes

  • Added variant close(boolean, boolean) function to the MetaWearController class
    • Passing true to the second parameter will wait until all commands have been sent before closing the connection
    • This function is not support for controllers obtained from the deprecated getMetaWearController() function

Multiple MetaWear Support

29 Dec 08:59
Compare
Choose a tag to compare

Version 1.3 adds support to connect to multiple MetaWear boards, and new features and bug fixes for the temperature, gpio, haptic, and metawear service/controller classes. There are some changes to the API that users will want to carefully look over when using the release. A blog post detailing how to connect to multiple boards with the API is available on our project's page

Features

  • Support to communicate with multiple MetaWear boards
  • Thermistor mode for the temperature module
  • GPIO pin state notifications
  • Callback function to notify the user of GATT errors
  • Fixed bug that would falsely report non-existent ble device is connected on Android 4.4 devices
  • Fixed bug with the buzzer code

Known Issues

  • BluetoothGatt is not properly freed when the board disconnects on its own (i.e. out of range, pulled power etc.). This results in the gatt callbacks being called multiple times if you discard the internal state (with MetaWearController.setRetainState(false)) and reconnect to the board.
  • Work around is to either opt to retain the internal state, or use the same MetaWearController reference to close or reconnect to the board instead of retrieving a new controller form MetaWearBleService.getMetaWearController(BluetoothDevice)

Build Changes

  • Depends on Android Support Library for use of LocalBroadcastManager
    • Library is available in the Android SDK Manager, under the "Extras" section

Code Changes

Haptic

  • Fixed issue with the startBuzzer implementation which resulted from using the incorrect duty cycle value
  • Added another startMotor function to set the dutyCycle percentage

GPIO

Temperature

MetaWearController

MetaWearBleService

Offline Event Handling and Data Processing

27 Nov 02:12
Compare
Choose a tag to compare

Version 1.2 adds APIs for the event and data processor modules, updates the Temperature, Accelerometer, and MetaWearController interfaces, and fixes several bugs with the IBeacon registers and implementation.

You will need to update the firmware to v0.8.6 to make full use of the DataProcessor interface.

Changes

Event

  • Added functions to record commands to be executed when activity is detected on specified registers
    • Firmware v0.8.6 can record up to a maximum of 8 commands
  • Users can remove programmed commands or

Data Processor

  • Added interface to communicate with the on board data processing
    • Provide builders to assist with configuring the filters
  • Can add, chain, remove filters, or reset a filter's internal state
    • Firmware v0.8.6 can have a max of 16 filters

Acclerometer

IBeacon

  • Fixed byte ordering bugs with the advertisement UUID and period, major, and minor values

MetaWearController

Temperature

  • Added functions to enable temperature sampling, which periodically samples the temperature and provides notifications of temperature changes.

Accelerometer and Logging Update

14 Oct 18:15
Compare
Choose a tag to compare

Version 1.1 expands on the accelerometer API and adds an API to interact with the new logging module. The expanded accelerometer API provides builders and explicit functions for configuring the accelerometer functionality and fleshes out the support for existing features.

The logging module requires firmware v0.6.0 or higher.

Changes

Accelerometer

  • Added support for shake, tap, and motion detection
    • Callback functions added: singleTapDetected, doubleTapDetected, shakeDetected
  • Fleshed out the implementation for xyz data sampling, free fall detection, and orientation detection
    • Deprecated inFreeFall, stoppedFreeFall, and receivedOrientation callback functions
    • Replaced with: movementDetected and orientationChanged
  • Added callback function for reading configurations
  • Added functions to explicitly enable different components and builders to configure the detection settings
  • Deprecated old [enable|disable]Notification functions
    • Replaced with [enable|disable]Component

Logging

  • Created API to interact with the new logging module.
    • Implemented callback functions to retrieve log information and download the log from the MetaWear board
    • Provides functions to add and remove logged events
  • Coded sample triggers for offline logging of accelerometer data and switch presses
    • Added functions in the BytesInterpreter class to convert the logged bytes into meaningful data

MetaWearController

  • Added readBatteryLevel function to retrieve the battery level characteristic