The 5 Volt Danger with the M5StickC

The M5StickC is a handy device for learning and prototyping from M5STack. My summary of the device is here and my notes on hardware accessories are here.

One huge concern about the device is the danger of damaging it by supplying its input pins with 5 Volts.

The short explanation is this: the device outputs 5 volts on the Grove connector and on one of the female header pins. However the core CPU, an Espressif ESP32, is not rated to be tolerant of 5 volts on its input pins. Thus if 5 volts is returned to the M5StickC it may destroy the device.

Is it really 5v tolerant or not?

The longer version is more complicated and I will also try to sort through practical options below.

The datasheet for the ESP32 definitely indicates that it is not tolerant of 5 volt (5v) input. Yet the President of the company (Espressif) once posted on Facebook “I can reply officially here: it is 5v tolerant at the IO while supply voltage is at 3.3v.” Yet another company employee has posted on Espressif’s site that their fabricators will not guarantee 5v compatibility so end users should not expect any change to the datasheet. End users have reported both successful operation (mostly) and blown chips (a few) at 5v. M5Stack has not released schematics of the M5StickC so there is no indication that they have added 5v protection for the ESP32 in their device. All in all, its a big mess.

I am a hobbyist and educator and not an electrical engineer. So judge the following accordingly. Here are my recommendations in dealing with the “5 Volt Danger” on the M5StickC.

The datasheet rates the ESP32 as not 5v tolerant. Assume any input above the official 3.3v (+.3v) is endangering the device.

Options for practice

  1. If your external device is not sending power back to the M5StickC you have nothing to worry about. So you can connect a servo powered at 5v or a string of 5v LEDS to either end of the stick (header pins or Grove connector) and you wont have a problem since these types of devices do not send input back to the stick. If your stick is not receiving input from a device or circuit you cannot destroy it with 5v IO.
  2.  Use devices that run at 3.3v and supply them with that voltage with the “3V3” header pin on the stick. This is pretty easy to do when bread boarding. Just be careful that you are only using the 3.3v power pin. The Grove connector only supplies 5v, however. If you are using a device with a Grove connector that will operate on 3.3v power from the stick you can pull the wire from the “V” pin on the stick Grove connector and connect it to the “3V3” header pin at the other end with a jumper wire.
    A Grove cable spliced to provide 3.3v power.

    This should work well for devices like buttons, potentiometers and other simple sensors that pull the IO pin high or low or return resistance readings. It will not work for Grove devices that require 5v input.

  3. If you are using a Grove device that communicates with the stick via the I2C (aka IIC) protocol (or other devices that require 5v and send more than 3.6v back to the stick) you have a choice.
    1. The first option is to use an I2C compatible level shifter between the devices. Level shifters are designed expressly for the purpose of allowing 5v and 3.3v devices to safely communicate with each other and are available for as little as $1. Ideally you would obtain a 2 channel level shifter that powers the 3.3v volt side from the 5v side. This would make the wiring easier.

      A level shifter inline on a Grove cable. This shifter supplies both its 3.3v side and its 5v side from 5v..
    2. The second option is to just go for it. The risk of damage is that too much wattage with burn out the internal circuitry in the stick. 5 volts is too much voltage but if you are only supplying a tiny amperage you will likely get away with it because the wattage is so low. For example, how much amperage I2C will return to your stick depends on the rest of the circuitry but it will typically be less than 1ma (1/1000 of an amp). This is not likely to damage you stick. No guarantees here as you are still over volting the input, but the risk of destroying the stick with I2C input from a 5v device is low.

 

Maker Tech Education