Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

Pololu Forum

USB AVR Programmer v2.1 and ESP32

Can anyone advise on how the Line A & Line B functions should be set?
I have tried various combinations but can’t get the Auto Bootloader to work.
This is the circuit (I hope! But I can’t see how to preview…)


I think I should have mentioned that I am using the the Arduinio IDE.


What happens when you try setting Line A and Line B set to DTR and RTS to match the labels in the schematic? Can you post more details about the ESP32 board including a full schematic?


Hi Nathan,
… which to what? I am assuming Line A & B are outputs. So Line A could be set via the v2 Configuration Utility as “DTR (output)” or “DTR reset (output)” or “RTS (output)”. The same would apply to Line B.

Trying some (of the 27) possibilities gives the dreaded "Connecting …------…------… " Connection error.

And here is my schematic:

JP1 is the connector to accept the v2 AVR Programmer. JP3 is there to bypass the auto-bootload circuit and use the PROG & RESET buttons manualy.

Regards, ~M

Yes, Line A and Line B are outputs that can be set to different functions. We are not entirely familiar with the automatic bootloader functionality of ESP32 boards, but this documentation on GitHub makes it seem like the EN and GPIO0 pins should be connected directly to pins with RTS and DTR outputs respectively. It is unclear to me what the NPN transistors in your circuit are doing.

You probably want to use the DTR (output) and RTS (output) modes for the output lines of the AVR programmer, but you can look at the Serial control lines section of the programmer’s users guide for more information about the signal sent by DTR (output) and DTR reset (output) pin modes. There are some notes on that GitHub page I mentioned about how the ESP expects DTR and RTS pins to be toggled.



The problem here is “old” internet postings! Although, I had been using :unamused: official Espressif documentation, it seems that the silicone has been updated and the “Auto Bootloader” circuitry (crossed transistors - shown at head of thread) is now NOT necessary.

Can’t show timings (don’t have a DSO), but this working for me:

Pololu Programmer v2.2    << == >> ESP32
Pin A set as RTS (output) << == >> EN (pin 3)
Pin B set as DTR (output) << == >> GPIO0 (pin 25)
TXD                       << == >> RXD (pin 34)
RXD                       << == >> TXD (pin 35)