Forum Rule: Always post complete source code & details to reproduce any issue!
Page 2 of 5 FirstFirst 1 2 3 4 ... LastLast
Results 26 to 50 of 117

Thread: A Guide To Using ESP8266 With TEENSY 3

  1. #26
    Senior Member Wozzy's Avatar
    Join Date
    Jan 2013
    Location
    Philadelphia, Pennsylvania USA
    Posts
    341
    Quote Originally Posted by tetsuo View Post
    I just thought I'd chime in and mention that I'm using a couple of ESP8266's paried with Teensy 3.1's and have had excellent stability out of the NodeMCU firmware. Instead of using AT commands over serial, you send LUA code. What's more, is that you can put some of your functionality into LUA scripts that reside on the flash of the ESP(e.g. let the ESP handle the basics of serving HTTP) while the IO and CPU-intensive stuff runs on the Teensy.

    Food for thought, anyway. NodeMCU seems fairly stable. one of mine has been running w/o a hitch for over a month now... with the Espressif "AT" firmware, it seemed to consistently hang after hours or, at the most, a couple days.
    Tetsua, Thanks for that info... I've been resisting trying to figure out the NodeMCU LUA Code process, but like you and also ian, I am finding the current version of the AT commend interface unreliable...
    I now have two web servers running in test mode, and neither has made it past 24 hours before hanging up. One thing I noticed is that it will always hang if 2 clients hit it simultaneously. Maybe it time to give NodeMCU a try.
    Last edited by Wozzy; 02-26-2015 at 12:52 AM.

  2. #27
    Senior Member
    Join Date
    Oct 2013
    Posts
    110
    NodeMCU is really easy to work with. I'd never touched LUA before, but it's very straightforward as long as you're comfortable w/ its use of closures (follows patterns very similar to javascript. particularly NodeJS).

    Get the pre-compiled firmware here:
    https://github.com/nodemcu/nodemcu-firmware

    and install it just as you would any firmware. Once that's installed, you can execute LUA directly over serial, just as you were sending AT commands. You'll find it's so much more readable than the AT commands. Here's my init.lua

    Code:
    wifi.setmode(wifi.STATION)
    wifi.sta.config("SSID_HERE","WIFI_PASSWD_HERE")
    uart.setup(0,115200,8,0,1,1)
    -- this loads another file that was placed on the ESP w/ a lua uploader such as https://github.com/kmpm/nodemcu-uploader
    dofile("tcpserial.lua")
    and here is tcpserial.lua

    Code:
    -- basic telnet-friendly TCP server
    s=net.createServer(net.TCP,180) 
    s:listen(2323,function(c) 
        c:on("receive",function(c,l)
          -- pass it on through to the Teensy               
          print(l)           
        end) 
    end)
    Obviously this is just a dirt-simple example, but you can probably imagine where you can go from here. The tough part is deciding how to divide the labor - what do you want to execute on the ESP and what on the Teensy? The ESP is surprisingly capable. Nothing compared to a Teensy 3.1, but beefier than an 8-bit arduino

  3. #28
    Senior Member
    Join Date
    Jan 2015
    Location
    SF Bay Area
    Posts
    255
    The russian firmware is no good.

    If I configure a server to listen on a socket, then a client connects but then disconnects, the firmware will reset the module!

    this is the log. I connect using curl, then ctrl-c after the connection

    AT+CIPSERVER=1,8000


    OK

    0,CONNECT

    +IPD,0,85:GET /test HTTP/1.1
    User-Agent: curl/7.33.0
    Host: 192.168.1.11:8000
    Accept: */*

    0,CONNECT FAIL

    ets Jan 8 2013,rst cause:4, boot mode3,7)

    wdt reset
    load 0x40100000, len 816, room 16
    tail 0
    chksum 0x8d
    load 0x3ffe8000, len 788, room 8
    tail 12
    chksum 0xcf
    ho 0 tail 12 room 4
    load 0x3ffe8314, len 288, room 12
    tail 4
    chksum 0xcf
    csum 0xcf

    2nd boot version : 1.2
    SPI Speed : 40MHz
    SPI Mode : QIO
    SPI Flash Size : 4Mbit
    jump to run user1

    {lŽ
    ready


    The data 0,CONNECT and 0,CONNECT FAIL are not documented.
    I'm going to try to detect the 0,CONNECT FAIL and send an AT+CIPCLOSE=0 to see if that prevents the module from doing a wdt reset.
    Last edited by doughboy; 02-26-2015 at 05:04 PM.

  4. #29
    I've played with the NodeMCU firmware but never really tested it. I prefer to stick with the AT stuff as I'm a 'teacher' & my students are getting to grips with C. Introducing LUA might confuse them. I'm not a huge fan of LUA either... I might return to it. For now the thing works 99% of the time which is ok for student labs but not REAL world stuff!
    I normally use 115200 baud rate. I've done several tests at 460800 too. Can't say I've noticed a difference...
    Wozzy, I can tell you're starting out! Everyone seems to have these problems!
    I've been working on a 'development' board for the ESP8266. I'm happy to share this if anyone is interested.
    http://www.cse.dmu.ac.uk/~sexton/ENG...rotoboard.html
    Have fun!

  5. #30
    PS The Diptrace Teensy footprint came from someone on this forum. I feel guilty not acknowledging this but I don't remember who it was

  6. #31
    Senior Member Wozzy's Avatar
    Join Date
    Jan 2013
    Location
    Philadelphia, Pennsylvania USA
    Posts
    341
    Well this is pretty neat.
    Since the ESP8266 is kind of a power hog, my Li-ion battery pack is draining down fairly quickly.
    The battery pack is made from 4 18650 batteries in series, running through a buck dc-dc converter regulating to 3.3V.
    The battery voltage ranges from 16.8V when fully charged, to 14.8V when it's time to recharge.
    It's unwise to run the individual cells to below 3.7V, or you risk damaging them or having a fire.
    Anyway, I'm reading the battery voltage through a voltage divider with one of the Teensy ACDs.
    I also hacked in a JAVA battery gauge which is served by the Wi-Fi Teensy webserver.
    Here's a screen cap of the web-page, and the code. Not really very useful like this, but it has all the components to be.
    Click image for larger version. 

Name:	Battery Gauge.png 
Views:	2424 
Size:	56.1 KB 
ID:	3723
    Code:
    /*
    Java HTML Battery Level Gauge
    For Teensy 3.x and ESP8266
    Using a Teensy 3.1 to Connect an ESP8266 to PC USB Serial *******
    Compiled with Arduino 1.60 and Teensyduino 1.21b6
    ESP8266 Firmware: AT21SDK95-2015-01-24.bin
    
    Based on ESP8266 Demo code by Ray Wang
    Original sketch by Ray Wang @ Rayshobby LLC - http://raysfiles.com/arduino/ESP8266a_arduino.ino
    Teensy ACD library by Pedvide     http://forum.pjrc.com/threads/25532-ADC-library-update-now-with-support-for-Teensy-3-1
    Java Speedometer Code by Metormote  http://bl.ocks.org/metormote/6392996
    */
    
    #include <ADC.h>
    
    #define BUFFER_SIZE 4096
    #define SSID  "NetworkG"                  // change this to match your WiFi SSID
    #define PASS  "springsummerautumnwinter"  // change this to match your WiFi password
    #define PORT  "15164"                     //  Port 8080 is default webserver port
    
    char buffer[BUFFER_SIZE];
    const int readPin = A9; // ADC0
    ADC *adc = new ADC(); // adc object
    int n = 0;
    int value;
    float BatteryLevel;
    
    // By default we are looking for OK\r\n
    char OKrn[] = "OK\r\n";
    byte wait_for_esp_response(int timeout, char* term=OKrn) {
      unsigned long t=millis();
      bool found=false;
      int i=0;
      int len=strlen(term);
      // wait for at most timeout milliseconds
      // or if OK\r\n is found
      while(millis()<t+timeout) {
        if(Serial1.available()) {
          buffer[i++]=Serial1.read();
          if(i>=len) {
            if(strncmp(buffer+i-len, term, len)==0) {
              found=true;
              break;
            }
          }
        }
      }
      buffer[i]=0;
      Serial.print(buffer);
      return found;
    }
    
    void setup() {
      
        pinMode(readPin, INPUT); //pin 23 single ended
        Serial.begin(9600);
        adc->setAveraging(50); // set number of averages
        adc->setResolution(12); // set bits of resolution
        adc->setConversionSpeed(ADC_LOW_SPEED); // change the conversion speed
        // setConversionSpeed() can be ADC_VERY_LOW_SPEED, ADC_LOW_SPEED, ADC_MED_SPEED, ADC_HIGH_SPEED_16BITS, ADC_HIGH_SPEED or ADC_VERY_HIGH_SPEED    
        adc->setSamplingSpeed(ADC_LOW_SPEED); // change the sampling speed
        // setSamplingSpeed() can be ADC_VERY_LOW_SPEED, ADC_LOW_SPEED, ADC_MED_SPEED, ADC_HIGH_SPEED or ADC_VERY_HIGH_SPEED
      
    
      // assume esp8266 operates at 115200 baud rate
      // change if necessary to match your modules' baud rate
      Serial1.begin(115200);  // Teensy Hardware Serial port 1   (pins 0 and 1)
      Serial.begin(115200);   // Teensy USB Serial Port
      
      delay(5000);
      Serial.println("begin.");  
      setupWiFi();
    
      // print device IP address
      //Serial.print("device ip addr: ");
      //Serial1.println("AT+CIFSR");
      //wait_for_esp_response(1000);
    }
    
    bool read_till_eol() {
      static int i=0;
      if(Serial1.available()) {
        buffer[i++]=Serial1.read();
        if(i==BUFFER_SIZE)  i=0;
        if(i>1 && buffer[i-2]==13 && buffer[i-1]==10) {
          buffer[i]=0;
          i=0;
          Serial.print(buffer);
          return true;
        }
      }
      return false;
    }
    
    void loop() {
      
      // 16.8V to 14.8V 4S Li-Ion Battery Pack to Voltage Divider gives 3.3v to 2.91v
      // Convert to 0 to 100%
      value = adc->analogRead(readPin, ADC_0); 
      BatteryLevel = (((value*3.3/adc->getMaxValue(ADC_0))*254.5455) - 740.00000);
      // Serial.print(value);
      // Serial.print("   ");
      // Serial.println(BatteryLevel);
      delay(20);
      
      int ch_id, packet_len;
      char *pb;  
      if(read_till_eol()) {
        if(strncmp(buffer, "+IPD,", 5)==0) {
          // request: +IPD,ch,len:data
          sscanf(buffer+5, "%d,%d", &ch_id, &packet_len);
          if (packet_len > 0) {
            // read serial until packet_len character received
            // start from :
            pb = buffer+5;
            while(*pb!=':') pb++;
            pb++;
            if (strncmp(pb, "GET /", 5) == 0) {
              wait_for_esp_response(1000);
              Serial.println("-> serveing homepage");
              serve_homepage(ch_id);
            }
          }
        }
      }
    }
    
    void serve_homepage(int ch_id) {
     n=n+1;  
    String header = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: close\r\nRefresh: 300\r\n";
    
      String content="";
        content += "<!DOCTYPE html>";
        content += "<html>";
        content += "<head>";
        content += "<title>Teensy3-ESP8266 Wi-Fi Battery Level</title>";    
        content += " <h1> <font color=#dddddd> TEENSY 3 </font> </h1>";
        content += " <p> <font color=#ff66ff> ESP8266 Wireless Webserver Battery Level </font> </p>";  
        content += " <p> <font color=#ffffff> Teensy server uptime ";
        content += String(millis());
        content += " milliseconds </p>"; 
        content += "<p> This page has been served ";
        content += String(n);
        content += " times since last reboot </font>  </p>";
    
      
        content += "<link rel='stylesheet' href='http://fonts.googleapis.com/css?family=Play:700,400' type='text/css'>";
        content += "<script type=\"text/javascript\" src=\"http://iop.io/js/vendor/d3.v3.min.js\"></script>";
        content += "<script type=\"text/javascript\" src=\"http://iop.io/js/vendor/polymer/PointerEvents/pointerevents.js\"></script>";
        content += " <script type=\"text/javascript\" src=\"http://iop.io/js/vendor/polymer/PointerGestures/pointergestures.js\"></script>";
        content += "<script type=\"text/javascript\" src=\"http://iop.io/js/iopctrl.js\"></script>";
        content += "<style>";
        content += "body {";
        content += "font: 24px arialbold;";
        content += " background-color: #222222;";
        content += "}";
        content += ".unselectable {";
        content += "-moz-user-select: -moz-none;";
        content += "-khtml-user-select: none;";
        content += "-webkit-user-select: none;";
        content += "-ms-user-select: none;";
        content += "user-select: none;";
        content += "}";    
     //  content += "/* css formats for the gauge */";
        content += ".gauge .domain {";
        content += "stroke-width: 2px;";
        content += "stroke: #fff;";
        content += "}";
        content += ".gauge .tick line {";
        content += "stroke: #fff;";
        content += "stroke-width: 2px;";
        content += "}";
        content += ".gauge line {";
        content += "stroke: #fff;";
        content += "}";
        content += ".gauge .arc, .gauge .cursor {";
        content += "opacity: 0;";
        content += "}";
        content += ".gauge .major {";
        content += "fill: #fff;";
        content += "font-size: 20px;";
        content += "font-family: 'Play', verdana, sans-serif;";
        content += "font-weight: normal;";
        content += "}";
        content += ".gauge .indicator {";
        content += "stroke: #EE3311;";
        content += "fill: #000;";
        content += "stroke-width: 4px;";
        content += "}";
      //  content += "/* css formats for the segment display */";
      //  content += ".segdisplay .on {";
      //  content += "fill: #00FFFF;";
      //  content += "}";
      //  content += ".segdisplay .on {";
      //  content += "fill: #00FFFF;";
      //  content += "opacity: 0.10;";
      //  content += "}";
        content += "</style>";
        content += "</head>";
        content += "<body>";
        content += "<div>";
        content += "<span id=\"speedometer\"></span>";
        content += "</div>";
        
        content += "<script>";
        content += "var svg = d3.select(\"#speedometer\")";
        content += ".append(\"svg:svg\")";
        content += ".attr(\"width\", 400)";
        content += ".attr(\"height\", 400);";
        content += "var gauge = iopctrl.arcslider()";
        content += ".radius(150)";
        content += ".events(false)";
        content += ".indicator(iopctrl.defaultGaugeIndicator);";
        content += "gauge.axis().orient(\"in\")";
        content += ".normalize(true)";
        content += ".ticks(10)";
        content += ".tickSubdivide(9)";
        content += ".tickSize(10, 8, 10)";
        content += ".tickPadding(5)";
        content += ".scale(d3.scale.linear()";
        content += ".domain([0, 100])";
        content += ".range([-3*Math.PI/4, 3*Math.PI/4]));";
       // content += "var segDisplay = iopctrl.segdisplay()";
       // content += ".width(80)";
       // content += ".digitCount(6)";
       // content += ".negative(false)";
       // content += ".decimals(1);";
        //content += "svg.append(\"g\")";
       // content += ".attr(\"class\", \"segdisplay\")";
       // content += ".attr(\"transform\", \"translate(130, 200)\")";
       // content += ".call(segDisplay);";
        content += "svg.append(\"g\")";
        content += ".attr(\"class\", \"gauge\")";
        content += ".call(gauge);";
        //content += "segDisplay.value(";
        //content += String(n*94);
        //content += ");";
        content += "gauge.value(";
        content += String((int)BatteryLevel);
        content += ");";
        content += "</script>";
        
    
        
        
          
        content += "</body>";
        content += "</html>";
        content += "<br />\n";       
        content += "\r\n";       
    
      header += "Content-Length:";
      header += (int)(content.length());
      header += "\r\n\r\n";
      Serial1.print("AT+CIPSEND=");
      Serial1.print(ch_id);
      Serial1.print(",");
      Serial1.println(header.length()+content.length());
      if(wait_for_esp_response(2000)) {
       //delay(100);
       Serial1.print(header);
       Serial1.print(content);
      } 
      else {
      Serial1.print("AT+CIPCLOSE=");
      Serial1.println(ch_id);
     }
    }
    
    void setupWiFi() {
    
      // turn on echo
      Serial1.println("ATE1");
      wait_for_esp_response(1000);
      
      // try empty AT command
      //Serial1.println("AT");
      //wait_for_esp_response(1000);
    
      // set mode 1 (client)
      Serial1.println("AT+CWMODE=3");
      wait_for_esp_response(1000); 
     
      // reset WiFi module
      Serial1.print("AT+RST\r\n");
      wait_for_esp_response(1500);
    
       //join AP
      Serial1.print("AT+CWJAP=\"");
      Serial1.print(SSID);
      Serial1.print("\",\"");
      Serial1.print(PASS);
      Serial1.println("\"");
      wait_for_esp_response(5000);
    
      // start server
      Serial1.println("AT+CIPMUX=1");
       wait_for_esp_response(1000);
      
      //Create TCP Server in 
      Serial1.print("AT+CIPSERVER=1,"); // turn on TCP service
      Serial1.println(PORT);
       wait_for_esp_response(1000);
      
      Serial1.println("AT+CIPSTO=30");  
      wait_for_esp_response(1000);
    
      Serial1.println("AT+GMR");
      wait_for_esp_response(1000);
      
      Serial1.println("AT+CWJAP?");
      wait_for_esp_response(1000);
      
      Serial1.println("AT+CIPSTA?");
      wait_for_esp_response(1000);
      
      Serial1.println("AT+CWMODE?");
      wait_for_esp_response(1000);
      
      Serial1.println("AT+CIFSR");
      wait_for_esp_response(5000);
      
      Serial1.println("AT+CWLAP");
      wait_for_esp_response(5000);
      
      Serial.println("---------------*****##### READY TO SERVE #####*****---------------");
      
    }
    I'm still using the AT command language, and haven't yet switched to NodeMCU, as I was having problems compiling and loading the firmware update.
    As such, the webserver is not very reliable, and hangs up occasionally.

  7. #32
    Senior Member+ manitou's Avatar
    Join Date
    Jan 2013
    Posts
    1,472
    FWIW, here is a teensy 3.1 sketch that uses the AT commands to the ESP8266 to send NTP UDP time query.
    https://github.com/manitou48/teensy3...ter/espntp.ino
    Version (AT+GMR) AT version:0.21.0.0 SDK version:0.9.5 with UART at 115200 baud.

    the output
    Code:
    UDP send
    AT+CIPSEND=4,48
    
    
    OK
    13 ms
    1433851718
    6/9/2015 12:8:38
    
    OK
    UDP send
    AT+CIPSEND=4,48
    
    
    OK
    13 ms
    1433851728
    6/9/2015 12:8:48
    Serial1.find() didn't work with the binary data from the NTP reply.
    Last edited by manitou; 06-11-2015 at 11:29 AM.

  8. #33
    Member
    Join Date
    Jun 2015
    Location
    Oakdale, CT
    Posts
    37
    I have been using the ESP8266 for some time now. I posted a simple web server using teensy 3.1 and ESP8266 ESP-01 version 2. My ESP8266 units identified themselves, at power up as version 0.9.2.4 and with AT+GMR command as 001800902-AI03. The difference between the ESP-01 version 1 and version 2 is the default baud rate. The version 2 after power up uses a value of 9600. The older version 1 uses 115200. Here is a list of the AT commands that work with my ESP8266 ESP-01 version 2 units.
    Code:
    01. AT-Attention
    02. AT+RST-Soft reset
    03. AT+GMR-Retrieve firmware version
    04. AT+CWMODE-Operation mode selection, 1 = sta, 2 = AP, 3 = both
    05. AT+CWJAP-Join network
    06. AT+CWLAP-Available network listing
    07. AT+CWQAP-Exit network
    08. AT+ CWSAP-Setup network name, password, radio channel and security scheme
    09. AT+ CWLIF-Listing connected stations, only AP mode
    10. AT+ CIPSTATUS-Connection listing
    11. AT+CIPSTART-Initiating connection
    12. AT+CIPSEND-Sending data
    13. AT+CIPCLOSE-Closing connection
    14. AT+CIFSR-Displaying IP from access point
    15. AT+CIPMUX-Single or multiple connection selection, 0 = single, 1 = multiple
    16. AT+CIPSERVER-Socket server on/off,  AT+CIPSERVER=<mode>[,<port>,] mode 0 close, mode 1 up <port #>
    17. AT+CIPMODE-Serial port transparent or connecdtion based data output selection
    18. AT+CIPSTO-Socket server automatic connection timeout setting
    19. +IPD-Serial port connection based data output
    20. AT+CIOBAUD - ? gives baud rate setting, =9600 (e.g.)sets a rate
    21. ATE# - controls echoing of received commands, #=0 disable, #=1 enable echo
    I hope this is a help.

  9. #34
    Senior Member johnnyfp's Avatar
    Join Date
    Jan 2014
    Location
    New Zealand
    Posts
    260
    New Project based on the ESP8266 and Teensy.

    Planning on using it for various projects

    https://hackaday.io/project/6308-foo...teensy-esp8266

  10. #35
    Senior Member onehorse's Avatar
    Join Date
    Apr 2014
    Location
    Danville, California
    Posts
    920
    Alright, I feel like quite the idiot.

    I bought an ESP8266-12E (actually several), soldered wires to the twenty or so little pin pads, hooked up VCC to 3.1 V (2 x 1.5 V AAA batteries), GND, CHIP_EN to VCC and GPIO15 to GND and... nothing. The blue led flashes for an instant when I apply power but I can get no serial output when TX/RX are connected to Teensy 3.1 pins 0 and 1 as per the sketch at the top of this thread. My plan was to use this purchased module to learn how to use the ESP8266, especially upload firmware and program it, then get my own ESP8266 design to work. But I can't even get an AT ACK from the thing. What could I be doing wrong?

    Maybe I should just start with the mod-01...

  11. #36
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    6,440
    Reading on esp forum the other day I saw a note about evil blue blink, apparently red lighted ones are more affable.

    If you came across that it might help you onehorse

    This may be what I saw: http://www.esp8266.com/viewtopic.php...lue+red#p18960
    though maybe not what you need :: ESP-07 "blue light of death"

    One poster Final note was - swapped Tx/Rx and it worked.

    When you get it working - please post where you got yours - and details on the connects. I put some 12's in my eBay cart - but they weren't noted as 12E's
    Last edited by defragster; 06-15-2015 at 04:57 AM. Reason: "blue light of death"

  12. #37
    Senior Member johnnyfp's Avatar
    Join Date
    Jan 2014
    Location
    New Zealand
    Posts
    260
    Have you put GPIO0 to VCC? Has it been programmed? It could be a simple as it hasn't had a firmware upload.

    Download NodeMCU flasher https://github.com/nodemcu/nodemcu-flasher Connect GPIO0 to GND and connect either a FTDI cable to TX/RX and see if thenodemcu-flasher reads it.
    If you haven't got a FTDI cable, you can use the Teensy as a passthrough, with the following code change the defines to your particular ports attached to CH_EN(WIFIEN),GPIO0(WIFIPROG) and RESET(WIFIRST)
    Code:
    #define WIFIPROG 14
    #define WIFIEN   2
    #define WIFIRST  24
    
    long count;
    
    void setup() {
      Serial.begin(115200);
      Serial1.begin(115200);
      pinMode(WIFIPROG,OUTPUT);
      pinMode(WIFIEN,OUTPUT);
      pinMode(WIFIRST,OUTPUT);
      pinMode(LED_BUILTIN,OUTPUT);
      digitalWriteFast(WIFIPROG,0);
      digitalWriteFast(WIFIRST,0);
      digitalWriteFast(WIFIEN,1);
      delay(100);
      digitalWriteFast(WIFIRST,1);
    }
    
    void loop() {
      if (Serial.available()) {
        Serial1.write(Serial.read());
      }
      if (Serial1.available()) {
        Serial.write(Serial1.read());
      }
      count++;
      if (count==240000) digitalWriteFast(LED_BUILTIN,1);
      if (count==480000) {
        digitalWriteFast(LED_BUILTIN,0);
        count=0;
      }
    }

  13. #38
    Senior Member onehorse's Avatar
    Join Date
    Apr 2014
    Location
    Danville, California
    Posts
    920
    I have tried this but no luck. When I connect the 3V3 FTDI port to GND, TX, RX and the ESP12E to 3V3, GND, GPIO0 = GND, CHIPEN = VCC, GPIO15 = GND NodeMCU says Waiting MAC and I get the same blue flash from the LED then nothing. Maybe the crystal is installed wrong or maybe these ESP12E are defective. I will assemble my own board this week and try it. At least I won't have to worry that there is something wrong with the hardware!

  14. #39
    Senior Member johnnyfp's Avatar
    Join Date
    Jan 2014
    Location
    New Zealand
    Posts
    260
    How are you powering the unit?

    I started powering mine from my USB port on the PC and my 3v3 was up and down, until I realized that the Teensy was reporting back to the PC that it would only require 1unit of power (100ma), Where as the ESP + Teensy needs 0.11a. So when I upted or put both on an external PSU it worked.

    Other than that, look over the board for any shorts, maybe look for any tin wiskers.

  15. #40
    Senior Member onehorse's Avatar
    Join Date
    Apr 2014
    Location
    Danville, California
    Posts
    920
    I am using two AAA batteries for power. The ESP12E is encased with a metal cap. I can't even see inside. I suppose i could remove it to see what the problem is but it will be easier just to make my own tomorrow and try that. It's a bit confusing since the data sheet says RESET and GPIO0 are pulled up internally. I guess I need to pull down GPIO15, set CHiPEN HIGH and maybe GPIO2 HIGH for good measure. And then for loading firmware, set GPIO0 = GND.

    At least my led stays on. I added another one on the ESP8266' TX line to see if the chip is alive. And with GPIO15 broken out, I can ground it and maybe get my latest board design to work. My board has a 3V3 regulator so I will just power it via a LiPo battery. I'll report tomorrow.

  16. #41
    Senior Member onehorse's Avatar
    Join Date
    Apr 2014
    Location
    Danville, California
    Posts
    920
    Well, it took me a little while, but i finally assembled my new ESP82566 board and had partial success. Here is what the new board looks like:

    Click image for larger version. 

