Tiny Wireless IMUs - 100% open & autonomous 9DoF motion sensor using BLE to control anything from your [objects] motion !

Similar projects worth following
Let's give life to objects !

We looked for tiny, autonomous, easy to use, and 9 Degrees of Freedom IMU, but none of the available wireless motion sensors were affordable enough to really unlock creativity, so we built one.

In a few simple points, here are the specs:
- 9 DoF with on-board sensor fusion (more explanation below)
- Easy to connect with BLE: good for computer + smartphone + tablet connection possible (lower power than WiFi)
- Compact & autonomous: Embeds a CR2032 battery holder (available in any corner shops, gas stations…)
- Size of a coin cell battery!

Here is an arty example by one of our early adopters:

Follow us for the latest newz:


Twiz modules are the most universal tools for wearable technologies, applications are simply endless but here are a few examples :

  • Media control: modulate sound effects or control a light show from performers’ motion
  • Scientific studies: analyse a building/bridge vibrations, animal activities…
  • 2/3D Software: motion capture to animate 3D model of object, human or virtual creature
  • Games: control your favorite doom-like from your hand, or breakout
  • Anything that a beacon or activity tracker does
  • Home automation: control your room's light volume by spinning your candle:


MPU9150, 9 axis IMU motion sensor:

3D accelerometer for linear accelerations, 3D gyroscope for rotational accelerations, 3D magnetometer for orientation reference

nRF51822, processor + connectivity:

32 bit ARM processor with low consumption optimization (Cortex-M0), BLE (Bluetooth Low Energy AKA Bluetooth smart/4.0)

Physical characteristics :

2.4 cm x 2.4 cm (< 1 inch), 1.1cm thick (< ½ inch), 4.6g (~7.6g w/ battery)

It started with usual dev boards such as teensy, IMU and radio modules:

...but we shrunk it:


  • Madwick fusion: send Euler angles or Quaternions
  • ifttt recipes with our python/kivy interface
  • experimentation using swift, noble
  • open source: software / firmware / hardware (schematics, gerbers, BOM, etc.)

Software architecture:

  • 1 × nRF51822 ARM Cortex-M0 + BLE from Nordic Semi.
  • 1 × MPU-9150 9DoF in 1 chip (accelerometer + gyroscope + magnetometer) by Invensense

View all 8 project logs

  • 1
    Step 1

    In the 2 batch, we got 20 faulty CPUs, we tried the X-ray of a Paris hackerspace mate who works in a hospital: didn't help much but my heatgun became my best friend:

    Berfore changing it a few tests were performed:

    Made in BlackLoop (Paris Hackerspace).

  • 2
    Step 2

    The microcontroller was not arduino compatible at the time this project started. The 1st tests were made with a $10 dev boards and a $10 JTAG programmer, using open source tools only:

View all instructions

Enjoy this project?



Stan wrote 03/09/2016 at 19:58 point

Can you send some command to your board and execute it by the CPU? e.g. changing state of some output pins? Like the LED on the video?

  Are you sure? yes | no

Drix wrote 03/10/2016 at 10:32 point

Not yet but very soon :)

=> we're doing tests for an improved version:

  Are you sure? yes | no

Stan wrote 05/25/2016 at 22:48 point

that page is blank :(

  Are you sure? yes | no

alpha_ninja wrote 12/07/2015 at 00:25 point

[verified: no design files missing]

  Are you sure? yes | no

alpha_ninja wrote 12/02/2015 at 00:47 point

This is your one-week reminder to upload design documents:

  Are you sure? yes | no

Drix wrote 12/03/2015 at 06:32 point

Done, thanks for the reminder ;)

  Are you sure? yes | no

alpha_ninja wrote 12/03/2015 at 14:18 point

Great, thank you :)

  Are you sure? yes | no

zakqwy wrote 11/09/2015 at 15:24 point

Is it possible to do the sensor fusion on board in the ARM, rather than on the bluetooth-connected computing device? Or is that already happening and I just missed it? :-)

  Are you sure? yes | no

Drix wrote 11/09/2015 at 17:31 point

It's happening on board ;)
See the function madgwick_quaternion_update():

(BLE is actually too slow to send enough sensor data to allow a reliable fusion outside)

  Are you sure? yes | no

zakqwy wrote 11/09/2015 at 17:36 point

Awesome, thanks for the link! I remember investigating Madgwick's fusion implementation a few years ago--neat to see it running on an M0. Well done!

  Are you sure? yes | no

glenk918 wrote 10/18/2015 at 19:40 point

I see you have two programming pins on the header of your PCB. Can you tell me how you program the board once you have it assembled? Thanks!

  Are you sure? yes | no

Drix wrote 10/18/2015 at 19:55 point

Sure, for the hardware I use a JLINK probe, see in this archive:

...and for the software I use a makefile given here:

  Are you sure? yes | no

Carlos wrote 10/07/2015 at 02:40 point


  Are you sure? yes | no

Drix wrote 10/18/2015 at 19:52 point

Gracias ;)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates