I’m using the Gearmotor and Encoder Assembly for Romi and the Motor Driver and Power Distribution Board for Romi Chassis for a class with Arduino Zero clones (using 3v3 SAMD21 MCUs).
Looking at the datasheet for the hall effect sensors listed on the encoder schematic (AH1751), it says that the sensors need a minimum of 3.5V and have an open drain signal output. To make sure there wasn’t a 5V input on the 3v3 SAMD21, I kept the encoders powered through the power distribution board’s 5V regulator, cut the pull-up jumper on the distribution board, and instructed students to activate the SAMD21’s internal pullups for the encoder channels.
Three out of five romi bots had no issues with this configuration (encoders powered from 5V Romi and open-drain outputs pulled high to 3v3 internally through SAMD21). However, two students have working encoders (I had them test the encoder channels were switching between high impedance and sinking to ground with a test LED & resistor since the hall effect can sink up to 50mA) but the encoder readings on the SAMD21 would not go high reliably with the internal pullups when their encoder channel wires were connected. So I had them hook up stronger external pullups (4k7’s) and they seem to work fine now.
Unfortunately, the robot I have doesn’t have these issues and I won’t be able to get pictures/videos to really confirm their setup at home with this being a distance learning class. If it was just one student, I could blame it on bad/loose wiring and that was the first thing I had them check. Am I on the right rack in thinking that the SAMD21’s internal pullups just aren’t strong enough for the encoders under certain circumstances (e.g. the effected bot’s parts are in a different level of their tolerances)? Is my setup correct? I was thinking for future classes I could just change the distribution board’s Vreg output to 3v3 but would that really be enough for the encoders to still work (plus it is nice having a 5V rail for other parts like LCDs)?
Thanks in advance - if I’m on the right track, I’ll just have to think of a way of fool proofing the 3v3 pullups (I would rather not have students have to breadboard external ones if we continue this distance class) or figure out another way of getting a 5V rail if the encoders will work fine off of 3v3.