ESP32 not recognized if connected to Gravity Nano I/O Shield

Hello guys!

First of all: sorry, but I am completely new to the Arduino world.

I have just bought an Arduino Nano-ESP32 along with a Gravity Nano I/O Shield Gravity: Nano I/O Shield — Arduino Official Store

If I connect the Arduino board alone to the PC (Windows 11) using a USB cable, all works fine: I can program it uploading the code with the Arduino IDE.

If I mount the board to the shield and connect it to the PC, I don't see any device in Windows and in the Arduino IDE.

My final goal is to control a H-KING servo motor, but if I connect it to the shield with the ESP32 attached to the USB port, nothing happens.

Any idea how to solve this? Is the shield compatible with the Nano ESP32?

Many thanks in advance, I love you!

Hello @enr123 and welcome to the forums!

Your guess was right, the Arduino Nano ESP32 has a slightly different pinout than previous Nano boards: one RESET pin is now the boot mode selection pin. On shields not designed for the Nano ESP32, this will cause the CPU to stop in ROM bootloader mode (purple light) at every boot/reset. :man_facepalming:

The fix is easy though: you can safely cut the stem of pin B1 (third from top right in your picture) so that it doesn't enter the shield's socket. Everything should work as expected now!

Let me know if this helps :slightly_smiling_face:

2 Likes

Hi @lburelli and thanks for your very quick reply! :rocket:

Before implementing your clever hack, I would like to be sure about the feasibility of my whole project.

In fact I have just read that the ESP32 board operates at a 3.3V instead of the usual 5V. As I mentioned, I would like to control a H-KING servo motor (through e.g. the pin 10), connecting it to the shield powered through the 0 RX pin with the following board I already own:

Is this a viable solution or do I risk burning out the Nano board? Do you suggest a better setup for this goal?

Many thanks, I really appreciate your precious help! :pray:

PS: I looked for any shield designed for the Nano ESP32, but I was not able to find any on the arduino store...

Right, that is a different question! :slight_smile:

As for powering the Nano ESP32, you can use anything from 6 to 21V on the VIN pin (not RX!), so 6V should allow you to power both the board and most servos (but check your servo datasheet).

Indeed, the board will then convert this to 3.3V, and all other I/O pins will be limited to that. This may not be enough to drive a 6V servo input signal without significant jitter (if it is recognized at all). I'm no expert in this field though.

Unfortunately you are right, most servos need 4.8v~7.4v.... and that won't work (servo on 3.3v board).

So maybe in order to control servos the simplest solution is to buy a 5V Nano. I have seen that there is the Every version and the "normal" one. What's the difference? What should I buy to control servos?

About cutting the stem of pin B1 on the ESP32: will I lose some "will be useful features" of the board (while fixing the USB connection) or that's just an "always win" hack?

Thanks a lot, @lburelli , I will keep you updated on progress!

Looking around I found this old discussion which shows they are internally very different: the original Nano is basically a slimmed Uno, using the most common CPU in the Arduino ecosystem; the new Nano Every has a more powerful, but different, processor. Note that both are in a completely different league compared to the ESP32 - vastly less performance and no networking (WiFi/BLE) features.
I would say, check the libraries you would like to use in your project, to see if they are compatible with those boards (or CPUs).

In the case of the Nano ESP32, I'd go for "always win": you can't use that pin for anything sensible in your sketch (there is no pin called B1!), and the only function you will lose is the ability to enter ROM recovery mode via external logic - a questionable "feature" IMHO :slight_smile:

Happy hacking!

I have just cutted the B1 and the Nano ESP32 connected through the USB to the PC is recognized now!!! :rocket:

And... the good news doesn't end here :newspaper_roll: ..... connecting the servo motors (the H-KING HK15298B or the HITEC HS-311), they are moving! :robot: I really didn't expect that... how can you explain it?

So for now I am going to keep playing with this board, as you said it has much more potential than the others!

Really many thanks @lburelli ! :sunglasses:

1 Like

Instead, strangely, the power adapter is not able to move the servo (I'm connecting it to VIN). But I can live with the USB :slight_smile:

Thanks @lburelli for the solution, you rock!

For the record (and increased visibility) I have been trying to use the dollatek prototype shield with my arduino nano esp32 and the usb was not recognized either.

1 Like