Comments: ESP8266 Thing Hookup Guide

Pages

Comments 56 comments

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

    If you are having issues seeing output on the serial monitor, you need to cut the DTR pin on the back of the Thing after uploading to view data sent to the serial monitor. To reupload new code, add a jumper wire to reconnect . Jim talks about it in this section of the tutorial => https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/using-the-arduino-addon.

    After cutting the DTR pin and happen to see random serial data in the serial monitor (with the correct baud rate settings) after powering the ESP8266, this is normal => https://drive.google.com/open?id=0B0jwgLkjMWzDM2lDUEdYSkViVkk . However, if you are not seeing any data after, most likely it has something to do with the board definition. Try using an older board definition version.

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

      Arduino Errors

      1.) If you see this error in Arduino:

      warning: espcomm_sync failed
      error: espcomm_open failed
      

      or

      warning: espcomm_sync failed
      error: espcomm_open failed
      error: espcomm_upload_mem failed
      

      or

      warning: espcomm_sync failed
      error: espcomm_open failed
      error: espcomm_upload_mem failed
      error: espcomm_upload_mem failed
      

      Check below for troubleshooting this error:

      Power

      You did not add an external power source to the ESP8266 Thing. Check your power supply and ensure that the switch is flipped to the ON position. You might want to check the solder connections around the power switch and micro-B connector for cold joints.

      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.

      Hardware Connection Issues

      It’s probably that the you did not add a jumper from the DTR pin to reupload correctly.

      Try checking your connections and making sure your solder joints are ideal. If there is not a solid connection between the pads and your pin/wires, you will have issues uploading. If you were using water soluble flux, makes sure that you clean the board and remove any flux residue on the UART pins.

      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.

      FTDI Cable

      I’ve also seen customers with the same error but they were using the FTDI cable 5V Vcc - 3.3V I/O with this board. They should check their connections and power cycle just before Arduino starts to upload code to the board. The FTDI 5V Vcc - 3.3V I/O cable should work with the ESP8266 Thing. There is a jumper pad on the back but the 3.3V pin is not connected to the 3.3V line. Customers are good to use that FTDI cable as long as the pad is not shorted.

      I recommend having customers use the 3.3V FTDI https://www.sparkfun.com/products/9873 and mini-B cable https://www.sparkfun.com/products/11301. It outputs 3.3V on the correct pin so there is less of a chance that damaging the ESP8266 Thing.

      I had an instance where a customer was using Adafruit’s FTDI friend and it wasn’t working to upload code with the Arduino IDE. After ordering the 3.3V FTDI basic breakout, they were able to upload code. The FTDI friend should have worked since it uses the same IC. There must be a configuration setting that was not set right or the connection was not hooked up correctly.

      Board Definition

      Another issue that I am currently seeing with this error output is the board definition. Sometimes there are board definitions that do not work. I am seeing an issue using the new board definitions (v2.0.0 and v1.6.5-947-g39819f0) from the ESP8266 Community using Arduino IDE v.1.6.5 and v1.6.6 . This might be due to the FTDI’s DTR pin not toggling the GPIO0 pin to ground during upload through the IDE. Read this comment for more information on a quick fix from someone in the community:

      https://www.sparkfun.com/products/13711#comment-56705515ce395fb2608b456a

      If that does not work, maybe you can use an older board definition. Instead of using the new ESP8266 Thing board definitions from the board manager URL => http://arduino.esp8266.com/stable/package_esp8266com_index.json, use the Old SparkFun ESP8266 Thing board definitions (v1.6.4-673-g8cd3697 and v1.6.4-628-g545ffde):

      https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json

      —————————————————————————————————

      2.) If you see this Arduino error:

      ets Jan 8 2013,rst cause:2, boot mode:(3,6)
      

      It’s probably something to do with the FTDI that you are using or the DTR (i.e. GPIO0) pin connected to your FTDI. There was a case where a customer was not using the 3.3V FTDI breakout board https://www.sparkfun.com/products/9873 ] from our storefront. The board was not able to reset or upload correctly until the customer switched it to the 3.3V FTDI.

      This Wiki and forum might help explain the values => https://github.com/esp8266/Arduino/blob/master/doc/boards.md#boot-messages-and-modes, https://github.com/esp8266/esp8266-wiki/wiki/Boot-Process#esp-boot-modes, http://www.esp8266.com/viewtopic.php?f=6&t=2503, and http://www.esp8266.com/viewtopic.php?p=2096#p2112 . The reset cause seems to be due to the reset pin. The boot mode seems to be due to the GPIO0 pin that is connected to the FTDI:

       boot mode:(x,y) = boot mode:(3,6), where x = {MTD0, GPIO0, GPIO2} = {0,1,1} => Flash Mode
      
      Considering that MTD0 (i.e. GPIO15) is always connected to ground through a resistor and GPIO2 is connected to Vcc through a pull-up resistor on the ESP8266 Thing, GPIO0 must not be set correctly. The board is not set to UART mode to download code from the UART. 
      
      • ——————– Tech Support Tips/Troubleshooting/Common Issues ——————–

        If you are using a separate power supply, a logic level converters, and an Arduino Uno Development board without the Atmega328P, you might have issues. That just makes it complicated and you are adding more unknown variables to your setup. Make sure that you check your connections and power source. The easiest would be to just get a 3.3V FTDI and power it through the micro-USB connector/a LiPo battery.

      • bboyho, I realize that I am late to this post, but…

        I’m using an adafruit huzzah board and ttl console cable

        I’ve seen this under certain circumstances.

        1. download speed set to 921600. The download usually works, but infrequently fails. More successful at 256000.
        2. WiFi access attempts during downloads.
        3. powering the board from the arduino uno board’s 3v3 pin.
      • I am still getting this error message, I tried everything except for the FTDI cable fix and the board definition fix. I don’t use an FTDI cable, I use usb, so I didn’t need to troubleshoot that. Also, I don’t know how to troubleshoot the board definition because the link just comes up with a bunch of code that I do not know what to do with. Thanks!

    • This does not solve my issue of griberish on the serial monitor. With or without the jumper, I just can’t get access to AT commands on this board ! so frustrating for a board that costs two times the price of basic modules (on which i made it work without any efforts on the contrary to this sparkfun thing). Should I return the board or does it it work because of bad design (GPIOO being permanently linked to GND ?)

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

        Default is 9600 baud assuming that you set the it in code as that rate. The firmware for the ESP8266 does not have the AT command firmware. Feel free to check out the AT Firmware that is used in our ESP8266 Shield https://learn.sparkfun.com/tutorials/esp8266-wifi-shield-hookup-guide#at-firmware-overview and flash it with the NodeMCU flasher that is linked in the Resources & Going Further.

        If you are still having problems email < techsupport@sparkfun.com > and we should be able to help you further. Email is usually the channel that we use to support technical questions.

        • I understand thaty I cannot use AT commands with the “Thing” board (which is a pity as a base ESP8266 module supports both Arduino sketches AND AT commands in the same firmware, so I do not understand why a more expensive Thing board supports one or the other, but that is another topic). The topic is to have a working serial monitor or more precisely to be able to use the UART serial output of the Thing board to communicate with an arduino board or other microcontroller that listens on the serial port. If I understand right, this is not possible with the Thing board except to flash a NodeMCU firmware ? I am getting griberish with the factory installed Thing firmware, whatever the baud speed is set to (I tried all speeds in the serial monitor drop down list). Does anyone already succeeded to display something in serial monitor and if yes, could you post your steps and config that is required to do that ? thx for help.

          • I just got the Thing dev board and have been having the same issue: nothing but gibberish on the terminal. I eventually scoped the UART line out of the ESP8266 and determined that the baud rate was about 72500k–definitely not standard. I was able to set the com port baudrate to that via python, and then I started getting readable responses. The problem I have is that the flash utility from espressif (and the Arduino plugin, for that matter) doesn’t seem to allow non-standard baud rates, so I don’t know what to do with this thing.
            I emailed Sparkfun’s tech support this morning, I hope I’m just doing something dumb.

      • Gibberish in a serial monitor almost always mean a baud rate mismatch. Make sure you have the serial monitor set at the correct baud rate. If you are still having problems email techsupport@sparkfun.com and they should be able to help you.

        • How do I know what the correct baud rate is ? I can only set it on the serial monitor. What is the baud rate of the board ?

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

            The serial.begin() function sets the baud rate for serial communication. From there you would set the serial monitor’s baud rate to the same baud.

            If you have further issues, try contacting tech support => techsupport@sparkfun.com .

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

    If you had the ESP8266 board compiling and uploading initially in your Arduino IDEs and now it doesn’t any more, delete all instances and files related to the ESP8266 in your Arduino15 AppData. On my Windows 7 OS computer, it looks like:

    C:\Users\...\AppData
    

    Make sure to delete all copies in Local, LocalLow, and Roaming. Then uninstall the board definitions with the board manager, and then reinstall the files.

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

      If you see any warnings while compiling, the warnings you can usually ignore (especially in Arduino v1.6.6. If you happen to see this error:

      Invalid library found in
      /Users/.../Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.5-947-g39819f0/libraries/esp8266:
      /Users/.../Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.5-947-g39819f0/libraries/esp8266
      Invalid library found in
      /Users/.../Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.5-947-g39819f0/libraries/esp8266:
      /Users/.../Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.5-947-g39819f0/libraries/esp8266
      

      I think it is due to the different ESP8266 cores installed. Try going to your Arduino15 AppData folder and deleting all copies of the ESP8266. The one in particular is the “esp8266” folder in “packages” folder. I also just deleted the other instances of the esp8266 just in case. Just go to Arduino>Preferences and click on the directory that has your …preferences.txt file. Then go to your board manager and reinstall the board definitions. Looking online, it seems to be an incompatibility issue => https://github.com/esp8266/Arduino/issues/993 . Looking at the version number of the installed package, it looks like it is something with the board package installed from the ESP8266 Community.

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

    If you see this error output in Arduino v1.6.4 or v1.6.5 and you are using a Mac iOS:

    Arduino: 1.6.5 (Mac OS X), Board: "SparkFun ESP8266 Thing, 80 MHz, Serial, 115200"
    
    /Users/.../Library/Arduino15/packages/esp8266/tools/esptool/0.4.6/esptool returned 139
    Error compiling.
    

    or if you see this output in Arduino v.1.6.6 and a Mac iOS:

    signal: illegal instruction
    Error compiling.
    

    The issue is probably due to the ESP8266 board definition and your Mac’s iOS version. As soon as I test this on our older Mac iOS v10.7.5 Lion, I receive the same error. Testing this with our engineer’s iOS v10.11 EL Capitan, there were no issues compiling. We tried different board definition versions but we were unsuccessful. We even tried deleting the definitions in the “Arduino15” Application Data folder and temporary files. I think the issue stems from the Mac operating system version and the ESP8266 build => https://github.com/esp8266/Arduino/issues/275#issuecomment-104470653.

    Try using the a modified version of the esptool v0.4.6 https://github.com/igrr/esptool-ck/releases that our engineer quickly packaged through our Google Driver => https://drive.google.com/open?id=0B0jwgLkjMWzDWU1pb0RseWdtbmM. Just unzip the files and replace everything in the esptool folder located in your Arduino’s App Data folder. The directory will probably be:

    /Users/.../Library/Arduino15/packages/
    

    You can also find this through the Arduino IDE and clicking on your preferences.

    Otherwise, you would need to update your Mac iOS or wait until there is a fix from the ESP8266 Community.

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

    If you see this error?

    .
    .
    .
    compilation terminated.
    
    exit status 1
    Error compiling.
    

    You might have selected the wrong board definition or there is something wrong with the ESP8266 board definition.

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

    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).

    An example is the Posting to Phant example sketch for the ESP8266. Example code compiles just fine on Arduino v1.6.5 and below. In v1.6.6 and v1.6.7, you would need to move the setup() and loop() functions to the bottom of the sketch after connectWiFi(), initHardware(), and postToPhant(), to compile. Otherwise, you will might see these compilation errors:

    .
    .
    .
    C:\Users\bobby.chan\Downloads\ESP8266_Phant\ESP8266_Phant\ESP8266_Phant.ino: In function 'void setup()':
    ESP8266_Phant:35: error: 'initHardware' was not declared in this scope
    
    initHardware();
                ^
    
    ESP8266_Phant:36: error: 'connectWiFi' was not declared in this scope
    
    connectWiFi();
               ^
    
    C:\Users\bobby.chan\Downloads\ESP8266_Phant\ESP8266_Phant\ESP8266_Phant.ino: In function 'void loop()':
    ESP8266_Phant:44: error: 'postToPhant' was not declared in this scope
    
         if (postToPhant())
                     ^
    exit status 1
    'initHardware' was not declared in this scope
    
    • function prototypes will fix this. put these lines before setup()

      void initHardware();

      void connectWiFi();

      int postToPhant();

  • In the ESP8266 Thing Hook Up guide - AP Web Server sketch… Where was the ip address of 192.168.4.1/ set?

  • I plugged in the 3.7V battery that you show in your description of how to power it up. It started to steam? Any thoughts?

    • Steaming battery? That’s not good! Do you have a link to the battery you used? Maybe it doesn’t have protection circuitry?

      It’s possible you received a defective board – maybe it had a short on the battery inputs, or something. If that’s the case, contact our technical support team. They can help debug it further, or get you set up with a replacement.

  • For some reason, my ‘thing’ has suddenly forgotten how to run the sketch on restart - it always drops directly into boot loader mode and stays there. When I hook up a terminal I see ‘boot mode:(1,6)’ which tells me that GPIO/DTR is low, but this happens even if I pull that pin up manually with a 4.7k resistor. I can download new sketches and they run fine the first time, but once the device is power cycled, it always just sits in boot loader mode. I had recently upgraded to arduino IDE 1.8 and v2.3 of the ESP8266 tools, but even downgrading back down to 1.6.x and older 8266 tools does not change the behavior.

    How can I get my thing unstuck from boot loader mode and run the sketch that is already onboard?

  • Is it possible to set up an LCD to this system? so I can see the sensor values that I have hooked up to the I2C connections on the Thing?

  • Just posting this in case someone got the same error as me : warning: espcomm_sync failed error: espcomm_open failed I had connected my Reset pin to D0 to put the board to deep sleep and then tried uploading the code . So obviously it was unable to upload the code and so i removed the connection then uploaded and connected back to reset pin.

  • I got up and running very easily after setting up Arduino for 8266 on OS/X El Capitan. I am just using a USB cable and have not needed to use a separate FTDI cable.

    The note above seems to imply that you need both USB for power and the FTDI module for the actual loading. Which is true?

  • Hello Everyone, does anyone know if any of the PINS on this Thing are PWM? I am trying 5, 0 , 4 and 15, without success.

  • Excellent hookup guide - as always. As a user making the first pass 4 suggestions.

    1) Include the 90 degree headers with the unit. Those are not “usual” and certainly make connecting the FTDI basic easier. Without them it is a very tight fit on the breadboard. Especially as the “chip” side of the FTDI needs to face the board and the connectors are on the back side.

    2) Also include a spare jumper (for us to solder if desired) for the DTR jumper. Debugging is step 1 in learning. Don’t make us order another (very inexpensive) part. Wait for shipping, etc….

    3) I would suggest adding a pointer in this hookup guide pointing to the page to download the FTDI basic driver. It was easy to find, but I had to search google to find my way right back to another great Sparkfun guide. Once I found it the fix was trivial.

    4) Lastly, it would be nice to have a comment about the compile errors that happen with the declarations in arduino IDE > 1.6.6. The fix is again, trivial and easy. The hardest part was finding it.

    Four comments aside - thanks guys for a great product and a super detailed hookup guide. Got up and running on the first pass. Keep up the good work.

  • Hello all,

    Can anyone please guide me how to establish a wifi direct or P2P or softAP between a ESP8266 or sparkfun ESP8266 Thing and android device?

  • Is anybody using custom NodeMCU images (from http://nodemcu-build.com/index.php) on their Thing? I have flashed a few different images and I can connect serially, but after a few keystrokes in the lua interpreter it always reboots. Does this problem sound familiar to anyone? TIA. -peter

  • Can the Thing backup data so that when it’s offline, the next data point doesn’t replace the previous data point before it gets streamed?

  • I have been studying the AP Web Server example and can not figure out how the IP address “192.168.4.1” is set. Can you fill me in on where that is happening?

  • I have found little on the internet talking about how to use OSC (Open Sound Control) or any UDP message with ESP8266. There is one topic: http://www.esp8266.com/viewtopic.php?p=29149 that teaches how to use ESP8266 connected through serial to a teensy 3.1 to send SLIP (Serial Line Internet Protocol) OSC messages.

    Does anyone know how to send OSC messages or any UDP directly from ESP8266 thing? I believe I can achieve a much faster data rate and lower latency not needing to bypass the information through a serial line.

    Thanks!

  • https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/example-sketch-ap-web-server

    I cannot get this to compile. setupWiFi and initHardware are both missing. Any help would be appreciated. Jon

  • OSX 10.9.5, Arduino 1.6.7, ESP8266 Thing Dev

    For the Posting to Phant sketch the following turned out to be needed:

    – Function prototypes before Setup to avoid compilation errors:

    void connectWiFi();

    void initHardware();

    int postToPhant();

    – Connect GPIO 0 to ground to avoid espcomm_sync failed error

    The sketch now downloads and runs, but does not connect, with continual blinking blue LED. Other devices seem to connect OK with the same network parameters. Any suggestions?

  • If you’d like to avoid cutting the DTR pin, you can select the following option in CoolTerm : “Initial Line States when Port opens: DTR Off”. Got serial communication working for me.

  • I put the (modified) AP Web Server sketch in an adafruit Huzzah. It does work.

    fixed issues:

    huzzah built-in led is on pin 0

    huzzah led on pin 0 is reversed - pullup on that pin(?). several small edits to accommodate this.

    ongoing issues:

    —————————-CANNOT get the <INITIAL> AP Web Server sketch’s WiFi configuration OUT of the ESP8266.——————————–

    Downloading another sketch does not clear the WiFi config - whether the sketch is the AP Web Server or another WiFi sketch. In my wireless devices, the AP ‘ESP8266 Thing 7448’ appears whenever this huzzah board is powered. Doesn’t matter which sketch is in it. Changing the password (WiFiAPPSK) in this sketch and then downloading, does NOT take effect. Changing the AP_NameString in this sketch and then downloading, does NOT take effect.

    WOW, Working On Whitespace

    EDIT: I found some notes over at jeelabs(github) about a ‘blank.bin’ to clear wifi configuration. I’ll report back.

    EDIT: Forget it. I must have used some invalid info. I changed the WiFiAPPSK[]= line to an 8-char pw andthe SSID/PW change works. I power-cycled than downloaded the sketch.

    • This sounds Exactly like what was happening to me. I can barely get it to upload but when I can I either get an access point with the blink led 5 example running (that’s the only part I uploaded) or some of my code like a temp monitor plus the AP.

      A way to reliably clear these thing would be great.

  • So far I can’t seem to get the ESP8266 Thing to work. The board definitions for the Arduino IDE won’t even download on OSX because of SSL errors. I can get the blink sketch to work on Linux, but no internet connectivity. In contrast, I was able to get a Photon board up and running on my local network, so I know this isn’t a network issue per-se. The hookup guide provides no help when one of the setup steps fails. I’m not even sure where to start debugging this. It seems that the ESP8266 ThingDev is still too experimental and buggy compared to, say, Arduino boards.

  • I can’t get AT commands to display without griberish on the serial monitor. I followed exactly the directions of cutting the trace on the DTR jumper, added a removable jumper. When jumper is on I can upload sketches. With or without the jumper, i get griberish on the serial output. This does not work as described! HELP

  • PdS / about a year ago * / 1

    Help!! And/Or What is going on here??

    Had some major issues with getting ESP8266 Thing up & running on a new Mac / El Capitan. Downloaded Arduino 1.6.6 & added Board Manager from http://arduino.esp8266.com/stable/package_esp8266com_index.json. Tried to Verify previous working Thing code and got the message “max not defined in current scope.” Oddly, the compiler pointed out that there were alternatives in …/Arduino15/packages/esp8266/tools/…

    Also would not recognize other functions (i.e xxx not defined…) unless I put “classic” C headers up in front of the code. Went through a number of machinations. Finally got things working by installing Arduino 1.6.5 & using the Old SparkFun ESP8266 Thing board definitions: https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json, after stumbling across this comment section/forum.

    Is this some unique problem I’m having? (and if so, how would I fix this?) If this is widespread, I would have expected to see it up front on the hookup guide. I know that there are some issues with the current GitHub esp8266 and Arduino 1.6.6 (Also not stated prominently in the hookup guide) but I tried 1.6.5 and the “current” Board Manager listed in the hookup guide, but no luck. And I know El Cap has been an issue for a lot of third party developers, as it now protects portions of the system that some have traditionally “dumped” resources into. Conversely, Hookup guide should address Mac specific issues up front, as it appears there are configurations that will work.

    Update…

    So, using the above configuration got the code to compile, BUT - after downloading, the Thing just keeps going into wdt reset mode. I can disable the watchdog timer with wdt_disable(); , but then the code just seems to freeze. Still haven’t actually gotten the Thing to work under Mac/El Cap, although was programming fine under Yosemite and Arduino 1.6.4.

  • Hello, I followed the tutorial up through the “posting to phant” example. I have tried two different wireless networks, and neither seems to work: I upload the sketch and just get a blinking blue LED indicating that no connection is made. Are there suggested next steps for debugging?

  • PLEASE HELP

    Has anyone been able to use the ESP to connect to and download data from a server - and use that data as commands - for example to turn some LEDs on/off? (does anyone understand the +IPD protocol)?


    I’d like to create an app that allows my daughter to use a web/app interface to turn some LEDs attached to ESP/Arduino on/off. The web/app interface is super simple. All it does is update a text file on my server. The file is 12 bits, each representing an LED attached to ESP/Arduino.

    I’m also able to connect to the server and download the content of the text file, using a GET over HTTP. However,

    I DO NOT UNDERSTAND this +IPD protocol that the ESP uses. While I can print the contents of the file to Serial Monitor, I am not able to use those 12 bits, for example, to assign them to an array.

    I am happy to share all the code, etc as needed. PLEASE HELP - and THANK YOU.

  • I was able to get the “Blink” sketch to work and I could connect to my router with the sketch “Posting to Phant” if i commented out the Phant library calls. I am connecting to a standalone router because of network/firewall limitations. I made the “AP Web Server” sketch work by substituing WiFi.mode(WIFI_AP) with WiFi.mode(WIFI_STA). I found about 18 examples for the ESP8266 installed by the ESP8266 Arduino Addon and tried them. None of the examples worked. Are the examples designed to work with the ESP-01 module(WRL-13678)? Is the ESP8266 Thing somehow different than the ESP-01 module? The code compiles and uploads and the board connects to the router. The WiFiScan and WiFiWebServer examples print gibberish to the serial monitor and the WiFiWebServer cannot be contacted by a web browser. Any ideas what I am doing wrong?

  • For the SPI bus, you mention pin 15 for CS. Where do I find pin 15?

    • Apparently this board have different pinouts for the different models. The version I have has the EN where GPIO15 was. I traced the pin for the esp8266 chip and found GPIO 15 does go a resistor (pull up?). I was able to get the spi sensor to work by touching the CS pin from the sensor to this resistor.

      Now why GPIO 15 not brought out to a pin is a concern as this is the recommended GPIO for SPI’s CS. SparkFun?

  • Has anyone had any luck with the on-board TMP102? I tried the sample code on the TMP102 product page; no go—it returns all 1’s in both registers.

    A link to the example: http://bildr.org/2011/01/tmp102-arduino/

    EDIT— Serial Monitor output for example code: Celsius: 255.94 Fahrenheit: 492.69

    • Ignore me. I realized that there is no actual TMP102—just a spot to add one. Now, to find one and try to surface solder that tiny thing. :)

  • I got Blink working, and then was working through the Posting to Phant tutorial.

    I downloaded the Phant library and added to Documents/Arduino/libraries/Phant/ Then used the Arduino Library manager to see that it was available. On compile I get: /Users/spencerogden/Documents/Arduino/libraries/Phant/src/Phant.cpp:23:26: fatal error: avr/pgmspace.h: No such file or directory #include <avr/pgmspace.h>

    Am I missing a library? Since everything else is spelled out very clearly, a note that you have to install the Phant library on this page would be helpful.

    • I ended up editing Phat.cpp and editing out:

      //#include <avr/pgmspace.h>

      I’m not sure what that does to the PROGMEM tag on the following consts, but it does compile and work. Perhaps if would be more proper to comment out that line and include the ESP library, but I haven’t tested that.

  • There’s a bug in Example Sketch: AP Web Server.

    memset(AP_NameChar, AP_NameString.length() + 1, 0);

    should be:

    memset(AP_NameChar, 0, AP_NameString.length() + 1);

    Was wondering why I get open network, rather than intended WPA2-PSK network.

  • Is there any way to read the status of the battery or charging? For example, to provide low battery indication.

    • Nothing built into the board. You could pull the battery voltage out of the VIN pin, divide it down with resistors and read that voltage with the ADC.

      • Okay thanks. That’s my backup plan. It would be great if there were some way to access current voltage and status of charging. But I’m having a lot of fun with this board, so no complaints.


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