Giter VIP home page Giter VIP logo

bma423-pure-mp's Introduction

This is a work in progress BMP423 accelerometer driver written in MicroPython. The aim of this project is to explore the capabilities of the device, including what is normally not available in simpler drivers: the feature engine especially for step detection.

The datasheet was not really useful to be able to get the steps counter working, so this driver makes use certain things that BOSCH does in their own public driver in order to load the features configuration blob and things like that.

Right now this is just a work in progress, even if it works in the base case and to enable the step counter. More work is needed in order to support interrupts, to provide a cleaner API, documentation and a few examples.

Usage

Transfer files to the device. Note that : at the end is needed, or mpremote does a mess and will copy all the files to the last file name.

mpremote bma423.py bma423config.bin :

Then upload an example as main.py like this:

mpremote example_you_want.py :main.py

Then reset the device and look at the output in your serial log with:

mpremote repl

bma423-pure-mp's People

Contributors

antirez avatar

Stargazers

masx200 avatar Daniele Tricoli avatar  avatar Rui Carmo avatar malik avatar Gregorio Galante avatar Felipe Menegazzi avatar Robert Zabel avatar Darío Clavijo avatar

Watchers

 avatar  avatar

bma423-pure-mp's Issues

Support for FIFO streaming readout

Hi. I would like to continuously sample the BMA423 accelerometer. And for the samples to be well synchronized in time. From my testing so far, doing polling based from MicroPython introduces occasional stutters of several milliseconds in the worst case.
The best way to get stable and performant readouts is using the FIFO functionality in the accelerometer. The BMA423 has 1 kB of FIFO space, so it can hold data for many milliseconds, which also enables the host microcontroller to sleep in between. This is an "advanced" feature, which many drivers unfortunately do not implement.

Are you interested in such functionality, if I implement it? If so, do you have any guidelines as to implementation and/or API?
I am thinking to let the BMA423 stay simple methods for poking the device registers. And then the whole flow of FIFO based data streaming can be in an example, like the others you already have.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.