Skip to content
Community developed SDK around the Python bindings for the C++ SDK
Branch: master
Clone or download
hbldh Version 0.11.1
Fixes #57
Merges #54.
Added first draft of Azure Pipelines CI building.
Latest commit c7fb656 Dec 1, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Added Github issue template Aug 6, 2018
docs Fixes #57. Nov 30, 2018
examples Finished Linux testing for #51 Jul 29, 2018
pymetawear Version 0.11.1 Nov 30, 2018
.coveragerc Reintroduced docs Nov 18, 2017
.gitignore Reintroduced docs Nov 18, 2017
.travis.yml Commenting coveralls due to version req mismatch. Nov 30, 2018
AUTHORS.rst Function pymetawear/ – unused parameter timeout from class M… May 30, 2018
HISTORY.rst Merge branch 'master' into release/v0.11.0 Aug 8, 2018
LICENSE Ripped out internals and replaced it with MetaWear Python SDK. Nov 17, 2017 Ripped out internals and replaced it with MetaWear Python SDK. Nov 17, 2017
Makefile Reintroduced docs Nov 18, 2017
Pipfile Finished Linux testing for #51 Jul 29, 2018
README.rst README correction Aug 8, 2018
azure-pipelines.yml Version 0.11.1 Nov 30, 2018
cleanup Modifications to address issue #44. Feb 4, 2018 Reintroduced docs Nov 18, 2017
requirements.txt Work on #51 Jul 29, 2018 Work on #51 Jul 29, 2018



PyMetaWear is a community developed Python SDK started by Henrik Blidh . MbientLab does not provide support for this SDK.

Python package for connecting to and using MbientLab's MetaWear boards.

PyMetaWear can, from version 0.11.0, be used from both Windows and Linux. This is thanks to that the metawear package package is now depending on a new BLE library called PyWarble instead of gattlib. See installation instructions for more details about how to make it build on Windows.

Capabilities and Limitations

PyMetaWear was previously a wrapper around the MetaWear C++ API, providing a more Pythonic interface. In version 0.9.0 it instead becomes a wrapper around MetaWear's official Python SDK, doing the very same thing. The official SDK handles the actual board connections and communication while PyMetaWear aims to remove the low level feeling of interacting with the MetaWear board.


$ pip install pymetawear

Since version 0.11.0, the installation requirements for pymetawear has changed. See documentation for details on requirements for Linux and Windows respectively.


Available in the Github pages of this repository.

Basic Usage

The MetaWear client can be used in two ways: either as Pythonic convenience class for handling a MetaWear board or as a simple communication client governed by the libmetawear C++ library.

Creating a client, and thus also setting up a Bluetooth connection to the MetaWear board, is equal for both the two usage profiles:

from pymetawear.client import MetaWearClient
c = MetaWearClient('DD:3A:7D:4D:56:F0')


Blinking with the LED lights can be done like this with the convenience methods:

pattern = c.led.load_preset_pattern('blink', repeat_count=10)
c.led.write_pattern(pattern, 'g')

or like this using the raw libmetawear shared library:

from ctypes import byref
from pymetawear import libmetawear
from mbientlab.metawear.cbindings import LedColor, LedPreset

pattern = Led.Pattern(repeat_count=10)
libmetawear.mbl_mw_led_load_preset_pattern(byref(pattern), LedPreset.BLINK)
libmetawear.mbl_mw_led_write_pattern(c.board, byref(pattern), LedColor.GREEN)

Bluetooth Low Energy Scanning

Actual addresses to your MetaWear board can be found by scanning with the included discover_devices method:

from import discover_devices
out = discover_devices()
[(u'DD:3A:7D:4D:56:F0', u'MetaWear'), (u'FF:50:35:82:3B:5A', u'MetaWear')]

See the examples folder for more examples on how to use the libmetawear library with this client.


All functionality of the MetaWear C++ API is able to be used using the PyMetaWear client, and some of the modules have had convenience methods added to simplify the use of them. Below is a list of modules which have had their convenience methods written and one of modules that are awaiting such focus.

Completed Modules Unimplemented Modules
Accelerometer GPIO
Gyroscope NeoPixel
Haptic Color Detector
Switch Humidity
LED iBeacon
Barometer I2C
Ambient Light  
You can’t perform that action at this time.