UNO only talks to ESP on USB or 9V, not 6V Vin

When I power my ESP12e and UNO from same 6VDC thru vin it doesn't talk through serial. When I power it from the barrel jack, however, boom it begins working.

The 6V is not 5V because the relay modules attached to my uno wouldn't function below 6V. The ground is shared everywhere. I have not tried boosting beyond 6V on the Vin because I am worried about the VR blowing like they have on my previous 5 boards.

The uno connects directly Rx - Tx and vice versa to the 12E.

be careful when connecting microcontrollers with different logic levels such as arduino uno (5v) and ESP8266 (3.3v) for this use a voltage divider or logic level converter. as for the communication there are several variables involved such as baud rate, bit parity, stop bit, pins with shared functions, etc …
try using an echo test by connecting the tx of the uno in the rx of the uno and the same thing with the ESP, then print some message in the tx and check the serial monitor rx

Powering the Uno via the Vin pin is the same as powering it via the barrel jack in that the minimum recommended supply voltage is 7 V. If it can't handle 7 V then something is wrong either with the Unos or the way you're using the Unos. I don't understand why you're afraid to go over 6 V, yet you say you're using 9 V without problems.

OH - For some reason I thought it was powered best by 5 volts. Crap. I’ll need an additional VR for my LCD, I don;t think IT’s rated for 7V.

CaioLimaViana:
be careful when connecting microcontrollers with different logic levels such as arduino uno (5v) and ESP8266 (3.3v) for this use a voltage divider or logic level converter. as for the communication there are several variables involved such as baud rate, bit parity, stop bit, pins with shared functions, etc …
try using an echo test by connecting the tx of the uno in the rx of the uno and the same thing with the ESP, then print some message in the tx and check the serial monitor rx

I’m pushing the envelope, but these ESP12Es are a dime a dozen. I don’t have a voltage divider in place and certainly don’t want clutter of a LLC, although I’ve considered getting some.

You can power the Uno with 5 V via the 5V pin (or the USB jack), but don't give it more than 5 V through that pin because there is no voltage regulator on it.

mattlogue:
I'm pushing the envelope, but these ESP12Es are a dime a dozen. I don't have a voltage divider in place and certainly don't want clutter of a LLC, although I've considered getting some.

There was a statement from what appears to be the CEO of Espressif (manufacturer of ESP8266) on Facebook saying that the inputs are 5 V tolerant. However, they were not so kind as to put that in the datasheet and there are statements to the contrary on the Espressif forum. I've never heard a single report of someone frying their ESP8266 by using 5 V logic levels so I've stopped even bringing the subject up. However, you definitely need to make sure you don't power the ESP8266 itself at 5 V. Some ESP8266 boards have an onboard voltage regulator that allows them to run at the rated 3.3 V from a 5 V supply.

I think mine just bit the dust a few minutes ago!

Is it possible to power the 12E development board (with all the pins) from same source as power for UNO? I have them in the same box, uno because it has more voltage and more pins, 12E because cheap and WiFi. I can't get my Uno to work on serial until I dialed up outboard voltage reg to 8.8VDC into the vin. The 12E certainly has a VR... but

Someone tested it and confirmed that there was no large current flow when 5v was put on an i/o pin of esp8266 running at 3.3. Theres a writup online somewhere.

It seems to want at least a full 9V. I had it at 8.82V and it began to fail serial.writes

mattlogue:
The 12E certainly has a VR… but

What does that mean.
The ESP-12 (bare module) does not have a voltage regulator, and must be powered with 3.3volt (<3.6volt!).

I have powered ESP-12 modules from the Uno’s 3.3volt pin, but you need to add a >= 470uF smoothing cap to bridge the ~400mA transmit spikes that the ESP needs.

If you use a development board with an ESP-12 module on it, then state which one.

Are you using SoftwareSerial for the ESP.

Always post a diagram/picture, and code, so we don’t have to guess.
Leo…

The 12E certainly has a VR… but - I see one on the board. It says Amica NodeMCU on it. It is the development board, not the little postage-stamp-sized module. The Uno is an elegoo R3 - a fine clone IMO.

I am not using softwareSerial. I am using Serial.println and such.

