Releases: mbientlab/MetaWear-SDK-Android
Code Maintenance
SDK v3.3.0 is primarily code maintenance to better utilize the Bolts Framework for asynchronous tasks and to take advantage of the Java 8 feature support provided by Android Studio 3.0.
This release also includes a few bug fixes and updated feature support for the BMI160 imu.
Changes
- Properly interpret data from low/high-g detection
- Old code swapped the bits that report whether low or high-g was detected
- Fixed identifier generation for step counter data
- Added support to configure BMI160 filter modes for acc and gyro data
- This parameter is set via the
filter
method in their respectiveConfigEditor
interfaces
- This parameter is set via the
- Added support for 16 byte data with the
delay
component - Internal code refactoring
Logging Bug Fixes for v3.2
API v3.2.2 is a small fix for the v3.2 release fixing logging issues.
Fixes
- Fixed bug where you could not create anonymous routes after deserializing the board state
- Serialize additional information needed to correctly recalculate timestamps for certain log download corner cases
Cross Device Downloads
SDK v3.2.0 adds support for cross device downloads of logged data. In other words, you can configure the boards to log data on one device, then use another device to retrieve the data. See the documentation for more details .
Changes
- Added createAnonymousRoutesAsync function, which is used for the aforementioned cross device downloads
- Added downloadFirmwareAsync to download specific firmware versions
- Added functions to sync accelerometer, gyro, and sensor fusion configuration
- Fixed a bug where reading invalid GATT characteristics causes the the underlying BLE code to mishandle disconnects
Firmware v1.3.4 Features
API v3.1.0 adds support for new features in firmware v1.3.4, most notably the new data processors (accounter, packer, and highpass filter). There are also a few bug fixes and general API improvements in this release.
Changes
- Added suspend function which places magnetometer in low power mode
- Will only send the command on boards running firmware v1.3.4 and later
- When suspended, all settings will be reset and the sensor will need to be reconfigured before collecting data
- Added support for new data processors in the RouteComponent interface
- Improved logging implementation to handle time rollover
- Fixed corner case in logging implementation that would think some entries from an 800Hz data sample were duplicates and discard them
- Fixed regex pattern for matching version strings
More v3 Bug Fixes
This is another maintenance release on the v3.0 branch.
Changes
- Fix data scaling when using component magnetometer data
- Was still scaling to micro Telsa whereas the combined XYZ data was scaled to Tesla
- Check if firmware supports packed magnetometer and gyro data
- Changed macro implementation to begin programming after the macro id has been received
- Fixed pattern matching for version string
- Pattern incorrectly matched on single digit step values
Bug Fixes and Bluetooth LE Refactor
v3.0.32 fixes a few bugs with the API and refactors the underlying Android BLE usage.
Changes
- Corrected attribute definition for MMA8452Q acceleration data
- Fixes using the acceleration data wtih data processing and logging
- Fixed bug with using data forwarding to create feedback loops in a data processing chain
- See this unit test for code example
- Refactored underlying Bluetooth LE usage to incorporate the Bolts Framework
- Internal BLE api and implementation extracted as a stand alone class in the BleToolbox project
Null Pointer Fix for Reading RSSI Values
API v3.0.17 fixes a null pointer exception that occurred when periodically calling readRssiAsync
.
Serialization Fix and Timestamp Change
API v3.0.11 is another patch on the v3.0 release fixing issue #10 and changes packed mode (acc, gyro, mag) to use the same timestamp for all grouped data.
MetaBoot Connect Fix
The v3.0.7 release addresses a bug with the connectAsync
function which resulted in the task always failing when attempting to connect to a board in MetaBoot mode.
Android API v3.0.0 Release
MetaWear Android API v3.0.0 has left the beta stage and is now officially released. The core flow of the API remains the same (i.e. library setup, interacting with modules etc.) and will feel very familiar for developers using API v2. The API as a whole, however, has been redesigned to:
- Accommodate lambda expressions
- Improve the DSL for constructing data routes
- Use the Bolts Framework for managing asynchronous tasks
To get a grasp on how to use API v3.0.0, check out the API documentation, Android tutorials on GitHub, and source code for the sample app.
Breaking Changes
If you are new to using API v3, you can skip this section. Developers who have been using the beta releases should take a look at the changes listed below.
- Appended Async to functions that return a
Task
object - Renamed a few interfaces
- RouteElement -> RouteComponent
- EulerAngle -> EulerAngles
- ColorDetectorTcs34725 -> ColorTcs34725
- Changed all data values to be in SI units
- Gpio abs ref data and battery charge level are now float values in Volts (V)
- Magnetic field strength represented in units of Tesla (T)
- Illuminance data is now a float value in lux (lx)
- Motion data producers retrieved through the
motion
function rather than one function per motion detection type - Created wrapper classes for each motion data type rather than putting them all under CartesianFloat
- Replaced CartesianFloat with Acceleration, Angular Velocity, Magnetic Field
- Serialization format changed
- Developers using serialization will need to reserialize the
MetaWearBoard
state or remove cached states with the LocalBinder's clearSerializedState method
- Developers using serialization will need to reserialize the