dzhu / myo-raw

MIT License
218 stars 115 forks source link

IMU units and range #3

Open fliesfaries opened 9 years ago

fliesfaries commented 9 years ago

Hi,

First of all, thank you for all the reverse engineering on myo protocol. I have succeeded in making the code work on both windows and linux with EMG and IMU data streaming different frequencies. However, I found it's really difficult to find out the range and units of raw IMU data.

I did some experiment to figure out how accelerometer is set. It seems to me that the acc is working at 15-bit-precision and ranged +-16g. If that's true, then this is not ideal for human arm acceleration measurement (range is too wide, +- 2g seems to be good). So I guess there must be information of such settings in the parameters sent from bluetooth. Wonder if you already had an idea?

Best

dzhu commented 9 years ago

It's possible that some of the unknown messages in MyoRaw.connect() (or something that I haven't seen at all) can change the ranges. However, keep in mind that this is the same data that Myo Connect itself was sending and receiving when I ran it, so, at least by default, this is what the official SDK would be returning for IMU data.

gltripp commented 9 years ago

Hey dzhu,

you did a great job with your work! I've recently got my Myo and started playing with your project. Its awesome for prototyping and playing around! I think, the next challenge would be to make sort of rebuild/alternative libmyo for linux.

i've one open issue I would like to resolve: Implement something like the libmyo.lock() resp. unlock() function? I'm not sure if this is something like a sleep-mode or if it matters at all. however, i've no idea how reverse-engineer the protocol by myself. (since i'm not familiar with windows api, can you give me a hint how to do?)

cheers