Understanding Robotmaster M2006_P36 hall effect sensors

Hey SimpleFOC Community!

So I’ve had this Robomaster M2006_P36 motor lying around for a while, and wanted to get it spinning up using the SimpleFOC library. I tried to dig around to figure out what the four sensor leads were. I didn’t find much online about this motors, but I was able to identify the leads as 3.3V, GND, H1 and H2. I assumed H1 and H2 meant hall sensors 1 & 2, which would be interesting because I thought motors with hall sensors typically had 3 (120 degrees apart for 6 step commutation). Anyhow that got me thinking, so I hooked the sensor wires up and took a quick sample of the H1 and H2 outputs as I turned the rotor through 1 full rotation. The plot of the output is included below.

Not quite sure what to make of this. This certainly doesn’t look like a unipolar/bipolar hall sensor to me! I’m guessing these are linear hall sensors, although I don’t know what to make out of the noise in the H2 (vs H1), and I don’t know why they would have 2 Hall sensors without a phase offset.

In short, I’m confused. Anyone have any ideas whats going with this motor?


Hey, cool motor!

A agree, it’s very confusing they are in-phase. Otherwise I would also have said linear hall sensors, or sin/cos analog outputs.

I assume it can’t be a case of debugging error (e.g. like printing the same value twice accidentally)?

And it looks the same when you turn it the other direction?


Good call on the debugging error, silly mistake on my end (connected to Ref & A0 instead of A0 & A1… woops). I did the collection again… and this definitely looks much better! From 0.5-2.5 seconds it is turning one direction, and from 2.5-4.5 seconds, it is turning the other direction. So this makes sense since you can see Hall 1 leading from 0.5-2.5, and then you see Hall 2 leading from 2.5-4.5. So this definitely looks like sin/cos!

I’ll take a crack at making a sensor class for this, as I don’t think it is supported? But shouldn’t be too difficult to figure it out.

Thanks for the help!

I just got see this. Those are two ratiometric linear hall sensors 90o apart.

You cannot get the absolute angle but enough to get the relative angle and speed with reasonably good resolution. Better IMO than three 1/0 halls 120 degrees apart.

You will need two available analog pins for that, so with three current sense you will need an MCU with at least 5 analog pins.


I think the LinearHall class will work for that.

@Valentine thanks for the information! This is the first time hearing about sin/cos encoders & ratiometric linear hall sensors. I’m guessing that you were able to tell that these are hall sensors because of the low cycles per revolution (number of cycles is probably proportional to # of pole-pairs?) and the inconsistent amplitudes between sin & cos?

@dekutree64 thanks for the tip! I will give that class a try.