Giter Site home page Giter Site logo

joushx / python-sonicare Goto Github PK

View Code? Open in Web Editor NEW
79.0 79.0 3.0 32 KB

Python library to communicate with a Phillips Sonicare toothbrush via Bluetooth Low Energy

License: MIT License

Python 99.33% Shell 0.67%
ble bluetooth bluetooth-low-energy python-sonicare

python-sonicare's People

Contributors

joushx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

lulzzz erikni

python-sonicare's Issues

Various data on characteristic 4130

I was experimenting a bit, especially the gyro characteristics. I own a sonicare HX991W which should be identical to the HX992B.
I could not get any gyro data out of it, but I was able to find some other useful values:

You have to write a value to 4120 to enable output on 4130. Depending on what you write to 4210, you get different outputs:

0: no output on 4130
1: pressure data
2: unknown values. They change sometimes, but I cannot find when or how, or any meaning
8: grip strength
Combinations are possible (so, write '9' to 4120 to get pressure and grip data).

The first byte of the received value on 4130 indicates the kind of data in the rest of the string:

1: pressure data: 5th and 6th byte output a signed integer, positive if you press on the brush (the normal force when you brush your teeth), negative it you pull the brush up. 7th byte has a value of '2' if you exceed the recommended pressure. Only streams this when the brushing is active.

8: grip strength: 5th byte indicated how strong you hold the body. Around 100 if you don't touch it, around 160 is you squeeze it. Other bytes seem to be some kind of moving average, and other related values I cannot identify. These values regardless of brushing active of inactive.

Do you know how to enable streaming of the accelerometer/gyroscope data?

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.