ESP8266: Test board review


Recently a test board for the ESP8266 ESP-12 arrived. I ordered it on AliExpress and took several weeks to arrive. Since the description was really bad I had to reverse engineers the functions and pins:

Pin layout of the test board

As you can see the board comes with a ready soldered ESP8266 ESP-12 soldered to it and all the pins are available to the left and right of the ESP-12 board. In addition the TX, RX and GND are available at the bottom of the board. There is also a jumper which you close for programming the firmware and open to run the firmware.

LEDs

There are also 6 red leds fixed with the necessary resistors connected to GPIO16, GPIO14, GPIO5, GPIO4, GPIO0 and GPIO2. A blue LED is always on if the board is powered. 
The GPIO13, GPIO12 and GPIO15 are connected to a RGB LED which allows you color mixing using PWM.

ADC

The analog-digital converter is also available on a pin but it is also connected to a light resistor. This lets you quickly test the ADC and you still can clip the resistor off if you want to measure another analog source.


Update: it took me a little while to figure out that the range of the ADC is not 0..3.3V but 0..1V, so make sure that the voltage you plan to measure is in this range.

Batterie pack

The test board comes with a batterie pack attached which takes 3 AA cells. In the following test scenario the board ran 39 hours: 
  • running nodemcu lua firmware
  • all but the blue power LEDs were off
  • a DHT11 connected to measure temperature and humidity
  • all 10minutes posting temperature and humidity to thingspeak.com
  • no deep sleep used
Test setup with DHT11 ran 39hours, posting
every 10min to thingspeak.com

Summary

The test board is a good and easy way to get started with the full range of available functions on the ESP8266. Especially to develop a firmware and check pin functions it comes in very handy. If you don’t want to use the light sensor or the LEDs you can simply clip them off. Then you’ll just have a priceworthy ESP8266 with 3xAA power supply, 9 available GPIO pins and one ADC.

Update – Pimp my power supply

If you prefer USB power supply over the battery pack then you can change that with just a little bit of soldering. Take an old USB wire and cut it with appropriate length. My wire had white, yellow, red and black wires. Assuming that red is +5V and black is GND I used my volt meter to check that it was correct. Then I removed the battery pack and soldered the black and red wire instead. Don’t worry about the 5V of the USB connector compared to the 4.5V of the serially connected batteries: There is a power regulator of type HT7333 which regulates the 5V down to a pleasant 3.3V.

Test board after replacing the battery pack
with a USB wire

Links

Do you like this post? A typical project like the ESP8266 Weather Station takes many hours of my free time to implement and even more to maintain. Maybe you feel like offering me a beer for it? Modern technology allows teleportation of beers around the world;-) It is easy and painless and much appreciated.

25 comments

  1. UN CONNU says:

    Impossible to connect with RX/TX/GND pins 🙁 (from 9600 to 115k bauds)

    I would like to see lua files in this board 😉

  2. squix78 says:

    Have you tried to switched RX and TX? What kind of serial-to-usb are you using? What is the voltage level of the serial connection? 5V or 3.3V? Were you able to connect another type of ESP8266 succesfully with your serial-to-usb connector?

    1. UN CONNU says:

      Try to connect with Lua loader ok 🙂
      module answers

      SENT: l = file.list()
      SENT: for k,v in pairs(l) do
      SENT: print("name:"..k..", size:"..v)
      SENT: end
      reconnect
      scandone
      no Ai-THINKER_9FC103 found, reconnect after 1s
      reconnect
      user_esp_platform_ap_is_changing
      current ap id =0
      current_router_id is 0
      scandone
      scandone
      no Ai-THINKER_9FC103 found, reconnect after 1s
      reconnect
      scandone
      no Ai-THINKER_9FC103 found, reconnect after 1s
      reconnect

      did you have module lua codes ?

  3. squix78 says:

    Looks like you are using the firmware from ai-thinker. if you find (and trust) to install the proper .apk on your android device you'll get a pretty interface to play with the hardware on the test board. But if you want to play with Lua you'll have to install one of two lua based firmwares. I describe it here: http://blog.squix.ch/2014/12/esp8266-flashing-lua-firmware-and.html
    and here: http://blog.squix.ch/2015/01/esp8266-update-over-air-nodelua-sparkio.html

    1. UN CONNU says:

      Many thanks 😉

  4. UN CONNU says:

    Many thanks 😉

  5. Anonymous says:

    Dani – do you know how to get original fw from this board? I tried to connect to serial interface but it doesn' listen and send anything. Finally I'd like to have nodemcu like on my other ESP boards, but at some point if I wanted to return to original one having fw backup would be usefull.

  6. Tugao says:

    Hey
    Good work
    How can i do a deep sleep with this pcb

    1. squix78 says:

      Hi Tugao
      As with every ESP8266 the pin 16 has to be connected to the reset pin. Have a look here: http://blog.squix.ch/2015/05/esp8266-long-term-data-logger-test-with.html

    2. Tugao says:

      Thanks for the answere.
      but when after the pcb wake up my code is reseted, and start again in the begin(setup)
      is it normal ?
      I enjoyGPO16 with RST
      Do I need just this for hardware ?

    3. squix78 says:

      Yes, this is completely normal. If you need to safe a state write it to the EEPROM. What actually happens is that the internal timer sets GPIO16 to high, which in turn resets the ESP8266. There are other sleep states, but they consume more energy than the deep sleep state

  7. Dani – nice write up. Do you have an example of how to wire this board up to flash new firmware or program the lua? I've read/tried your other post about the 8 pin version but that doesn't work.

    Thansk!

  8. Unknown says:

    Sr. Boa tarde o amigo tem exemplos de conexão "get" ou "post".

    Agradeço sua atenção

  9. squix78 says:

    Hi Shankar

    The messages you are mentioning just mean that the programmer could not talk to the ESP8266. In my experience the following problems can lead to this:
    – not resetting the ESP after setting the jumper. The chip only goes into programming mode after a reboot
    – wrong wiring of the tx/rx lines. Try to switch them
    – wrong board defined in the Arduino IDE board manager
    – bad timing after the reset; try to start programming immediately after the reset, or 2 seconds, etc.
    – try different baud rates

    Please post here if you fixed it and how. this might help others!

    Cheers,
    Daniel

  10. Shankar S says:

    Hi Dani,
    Thanks for replying.

    Okay, I am able to upload the program now. I made the following connections:
    TX to TX and RX to RX. GND to GND. I am using pl2203 for usb-serial conv.

    I tested the blink program. The code got uploaded into the esp8266 module.
    The led(GPIO2) starts blinking, and after 5-6 secs the board kind of resets, i.e. the gpio2 led gets switched off.

    I tried uploading the code using different baud rates, tried changing the gpio to 14,12,etc. the led blinks for a few times and then stops and returns back to normal.

    Also, while the program is running, the RGB led seems to glow very faintly. Once the program stops, It glows little brightly.

    I dont know why the program stops. Should I make connections like CH_PD to VCC and RST to GND?

    Also can you tell me what exactly is the jumper doing? is it shorting GPIO 0 to GND?

    Thanks in advance 🙂

    1. Shankar S says:

      UPDATE:
      Initially I was not able to receive the ready message from the ESP8266 in the arduino serial monitor. Also the programs, even though uploaded caused the module to reset continuously. After hours of searching, I found a way to update the firmware using this link:
      http://www.xess.com/blog/esp8266-reflash/

      I made the following connections for my ESP-12:
      ESP RX to Pl2303-TX
      ESP TX to Pl2303-RX
      ESP GND to Pl2303 GND
      powered my ESP8266, with 3 AA Batteries
      Supplied a separate line 3.3V and GND to a breadboard from Arduino connected to my laptops usb port.
      Connected GPIO2 and CH_PD to 3.3V
      GPIO15 to GND
      Placed the jumper(GPIO 0 to GND)

      for connections refer:http://blog.3mdeb.com/

      Now I am able to talk with the ESP8266 via AT commands!!

    2. For connections, I referred to http://blog.3mdeb.com/2015/01/24/power-on-of-esp-12.
      I was using FTDI232 adaptor. I got response to my AT commands when I connected as follows:

      ESP RX to FTDI232-RX
      ESP TX to FTDI232-TX

  11. Wee-Min Chan says:

    I'm trying to use the GPIO as INPUT for Temperature/humidity sensor. Do these LEDS on the GPIO pins affects the GPIO pins?

    1. Shankar S says:

      No they wont.. they are just visual indicators, that too only when u use the gpios as output. otherwise they wont trouble u..

    2. Gerrond says:

      Hi

      Perhaps a bit late but …..

      The LED and its 470ohm provide a path to VCC so your circuit will need to sink approx. 3-4mA when low (and the LED will light of course).

      The DS18B20 expects to find a 4k7 pull-up not a 470 plus LED and its maximum sink current is specified as 1mA…

      So yes these LEDs might well affect your circuit.

      Regards

      Graham

  12. Gerrond says:

    Hi

    Interesting review. Thanks.

    My board looks the same but has silk-screen pin annotations with RX and TX transposed (as your pic shows correctly).

    I find that if I blink GPIO5 the pin marked GPIO4 on my silk-screen and your pic blinks – and vice-versa.

    The photo-cell does it work? I find that it reads 5 irrespective of light level. I measure approx. 1mV on ADC pin. Resistors near GPIO14 and 15 set this voltage and are 1M and 470R, so ADC max is 1mV5. I'd be interested to know what values you have.

    I see the CH_PD pull-up is 100R which is probably better than 0R but it's a bit hard to disable the thing if I wanted to do so.

    Thanks and Regards

    Graham

  13. imran says:

    Hi I need help , there are three pins on the board TX GND RX , can I connect this to my laptop directly with a standard USB cable or do I need a a special module , I want to be able to programme the GPO,s on the board , but i first need to link to my laptop . Please help

    1. squix78 says:

      Hi Imran. You need a USB-to-Serial Converter just like this one: http://www.banggood.com/FT232RL-FTDI-USB-To-TTL-Serial-Converter-Adapter-Module-For-Arduino-p-917226.html?p=6R31122484684201508S
      Make sure that it is set to 3.3V or you will destroy the ESP8266. And read this article: http://blog.squix.org/2015/01/esp8266-how-to-get-started-what.html

  14. Antti Kaihola says:

    Has anyone measured the power consumption in deep sleep?

    Also, it seems that the power LED stays on during deep sleep. What would be a good way to avoid that?

    I found some discussion about this at http://www.esp8266.com/viewtopic.php?f=6&t=7472

    1. Antti Kaihola says:

      I did some experiments: I clipped off the RGB LED and physically broke all other LEDs which emitted a faint light during deep sleep. Now the board is completely dark during deep sleep. According to my multimeter, the power consumption in deep sleep is still around 1.6 mA. I suppose the regulator draws that much.

      I have another plain EPS-12E with double AA batteries and a step-up board, and it’s now running for the fourth week on same batteries, measuring and sending the temperature every 15 minutes. I won’t be able to get that far with the yellow dev board and 1.6 mA unless anyone has a brilliant hack…

      It’s a pity since this dev board is so cheap and nicely pre-packaged with the battery holder.

Leave a Reply