ESP-01 USB Adapter This ESP-01 Adapter with CH340 USB driver makes it possible to address the ESP-01 Wifi modules easily via the computer. The adapter also has a 5V to 3.3V converter and a capacitor to improve stability. € 3,00
ESP8266 ESP-01S WIFI Module The ESP8266 WiFi module was presented at its introduction as a TTL "Serial to Internet" module. Handy to connect Arduino boards to the internet. It soon became apparent that this ESP-01 module and its GPIO pins, in terms of the number of outwardly fed pins, are bigger brothers (ESP-7, ESP-12, NodeMC € 5,60

ESP-01 Boot Modes

Om een ESP-01 in firmware-upload mode te zetten moet aan een aantal voorwaarden worden voldaan. In de documentatie van de ESP-01 staat deze tabel:
ESP01 Bootmodus table ESP01 Bootmodus table
Hieruit kun je opmaken dat GPIO0 en GPIO2 beide “hoog” (3.3volt) moeten zijn om de ESP-01 “normaal” te laten werken. De, in flash geheugen, opgeslagen firmware wordt dan uitgevoerd. Op de ESP-01 worden GPIO0 en GPIO2 via een weerstand op Vcc aangesloten.

Als GPIO0 “laag” wordt gemaakt (GND) en je start (of reset) de ESP-01 dan wacht hij op nieuwe firmware die via de UART (de Seriële verbinding) wordt aangeboden en stopt deze in het flash geheugen.
ESP-01 pinout ESP-01 pinout

USB Adapter Modificaties

Om met de “ESP-01 to USB Adapter” firmware naar de ESP-01 te kunnen laden moet GPIO0 verbonden worden met GND (zie de tabel hiervoor). Het is het eenvoudigst om een vaste verbinding te maken tussen GND en GPIO0 op de adapter, maar dan kun je hem niet meer gebruiken als ESP-01 naar USB adapter!

Daarom heb ik een kleine schuif-schakelaar op de adapter gelijmd en twee contacten verbonden met respectievelijk GPIO0 en GND.

Benodigdheden

ESP-01 USB Adapter 1x € 3,00 € 3,00 DIP switch 1 position red 1x € 1,80 € 1,80
Total: € 4,80
ESP01 Programmer modificatie ESP01 Programmer modificatie
ESP01 Programmer modificatie onderaanzicht ESP01 Programmer modificatie onderaanzicht
ESP01 Programmer modificatie closeup ESP01 Programmer modificatie closeup

Hoe gebruik je de Programmer?

Om met deze programmer een ESP-01 van nieuwe firmware te voorzien moet je één en ander wel in de juiste volgorde doen.

1. Plaats de ESP-01 in de gemodificeerde adapter
2. Zet de schuif schakelaar in de “program” stand (GPIO0 verbonden met GND)
3. Plaats de adapter in een USB poort op je computer
4. Selecteer de USB-poort in de Arduino IDE en upload een programma

Als het uploaden klaar is zal de ESP-01 opnieuw opstarten en het nieuwe programma uitvoeren. Je kunt nu de schuif-schakelaar omzetten (GPIO0 niet meer verbonden met GND).
ESP01   Programmer ESP01 Programmer
Om de ESP-01 opnieuw te programmeren moet je de adapter éérst uit de USB-poort halen en dan de stappen in dezelfde volgorde opnieuw uitvoeren (je kunt ook de ESP-01 uit de adapter halen en hem er weer terug instoppen. Het gaat erom dat de ESP-01 opnieuw opstart!).

Als je het vervelend vindt om de Adapter iedere keer uit de USB-poort te halen en hem er weer in te stoppen kun je een push-button (NO of “normal open”) tussen de RST pin en GND aanbrengen.

Comments

The Netherlands Ton van Wissen
Hello, The following as a warning: I had not used the ESP-01 for a while, there are now better ones. Then I started using it anyway, I thought, to make a kind of magic light bulb with an old Arduino. Everything went fine until I put the ESP-01 in the carefully soldered AND WAS MISTAKE. (Quickly, you know it) Then + and - are exactly interchanged and that is almost always FATAL! The power LED is burning now, but that is the only life left in it. I hope my USB programmer is still working. SO BE WARNED !! Fortunately, the thing costs almost nothing, but still ..
Placed on 
1
The Netherlands Marc
Personally, I find the ready-made part of DiyMore.cc (USB to ESP-01 adapter) with built-in 3.3 and prog / uart selector more convenient.
Placed on 
2
The Netherlands Jan Willem Maas
Bij mij lukt het niet. De chip wordt wel gewist, maar daarna kan de ESP01 programmer de sketch niet uploaden. Ik heb GPIO0 naar GND aan en uitgezet, maar dat helpt niet. De foutcodes zijn als volgt:

Executable segment sizes:
IROM : 280932 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 27400 / 32768 - code in IRAM (ICACHE_RAM_ATTR, ISRs...)
DATA : 1256 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 2044 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 25480 ) - zeroed variables (global, static) in RAM/HEAP
Sketch uses 311632 bytes (71%) of program storage space. Maximum is 434160 bytes.
Global variables use 28780 bytes (35%) of dynamic memory, leaving 53140 bytes for local variables. Maximum is 81920 bytes.
esptool.py v2.7
Serial port /dev/cu.wchusbserial5d10
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 2c:3a:e8:26:a7:69
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 2.5s
Hard resetting via RTS pin...
esptool.py v2.7
Serial port /dev/cu.wchusbserial5d10
Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
File "/Users/janwillem/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/upload.py", line 25, in <module>
esptool.main(fakeargs)
File "/Users/janwillem/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool/esptool.py", line 2841, in main
esp.connect(args.before)
File "/Users/janwillem/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool/esptool.py", line 483, in connect
raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
Placed on 
The Netherlands Mart
I have followed this manual and 'getting started with esp-8266' and the programming of the ESP-01 is now perfect. Thanks!
Placed on