Smol ESP32 issue

Afternoon all, probably a really stupid issue. I cant get code to upload to the ESP32. Using the normal Thing models (skeleboard and wroom) you just hold down a boot button, but I dont see one on this. Do we need to utilize the rst pads on the bottom? Drivers are fine (reinstalled, and working fine for my other sparkfun esp32 board).

Thanks

Hi @Penzz,

The smôl ESP32 does not have boot or reset buttons. Automatic upload from the Arduino IDE will only work if you have the official Silicon Labs CP210X USB driver installed, so that the driver can toggle the DTR and RTS pins correctly to enter the bootloader.

Please have a look at the Hookup Guide:

https://learn.sparkfun.com/tutorials/sm … rogramming

And the details on how to install the CP2104 driver:

https://learn.sparkfun.com/tutorials/es … ide#CP2104

You can download the latest “Universal” driver direct from the Silicon Labs website:

https://www.silabs.com/developers/usb-t … cp-drivers

If you are using Windows and currently have a ‘generic’ driver installed, you may need to open the Device Manager and use the Update Driver option to overwrite whatever COM Port driver you have installed with the official Silicon Labs one.

Please let us know if you need more help.

Best wishes,

Paul

A little more detail:

If you are using Windows, search for and open the Device Manager.

Click on the Ports (COM & LPT) tab.

You should see:

DeviceManager1.jpg

If you don’t have the correct Silicon Labs driver installed, you may need to right-click on the COM port and use the Update driver option:

DeviceManager2.jpg

Best wishes,

Paul

That’s exactly the drivers i have, and what i see unfortunately. I’ll try new cables, new ports when i get home

Hi @Penzz,

If you are still having problems, the following will help debug what is going wrong.

I have added a stand-alone ‘binary’ version of the RGB_LED example in the SparkX_smol_ESP32 GitHub repo.

Please download a zip-file copy of the repo using the following link:

https://github.com/sparkfunX/SparkX_smo … s/main.zip

Unzip the file. Navigate to the folder SparkX_smol_ESP32-main/examples/RGB_LED_Binary . Double-click on RUN_ME.bat to upload the code to your board.

The batch file finds the correct COM port by searching your ‘Plug and Play entities’ for COM and CP210x . It then uses esptool.exe to upload the binary to the board.

If all is well, you should see:

I tested all of the smôl ESP32 boards personally, so I know they’re good. We just need to figure out what is different with your set-up. I was having the same problem as you initially, back when I was first developing these boards, but installing the official Silicon Labs CP210x driver fixed that.

Let me know how it goes.

Best wishes,

Paul

I am actually experiencing a similar problem (not sure if the same). I develop on a Mac and installed the latest drivers from https://www.silabs.com/developers/usb-t … cp-drivers (for the CP210x chip). The firmware upload only worked exactly once on this Mac (tried the LED example). All subsequent upload attempts failed on this computer.

This is Apple Silicon (M1 processor) so I’ve tried on an older Intel i5-based Macbook Pro with the exact same results. I then moved to a Windows 7 even older Dell laptop but the drivers do not work on Win7. Finally, I’ve asked my wife to lend me her Win10 laptop and that was the only one that it worked on.

I have no idea how/why it worked for that first upload on the M1 Mac, it currently only works on the Windows 10 computer (out of 4 laptops).

If it helps you debug it, the first upload (that worked on the M1 Mac) was also the very first upload made to the board, I had just taken it out of the box. Could it be that the upload messed something up with the board firmware making it unresponsive? Or maybe the Mac drivers are to blame…

Hello Razvan,

Thank you for the extra information.

The driver needs to be able to toggle the CP210x’s DTR and RTS pins to put the ESP32 into bootloader mode. That fails on Windows 10 / 11 if you are using a generic driver. Serial communication works, but the driver seems to be unable to toggle the DTR and RTS pins. With the correct Silicon Labs driver installed, everything works. (See image below.)

I tested all the smôl ESP32 boards at SparkFun using a Windows laptop. It seems very unlikely that your first successful upload changed anything on the CP210x. It is a puzzle why it worked once but not again.

The Mac driver does appear to not be working correctly. Unfortunately I don’t have a Mac… If you have time to investigate a little further, please do. If you are unable to make progress, please let me know and I will add a warning to the product page letting customers know about the issue.

There are very small test points on the RESET and BOOT signals on the bottom of the PCB. If you have your reading glasses handy (!), you can use a jumper wire to momentarily connect the BOOT pad to GND / 0V to place the ESP32 into bootloader mode. It is the same as pressing the BOOT button on a regular ESP32 board. Please see the photo below. The BOOT pad is highlighted. The nearest GND connection is the small square pad next to the “T” of “TXD” - also highlighted in the photo.

Many apologies for the inconvenience. Please let me know how it goes.

Very best wishes,

Paul

BOOT_and_GND.png

