Arduino Nano ESP32-S3 not connecting with Blynk Quickstart

Hello! This is my very first time using Blynk and ESP32. I have hobbyist-level experience with Arduino.

I have bought this Arduino Nano ESP32-S3 board and I’m trying to connect to it with Blynk through wifi using Arduino IDE. I’m following the Quickstart tutorial on Blynk.Console. I got through the first four out of five steps successfully, but the last step (Device Activation) isn’t working correctly. Quickstart says I should be seeing messages in Arduino’s serial monitor relating to the board’s attempts to connect to wifi. I’m seeing no messages at all in the serial monitor.

I’ll try to give as much info about what I see and what I did up to this point.

  • Arduino IDE 2.1.0
  • I have downloaded the Blynk v1.3.2 Arduino library
  • I have downloaded “Arduino ESP32 Boards” from Arduino’s Boards Manager
  • I’ve chosen the correct board and COM port and uploaded the code to the board with no errors
  • With no code loaded to the board, there’s a solid green light, flashing yellow light, and flashing rainbow light
  • With the Quickstart code loaded to the board, I just see the green solid light
  • In Quickstart, I chose “ESP32” for hardware and “wifi” for the connectivity type
  • I have put the correct credentials for my local wifi network into the Quickstart code for the board
  • After the code is loaded to the board and I unplug then replug the board into my Windows computer, I hear the “device connected” sound immediately followed by the “device disconnected” sound

This leads me to believe that Arduino isn’t even recognizing the board. In that case, I that wouldn’t be a Blynk issue, but I’m not entirely sure. I’m also a little unsure about whether this board will work with Blynk; but since it has an ESP32 chip, I assumed it would.

Does anyone have any ideas? If I didn’t provide any critical info, please let me know!

The Quickstart code (ESP32, wifi) that I flashed onto my board:

/*************************************************************

  This is a simple demo of sending and receiving some data.
  Be sure to check out other examples!
 *************************************************************/

/* Fill-in information from Blynk Device Info here */
#define BLYNK_TEMPLATE_ID           "TMPL2mM3vX1ls"
#define BLYNK_TEMPLATE_NAME         "Quickstart Template"
#define BLYNK_AUTH_TOKEN            "..."

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial


#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "...";
char pass[] = "...";

BlynkTimer timer;

// This function is called every time the Virtual Pin 0 state changes
BLYNK_WRITE(V0)
{
  // Set incoming value from pin V0 to a variable
  int value = param.asInt();

  // Update state
  Blynk.virtualWrite(V1, value);
}

// This function is called every time the device is connected to the Blynk.Cloud
BLYNK_CONNECTED()
{
  // Change Web Link Button message to "Congratulations!"
  Blynk.setProperty(V3, "offImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations.png");
  Blynk.setProperty(V3, "onImageUrl",  "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations_pressed.png");
  Blynk.setProperty(V3, "url", "https://docs.blynk.io/en/getting-started/what-do-i-need-to-blynk/how-quickstart-device-was-made");
}

// This function sends Arduino's uptime every second to Virtual Pin 2.
void myTimerEvent()
{
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V2, millis() / 1000);
}

void setup()
{
  // Debug console
  Serial.begin(115200);

  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  // You can also specify server:
  //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, "blynk.cloud", 80);
  //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, IPAddress(192,168,1,100), 8080);

  // Setup a function to be called every second
  timer.setInterval(1000L, myTimerEvent);
}

void loop()
{
  Blynk.run();
  timer.run();
  // You can inject your own code or combine it with other sketches.
  // Check other examples on how to communicate with Blynk. Remember
  // to avoid delay() function!
}

To be honest, I’m not a fan of the Arduino boards. In my mind their range of boards is far too diverse and although they have lots of features, most of these are far to niche for most users.

I’m also not that keen on most of the newer ESP32 variants - including the S3 - mostly because of the way that they have a virtual COM port rather than a a dedicated onboard UART chip.
I have used a small form factor C3 variant from Seeed Studios for one project that required wakeup from deep sleep on a button press, and dabbled with an S3 variant of the same board as well, but I really don’t like them for day-to-day use.

The Espressif version of the ESP32 core (which is different from the Arduino version you’ve installed) gives a Tools menu option of “USB CDC on Boot” which defaults to Disabled.
If you want the virtual serial port to be enabled on an S3/C3 variant then this option needs to be enabled, without it, the board won’t create a COM port on your PC and you can’t upload code or view serial output unless you press and hold the BOOT button before you apply power, then re-flash the board with the “USB CDC on Boot” option enabled.

I have no idea if the Arduino board and corresponding core that you are using has the same functionality, but it’s something worth exploring.

Unless you need the functionality of the S3 variant or have a specific reason to use the Arduino board, I’d suggest using something like the ESP32 Devkit V4 board instead.

Pete.

1 Like

I don’t like the blynk.edgent sketch as I like the simplicity of not using it. however…. the blynk.edgent / edgent_esp32… example worked flawlessly on first try with the Arduino NanoEsp32 for me.

Like i said, i dont like edgent, and if you stick with it, you’ll need to make sure you modify the settings.h tab to make the onboard led work properly and not have edgent includes mess with other i/o in your project.

Hi Pete, thank you for the reply. I appreciate the insight on different boards and ESP32 chips. I chose Arduino because the name was familiar, but I didn’t put much thought into choosing it over other options. I just wanted a board that would work with Blynk at all. I’ve looked into what you said and tried a few things.

My board doesn’t have a boot button, only a reset button. As for the board’s COM and USB device, they show up fine in Device Manager.

I’m not seeing a “USB CDC on Boot” option in the Tools tab, but there is a “USB Mode”.

Here’s my whole Tools menu. I’ve tried uploading with each USB mode, and with and without the Esptool programmer. None have an effect on the Serial Monitor, and I’m getting errors in Output in some cases. I’m not sure what a lot of these options are since I thought this would mostly be a plug and play process without needing to know a whole lot about what’s going on behind the scenes.

Would you have any other advice on how I could try to get this board working? Do you think I’d have better luck with the ESP32 Devkit V4 that you mentioned?

@Aubrey I have tried that Edgent example too, but I didn’t get any luck their either. I don’t get any errors, but I’m not able to find the device when I try “Add New Device” → “Find devices nearby” from the Blynk app.

[I used Imgur because apparently new users can only embed one media file per post]

No idea I’m afraid, as I said, I avoid Arduino branded boards whenever I can.

Yes, of course. These board work perfectly with Blynk.

Pete.

@CopperGenie

Thats unfortunate it is not working for you. Im sorry i cant be better help regarding your Nano esp32. Are you just starting out with mcu’s and IoT ? Maybe start with basics and get connected to your home network, do some blinking of led’s, do some serial prints of changing values or sensors and then layer in Blynk afterwards??

Just a suggestion… if Blynk doesn’t work out for you in the end (it really should :wink:), PM me. There is this great fellow out of the UK who is doing IoT and has a fairly easy low code approach (for now, reminds me of the good old Blynk startup days :+1:t3:). Good fellow, small outfit and he is very helpful to users.

Take care

1 Like