I searched all over and couldn’t find out if the the Zumo Shield is compatible with 3.3v boards like the Arduino Zero or Adafruit Metro which have a SAMD21 micro-controller? I still consider myself an arduino newbie but I feel like I want to dip my toes in the 32 bit water and at the same time try out sumo… If the board is “fairly” compatible is it something easy enough for an intermediate or electronics beginner to tackle?
It appears that the Metro M0 board you mentioned supplies 5V to the 5V pin on our Zumo Shield and our shield uses that rail to pull up the SCL and SDA I/O lines on the microcontroller to 5V. It might be possible for you to modify the shield to connect the 5V rail to use 3.3V instead, though some peripherals like the optional reflectance sensor array might operate differently.
I am trying to do just that, building a Zumo robot with a Zumo Shield v. 1.2 and a SAMD21 based Arduino. As far as I can see the peripherals affected will be:
The buzzer, it should still work, albeit at a lower volume, but I’ll be OK with that
The motor driver, the datasheet shows the logic inputs to work at 2+ V, so should be OK
The Reflectance Sensors, I can disconnect the 5V by clipping the pin and reroute it to 3.3 V. Yes the discharge times will be shorter and the resolution will be lower. But as long as the lines are of high enough contrast it should work
SLC and SDA, internally on the shield they are 3.3 V but get shifted to 5 V. So I’ll either have to convert the level shifter to a 3.3 V to 3.3 V (and yes I know how silly that sounds) or remove the level shifter by removing R16, R17 and removing and bridging Q4, Q5. There are no component IDs printed on the board. Where are these components on the board?
What about the Zumo libraries? What changes (if any) can I expect there?
In general, it sounds like you are on the right track. Q4 and Q5 are the SOT-23 parts to the right of the IMU axis orientation silkscreen and R16 and R19 are the 0603 resistors to the right of the SDA and SCL headers above that (circled in blue on the in the image below). In general, using 3.3V on both sides of that level shifter should be OK, though.
I just wanted to follow up to this thread for anyone else looking at alternative 32bit boards for the zumo. I actually ended up going with a nucleo board and I’m very happy with my decision. The mbed platform was relatively easy to jump into from arduino. The 5V tolerance on nearly every pin meant I didn’t worry about frying it with the mixed voltage system. The stm32 family seems ubiquitous so I’m glad I’ve now exposed myself to it. I did use stacking headers to space it up as I believe there would be interference between the tall components on both boards. I did do the 3.3V mod to the reflectance sensor but it MAY have worked without doing it albeit with significantly different timing values which I ended up with anyway. My only advice is to NOT choose the F103 board which is the one I used because It lacks PWM on D10 (I think it is) which you need for motor driver so I had to jumper a different pin which is easy with the outboard headers on the nucleo. I think if you choose the F401 you won’t have that problem…