ESP8266, the ESP-01 holds the distinction of being prized for it’s great combination of size, price, and functionality. The caveat to using such an inexpensive module is that there are some limitiations to be aware of, like the weird 2×8 row of headers that make it breadboard-unfriendly, the lack of any voltage regulation, and the inability to talk 5V I/O.
So what can you load onto it? There’s a few versions of firmware that you can load onto them, like:
- The default AI-Thinker firmware
- ARDUINO. This is a very robust implementation of the Arduino feature set, so you can move Arduino code to a ESP8266!
- NodeMCU – a very popular firmware that gives pretty much full access to the microcontroller and wifi functions. Runs “Lua” scripts.
- MicroPython (stripped down python 3)
- Official Espressif (the manufacturer of the chipset). They provide a nice tool for flashing the firmware.
- ESP8266 BASIC. Turns it into an access point, and lets you run BASIC programs from a web browser.
- 2 GPIO (0 and 2)
- wifi b/g/n support
- 8Mbit external QSPI flash memory (1MByte)
- 32-bit Tensilica Xtensa LX106 CPU running 80MHz
- 3.3V supply (current can spike 300mA+, depending on mode)
- PCB-trace antenna
- 2 x 4 dual-in-line pinout
- 14.3 x 24.8mm
There’s so many ways to bend this SoC (System on a Chip), but the basics are:
- To program, you have to toggle the GPIO 0 “PRGM” pin to ground after a low signal to the “RSET” pin, so both have to have their own momentary button connected to ground.
- Hook it up to a FTDI (or similar UART as shown in the product images), making sure it’s configured for 3.3V.
- Program it through the Arduino IDE. After you click the “Program” button in Arduino, it will start compiling your program. At this time:
- press and HOLD your “PRGM” button,
- tap the “RSET” button
- then RELEASE the “program” button when the Arduino IDE finishes the compile, and start “programming…”Manually wiring it up can be a PAIN. Look into the very-convenient 29248 adapterthat mates your USB-TTL to it easily.