Hello,

I’m also having problems uploading Arduino code to Smol ESP32 using macOS Monterey 12.1.

I originally thought that the problem was with the CP2104 USB driver but…

I AM able to upload code to the SparkFun ESP32 Thing Plus with no problem. Doesn’t it also use the CP2104?

Any help would be greatly appreciated!

SparkFun: Please, please, please, test the Smol on a Mac! I’m willing to volunteer some time to do this.

Thanks,

Mike

Hi Mike,

That’s really curious…

I’ve just checked the Bill Of Materials for both the ESP32 Thing Plus (WRL-17743) and the smôl ESP32 (SPX-18619) and both use the exact same CP2102N USB-UART Bridge. Same Product Id (inventory code). Same chip…

The only real difference between the two is that the Thing Plus uses an ESP32 WROOM module, whereas the smôl uses the bare ESP32 chip. That shouldn’t matter, but it’s a difference.

We’ll try and get to the bottom of this. I’m completely Windows-based - I don’t have access to a Mac. Which means I need to ask a colleague to investigate - and they’re all busy people… It might take us a while, but we do need to understand what’s going on.

Meanwhile, thank you for your patience and understanding.

Best wishes,

Paul

Hi Paul,

Don’t know about the new Thing Plus with USB-C, but rather the older WRL-15663 (?) with USB-A.

Mike

Hi Mike,

WRL-15663 uses a slightly different chip from the same family: CP2104.

WRL-17743 and SPX-18619 use the newer CP2102N.

There is a Silicon Labs porting guide which summarizes the differences between the two:

https://www.silabs.com/documents/public … -guide.pdf

"Software Compatibility

The CP2102N is fully feature compatible with the CP2104. No software changes will be required when transitioning a CP2104 design to the CP2012N."

Maybe there is really subtle difference between the two when it comes to the Mac OSX driver?

Can you please check that you have the latest driver installed? It should be v6.0.2:

https://www.silabs.com/developers/usb-t … cp-drivers

Sincere thanks,

Paul

I think it is using 6.0.2 driver., will check this evening.

Yes, definitely 6.0.2. There are numerous people over at SI Labs’ forum that have the same problem. If you go under System Information / Software / Extensions, the driver is listed as com.silabs.cp210x, but under Loaded it says “no”.

Paul, do you think that there will be another version of Smol ESP32 that uses a different driver?

Hi Mike,

We have plans for a smôl Processor Board based on a low power processor - probably STM32.

At the moment, we don’t plan to revise the ESP32 smôl board. (That was designed for a very specific project where the board needed to be as slim as possible - and no wider than a AA battery. Mounting holes were not required - or feasible.)

Thanks for investigating this and apologies for the inconvenience,

Paul

Hi Paul

I recently acquired a Smol ESP32 and I am running into the same issue highlighted above. However, I AM on Windows 10 with all required software up-to-date (or so I believe, see below). I’m uploading to a “Sparkfun ESP32 Thing” board on port COM3. Notably, I am able to upload software by jumping BOOT to GND, suggesting the board is likely just fine. Any thoughts on other potential solutions?

Thanks in advance!

Peter

Running:

Windows 10, 21H2

Arduino IDE v.1.8.19

ESP32 v2.0.2

Sparkfun ESP32 Boards v1.0.1

CP210x Driver v11.0.0.509 (see attached image)

Error:

esptool.py v3.0-dev

Serial port COM3

Connecting……____An error occurred while uploading the sketch

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

Hi @pmahoney29,

I wish I had an answer for you…

I’ve updated to v11.0.0.509 of the driver and the upload still works OK for me.

I’m using the RGB_LED_Binary example from the GitHub repo:

https://github.com/sparkfunX/SparkX_smo … LED_Binary

Sorry! I wish I could get to the bottom of this,

Paul

Hi Paul and all,

I continue to have problems programming the smôl ESP32 under Mac OS Ventura (13.0). The error message is “ESP32: Timed out waiting for packet header”.

I have installed the latest CP210x USB to UART Bridge VCP Driver.

Is there a solution for this in the meantime, or is it still not possible to use the smol ESP 32 with a Mac at all?

Kind regards,

Ceal

Hello Ceal,

I’m sorry - we don’t have a solution for this at the moment.

Very best wishes,

Paul

There is something that you could try, but it involves soldering a 100nF capacitor between the RESET test pad and GND. If you have the skills and equipment to do that, please let me know and I will talk you through it. Please note: the test pads are very tiny. Too much heat from your iron, or force from the capacitor leg, and you can lift them off the board. Please consider this before agreeing to try it.

Very best wishes,

Paul

Would it be worth trying to install Windows on a MacBook with something like Parallels (Virtual Machine) or Bootcamp to solve the problem or does it need a native Windows PC?

Otherwise I would be interested in the solution using the capacitor.

Thanks,

Ceal