I’m making great progress with the firmware for the new Mini Sumo Robot (see “New Concept for 2018 Mini Sumo Roboter“). The goal is a versatile and low-cost Mini Sumo robot, and the robot comes with the feature of magnetic position encoders. In a previous article I have explained how to mold custom tires for robots (see “Making Perfect Sticky DIY Sumo Robot Tires“), this article is about how to make DIY Magnetic disk encoders.
I have successfully used the Pololu Magnetic encoder disks (see https://www.pololu.com/product/2599). Below a picture how they are used in a Mini Sumo Robot (see “New Concept for 2018 Mini Sumo Roboter“):
Pololu sells the encoders in sets of 5 ($0.69 for a single disk). While Pololu offers free shipping inside the USA, it is rather expensive to get the encoder disks outside the USA, and I have not found any other supplier. In that case, here is a low-cost way (assuming you have a 3D printer available), making it possible to build magnetic encoder disks for less than $0.30 each.
- 3D Printer and 3D model of the encoder disk (link at the end of the article)
- 2 small (1×1 mm round) neodymium magnets
- Non-magnetic tweezers (can be 3D printed)
- Glue (paper or wood glue)
Pololu Encoder Disk
The Pololu encoder disk generates 12 pulses per revolution. The disk is made of some magnetic material which gets polarized at the factory. So there are not physical magnets in the Pololu encoder disk, but it corresponds to 6 magnets placed like in the image below. I have attached external magnets to find the magnet poles:
I searched for tiny neodymium magnets, and finally found 1x1x1 round magnets. I ordered 100 Neodymium magnets from AliExpress for less than $5:
I created a model for the encoder disk plus a tweezers to handle the magnets (usual tweezers are made of metal and not usable):
The picture below shows two printed encoder disks (grey), the original Pololu encoder disk, a 1×1 mm magnet and a 3D printed tweezers:
To find the magnet pole, I use a scotch tape and several small magnets:
Using a felt tip marker, the magnets get a mark to know the pole:
That way plus with the check of the other magnets it gets placed into the encoder disk:
That way placed and glued 6 magnets into each disk.
💡 Depending on the sensitivity of the magnetic sensors, it might be necessary to use 12 magnets (2 in series). For this I have put on GitHub another 3D model for more magnets.
Ready to test the new disks: they produce a nice quadrature signal. Below the two disks mounted to the motor shafts:
In case you have a 3D printer available and need a custom magnetic encoder disk for you robotics project, you can print your own encoder disk. Sure it is easier to buy the encoders from Pololu, but always good to know that I can build them myself too.
💡 if you know another source for these magnetic encoder disks other than from Pololu, please let me know.
Happy Encoding 🙂
- Mini MCU Sumo project on GitHub: https://github.com/ErichStyger/McuMiniSumoRobot (includes 3D CAD files)
- Pololu Magnetic Encoder Disc for Micro Metal Gearmotors, OD 7.65 mm, ID 1.0 mm, 12 CPR (Bulk): https://www.pololu.com/product/2599
- Zumo Robot with Magnetic Endoders: https://mcuoneclipse.com/2016/03/25/zumo-robot-with-magnetic-encoders/
- 1x1x1 mm Neydym Magenets: https://www.aliexpress.com/item/10pcs-1mm-x-1mm-1×1-cylinder-Neodymium-Permanent-powerful-Magnet-1-1-1-1mm-1mmx1mm-NEW/32722092863.html