Recommended Absolute Encoder (Mounting) for Hollow Shaft Motor?

Hi all,

first of all, thanks a lot for all the work put into this, I got my shield up and running yesterday and I’m pretty happy!

I would like to build a robot arm using gimbal motors such as the
GB4106 I got from T-Motor (GB4106_Gimbal Type_Motors_Multirotor_T-MOTOR Store-Official Store for T-motor drone motor,ESC,Propeller). As there are going to be several motors in series I would like to route the cables through the hollow shaft, but now my problem is: how to mount an absolute encoder that doesn’t cost me an arm and a leg?

Right now I’m experimenting with a AS5600, but with cables going through the hollow shaft of the motor I wouldn’t directly know how / where to mount the magnet and encoder. I’ve seen hollow shaft encoders online that cost a lot, but I can’t justify that for a hobby project. I guess this is a somewhat common problem and there must be a good solution to this, but I can’t wrap my head around it.

Any ideas?



AS5600 is a very slow encoder, its more of a potentiometer actually. Used in slow servos. You may have a problem using it for gimbal, though it might be possible to get 100 rpm out of it.

As far as the magnet, you have no choice but mount it on the axis. And find a different way to route the cables. Routing cables through a rotating shaft is rather unorthodox.

There are off-axis sensors but they cost more than the motor itself. They also need a relatively expensive diametrically polarized or multi-pole ring magnet.


The sensors below do not work with SimpleFOC, they are just as a reference.

I’ll add that MagAlpha makes a few sensors, the MA732 in particular comes to mind, that can be mounted to the side of the magnet. And there are diametrically magnetised magnets available with holes though the middle.
You’d have to check the datasheet to see how big the magnet may be, to see if this idea is physically possible, but the MA732 is not super-expensive - more than a AS5600, for sure, but also a much better sensor.

Note that iPower and some others sell motors with integrated hollow magnets and sensor, with hollow shafts. I think you can use the AS5600 or AS5048A. How they intend you to route the cables is a bit of a mystery to me, I guess they think with an air-gap of 1mm it is enough and the sensor still works. I’m not so sure.

[edit] more ideas:

don’t make the motor direct drive the axis - make it via cogs or belts, and pass the cables through this new axis.

don’t worry about it. Passing cables without a slip-ring anyway means you can’t do unlimited full rotations. So just design the system to limit to a few rotations, and route the cables with some slack. They can take one or two turns in this way, and then the software rotates things back.

That’s a good idea, could he do 1:1 very basic, spur gear parasitic wheel and put the magnet and sensor there, then route cables through the motor hole?

I’ve never tried this. In theory, I guess why not, there are pretty small timing belts for example. I’m no mechanical engineer but any kind of gearing will usually have some backlash (esp 3D printed) which you really don’t want on the magnet. Belts can be better although obviously any belt stretches a bit too, so its not perfect either.

I think it could be tried. I think there’s some others in the forum who may have done so. I tend to discourage people from thinking they can reliably measure the motor shaft angle on anything but the shaft itself, because the chance of introducing errors is so high, and (depending on the pole count) it is such a sensitive measurement to the FOC algorithm.

I did it with a belt, and the backlash is zero, especially because there is no load on the belt and you could very carefully size the gears to use the belt elasticity to remove backlash. There are very short timing belts available. A lot better than paying $100 for a hollow shaft sensor assembly.

1 Like

Thanks a lot Valentine and runger! Those were helpful and informative answers! :slight_smile: The MA732 is a good hint. I’ll think about that or (more probably) I’ll think about a good way to belt the motor off-axis with the sensor on the motor shaft, that seems to be a little easier for me personally.

Ah, and I’m amazed by how quickly I got feedback here! Cool :slight_smile: