Comments: ESP8266 Thing Development Board Hookup Guide

Pages

Comments 23 comments

  • ——————– Tech Support Tips/Troubleshooting/Common Issues ——————–

    Troubleshooting: Arduino Upload Error

    If you see this error in Arduino:

    warning: espcomm_sync failed
    error: espcomm_open failed
    

    USB Cable

    There might be something wrong with your USB cable. Certain cables are designed to be charging cables so there might not be any data lines connected in the USB cable. Also, there might be internal micro tears in the cables. I recommend checking and using a different mini-B cable to see if you can upload code. I had an instance where a customer was using USB cables from his lab. 3 out of the 4 cables were bad because they were damaged. The 4th cable worked with his device.

    Power Cycling

    If you still can’t upload, try flipping the switch to OFF, press the upload button, and flip the switch to ON. It’s tricky but as you you reset the board, it will be in bootloader mode so that you can upload code before it starts running the code that was uploaded. I saw this more with the other version of the ESP8266. You should not need to do this with the ESP8266 Thing Development board.

    Board Definition (boards.txt)

    The latest board definition from the ESP8266 Commmunity (v2.0.0) can have issues when uploading code. This might be due to the FTDI’s DTR pin not grounding the GPIO0 pin during upload through the IDE. For example, if we look at the SparkFun ESP6266 Thing (NOT the SparkFun ESP8266 Thing Dev) in your boards.txt file, you will notice the third line for the board says:

    thing.upload.resetmethod=ck
    

    You would need to change the reset method to nodemcu like so:

    thing.upload.resetmethod=nodemcu
    

    Read here for more information from a comment from someone in the community https://www.sparkfun.com/products/13711#comment-56705515ce395fb2608b456a.

    Troubleshooting Note for those using Arduino v.1.6.6 and v1.6.7…

    You need to have your modular functions set BEFORE void setup() and void loop(), otherwise the Arduino v1.6.6 and v1.6.7 compilers will not recognize the defined functions (even though they are in the same sketch file).

    Try looking at this comment for more information https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/discuss#comment-564bb49bce395fe4518b4568 .

    Serial Output Error

    If you see this error using the ESP8266 board add-on v2.1.0 from the ESP8266 Community sometimes when connecting to the Instagram API :

    .
    .
    .
    ets Jan 8 2013,rst cause:2, boot mode:(3,7)
    
    load 0x4010f000, len 1264, room 16
    tail 0
    chksum 0x42
    csum 0x42
    

    It could be something with the version that you are using. Try rolling the board add-on back to v2.0.0 from the ESP8266 Community . There was a customer with this issue and they were able to get it resolved by rolling back the version.


    ESP8266 Thing Dev Board Phant Example (RETIRED)

    Unfortunately Phant, our data-streaming service, is no longer in service. The system has reached capacity and, like a less-adventurous Cassini, has plunged conclusively into a fiery and permanent retirement. Therefore, any Phant related example that used in this tutorial has been removed and archived here:

     

    The code in the archived tutorial will need to be adjusted to work with the other data streams. Check out this tutorial to log data with ThingSpeak.

    Phant (RETIRED) Formatting Issues

    For some strange reason there was an issue exporting Phant as a .CSV file. It might be the way the code was written or it could be something with Phant. I have yet to test this out. Here is a quick fix and some tips as stated from a customer :

    .
    .
    .
    The .CSV file has extra spaces in the numbers 68.54 comes in as text 68(space)(space).54 . To convert it from text to values you can plot, you can use the Excel functions: =VALUE(SUBSTITUTE(A2," ","")) on each cell...
    
    Also the data comes into the file ordered new data first to old data. Most people want to plot and process old data to new.
    
    • I had this issue as well, and after trying a few cables and power cycling a few times, I gave up.

      However, I finally got back to looking at this board. It looks like the dev board variant uses a different reset style than the original Thing. If you run esptool directly from the command line and specify the nodemcu reset style (using the “-cd nodemcu” argument), it works perfectly.

      I was about to submit a pull request to fix this, but it looks like it’s already been patched: https://github.com/esp8266/Arduino/commit/3a16bed4c2cd88d15521474ccde0f4752e58eb31. However, the stable version of the esp8266 Arduino package hasn’t been updated since then, so for now you’ll need to work around the problem, either by editing the boards.txt file yourself or following the instructions here to use the latest version from git: https://github.com/esp8266/Arduino

      • I ran into this problem a while back as well, and ended up pushing the patch you referenced above. Just an FYI, I posted a little more detailed explanation of how to manually fix this problem here: https://www.sparkfun.com/products/13711#comment-56705515ce395fb2608b456a

        It’s a pretty easy one-line fix which is probably easier than manually installing the latest git version. Good luck!

        • I’m getting the warning: espcomm_sync failed error: espcomm_open failed thing as well. I tried the ground D0 to ground with switching on during compiling and it worked on one Thing, but I won’t work for the other. I went to your linked temporary fix, where:

               "In the meantime, until that gets packed into a new release, you can simply modify:
          

          \Users{UserName}\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\boards.txt" (Windows path to the esp8266 Arduino library). Change: thing.upload.resetmethod=ck to: thing.upload.resetmethod=nodemcu

          I’m way too much of an amateur to have any idea where you make this change. Don’t know much about libraries, or programming in general. Could you explain where I go to do this? I added all the libraries that are discussed in the Thing tutorial and I got one of the Things to work.

          • That’s literally the folder location, probably on your C: drive. I’m assuming you’re using Windows 7 or better? So open an explorer window to “C:\Users{UserName}\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\”, where UserName is the windows account you installed Arduino and the ESP8266 board library on.

            Inside is a file called “boot.txt”. You need to close all open Arduino windows, open that filea nd look for the line “thing.upload.resetmethod=ck”. Replace the “ck” with “nodemcu”, save the file, and reopen Arduino. Programming should work correctly now.

            Hope that helps.

            • In Arduino IDE, it says that it exists, but it is nowhere to be found on my computer, not in the Libraries, or anywhere else. Tried searching the route you suggested as well. Weird. Never had this happen.

              • Well, the only other suggestion I would have is to search your whole drive for “boot.txt” and find one that’s in a similar path to what I described, and/or search for the text I mentioned above in all the “boot.txt” search results.

                • Already tried that! LOL. I appreciate the help, and all the help you’ve offered this forum. I’ll keep plugging away. At least I got one of the Things working with your suggestions.

                  • Haha… For what it’s worth, I think that location is in a hidden folder, so you might need to make sure hidden folders are visible to be able to find it. Otherwise, hopefully an update will be available soon that fixes the problem! Good luck!

      • Thank you, this was very helpful! Cheers! Mark

    • Thanks to the reviewer who advised connecting DIO 0 to ground to put the chip into bootloader mode, and then power cycling the board. I kept getting “error: espcomm_open failed” until I did that. Tried changing cables, and devices as recommended, but that did the trick!

      • Be warned that this special feature means that DIO 0 is not equivalent to DIO pins 2,4,5, etc. I had a project that required putting the ESP8266 into sleep mode and all the pins duly turned off except for pin 0. My new rule is to not use pin 0 for anything except as a last resort.

      • Yes, thanks. Grounding D0 resolved the following messages I was getting when trying to upload the blink sketch.

        warning: espcomm_sync failed

        error: espcomm_open failed

    • As an additional note, I saw this error more with the other version of the ESP8266 Thing due to the FTDI connection. For more information on troubleshooting this common error, I recommend looking at this other post. => https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/discuss#comment-55a05571ce395f88538b4567.

  • In the Web Server examples, you should change this line near to the bottom:

    void initHardware()
    {
        Serial.begin(115200); // <<<<<<< this one
    

    to this:

        Serial.begin(9600); // or try if some higher value works, definitely not 115200
    

    Otherwise, in the serial monitor, you will see garbage instead of the expected output from Serial.println() commands

  • At https://learn.sparkfun.com/tutorials/esp8266-thing-development-board-hookup-guide/example-sketch-web-server it says: “The previous example uses the ESP8266 in web client mode”

    What previous example?? There’s no previous example, that is the first example in the tutorial. The previous page explained how to upload the “blink” sketch, which doesn’t “use the ESP8266 in web client mode” as it does nothing network-related.

  • When trying out the “Station (and mDNS) Web Server” sketch, my Windows 10 PC could not resolve “thing.local”. Windows Bonjour service was installed and running, but was not recognizing the ESP8266 domain. Adding the line “MDNS.addService("http”, “tcp”, 80);“ to the bottom of setupMDNS() fixed the problem.

  • I don’t see anything on the schematic to protect a battery connected to the power connector from being charged by the USB input. Am I going to ruin my LiPo battery by connecting the USB cable to program the ESP8266?

    I am using a separate charger board to charge the battery.

  • Is the NC pin connected to the ground plane? If yes, can it be used as a normal ground connection?

    • No it is not connected to anything, including the GND plane. You could attach a jumper on the board to GND though if you want to use it like that.

  • I want to work with official SDK of ESP8266 under the lubuntu based virtual machine, don’t know how to get started. Can anyone tell me how to write blinky program with SDK. Thanks

  • Thanks for this great tutorial.. I’m having a strange problem though.. I was able to get the PHANT demo working, and then I went to solder headers on the dev board, and I came back, and it would no longer connect to my WiFi. I thought for sure I had destroyed the THING board with excessive heat during soldering, but I uploaded a standard ESP8266 “AT” command set firmware onto it, and using that firmware, I was able to connect to my wifi with no problem.. Loading the “Scan wifi” demo under Arduino works fine too, but for some reason, the PHANT demo never connects.. I keep getting a fast flashing blue light, and the wifi connect keeps returning status code 6 (not connected or connecting, I can’t remember which).. All my other WiFi devices are fine, and I have been fighting this for days now.. Is there anything strange that could explain this?! Thanks!

  • Using

    • Arduino 1.6.7
    • Mac OS X 10.11 El Capitan
    • esp8266 2.0.0 board definitions
    • Sparkfun ESP8266 Thing Dev Board

    I ran into the following issue when trying to upload to the board:

    warning: espcomm_sync failed
    error: espcomm_open failed

    It seems that the board definition parameters driving the program upload via esptool, are incorrect for the ESP8266 Thing Dev Board. As a consequence, the DTR and RTS pins of the FTDI USB to Serial chip on the Dev Board are not driven properly to pull the GPIO0 pin to GND during the program upload sequence. However, this is required in order to put the ESP8266 into programming mode.
    (also see the Dev Board schematic, section “Auto Reset”)

    Anyways, after some research, I found out that a change in the boards.txt file fixes this. This file is (at least under my OS X El Capitan) located here:

    /Users/USERNAME/Library/Arduino15/packages/esp8266/hardware/esp8266/2.0.0/boards.txt
    

    The line

    thing.upload.resetmethod=ck  
    

    needs to be changed to

    thing.upload.resetmethod=nodemcu  
    

    Don’t forget to save the modified file.

    After that the Arduino IDE needs to be restarted. (I also selected another board and then switched back to the ESP8266, although I didn’t check if this is required.)

    With this modification the program upload works as it used to in previous versions.


If you've found a bug or have other constructive feedback for our tutorial authors, please send us your feedback!