It works, but I had to up the voltage to 9.25V when I noticed the transactions began to flag on a 9V battery after an hour uptime. That battery was only 8.8V but not enough apparently.

[Volt Reg]---->[vin (UNO) tx rx]
|____ / /

[vin (ESP) rx tx]

I didn’t think code was relevant in this section of general electronics. Here is the ESP’s code, it’s in-progress trying to authenticate and change profile in blueiris camera software so that’s a lot of clutter. In fact it doesn’t compile yet. The other code for Uno is 1200 lines.

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#define USE_SERIAL Serial

const char* ssid = "JMR";
const char* password = "cr5";
int ix;

ESP8266WiFiMulti WiFiMulti;
WiFiUDP Udp;

unsigned int localUdpPort = 8888;  // local port to listen on
char incomingPacket[255];  // buffer for incoming packets
char  replyPacket[] = "Hi there! Got the message :-)";  // a reply string to send back


void setup()
{
  Serial.begin(115200);
  Serial.println();

  Serial.printf("Connecting to %s ", ssid);

  IPAddress ip(192, 168, 1, 139);
  IPAddress gw(192, 168, 1, 254);
  IPAddress dns(192, 168, 1, 254);
  IPAddress sn(255, 255, 255, 0);
  WiFi.config(ip, gw, sn, dns);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println(" connected");

  Udp.begin(localUdpPort);
  Serial.printf("Now listening at IP %s, UDP port %d\n", WiFi.localIP().toString().c_str(), localUdpPort);
}


void loop()
{
  HTTPClient http;
  int packetSize = Udp.parsePacket();
  if (packetSize)
  {
    // receive incoming UDP packets
    //Serial.println("Received %d bytes from %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());
    int len = Udp.read(incomingPacket, 255);
    if (len > 0)
    {
      incomingPacket[len] = 0;
    }
    Serial.println(incomingPacket);

    //Packet Parse
    //Split packet into codes
    ix = 0;

    while (ix < len) {
      int endPoint = strstr(incomingPacket,"\n");
      strncpy ( char * code, const char * pack,endPoint )
      
      ix = ix + strlen(code) + 1;
   
      switch (code) {
        case 7004: openWeb() //magnet break
      }
    }

    // send back a reply, to the IP address and port we got the packet from
    //Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    //Udp.write(replyPacket);
    //Udp.endPacket();
    if (millis() - delayMS > 1000) Serial.println(9102);
  }
}
void openWeb() {
  USE_SERIAL.print("[HTTP] begin...\n");
  // configure traged server and url
    http.begin("http://matt:ggs@192.168.1.71:15080/admin?profile=3");
 USE_SERIAL.print("[HTTP] GET...\n");
    // start connection and send HTTP header
    int httpCode = http.GET();

    // httpCode will be negative on error
    if (httpCode > 0) {
      // HTTP header has been send and Server response header has been handled
      USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode);

      // file found at server
      if (httpCode == HTTP_CODE_OK) {
        String payload = http.getString();
        USE_SERIAL.println(payload);
      }
    } else {
      USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
    }

    http.end();
  }
}

Very unusual to connect two USB<>Serial chips and two MCUs together with two pins (Rx, Tx).
Something I wouldn’t even try. Serial is not a bus.

Not sure why you to use the UNO.
An ESP-12 (NodeMCU) is more powerful, faster, and has more memory.

If you have to use two MCUs, then I would suspect you would use I2C to join them. Not Tx, Rx.

Powering the Uno (50mA) with a 9volt smoke alarm battery might already be a problem.
Adding a NodeMCU (100mA, with 400mA peaks) to it is definately too much.
A NodeMCU should run fine on a cellphone powerbank.
Leo…

I’d have two NodeMCUs together if I could find out how to split a LOT of code between them. It’s going to be my only hybrid project, though.

What do you mean. I have a WeMos D1 mini (same as a NodeMCU) running ~1500 lines of code 24/7, serving up a dozen web pages from it's internal SPIFFS flash memory, running both station and access point, websockets, UDP, and much more.
Not sure what you need. Pincount might be an issue with small boards like that.
An ESP32 (separate WiFi core) might be an option if you want to do crazy things.
Leo..