BLE Intertial Measurement Unit

Open Source bluetooth enabled IMU with SPI expansion slots.
Track any motion

Similar projects worth following
Utilise cheap NRF51822 board to develop 9+ DOF inertial measurement unit (IMU) for general motion tracking and dead reckoning. Want to accurately track your movement or log sport activities ? Join the project and help make it a reality!

One more thing ... bluetooth enables sports watch / mobile connections. Hence we plan to team up with for a complete solution.

The basic project breakdown looks as follows:

  • Phase 1 - analyse project requirements from functional and design perspective DONE
  • Phase 2 - decide on what components to choose DONE
  • Phase 3 - electrical schematics design DONE
  • Phase 4 - PCB design DONE
  • Phase 5 - component sourcing DONE
  • Phase 6 - PCB soldering (bypasses required) DONE
  • Phase 7 - Waterproof casing design and 3D print DONE
  • Phase 8 - NRF51822 and component validation DONE
  • Phase 9 - complete self-test at boot
  • Phase 10 - sensor logging to console and storage
  • Phase 11 - download data to computer via external serial connection
  • Phase 12 - real world applications with bluetooth paired mobile phone or smart watch (bike, swim, run etc.)

We plan to publish all documentation and schematics as we move along. If you like the idea, please support our work by donating here.

  • dev board project moved

    Lukasz06/23/2015 at 20:20 0 comments

    Moved the dev board to its new home @ to reduce clutter.

  • more goodies

    Lukasz06/23/2015 at 14:12 0 comments

    Few days ago we got a message from Mike that we won some more goodies from Hackaday. We got Stickvise! and Teensy-LC board.

    Vise will definitely be of great help and assistance with the dev boards! Looking forward to solder them using Stickvise!

    Once we kick-off properly we will definitely buy more! Get yours and many more @

  • treats from Hackaday! Yay!

    Lukasz06/17/2015 at 10:24 0 comments

    Some time ago we received a OSHpark coupon from Mike. We have designed a customised dev board for our BLE board. Fiddling with connectors and wires on a breadboard is just a waste of time.

    We only received them yesterday! SWEET!

    Many thanks, this will definitely speed up development and reduce frustrations with those bloody cables.

    Eagle files available here.

  • it's alive !

    Lukasz06/11/2015 at 10:25 0 comments

    The components are responding! We used a logic analyser with Saleae software to check for I/O digital signals and decode them on SPI.

    FM25CL64B Fram tests:

    MS5803 pressure sensor tests

    But there were problems of course. Main ones we had to overcome:

    • Bypass connectors helped in fixing the wrongly designed layout for W25Q256FV flash memory module.
    • Apparently pins P0.26 & P0.27 for the nRF51822 are by default used for the 32kHz crystal. These we used for SPI communications, so again we had to solder bypass connectors. Pins P0.28 & P0.29 worked great instead.
    • We did not connect VCCIO from the ADXL362 accelerometer near C6 capacitor, hence another bypass was required.

    So looks like it's all working! Phase 6 & phase 8 are DONE.

  • soldering. the physical part

    Lukasz05/31/2015 at 20:43 0 comments

    So we got our boards manufactured and delivered just before the weekend. We decided to visit our local fablab in Lodz to have enough space and non-disturbed time to get this over with. Unfortunately time flies and we only managed to solder one 9+DOF board and a few smaller ones with MS5611, MS5803 and BMP280 pressure sensors.

    nRF51822 board fits perfectly, but we also found a flaw on our PCB. Seems like double checking board design isn't enough. The W25Q256FV Eagle layout we found somewhere on the internet does not match the physical part. We haven't soldered this component and will have to make bypass connectors. :-/

    Now for the test phase ...

  • finally becoming tactile

    Lukasz05/25/2015 at 09:38 0 comments

    While waiting for PCB manufacture we decided to move on. We 3D printed previously designed cases and were surprised they fit together quite nicely. Obviously the rough edges had to be ground with a sandpaper and a small file, but hey ... 10 years ago this would not be possible in a garage :-)

    Our print profile used in Repetier 3D printing software can be found here.

  • case design

    Lukasz05/24/2015 at 10:30 0 comments

    We designed two custom enclosures:

    • a waterproof case to be used with a strap - much like a watch, but can be connected to anything really.

    • a highly splash proof case for mounting on a bicycle chain stay.

    STL files for 3D printing can be found here.

  • Board design

    Lukasz05/05/2015 at 20:21 0 comments

    Finally we routed the board. This is the first time we designed a PCB so please forgive any blunders. Managed to squeeze all 3 SPI sockets for potential extensions like pressure sensors. We can already think of some crazy applications.

    We also have sockets for battery and buzzer connections. This way there is no need to solder anything, just plug&play.

    Eagle files can be found here.

    Now it is "just" off to the manufacturers to order the board and component suppliers to source the parts and we are ready for soldering. Hope all is properly designed :-)

    Phase 4 - DONE.

  • Electrical schematics

    Lukasz04/28/2015 at 20:08 0 comments

    So ... the wheels are turning. We have done the electrical schematics for the board. All measurement components (accelerometer, 9DOF and expansion slots) have been put on SPI1 lane, whereas both FLASH and FRAM memories have been separated onto SPI2. Let's hope we can find room to fit three SPI1 expansion slots for additional sensors.

    Eagle files can be accessed here

    Phase 3 - DONE. Now for the tricky part ... squeeze all components on this tiny board. PCB design here we go!

  • Component selection

    Lukasz04/23/2015 at 13:18 0 comments

    Based on the criteria specified previously we chose:

    • Microchip MCP1710 3.0V current LDO regulator
    • Analog Devices ADXL362 ultralow power 3-axis accelerometer
    • Invensense MPU-9250 9-axis motion tracking multi-chip module
    • Winbond W25Q256FV 3V 256M-bit SPI Flash memory
    • Cypress Perform FM25CL64B 64k-bit SPI Fram memory
    • additionally we plan to use MS5611, MS5803 and BMP280 pressure sensors

    Smaller parts include:

    • 0603 smd components for optimal size vs. soldering difficulty
    • 2.0 pitch 2x9 connector sockets for NRF51822 connection
    • 6 pin smd socket for external SPI expansion (ex. pressure sensors)
    • 21x32mm LiPo battery of around 120mAh
    • Tactile smt switch
    • cheap Vibration motor 3-4.5V 0.06A

View all 11 project logs

Enjoy this project?



comp9900794 wrote 09/28/2022 at 06:29 point

S there an evidence on a way to application this form of watch myself? Especially adding a brand new Language aid by ข่าวฟุตบอล.

  Are you sure? yes | no

jacksonliam wrote 07/09/2015 at 11:58 point

Nice project! Congrats on the swag. I have one of those boards and have tried to use various dev boards and software to program it with code built from mbed. 

What are you using to program it and what stack are you using for software development? 

  Are you sure? yes | no

Lukasz wrote 07/09/2015 at 20:40 point

Thanks! We use mbed to compile the software and then program the chip using opened via console. Should you wish to read more on how we do it please visit (our old blog)

If you have any other questions please feel free to ask. We're happy to help!

  Are you sure? yes | no

jacksonliam wrote 07/09/2015 at 22:35 point

Thanks, that's really useful! I'll give that a go! 

  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