Is the Zumo Robot for Arduino Compatible with 3.3v I/O boards?

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.

You can find a schematic diagram that shows how everything on the shield is connected in the Schematic diagrams section of the robot’s user’s guide.


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:

  1. The buzzer, it should still work, albeit at a lower volume, but I’ll be OK with that
  2. The motor driver, the datasheet shows the logic inputs to work at 2+ V, so should be OK
  3. 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
  4. 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.

We know of and have a fix for an issue running the QTR-RC sensors on the Teensy board and you might have the same issue with your board:

There might be other issues we are unaware of and if you notice any, we would certainly be interested in hearing about them.


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…