Name:	ESP8266.pic3.jpg 
Views:	255 
Size:	107.8 KB 
ID:	4569

    And here is how I am attempting to talk with it:



    Click image for larger version. 

Name:	ESP8266.pic1.jpg 
Views:	316 
Size:	116.7 KB 
ID:	4568

    It looks like I was able to flash new firmware using the ESP8266 flasher. When I hooked it up with GPIO0 grounded and hit flash on the tool, mac addresses showed up, the progress bar scanned from left to right, the FTDI board lit up and the flasher claimed success when finished.

    When I ran LuaLoader (with GPIO0 set to HIGH or floating, tried it both ways) it finds the COM port (4, in this case) but there is no prompt, none of the buttons result in any output, AT entered in the window produces no response. I am at somewhat of a loss to know how to proceed.

    Can anyone offer me some advice? Thanks in advance!

  17. #42
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    4,438
    I would try the official AT-Firmware from Espressif, not LUA at first.

  18. #43
    There is a forum forum on the ESP8266 with interesting topics

  19. #44
    ESP8266 does not support incomming connections?

  20. #45
    Senior Member Constantin's Avatar
    Join Date
    Nov 2012
    Location
    In the yard with a 17' Dia. Ferris Wheel
    Posts
    1,408
    There are examples of it working as a web server (see above) but I would characterize the thing as so unstable in that application as being functionally unusable for anything other than in-home use (i.e. Where you can strictly limit the number of connection requests, can reset the thing by walking over, etc). I'd look to a more proven platform for serving pages, i.e. Something like a pi.

    To me, the ESP8266 is potentially a great way to lob payloads into orbit, never saw it being good enough to be a server.

  21. #46
    Quote Originally Posted by Constantin View Post
    To me, the ESP8266 is potentially a great way to lob payloads into orbit, never saw it being good enough to be a server.
    In other words : more a 9600 baud serial cable replacer?

  22. #47
    Senior Member onehorse's Avatar
    Join Date
    Apr 2014
    Location
    Danville, California
    Posts
    920
    I could use some help.

    I assembled a new version of the ESP8266 add on with a 500 mA LDO voltage regulator; it should have plenty of power. I have GPIO 0 and 2 pulled up to 3V3 and GPIO 15 pulled down by default. When I connect GPIO 0 to GND, I can flash the AT21SDK95-2015-01-24.bin file starting at 0x00000 using the NODEMCU FIRMWARE PROGRAMMER and a 3v3 FTDI to serial converter. The FTDI RX and the on-board TX leds light up and flicker as the progress bar on the NODEMCU flasher moves to the right, I get a successful flash, I get AP MAC and STA MAC addresses and a green check mark. So all looks OK. However, I can get no AT response and none of the Teensy programs at the top of this thread produce anything out on the serial monitor except begin, etc. When I type in AT or AT+GMR into the command bar at the top of the serial monitor and press send, I get nothing in return.

    This is essentially the same behavior I experienced before and I am at a loss for what to do about it.

  23. #48
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    4,438
    Quote Originally Posted by onehorse View Post
    I could use some help.

    I assembled a new version of the ESP8266 add on with a 500 mA LDO voltage regulator; it should have plenty of power. I have GPIO 0 and 2 pulled up to 3V3 and GPIO 15 pulled down by default. When I connect GPIO 0 to GND, I can flash the AT21SDK95-2015-01-24.bin file starting at 0x00000 using the NODEMCU FIRMWARE PROGRAMMER and a 3v3 FTDI to serial converter. The FTDI RX and the on-board TX leds light up and flicker as the progress bar on the NODEMCU flasher moves to the right, I get a successful flash, I get AP MAC and STA MAC addresses and a green check mark. So all looks OK. However, I can get no AT response and none of the Teensy programs at the top of this thread produce anything out on the serial monitor except begin, etc. When I type in AT or AT+GMR into the command bar at the top of the serial monitor and press send, I get nothing in return.

    This is essentially the same behavior I experienced before and I am at a loss for what to do about it.
    Which baudrate do you use? I forgot which speed is the default, so try the stdards, 9600 19200 and 115200
    On power on, the esp prints some info. So you sould see something. After the inital info, it switches to a different baudrate.
    When you can see the startup-info, everything is ok.
    And you should see the led on the tx line blinking as sign of pprinting this initial text.

  24. #49
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    4,438
    And swicth the gpios from flashing mode to run mode!
    Sry for the not exact info, im not at my computer at the moment and the last time i fiddled with this is some months ago.

  25. #50
    Senior Member onehorse's Avatar
    Join Date
    Apr 2014
    Location
    Danville, California
    Posts
    920
    Yes, I did all of the obvious things. I bought these ESP8266 chips from aliexpress.com. I am beginning to wonder if they are bad or something.

    When using one of the Teensy programs I get a z or an r on start up depending on the baud rate, but no response from any AT command.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •