Blynk Freezes and Goes Offline at Random Times

I’m working on a Blynk controlled arduino project involving two Arduino Uno Wifi rev 2 boards connecting to my Blynk local server using dhcp wifi connection. On the app both devices are set to generic board and wifi connection type. One board has a sketch that controls an armuno robot, while the other board has sparkfun’s UHF RFID shield connected to it. My phone is a One Plus 7 pro with Oxygen OS 10.3.7, and the Blynk library version number is 0.6.1. On the robot sketch I used a custom library I wrote for the Position and Robot classes, and on the RFID sketch I wrote a User and RFAdmin class. I don’t have any blynk functions in either of those libraries though.

The issue I am having is that both boards eventually permanently lose the connection to my local server. This happens (seemingly) randomly. I have tried changing the heartbeat interval to 8 hours and that still doesn’t fix the issue although it did take around that 8 hour mark for the rfid sketch to freeze (this one had no timers running at the time). The robot sketch froze sooner but has a 11 sec interval timer to update the ‘screen saver’ lcd display clock. I have looked at the serial monitor and it looks like it sent the heartbeat command to my local server, but received nothing back. I tried updating the local server to the most recent release, but it had no effect. I have put countless hours of searching through google and the forums, but still am no closer to figuring this out. Any help anyone can give me would be much appreciated. I have posted the code for both sketches below.

Door_Unlocker-Robot

#define BLYNK_PRINT Serial
#define BLYNK_DEBUG
//#define BLYNK_MAX_READBYTES 1024
//#define BLYNK_MAX_SENDBYTES  256

#include <SoftwareSerial.h>
#include <SPI.h>
#include <WiFiNINA.h>
#include <BlynkSimpleWiFiNINA.h>
#include <LiquidCrystal_I2C.h>
#include <TimeLib.h>
#include <WiFiUDP.h>
#include <WidgetRTC.h>

#include "Robot.h"

LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display

int i = 0, j = 0;
int j1, j2, j3, j4;
int s[4] = {2, 0, 1, 3};
int curAngle, curI, rCount;
int bridgeInt = 0;
bool isLocked = true, armed = true;
bool relocking = false;
bool prevState1 = false, prevState2 = false;
Position curPos, testPos, prevPos;
unsigned long t;
int timerID, timer2ID, timer3ID, timer4ID, timer5ID, timer6ID;
int prevTime;

WidgetLED led1(V3);
WidgetLED led2(V15);
WidgetLED led3(V31);

WidgetLCD blynkLCD(V16);

BlynkTimer timer;

char auth[] = "***************************************";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "********";
char pass[] = "********";
IPAddress ip(192, 168, 1, 50);            // IP address of the server
IPAddress gateway(192, 168, 1, 1);        // gateway of your network
IPAddress subnet(255, 255, 255, 0);       // subnet mask of your network

// NTP Servers:
IPAddress timeServer(129, 6, 15, 26); // time-a.timefreq.bldrdoc.gov
// IPAddress timeServer(132, 163, 4, 102); // time-b.timefreq.bldrdoc.gov
//IPAddress timeServer(132, 163, 4, 103); // time-c.timefreq.bldrdoc.gov

unsigned int localPort = 8888;  // local port to listen for UDP packets

//const int timeZone = 1;     // Central European Time
int timeZone = -5;  // Eastern Standard Time (USA)
//const int timeZone = -4;  // Eastern Daylight Time (USA)
//const int timeZone = -8;  // Pacific Standard Time (USA)
//const int timeZone = -7;  // Pacific Daylight Time (USA)

time_t prevDisplay = 0; // when the digital clock was displayed

WiFiUDP Udp;

Robot myRobot;

void checkAndConnect();
void checkTeachMode();
void teachMode(Robot&, Position&);
void curPosLCD();
void isSavedPos();
void updateWidgets(Position&);
void zeroWidgets();
void updateLCD();
void deleteAllPos();
void relockDoor();
void clockDisplay();
void startClockDisplay();

void setup()
{
  delay(6000);
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  myRobot.init(lcd, curPos);

  lcd.clear();
  lcd.setCursor(3, 0);
  lcd.print("Finished Robot");
  lcd.setCursor(3, 1);
  lcd.print("Initialization");
  //  Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 251));
  Blynk.begin(auth, ssid, pass, IPAddress(**, ***, ***, **), 8080); // public IP + port forwarded on router
  setSyncInterval(60 * 10); // Sync interval in seconds (10 minutes)
  timer.setInterval(1997L, updateLCD);
  //  timer.setInterval(607L, isSavedPos);
  //  timer.setInterval(1801L, checkAndConnect);
  timer.setInterval(501L, checkTeachMode);
  Udp.begin(localPort);
  setSyncProvider(getNtpTime);
  timer3ID = timer.setTimeout(60000, startClockDisplay);
  lcd.clear();
  lcd.setCursor(3, 0);
  lcd.print("Startup Process");
  lcd.setCursor(6, 1);
  lcd.print("Complete");
  delay(1000);
  lcd.clear();
  led2.off();
  led1.off();
  zeroWidgets();
}

void loop()
{
  Blynk.run();
  timer.run();
  checkAndConnect();
}

void checkAndConnect()  // workaround I found for 'no sockets available'/ 'packet too big' errors
{
  if (!Blynk.connected())
  {
    WiFi.end();
    Blynk.begin(auth, ssid, pass, IPAddress(**, ***, ***, **), 8080);
  }
}

void checkTeachMode()
{
  if (myRobot.getTeachMode()) teachMode(myRobot, curPos);
}

void teachMode(Robot& r, Position& p)
{
  prevPos = curPos;
  Blynk.virtualWrite(V4, p.getJ3Pos());
  Blynk.virtualWrite(V5, p.getJ1Pos());
  Blynk.virtualWrite(V6, p.getJ2Pos());
  Blynk.virtualWrite(V7, p.getJ4Pos());
  isSavedPos();
  while (myRobot.getTeachMode())
  {
    Blynk.run();
    if (curPos != prevPos)
    {
      curPosLCD();
      isSavedPos();
    }
  }
  led2.off();
}

void curPosLCD()
{
  if (curPos != prevPos)
  {
    lcd.clear();
    lcd.setCursor(2, 0);
    lcd.print("Current Position");
    lcd.setCursor(2, 2);
    lcd.print("J1:");
    lcd.print(curPos.getJ3Pos());
    lcd.setCursor(12, 2);
    lcd.print("J2:");
    lcd.print(curPos.getJ1Pos());
    lcd.setCursor(2, 3);
    lcd.print("J3:");
    lcd.print(curPos.getJ2Pos());
    lcd.setCursor(12, 3);
    lcd.print("J4:");
    lcd.print(curPos.getJ4Pos());
    prevPos = curPos;
  }
}

void isSavedPos()
{
  (curPos == myRobot.getP(j)) ? led2.on() : led2.off();
}

void updateWidgets(Position& p)
{
  Blynk.virtualWrite(V4, curPos.getJ3Pos());
  Blynk.virtualWrite(V5, curPos.getJ1Pos());
  Blynk.virtualWrite(V6, curPos.getJ2Pos());
  Blynk.virtualWrite(V7, curPos.getJ4Pos());
  Blynk.virtualWrite(V8, curPos.getJ3Pos());
  Blynk.virtualWrite(V9, curPos.getJ1Pos());
  Blynk.virtualWrite(V10, curPos.getJ2Pos());
  Blynk.virtualWrite(V11, curPos.getJ4Pos());
}

void zeroWidgets()
{
  led2.off();
  Blynk.virtualWrite(V4, 0);
  Blynk.virtualWrite(V5, 0);
  Blynk.virtualWrite(V6, 0);
  Blynk.virtualWrite(V7, 0);
  Blynk.virtualWrite(V8, 0);
  Blynk.virtualWrite(V9, 0);
  Blynk.virtualWrite(V10, 0);
  Blynk.virtualWrite(V11, 0);
}

void updateLCD()
{
  if (prevState1 != isLocked || prevState2 != armed)
  {
    blynkLCD.clear();
    (isLocked) ? blynkLCD.print(5, 0, "Locked") : blynkLCD.print(4, 0, "Unlocked");
    blynkLCD.print(3, 1, "Armed:");
    (armed) ? blynkLCD.print(10, 1, "Yes") : blynkLCD.print(10, 1, "No");
    prevState1 = isLocked;
    prevState2 = armed;
  }
}

void deleteAllPos()
{
  for (int i = 0 ; i < EEPROM.length() ; i++)  //put '0' in for all eeprom values
  {
    EEPROM.write(i, 0);
  }

  for (int i = 0; i < MAX_NUM_P; i++)
  {
    myRobot.setP(Position(), i);
  }

  led3.on();
  lcd.clear();
  lcd.setCursor(3, 1);
  lcd.print("Positions");
  lcd.setCursor(4, 2);
  lcd.print("Erased");
}

void relockDoor()
{
  myRobot.goToFinal(isLocked, curPos, lcd);
  isLocked = !isLocked;
  myRobot.goToHome(isLocked, curPos, lcd);
  timer.deleteTimer(timerID);
  //  timerID = timer.setTimeout(60000, relockDoor);
  //  timer.disable(timerID);
  Blynk.virtualWrite(V17, 0);
  Blynk.virtualWrite(V1, 0);
  relocking = false;
}

void clockDisplay()
{

  // You can call hourFormat12(), minute(), ... at any time
  // Please see Time library examples for details
  String currentTime;

  if (hourFormat12() < 10) currentTime = "0" + String(hourFormat12()) + ":";
  else currentTime = String(hourFormat12()) + ":";

  if (minute() < 10) currentTime += "0" + String(minute());
  else currentTime += String(minute());

  //  if (second() < 10) currentTime += "0" + String(second());
  //  else currentTime += String(second());

  if (isAM()) currentTime += " AM";
  else currentTime += " PM";

  String currentDate;
  if (month() < 10) currentDate = "0";
  currentDate += String(month()) + "/";

  if (day() < 10) currentDate += "0";
  currentDate += String(day()) + "/" + String(year());
  Serial.print("Current time: ");
  Serial.print(currentTime);
  Serial.print(" ");
  Serial.print(currentDate);
  Serial.println();

  if (prevTime != minute())
  {
    lcd.clear();
    lcd.setCursor(6, 1);
    lcd.print(currentTime);
    lcd.setCursor(5, 2);
    lcd.print(currentDate);
    prevTime = minute();
  }
}

void startClockDisplay()
{
  timer2ID = timer.setInterval(12599L, clockDisplay);
}

void stopClockDisplay()
{
  timer.deleteTimer(timer3ID);
  timer.deleteTimer(timer2ID);
  timer3ID = timer.setTimeout(60001L, startClockDisplay);
  lcd.clear();
}

// internet time sync code for clock display functions
/*-------- NTP code ----------*/

const int NTP_PACKET_SIZE = 48; // NTP time is in the first 48 bytes of message
byte packetBuffer[NTP_PACKET_SIZE]; //buffer to hold incoming & outgoing packets

time_t getNtpTime()
{
  while (Udp.parsePacket() > 0) ; // discard any previously received packets
  Serial.println("Transmit NTP Request");
  sendNTPpacket(timeServer);
  uint32_t beginWait = millis();
  while (millis() - beginWait < 1500) {
    int size = Udp.parsePacket();
    if (size >= NTP_PACKET_SIZE) {
      Serial.println("Receive NTP Response");
      Udp.read(packetBuffer, NTP_PACKET_SIZE);  // read packet into the buffer
      unsigned long secsSince1900;
      // convert four bytes starting at location 40 to a long integer
      secsSince1900 =  (unsigned long)packetBuffer[40] << 24;
      secsSince1900 |= (unsigned long)packetBuffer[41] << 16;
      secsSince1900 |= (unsigned long)packetBuffer[42] << 8;
      secsSince1900 |= (unsigned long)packetBuffer[43];
      return secsSince1900 - 2208988800UL + timeZone * SECS_PER_HOUR;
    }
  }
  Serial.println("No NTP Response :-(");
  return 0; // return 0 if unable to get the time
}

// send an NTP request to the time server at the given address
void sendNTPpacket(IPAddress &address)
{
  // set all bytes in the buffer to 0
  memset(packetBuffer, 0, NTP_PACKET_SIZE);
  // Initialize values needed to form NTP request
  // (see URL above for details on the packets)
  packetBuffer[0] = 0b11100011;   // LI, Version, Mode
  packetBuffer[1] = 0;     // Stratum, or type of clock
  packetBuffer[2] = 6;     // Polling Interval
  packetBuffer[3] = 0xEC;  // Peer Clock Precision
  // 8 bytes of zero for Root Delay & Root Dispersion
  packetBuffer[12]  = 49;
  packetBuffer[13]  = 0x4E;
  packetBuffer[14]  = 49;
  packetBuffer[15]  = 52;
  // all NTP fields have been given values, now
  // you can send a packet requesting a timestamp:
  Udp.beginPacket(address, 123); //NTP requests are to port 123
  Udp.write(packetBuffer, NTP_PACKET_SIZE);
  Udp.endPacket();
}

BLYNK_WRITE(V1)
{
  if (myRobot.getTeachMode() && param.asInt())
  {
    myRobot.goToFinal(isLocked, curPos, lcd);
    isLocked = !isLocked;
    myRobot.goToHome(isLocked, curPos, lcd);
    myRobot.goToFinal(isLocked, curPos, lcd);
    isLocked = !isLocked;
    myRobot.goToHome(isLocked, curPos, lcd);
    updateWidgets(curPos);
  }
}

BLYNK_WRITE(V2)
{
  myRobot.setTeachMode(param.asInt());
  Serial.print("teach mode = ");
  Serial.print(myRobot.getTeachMode());
  if (myRobot.getTeachMode())
  {
    timer.deleteTimer(timer3ID);  // startClockDisplay
    timer.deleteTimer(timer2ID);  // clockDisplay
    lcd.clear();
    lcd.setCursor(5, 1);
    lcd.print("Teach Mode");
    lcd.setCursor(6, 2);
    lcd.print("Enabled");
    updateWidgets(curPos);
    led1.on();
  }
  else
  {
    stopClockDisplay();
    led1.off();
    zeroWidgets();
    lcd.clear();
    lcd.setCursor(5, 1);
    lcd.print("Teach Mode");
    lcd.setCursor(6, 2);
    lcd.print("Disabled");
  }
  j = 0;
  Blynk.virtualWrite(V14, j);

}

BLYNK_WRITE(V4)
{
  if (myRobot.getTeachMode())
  {
    j1 = param.asInt();
    curPos.setServoPos(s[0], myRobot.moveS(j1, s[0]));
    Blynk.virtualWrite(V8, j1);
  }
}

BLYNK_WRITE(V5)
{
  if (myRobot.getTeachMode())
  {
    j2 = param.asInt();
    curPos.setServoPos(s[1], myRobot.moveS(j2, s[1]));
    Blynk.virtualWrite(V9, j2);
  }
}

BLYNK_WRITE(V6)
{
  if (myRobot.getTeachMode())
  {
    j3 = param.asInt();
    curPos.setServoPos(s[2], myRobot.moveS(j3, s[2]));
    Blynk.virtualWrite(V10, j3);
  }
}

BLYNK_WRITE(V7)
{
  if (myRobot.getTeachMode())
  {
    j4 = param.asInt();
    curPos.setServoPos(s[3], myRobot.moveS(j4, s[3]));
    Blynk.virtualWrite(V11, j4);
  }
}

BLYNK_WRITE(V12)
{
  if (myRobot.getTeachMode() && param.asInt())
  {
    (j >= 4) ? j = 0 : j++;
    Blynk.virtualWrite(V14, j);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("skipping to");
    lcd.setCursor(0, 1);
    lcd.print("j=");
    lcd.print(j);
    led2.off();
  }
}

BLYNK_WRITE(V13)
{
  if (myRobot.getTeachMode())
  {
    curPos.setLocation(sizeof(Position) * j);
    curPos.setSetP(true);
    myRobot.setP(curPos, j);
    EEPROM_readAnything(myRobot.getP(j).getLocation(), testPos);

    if ( testPos != myRobot.getP(j) )
    {
      EEPROM_writeAnything(myRobot.getP(j).getLocation(), myRobot.getP(j));
    }

    // make coresponding positions for unlocked state
    int lockMemL = sizeof(Position) * (j + 5);
    int newJ4Pos = myRobot.getP(j).getJ4Pos();
    (newJ4Pos < 90) ? newJ4Pos = 180 : newJ4Pos = myRobot.getP(0).getJ4Pos();
    Position lockPos(curPos.getJ1Pos(), curPos.getJ2Pos(), curPos.getJ3Pos(), newJ4Pos, lockMemL);
    lockPos.setSetP(true);
    myRobot.setP(lockPos, j + 5);
    EEPROM_readAnything(myRobot.getP(j + 5).getLocation(), testPos);
    if ( testPos != myRobot.getP(j + 5) )
    {
      EEPROM_writeAnything(lockMemL, myRobot.getP(j + 5));
    }
    led2.on();
    myRobot.printP(lcd, "PS=", j, myRobot.getP(j));
    led3.off();
  }
}

BLYNK_WRITE(V17)
{
  if (!bridgeInt && !relocking)
  {
    stopClockDisplay();
    myRobot.goToFinal(isLocked, curPos, lcd);
    isLocked = !isLocked;
    myRobot.goToHome(isLocked, curPos, lcd);
    timerID = timer.setTimeout(60000, relockDoor);
    relocking = true;
  }
}

BLYNK_WRITE(V19)
{
  if ( param.asInt())
  {
    timeZone = -4;
    setSyncProvider(getNtpTime);
    lcd.clear();
    lcd.setCursor(2, 1);
    lcd.print("Daylight Savings");
    lcd.setCursor(4, 2);
    lcd.print("Time Enabled");
  }
  else
  {
    timeZone = -5;
    setSyncProvider(getNtpTime);
    lcd.clear();
    lcd.setCursor(2, 1);
    lcd.print("Daylight Savings");
    lcd.setCursor(3, 2);
    lcd.print("Time Disabled");
  }

}

BLYNK_WRITE(V24)
{
  armed = param.asInt();
  stopClockDisplay();
  if (armed)
  {
    lcd.clear();
    lcd.setCursor(4, 1);
    lcd.print("RFID Enabled");
  }
  else
  {
    lcd.clear();
    lcd.setCursor(3, 1);
    lcd.print("RFID Disabled");
  }
}

BLYNK_WRITE(V25)
{
  bridgeInt = param.asInt();
  if (bridgeInt && !relocking)
  {
    myRobot.goToFinal(isLocked, curPos, lcd);
    isLocked = !isLocked;
    Blynk.virtualWrite(V17, 1);
    myRobot.goToHome(isLocked, curPos, lcd);
    bridgeInt = 0;
    relocking = true;
    timerID = timer.setTimeout(60000, relockDoor);
  }
  else bridgeInt = 0;
}

BLYNK_WRITE(V26)
{
  if (myRobot.getTeachMode())
  {
    int jBefore = myRobot.getClosestIndex(curPos);
    myRobot.movPos(curPos, myRobot.getP(jBefore));
    if (jBefore < j)
    {
      for (int i = jBefore; i < (j + 1); i++) myRobot.movPos(curPos, myRobot.getP(i));
    }
    else
    {
      for (int i = jBefore; i > (j - 1); i--) myRobot.movPos(curPos, myRobot.getP(i));
    }
    updateWidgets(curPos);
  }
}

BLYNK_WRITE(V27)
{
  if (myRobot.getTeachMode() && param.asInt())
  {
    (j <= 0) ? j = 4 : j--;
    Blynk.virtualWrite(V14, j);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("skipping to");
    lcd.setCursor(0, 1);
    lcd.print("j=");
    lcd.print(j);
    led2.off();
  }
}

BLYNK_WRITE(V30)
{
  if ((myRobot.getTeachMode() && param.asInt()))
  {
    // button pressed
    timer5ID = timer.setTimeout(5000L, deleteAllPos);
  }
  else
  {
    timer.deleteTimer(timer5ID);
  }
}

Door_Unlocker-RFID

#define BLYNK_PRINT Serial
#define BLYNK_DEBUG
//#define BLYNK_MAX_READBYTES 2048
//#define BLYNK_MAX_SENDBYTES  512

#include <SPI.h>
#include <WiFiNINA.h>
#include <BlynkSimpleWiFiNINA.h>
#include <SparkFun_UHF_RFID_Reader.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal_I2C.h>

#include "RF_Admin.h"
#include "User.h"

LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display
RFID nano;                          // create uhf rfid object
SoftwareSerial softSerial(2, 3);    //RX, TX for RFID Shield
RF_Admin database; // holds users

int bridgeInt = 0;
int choice = 0;
int enterPressed = 0;
int exitMaster = 0;
int scanningTags = 0;
int prevVal = 0;
bool armed = false;
bool masterEnabled = false;

char newStr[MAX_NAME_LEN];

//byte ledPin = LED_BUILTIN;
char ssid[] = "********";
char pass[] = "********";

//IPAddress server(192,168,1,50);       // the fix IP address of the server
//WiFiClient client;

// Bridge widget on virtual pin 24
WidgetBridge bridge1(V24);
WidgetBridge bridge2(V25);

WidgetLED masterLED(V21);
WidgetLED cardReadLED(V29);

WidgetLCD masterModeLCD(V28);

char robotAuth[] = "********************************";
char auth[] = "********************************";

// Timer for blynking
BlynkTimer timer;
int timerID;


void checkAndConnect();
void scanForTags();
void blynkUsrPrint(User);
void masterMode(int&);
//void selectAction(int);
void getBlynkName(User&);

void setup()
{
  Serial.begin(9600);               // only for debug
  lcd.init();
  lcd.backlight();
  nano.enableDebugging(Serial);
  database.init(lcd, nano, softSerial, 2000);
  lcd.clear();
  lcd.setCursor(2, 0);
  lcd.print("Finished Database");
  lcd.setCursor(3, 1);
  lcd.print("Initialization");
  delay(800);
  Serial.println("finished database.init");
  Serial.println(database.getOwner().getName());
  //  timerID = timer.setInterval(2001, scanForTags);
  Blynk.begin(auth, ssid, pass, IPAddress(**, ***, ***, **), 8080); // public IP connects to local server through port forwarding
  //  Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 251));
//  timer.setInterval(1001, checkAndConnect);
  masterModeLCD.clear();
  masterLED.off();
}

void loop ()
{
  Blynk.run();
  timer.run();
  checkAndConnect();
}

void checkAndConnect()
{
  if (!Blynk.connected())
  {
    WiFi.end();
    Blynk.begin(auth, ssid, pass, IPAddress(73, 121, 190, 66), 8080);
  }
}

void scanForTags()
{
  char owner2[MAX_NAME_LEN] = "Ricki";

//  cardReadLED.off();
  User tmpUsr = database.readCard(lcd, nano);

  if ( tmpUsr != User() )
  {
    cardReadLED.on();
    database.printUsr(lcd, tmpUsr);
    blynkUsrPrint(tmpUsr);
  }

  if ( tmpUsr == database.getMaster() )
  {
    cardReadLED.on();
    masterEnabled = true;
    while (!exitMaster) masterMode(choice);
    masterEnabled = false;
    exitMaster = 0;
    enterPressed = 0;
    masterLED.off();
    cardReadLED.off();
  }

  if ( (tmpUsr == database.getOwner() ) || ( strcmp(tmpUsr.getName(), owner2) == 0) )
  {
    cardReadLED.on();
    bridge2.virtualWrite(V25, 1);
    String notification = tmpUsr.getName();
    notification += " is unlocking the door";
    Blynk.notify(notification);
  }
  int i = database.findGuest(lcd, tmpUsr);
  if (i != -1 && ((strcmp(tmpUsr.getName(), owner2) != 0) || !armed ))
  {
    String notification = tmpUsr.getName();
    notification += " is at the front door";
    Blynk.notify(notification);
  }
}

void blynkUsrPrint(User usr)
{
  String tagID;
  for ( byte x = 0; x < 3; x++)
  {
    String tmpStr = String(usr.getUID()[x], HEX);
    if (usr.getUID()[x] < 0x10) tagID.concat("0");
    tagID.concat(tmpStr);
    tagID.concat(" ");
  }

  masterModeLCD.clear();
  masterModeLCD.print(0, 0, usr.getName());
  masterModeLCD.print(0, 1, tagID);
  delay(1000);
}

void masterMode(int& choice)
{
  User tmpUsr, sResults, notFound;
  //  lcd.clear();
  //  lcd.setCursor(0,0);
  masterLED.on();
  cardReadLED.off();

  masterModeLCD.clear();
  masterModeLCD.print(0, 0, "Select an action");
  masterModeLCD.print(0, 1, "and press enter");
  Blynk.setProperty(V20, "labels", "Select Action and Press Confirm", "New Master", "New Owner", "New Guest", "Delete Owner", "Delete Guest");
  while (!enterPressed && !exitMaster) Blynk.run();
  Serial.print("Choice = ");
  Serial.print(choice);
  Serial.print("     D_GUEST = ");
  Serial.print(D_GUEST);
  Serial.print("      choice == D_GUEST = ");
  Serial.print(choice == D_GUEST);
  if ( exitMaster )
  {
    masterModeLCD.clear();
    masterLED.off();
    enterPressed = 0;
  }
  //  Serial.print("Choice = ");
  //  Serial.println(choice);
  if (choice == N_MAS)
  {
    masterModeLCD.clear();
    masterModeLCD.print(0, 0, "Scan card to add");
    masterModeLCD.print(0, 1, "   new master");
    //      database.printCardPrompt(lcd, ADD, "Master");
    while (tmpUsr == notFound && !exitMaster)
    {
      Blynk.run();
      tmpUsr = database.readCard(lcd, nano);
    }
    if ( exitMaster )
    {
      masterModeLCD.clear();
      masterLED.off();
      enterPressed = 0;
      return;
    }
    cardReadLED.on();
    sResults = database.lookupID(lcd, tmpUsr.getUID());
    if ( sResults != database.getMaster() )
    {
      tmpUsr.setName("Master");
      tmpUsr.setLocation(MEM_START_L);
      tmpUsr.setIsSet(true);
      database.setMaster(tmpUsr);
      database.writeEEPROM(lcd, tmpUsr);
      exitMaster = 0;
      enterPressed = 0;
    }
    return;
  }
  else if (choice == N_OWN)
  {
    masterModeLCD.clear();
    masterModeLCD.print(0, 0, "Scan card to add");
    masterModeLCD.print(0, 1, "   new owner");
    //      database.printCardPrompt(lcd, ADD, "Owner");
    while (tmpUsr == notFound && !exitMaster)
    {
      Blynk.run();
      tmpUsr = database.readCard(lcd, nano);
    }
    if ( exitMaster )
    {
      masterModeLCD.clear();
      masterLED.off();
      enterPressed = 0;
      return;
    }
    cardReadLED.on();
    sResults = database.lookupID(lcd, tmpUsr.getUID());
    if ( sResults != database.getMaster() )
    {
      getBlynkName(tmpUsr);
      Serial.println(tmpUsr.getName());
      tmpUsr.setLocation(sizeof(User));
      tmpUsr.setIsSet(true);
      database.setOwner(tmpUsr);
      Serial.println(database.getOwner().getName());
      Serial.println(tmpUsr.getName());
      database.writeEEPROM(lcd, tmpUsr);
      exitMaster = 0;
      enterPressed = 0;
    }
    enterPressed = 0;
  }
  else if (choice == N_GUEST)
  {
    if (database.getCount() == MAX_GUESTS)
    {
      masterModeLCD.clear();
      masterModeLCD.print(0, 0, "  Max number of ");
      masterModeLCD.print(0, 1, " guests reached ");
      delay(1000);
      enterPressed = 0;
      return;
    }
    masterModeLCD.clear();
    masterModeLCD.print(0, 0, "Scan card to add");
    masterModeLCD.print(0, 1, "   new guest");
    //      database.printCardPrompt(lcd, ADD, "Guest");
    while (tmpUsr == notFound && !exitMaster)
    {
      Blynk.run();
      tmpUsr = database.readCard(lcd, nano);
    }
    if ( exitMaster )
    {
      masterModeLCD.clear();
      masterLED.off();
      enterPressed = 0;
      return;
    }
    int i = database.findGuest(lcd, tmpUsr);
    if ( i == -1 )
    {
      getBlynkName(tmpUsr);
      tmpUsr.setLocation(MEM_START_L + (2 * (sizeof(User))) + (database.getCount()*sizeof(User)));
      tmpUsr.setIsSet(true);
      database.setGuest(database.getCount(), tmpUsr);
      if (database.getCount() != MAX_GUESTS) database.incCount();
      database.writeEEPROM(lcd, tmpUsr);
      enterPressed = 0;
    }
  }
  else if (choice == D_OWN)
  {
    EEPROM_readAnything(MEM_START_L + sizeof(User), tmpUsr);
    if ((tmpUsr.getLocation() == -1) || !(tmpUsr.getIsSet()))
    {
      masterModeLCD.clear();
      masterModeLCD.print(0, 0, "  There is no   ");
      masterModeLCD.print(0, 1, "  saved owner ");
      delay(1000);
      enterPressed = 0;
      return;
    }
    byte tmpUid[UID_LENGTH] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                               0xFF, 0xFF, 0xFF, 0xFF, 0xFF
                              };
    char blankName[MAX_NAME_LEN];
    User delGuest(blankName, tmpUid, -1);
    delGuest.setIsSet(false);
    EEPROM_writeAnything((sizeof(User)) + MEM_START_L, delGuest);
  }
  else if (choice == D_GUEST)
  {
    String labels[MAX_GUESTS];

    EEPROM_readAnything(MEM_START_L + (2 * sizeof(User)), tmpUsr);
    Serial.println("read user from first mem spot");
    Serial.println(tmpUsr.getName());
    if ((tmpUsr.getLocation() == -1) || !(tmpUsr.getIsSet()))
    {
      Serial.println("no user in first guest spot");
      masterModeLCD.clear();
      masterModeLCD.print(0, 0, "  There is no   ");
      masterModeLCD.print(0, 1, "  saved guest ");
      delay(1000);
      enterPressed = 0;
      return;
    }
    Serial.println("user in first guest spot");
    masterModeLCD.clear();
    masterModeLCD.print(0, 0, "  Please choose ");
    masterModeLCD.print(0, 1, " guest to delete");
    enterPressed = 0;
    Serial.println(database.getCount());
    for (int i = 0; i < database.getCount(); i++)
    {
      labels[i] = database.getGuest(i).getName();
      Serial.println(labels[i]);
    }
    Blynk.setProperty(V20, "labels", labels[0], labels[1], labels[2], labels[3], labels[4], labels[5], labels[6], labels[7]);
    while (!enterPressed && !exitMaster)
    {
      Blynk.run();
    }
    if ( exitMaster )
    {
      masterModeLCD.clear();
      masterLED.off();
      enterPressed = 0;
      return;
    }
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("choice = ");
    lcd.print(choice);
    delay(1000);
    database.deleteGuest(lcd, choice);
    enterPressed = 0;
    Blynk.setProperty(V20, "labels", "Select Action and Press Confirm", "New Master", "New Owner", "New Guest", "Delete Owner", "Delete Guest");
  }
  enterPressed = 0;
}

void getBlynkName(User& usr)
{
  char oldStr[MAX_NAME_LEN];
  strcpy(oldStr, newStr);
  String fn, ln;
  int spaceIndex;
  int count = 0;
  while ( strcmp(newStr, oldStr) == 0 )
  {
    Blynk.run();
    if ( count == 0 )
    {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Please enter a");
      lcd.setCursor(0, 1);
      lcd.print("name in blynk");
      masterModeLCD.clear();
      masterModeLCD.print(0, 0, " Please enter");
      masterModeLCD.print(0, 1, "guest name below");
    }
    if ( count == 0 ) count++;
  }
  usr.setName(newStr);
}

BLYNK_WRITE(V0)
{
  if ( masterMode )
  {
    String readStr = param.asString();
    strcpy(newStr, readStr.c_str());
  }
}

BLYNK_WRITE(V18)
{
  armed = param.asInt();
  if (armed && !masterEnabled)
  {
    masterModeLCD.clear();
    masterModeLCD.print(0, 0, "  Scanning for");
    masterModeLCD.print(0, 1, "    tags now");
    armed = true;
    //    scanTimer.enable(timerID); // Turn on
  }
  else
  {
    if (!masterEnabled)
    {
      masterModeLCD.clear();
      masterModeLCD.print(0, 0, " Stopping scan");
      masterModeLCD.print(0, 1, "      now");
    }
    //  if (prevVal != param.asInt()) scanningTags = param.asInt(); prevVal = scanningTags;
    if (!scanningTags && !masterEnabled) masterModeLCD.clear();
    Blynk.virtualWrite(V32, 1);
  }
}

//BLYNK_WRITE(V19)
//{
//  armed = param.asInt();
//  if (armed || scanningTags)
//  {
//    armed = true;
//    Serial.println("armed = true");
//    lcd.clear();
//    lcd.setCursor(7, 1);
//    lcd.print("Device");
//    lcd.setCursor(8, 2);
//    lcd.print("Armed");
//    bridge1.virtualWrite(V24, 1);
//    //    scanTimer.enable(timerID); // Turn on
//  }
//  else
//  {
//    Serial.println("armed = false");
//    armed = false;
//    bridge1.virtualWrite(V24, 0);
//    //    scanTimer.disable(timerID); // Turn off
//  }
//}

BLYNK_WRITE(V20)
{
  choice = param.asInt();
  Serial.print("choice = ");
  Serial.println(choice);
}

BLYNK_WRITE(V22)
{
  if (param.asInt()) enterPressed = param.asInt();
}

BLYNK_WRITE(V23)
{
  if (param.asInt()) exitMaster = param.asInt();
}

BLYNK_WRITE(V32)
{
  armed = param.asInt();
  if (armed)
  {
    Serial.println("armed = true");
    bridge1.virtualWrite(V24, 1);
    timer.deleteTimer(timerID);
    timerID = timer.setInterval(4001L, scanForTags);
  }
  else
  {
    Serial.println("armed = false");
    armed = false;
    bridge1.virtualWrite(V24, 0);
    timer.deleteTimer(timerID); // Turn off
  }
  if (armed && !masterEnabled)
  {
    masterModeLCD.clear();
    masterModeLCD.print(0, 0, "  Scanning for");
    masterModeLCD.print(0, 1, "    tags now");
    armed = true;
    //    scanTimer.enable(timerID); // Turn on
  }
  else
  {
    if (!masterEnabled)
    {
      masterModeLCD.clear();
      masterModeLCD.print(0, 0, " Stopping scan");
      masterModeLCD.print(0, 1, "      now");
    }
    //  if (prevVal != param.asInt()) scanningTags = param.asInt(); prevVal = scanningTags;
    if (!armed && !masterEnabled) masterModeLCD.clear();
  }
}

BLYNK_CONNECTED() {
  bridge1.setAuthToken(robotAuth); // Place the AuthToken of the second hardware here
  bridge2.setAuthToken(robotAuth);
}

It always rings alarm bells for me when people change from the standard 10 second heartbeat to something longer. 8 hours seems crazy to me!

RFID readers are notoriously difficult to use with Blynk, as the code generally wants to constantly monitor the interface (serial in this case) waiting for a tag to be presented to the reader, and this tends to cause problems with Blynk.run commands being executed in a timely manner. In this case, it’s difficult to know what the RFID library is doing in the background, so impossible to know if this is an issue.

I think it would make sense to start by testing with a very simple (non-RFID) Blynk sketch that uses regular heartbeat settings to ensure that a device can stay connected for extended periods. This will rule-out hardware and networking issues.

Then, maybe test one device at a time, without the Bridge functionality, and a simplified code set to try to narrow-down the issues.

Pete.

Yeah I wasn’t crazy about doing it, just trying to see if freeze is happening during heartbeat.

I use a function from the sparkfun library called readTID that tries to read for a card for 2 seconds then times out. That function I put on a 4 sec interval timer that is connected to a switch style button on my blynk app to turn the scanning timer off and on (V32 RFID sketch).

I will give this a try with the serial monitor running and let you know

@PeteKnight I have loaded the MKR 1010 example sketch to both boards with my server and wifi info added to it. I also started the serial monitor and deleted the ‘Blynk.log’ file from my server and restarted the server to clean the previous log information off. My log level is ‘trace’. When I get off work, I’ll see if blynk froze and post the serial monitor output and Blynk.log file contents. The example code I used is posted below.

/*************************************************************
  Download latest Blynk library here:
    https://github.com/blynkkk/blynk-library/releases/latest

  Blynk is a platform with iOS and Android apps to control
  Arduino, Raspberry Pi and the likes over the Internet.
  You can easily build graphic interfaces for all your
  projects by simply dragging and dropping widgets.

    Downloads, docs, tutorials: http://www.blynk.cc
    Sketch generator:           http://examples.blynk.cc
    Blynk community:            http://community.blynk.cc
    Follow us:                  http://www.fb.com/blynkapp
                                http://twitter.com/blynk_app

  Blynk library is licensed under MIT license
  This example code is in public domain.

 *************************************************************
  This example shows how to use Arduino MKR 1010
  to connect your project to Blynk.

  Note: This requires WiFiNINA library
    from http://librarymanager/all#WiFiNINA

  Feel free to apply it to any other example. It's simple!
 *************************************************************/

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#define BLYNK_DEBUG

#include <SPI.h>
#include <WiFiNINA.h>
#include <BlynkSimpleWiFiNINA.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "********************************";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "********";
char pass[] = "********";

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass, IPAddress(**, ***, ***, **), 8080);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
}

void loop()
{
  Blynk.run();
}

@PeteKnight It has already fozen before I was about to leave for work.

serial monitor output

12:43:43.522 -> [759] WiFi firmware: 1.3.0
12:43:43.522 -> [760] Connecting to *******
12:43:57.373 -> [14674] Connecting to *******
12:43:57.580 -> [14887] IP: 192.168.1.197
12:43:57.628 -> [14887] 
12:43:57.628 ->     ___  __          __
12:43:57.628 ->    / _ )/ /_ _____  / /__
12:43:57.674 ->   / _  / / // / _ \/  '_/
12:43:57.737 ->  /____/_/\_, /_//_/_/\_\
12:43:57.737 ->         /___/ v0.6.1 on Arduino UNO WiFi Rev2
12:43:57.785 -> 
12:43:57.785 -> [15019] Connecting to **.***.***.**
12:43:57.832 -> [15071] <[1D|00|01|00] **************************************
12:43:57.878 -> [15132] >[00|00|01|00|C8]
12:43:57.913 -> [15144] Ready (ping: 26ms).
12:43:57.913 -> [15175] Free RAM: 5584
12:43:57.948 -> [15210] <[11|00|02|00]bver[00]0.6.1[00]h-beat[00]10[00]buff-in[00]256[00]dev[00]Arduino UNO WiFi Rev2[00]con[00]WiFiNINA[00]build[00]Dec  7 2020 12:41:32[00]
12:43:58.136 -> [15374] >[00|00|02|00|C8]
12:44:08.022 -> [25370] <[06|00|03|00|00]
12:44:08.069 -> [25379] >[00|00|03|00|C8]
12:44:18.001 -> [35375] <[06|00|04|00|00]
12:44:18.001 -> [35384] >[00|00|04|00|C8]
12:44:27.949 -> [45380] <[06|00|05|00|00]
12:44:27.996 -> [45389] >[00|00|05|00|C8]
12:44:37.927 -> [55385] <[06|00|06|00|00]
12:44:37.975 -> [55393] >[00|00|06|00|C8]
12:44:47.907 -> [65390] <[06|00|07|00|00]
12:44:47.907 -> [65402] >[00|00|07|00|C8]
12:44:57.871 -> [75395] <[06|00|08|00|00]
12:44:57.871 -> [75403] >[00|00|08|00|C8]
12:45:07.825 -> [85401] <[06|00|09|00|00]
12:45:07.861 -> [85409] >[00|00|09|00|C8]
12:45:17.779 -> [95406] <[06|00|0A|00|00]
12:45:17.813 -> [95415] >[00|00|0A|00|C8]
12:45:27.773 -> [105411] <[06|00|0B|00|00]
12:45:27.773 -> [105419] >[00|00|0B|00|C8]
12:45:37.725 -> [115416] <[06|00|0C|00|00]
12:45:37.772 -> [115428] >[00|00|0C|00|C8]
12:45:47.673 -> [125421] <[06|00|0D|00|00]
12:45:47.720 -> [125429] >[00|00|0D|00|C8]
12:45:57.664 -> [135426] <[06|00|0E|00|00]
12:45:57.664 -> [135435] >[00|00|0E|00|C8]
12:46:07.618 -> [145431] <[06|00|0F|00|00]
12:46:07.665 -> [145439] >[00|00|0F|00|C8]
12:46:17.582 -> [155436] <[06|00|10|00|00]
12:46:17.615 -> [155445] >[00|00|10|00|C8]
12:46:27.545 -> [165442] <[06|00|11|00|00]
12:46:27.580 -> [165452] >[00|00|11|00|C8]
12:46:37.490 -> [175447] <[06|00|12|00|00]
12:46:37.524 -> [175475] >[00|00|12|00|C8]
12:46:47.457 -> [185451] <[06|00|13|00|00]
12:46:47.491 -> [185463] >[00|00|13|00|C8]
12:46:57.414 -> [195458] <[06|00|14|00|00]
12:46:57.448 -> [195467] >[00|00|14|00|C8]
12:47:07.409 -> [205463] <[06|00|15|00|00]
12:47:07.409 -> [205473] >[00|00|15|00|C8]
12:47:17.352 -> [215468] <[06|00|16|00|00]
12:47:17.385 -> [215476] >[00|00|16|00|C8]
12:47:27.319 -> [225474] <[06|00|17|00|00]
12:47:27.364 -> [225504] >[00|00|17|00|C8]
12:47:37.278 -> [235480] <[06|00|18|00|00]
12:47:37.311 -> [235488] >[00|00|18|00|C8]
12:47:47.267 -> [245485] <[06|00|19|00|00]
12:47:47.267 -> [245493] >[00|00|19|00|C8]
12:47:57.211 -> [255490] <[06|00|1A|00|00]
12:47:57.246 -> [255498] >[00|00|1A|00|C8]
12:48:07.195 -> [265495] <[06|00|1B|00|00]
12:48:07.195 -> [265503] >[00|00|1B|00|C8]
12:48:17.126 -> [275501] <[06|00|1C|00|00]
12:48:17.172 -> [275511] >[00|00|1C|00|C8]
12:48:27.098 -> [285505] <[06|00|1D|00|00]
12:48:27.133 -> [285517] >[00|00|1D|00|C8]
12:48:37.067 -> [295510] <[06|00|1E|00|00]
12:48:37.105 -> [295519] >[00|00|1E|00|C8]
12:48:47.055 -> [305515] <[06|00|1F|00|00]
12:48:47.055 -> [305523] >[00|00|1F|00|C8]
12:48:56.993 -> [315521] <[06|00] [00|00]
12:48:57.028 -> [315530] >[00|00] [00|C8]
12:49:06.960 -> [325526] <[06|00]![00|00]
12:49:06.995 -> [325534] >[00|00]![00|C8]
12:49:16.902 -> [335532] <[06|00]"[00|00]
12:49:16.936 -> [335541] >[00|00]"[00|C8]
12:49:26.871 -> [345536] <[06|00]#[00|00]
12:49:26.904 -> [345546] >[00|00]#[00|C8]
12:49:36.827 -> [355542] <[06|00]$[00|00]
12:49:36.874 -> [355554] >[00|00]$[00|C8]
12:49:46.798 -> [365546] <[06|00]%[00|00]
12:49:46.845 -> [365558] >[00|00]%[00|C8]
12:49:56.780 -> [375552] <[06|00]&[00|00]
12:49:56.815 -> [375562] >[00|00]&[00|C8]
12:50:06.736 -> [385557] <[06|00]'[00|00]
12:50:06.770 -> [385565] >[00|00]'[00|C8]
12:50:16.717 -> [395563] <[06|00]([00|00]
12:50:16.717 -> [395571] >[00|00]([00|C8]
12:50:26.654 -> [405567] <[06|00])[00|00]
12:50:26.688 -> [405575] >[00|00])[00|C8]
12:50:36.615 -> [415572] <[06|00]*[00|00]
12:50:36.662 -> [415582] >[00|00]*[00|C8]
12:50:46.601 -> [425579] <[06|00]+[00|00]
12:50:46.601 -> [425588] >[00|00]+[00|C8]
12:50:56.540 -> [435585] <[06|00],[00|00]
12:50:56.575 -> [435596] >[00|00],[00|C8]
12:51:06.510 -> [445591] <[06|00]-[00|00]
12:51:06.545 -> [445602] >[00|00]-[00|C8]
12:51:16.455 -> [455596] <[06|00].[00|00]
12:51:16.488 -> [455605] >[00|00].[00|C8]
12:51:26.455 -> [465601] <[06|00]/[00|00]
12:51:26.455 -> [465609] >[00|00]/[00|C8]
12:51:36.379 -> [475608] <[06|00]0[00|00]
12:51:36.412 -> [475616] >[00|00]0[00|C8]
12:51:46.345 -> [485613] <[06|00]1[00|00]
12:51:46.381 -> [485626] >[00|00]1[00|C8]
12:51:56.298 -> [495618] <[06|00]2[00|00]
12:51:56.333 -> [495636] >[00|00]2[00|C8]
12:52:06.273 -> [505622] <[06|00]3[00|00]
12:52:06.320 -> [505632] >[00|00]3[00|C8]
12:52:16.233 -> [515627] <[06|00]4[00|00]
12:52:16.267 -> [515636] >[00|00]4[00|C8]
12:52:26.181 -> [525632] <[06|00]5[00|00]
12:52:26.229 -> [525644] >[00|00]5[00|C8]
12:52:36.146 -> [535638] <[06|00]6[00|00]
12:52:36.193 -> [535646] >[00|00]6[00|C8]
12:52:46.126 -> [545644] <[06|00]7[00|00]
12:52:46.126 -> [545653] >[00|00]7[00|C8]
12:52:56.075 -> [555651] <[06|00]8[00|00]
12:52:56.122 -> [555659] >[00|00]8[00|C8]
12:53:06.031 -> [565657] <[06|00]9[00|00]
12:53:06.069 -> [565665] >[00|00]9[00|C8]
12:53:15.990 -> [575661] <[06|00]:[00|00]
12:53:16.023 -> [575673] >[00|00]:[00|C8]
12:53:25.964 -> [585666] <[06|00];[00|00]
12:53:25.964 -> [585683] >[00|00];[00|C8]
12:53:35.918 -> [595672] <[06|00]<[00|00]
12:53:35.918 -> [595694] >[00|00]<[00|C8]
12:53:45.861 -> [605677] <[06|00]=[00|00]
12:53:45.908 -> [605688] >[00|00]=[00|C8]
12:53:55.840 -> [615682] <[06|00]>[00|00]
12:53:55.840 -> [615702] >[00|00]>[00|C8]
12:54:05.770 -> [625687] <[06|00]?[00|00]
12:54:05.804 -> [625698] >[00|00]?[00|C8]
12:54:15.762 -> [635692] <[06|00]@[00|00]
12:54:15.762 -> [635701] >[00|00]@[00|C8]
12:54:25.709 -> [645697] <[06|00]A[00|00]
12:54:25.709 -> [645710] >[00|00]A[00|C8]
12:54:35.692 -> [655703] <[06|00]B[00|00]
12:54:35.692 -> [655712] >[00|00]B[00|C8]
12:54:45.625 -> [665707] <[06|00]C[00|00]
12:54:45.625 -> [665716] >[00|00]C[00|C8]
12:54:55.580 -> [675713] <[06|00]D[00|00]
12:54:55.580 -> [675722] >[00|00]D[00|C8]
12:55:05.532 -> [685718] <[06|00]E[00|00]
12:55:05.578 -> [685757] >[00|00]E[00|C8]
12:55:15.500 -> [695723] <[06|00]F[00|00]
12:55:15.500 -> [695732] >[00|00]F[00|C8]
12:55:25.428 -> [705728] <[06|00]G[00|00]
12:55:25.465 -> [705741] >[00|00]G[00|C8]
12:55:35.413 -> [715735] <[06|00]H[00|00]
12:55:35.460 -> [715743] >[00|00]H[00|C8]
12:55:45.373 -> [725738] <[06|00]I[00|00]
12:55:45.373 -> [725751] >[00|00]I[00|C8]
12:55:55.310 -> [735742] <[06|00]J[00|00]
12:55:55.344 -> [735752] >[00|00]J[00|C8]
12:56:05.260 -> [745747] <[06|00]K[00|00]
12:56:05.294 -> [745756] >[00|00]K[00|C8]
12:56:15.246 -> [755751] <[06|00]L[00|00]
12:56:15.246 -> [755760] >[00|00]L[00|C8]
12:56:25.182 -> [765757] <[06|00]M[00|00]
12:56:25.215 -> [765765] >[00|00]M[00|C8]
12:56:35.144 -> [775762] <[06|00]N[00|00]
12:56:35.191 -> [775771] >[00|00]N[00|C8]
12:56:45.124 -> [785767] <[06|00]O[00|00]
12:56:45.124 -> [785775] >[00|00]O[00|C8]
12:56:55.058 -> [795771] <[06|00]P[00|00]
12:56:55.152 -> [795844] >[00|00]P[00|C8]
12:57:05.002 -> [805776] <[06|00]Q[00|00]
12:57:05.037 -> [805785] >[00|00]Q[00|C8]
12:57:14.965 -> [815781] <[06|00]R[00|00]
12:57:15.012 -> [815792] >[00|00]R[00|C8]
12:57:24.916 -> [825790] <[06|00]S[00|00]
12:57:24.963 -> [825802] >[00|00]S[00|C8]
12:57:34.864 -> [835794] <[06|00]T[00|00]
12:57:34.911 -> [835804] >[00|00]T[00|C8]
12:57:44.843 -> [845800] <[06|00]U[00|00]
12:57:44.890 -> [845809] >[00|00]U[00|C8]
12:57:54.811 -> [855804] <[06|00]V[00|00]
12:57:54.811 -> [855817] >[00|00]V[00|C8]
12:58:04.770 -> [865809] <[06|00]W[00|00]
12:58:04.770 -> [865817] >[00|00]W[00|C8]
12:58:14.716 -> [875814] <[06|00]X[00|00]
12:58:14.764 -> [875824] >[00|00]X[00|C8]
12:58:24.665 -> [885818] <[06|00]Y[00|00]
12:58:24.713 -> [885831] >[00|00]Y[00|C8]
12:58:34.660 -> [895824] <[06|00]Z[00|00]
12:58:34.660 -> [895833] >[00|00]Z[00|C8]
12:58:44.562 -> [905829] <[06|00][[00|00]
12:58:44.598 -> [905837] >[00|00][[00|C8]
12:58:54.520 -> [915834] <[06|00]\[00|00]
12:58:54.614 -> [915917] >[00|00]\[00|C8]
12:59:04.482 -> [925838] <[06|00]][00|00]
12:59:04.529 -> [925848] >[00|00]][00|C8]
12:59:14.468 -> [935843] <[06|00]^[00|00]
12:59:14.468 -> [935854] >[00|00]^[00|C8]
12:59:24.416 -> [945848] <[06|00]_[00|00]
12:59:24.416 -> [945857] >[00|00]_[00|C8]
12:59:34.364 -> [955853] <[06|00]`[00|00]
12:59:34.411 -> [955869] >[00|00]`[00|C8]
12:59:44.308 -> [965858] <[06|00]a[00|00]
12:59:44.355 -> [965869] >[00|00]a[00|C8]
12:59:54.306 -> [975862] <[06|00]b[00|00]
12:59:54.306 -> [975870] >[00|00]b[00|C8]
13:00:04.233 -> [985867] <[06|00]c[00|00]
13:00:04.281 -> [985883] >[00|00]c[00|C8]
13:00:14.194 -> [995871] <[06|00]d[00|00]
13:00:14.235 -> [995879] >[00|00]d[00|C8]
13:00:24.149 -> [1005877] <[06|00]e[00|00]
13:00:24.196 -> [1005885] >[00|00]e[00|C8]
13:00:34.111 -> [1015882] <[06|00]f[00|00]
13:00:34.111 -> [1015894] >[00|00]f[00|C8]
13:00:44.044 -> [1025888] <[06|00]g[00|00]
13:00:44.091 -> [1025898] >[00|00]g[00|C8]
13:00:54.027 -> [1035891] <[06|00]h[00|00]
13:00:54.027 -> [1035900] >[00|00]h[00|C8]
13:01:03.972 -> [1045896] <[06|00]i[00|00]
13:01:03.972 -> [1045905] >[00|00]i[00|C8]
13:01:13.920 -> [1055901] <[06|00]j[00|00]
13:01:13.967 -> [1055909] >[00|00]j[00|C8]
13:01:23.868 -> [1065907] <[06|00]k[00|00]
13:01:23.915 -> [1065916] >[00|00]k[00|C8]
13:01:33.849 -> [1075912] <[06|00]l[00|00]
13:01:33.849 -> [1075922] >[00|00]l[00|C8]
13:01:43.796 -> [1085918] <[06|00]m[00|00]
13:01:43.796 -> [1085927] >[00|00]m[00|C8]
13:01:53.741 -> [1095923] <[06|00]n[00|00]
13:01:53.787 -> [1095932] >[00|00]n[00|C8]
13:02:03.696 -> [1105928] <[06|00]o[00|00]
13:02:03.743 -> [1105937] >[00|00]o[00|C8]
13:02:13.660 -> [1115932] <[06|00]p[00|00]
13:02:13.660 -> [1115962] >[00|00]p[00|C8]
13:02:23.603 -> [1125937] <[06|00]q[00|00]
13:02:23.650 -> [1125945] >[00|00]q[00|C8]
13:02:33.531 -> [1135942] <[06|00]r[00|00]
13:02:33.566 -> [1135956] >[00|00]r[00|C8]
13:02:43.503 -> [1145948] <[06|00]s[00|00]
13:02:43.550 -> [1145956] >[00|00]s[00|C8]
13:02:53.449 -> [1155953] <[06|00]t[00|00]
13:02:53.497 -> [1155961] >[00|00]t[00|C8]
13:03:03.402 -> [1165957] <[06|00]u[00|00]
13:03:03.438 -> [1165965] >[00|00]u[00|C8]
13:03:13.362 -> [1175962] <[06|00]v[00|00]
13:03:13.396 -> [1175971] >[00|00]v[00|C8]
13:03:23.323 -> [1185967] <[06|00]w[00|00]
13:03:23.357 -> [1185976] >[00|00]w[00|C8]
13:03:33.285 -> [1195972] <[06|00]x[00|00]
13:03:33.285 -> [1195982] >[00|00]x[00|C8]
13:03:43.248 -> [1205978] <[06|00]y[00|00]
13:03:43.248 -> [1205986] >[00|00]y[00|C8]
13:03:53.197 -> [1215983] <[06|00]z[00|00]
13:03:53.197 -> [1215995] >[00|00]z[00|C8]
13:04:03.118 -> [1225988] <[06|00]{[00|00]
13:04:03.152 -> [1225997] >[00|00]{[00|C8]
13:04:13.076 -> [1235992] <[06|00]|[00|00]
13:04:13.123 -> [1236001] >[00|00]|[00|C8]
13:04:23.056 -> [1245997] <[06|00]}[00|00]
13:04:23.056 -> [1246009] >[00|00]}[00|C8]
13:04:33.035 -> [1256002] <[06|00]~[00|00]
13:04:33.035 -> [1256011] >[00|00]~[00|C8]
13:04:42.981 -> [1266008] <[06|00|7F|00|00]
13:04:42.981 -> [1266017] >[00|00|7F|00|C8]
13:04:52.927 -> [1276013] <[06|00|80|00|00]
13:04:52.927 -> [1276025] >[00|00|80|00|C8]
13:05:02.878 -> [1286019] <[06|00|81|00|00]
13:05:02.925 -> [1286031] >[00|00|81|00|C8]
13:05:12.810 -> [1296025] <[06|00|82|00|00]
13:05:12.856 -> [1296036] >[00|00|82|00|C8]
13:05:22.804 -> [1306031] <[06|00|83|00|00]
13:05:22.804 -> [1306042] >[00|00|83|00|C8]
13:05:32.753 -> [1316035] <[06|00|84|00|00]
13:05:32.753 -> [1316050] >[00|00|84|00|C8]
13:05:42.701 -> [1326042] <[06|00|85|00|00]
13:05:42.747 -> [1326117] >[00|00|85|00|C8]
13:05:52.647 -> [1336048] <[06|00|86|00|00]
13:05:52.694 -> [1336061] >[00|00|86|00|C8]
13:06:02.610 -> [1346053] <[06|00|87|00|00]
13:06:02.610 -> [1346064] >[00|00|87|00|C8]
13:06:12.544 -> [1356058] <[06|00|88|00|00]
13:06:12.591 -> [1356092] >[00|00|88|00|C8]
13:06:22.505 -> [1366063] <[06|00|89|00|00]
13:06:22.539 -> [1366073] >[00|00|89|00|C8]
13:06:32.454 -> [1376067] <[06|00|8A|00|00]
13:06:32.501 -> [1376075] >[00|00|8A|00|C8]
13:06:42.408 -> [1386072] <[06|00|8B|00|00]
13:06:42.456 -> [1386081] >[00|00|8B|00|C8]
13:06:52.342 -> [1396078] <[06|00|8C|00|00]
13:06:52.375 -> [1396088] >[00|00|8C|00|C8]
13:07:02.292 -> [1406083] <[06|00|8D|00|00]
13:07:02.331 -> [1406092] >[00|00|8D|00|C8]
13:07:12.277 -> [1416087] <[06|00|8E|00|00]
13:07:12.277 -> [1416098] >[00|00|8E|00|C8]
13:07:22.209 -> [1426093] <[06|00|8F|00|00]
13:07:22.256 -> [1426101] >[00|00|8F|00|C8]
13:07:32.162 -> [1436098] <[06|00|90|00|00]
13:07:32.208 -> [1436107] >[00|00|90|00|C8]
13:07:42.121 -> [1446104] <[06|00|91|00|00]
13:07:42.168 -> [1446113] >[00|00|91|00|C8]
13:07:52.089 -> [1456109] <[06|00|92|00|00]
13:07:52.165 -> [1456204] >[00|00|92|00|C8]
13:08:02.034 -> [1466114] <[06|00|93|00|00]
13:08:02.081 -> [1466122] >[00|00|93|00|C8]
13:08:11.980 -> [1476118] <[06|00|94|00|00]
13:08:12.028 -> [1476126] >[00|00|94|00|C8]
13:08:21.930 -> [1486124] <[06|00|95|00|00]
13:08:21.977 -> [1486134] >[00|00|95|00|C8]
13:08:31.876 -> [1496129] <[06|00|96|00|00]
13:08:31.923 -> [1496137] >[00|00|96|00|C8]
13:08:41.837 -> [1506135] <[06|00|97|00|00]
13:08:41.884 -> [1506148] >[00|00|97|00|C8]
13:08:51.828 -> [1516140] <[06|00|98|00|00]
13:08:51.875 -> [1516227] >[00|00|98|00|C8]
13:09:01.767 -> [1526147] <[06|00|99|00|00]
13:09:01.814 -> [1526155] >[00|00|99|00|C8]
13:09:11.700 -> [1536152] <[06|00|9A|00|00]
13:09:11.746 -> [1536160] >[00|00|9A|00|C8]
13:09:21.663 -> [1546157] <[06|00|9B|00|00]
13:09:21.710 -> [1546167] >[00|00|9B|00|C8]
13:09:31.618 -> [1556162] <[06|00|9C|00|00]
13:09:31.665 -> [1556173] >[00|00|9C|00|C8]
13:09:41.597 -> [1566169] <[06|00|9D|00|00]
13:09:41.597 -> [1566178] >[00|00|9D|00|C8]
13:09:51.536 -> [1576174] <[06|00|9E|00|00]
13:09:51.583 -> [1576182] >[00|00|9E|00|C8]
13:10:01.473 -> [1586180] <[06|00|9F|00|00]
13:10:01.516 -> [1586189] >[00|00|9F|00|C8]
13:10:11.456 -> [1596185] <[06|00|A0|00|00]
13:10:11.456 -> [1596201] >[00|00|A0|00|C8]
13:10:21.393 -> [1606190] <[06|00|A1|00|00]
13:10:21.511 -> [1606294] >[00|00|A1|00|C8]
13:10:31.353 -> [1616196] <[06|00|A2|00|00]
13:10:31.388 -> [1616204] >[00|00|A2|00|C8]
13:10:41.303 -> [1626201] <[06|00|A3|00|00]
13:10:41.338 -> [1626211] >[00|00|A3|00|C8]
13:10:51.243 -> [1636205] <[06|00|A4|00|00]
13:10:51.278 -> [1636229] >[00|00|A4|00|C8]
13:11:01.221 -> [1646211] <[06|00|A5|00|00]
13:11:01.268 -> [1646219] >[00|00|A5|00|C8]
13:11:11.182 -> [1656216] <[06|00|A6|00|00]
13:11:11.182 -> [1656231] >[00|00|A6|00|C8]
13:11:21.115 -> [1666221] <[06|00|A7|00|00]
13:11:21.162 -> [1666229] >[00|00|A7|00|C8]
13:11:31.081 -> [1676226] <[06|00|A8|00|00]
13:11:31.128 -> [1676235] >[00|00|A8|00|C8]
13:11:41.045 -> [1686234] <[06|00|A9|00|00]
13:11:41.089 -> [1686278] >[00|00|A9|00|C8]
13:11:50.973 -> [1696239] <[06|00|AA|00|00]
13:11:51.019 -> [1696248] >[00|00|AA|00|C8]
13:12:00.936 -> [1706244] <[06|00|AB|00|00]
13:12:00.984 -> [1706257] >[00|00|AB|00|C8]
13:12:10.901 -> [1716250] <[06|00|AC|00|00]
13:12:10.948 -> [1716259] >[00|00|AC|00|C8]
13:12:20.866 -> [1726256] <[06|00|AD|00|00]
13:12:20.866 -> [1726264] >[00|00|AD|00|C8]
13:12:30.823 -> [1736260] <[06|00|AE|00|00]
13:12:30.823 -> [1736272] >[00|00|AE|00|C8]
13:12:40.743 -> [1746265] <[06|00|AF|00|00]
13:12:40.790 -> [1746276] >[00|00|AF|00|C8]
13:12:50.722 -> [1756271] <[06|00|B0|00|00]
13:12:50.722 -> [1756294] >[00|00|B0|00|C8]
13:13:00.688 -> [1766276] <[06|00|B1|00|00]
13:13:00.688 -> [1766290] >[00|00|B1|00|C8]
13:13:10.633 -> [1776282] <[06|00|B2|00|00]
13:13:10.633 -> [1776290] >[00|00|B2|00|C8]
13:13:20.598 -> [1786286] <[06|00|B3|00|00]
13:13:20.598 -> [1786296] >[00|00|B3|00|C8]
13:13:30.528 -> [1796291] <[06|00|B4|00|00]
13:13:30.575 -> [1796301] >[00|00|B4|00|C8]
13:13:40.466 -> [1806295] <[06|00|B5|00|00]
13:13:40.512 -> [1806304] >[00|00|B5|00|C8]
13:13:50.416 -> [1816299] <[06|00|B6|00|00]
13:13:50.463 -> [1816308] >[00|00|B6|00|C8]
13:14:00.368 -> [1826306] <[06|00|B7|00|00]
13:14:00.402 -> [1826316] >[00|00|B7|00|C8]
13:14:10.354 -> [1836311] <[06|00|B8|00|00]
13:14:10.354 -> [1836320] >[00|00|B8|00|C8]
13:14:20.303 -> [1846317] <[06|00|B9|00|00]
13:14:20.303 -> [1846325] >[00|00|B9|00|C8]
13:14:30.252 -> [1856322] <[06|00|BA|00|00]
13:14:30.252 -> [1856329] >[00|00|BA|00|C8]
13:14:40.200 -> [1866328] <[06|00|BB|00|00]
13:14:40.200 -> [1866337] >[00|00|BB|00|C8]
13:14:50.140 -> [1876333] <[06|00|BC|00|00]

@PeteKnight
Blynk.log

12:43:20.747 INFO - Using data dir '/home/mike/Documents/blynk_server'
12:43:20.814 DEBUG- Starting reading user DB.
12:43:21.889 DEBUG- Reading user DB finished.
12:43:21.890 INFO - Region : local. Host : 127.0.1.1.
12:43:21.953 INFO - Using native epoll transport.
12:43:22.633 INFO - Initializing gmail smtp mail transport. Username : example@gmail.com. SMTP host : smtp.gmail.com:587
12:43:22.680 INFO - Reports : 0
12:43:22.681 INFO - Didn't find custom user certificates.
12:43:22.684 INFO - Didn't find Let's Encrypt certificates.
12:43:22.684 WARN - You didn't specified 'server.host' or 'contact.email' properties in server.properties file. Automatic certificate generation is turned off. Please specify above properties for automatic certificates retrieval.
12:43:22.684 INFO - Using native openSSL provider.
12:43:22.684 WARN - ATTENTION. Server certificate paths (cert : '/home/mike', key : '/home/mike') not valid. Using embedded server certs and one way ssl. This is not secure. Please replace it with your own certs.
12:43:23.363 DEBUG- hard.socket.idle.timeout = 0
12:43:23.437 INFO - HTTP API and WebSockets server listening at 8080 port.
12:43:23.440 INFO - HTTPS API, WebSockets and Admin page server listening at 9443 port.
12:43:23.442 INFO - Mqtt hardware server listening at 8440 port.
12:43:24.806 TRACE- Blynk hardware plain protocol connection detected.
12:43:24.806 TRACE- Blynk hardware plain protocol connection detected.
12:43:24.831 TRACE- Incoming HardwareLoginMessage{LoginMessage{id=1, 
12:43:25.232 TRACE- Incoming id=2, command=Internal, body='ver 0.6.1 h-beat 10 buff-in 256 dev Arduino UNO WiFi Rev2 con WiFiNINA build Dec  7 2020 12:40:01 '
12:43:25.232 TRACE- Info command. heartbeat interval 10
12:43:35.195 TRACE- Incoming id=3, command=Ping, body=''
12:43:35.198 TRACE- Incoming id=3, command=Ping, body=''
12:43:46.456 TRACE- Blynk hardware plain protocol connection detected.
12:43:46.459 TRACE- Incoming HardwareLoginMessage{LoginMessage{id=1, command=LoginHardware, body='******************************************'}}
12:43:46.461 DEBUG- Re registering hard channel. [id: 0x3f7145dd, L:/192.168.1.251:8080 - R:/192.168.1.1:55624]
12:43:46.462 DEBUG- completeLogin. [id: 0x3f7145dd, L:/192.168.1.251:8080 - R:/192.168.1.1:55624]
12:43:46.463 TRACE- Connected device id 0, dash id 1400334845
12:43:46.463 INFO - ***********@gmail.com hardware joined.
12:43:46.700 TRACE- Incoming id=2, command=Internal, body='ver 0.6.1 h-beat 10 buff-in 256 dev Arduino UNO WiFi Rev2 con WiFiNINA build Dec  7 2020 12:40:01 '
12:43:46.701 TRACE- Info command. heartbeat interval 10
12:43:56.667 TRACE- Incoming id=3, command=Ping, body=''
12:43:57.775 TRACE- Blynk hardware plain protocol connection detected.
12:43:57.779 TRACE- Incoming HardwareLoginMessage{LoginMessage{id=1, command=LoginHardware, body='**************************************'}}
12:43:57.781 DEBUG- Re registering hard channel. [id: 0x20d7f4e3, L:/192.168.1.251:8080 - R:/192.168.1.1:61968]
12:43:57.782 DEBUG- completeLogin. [id: 0x20d7f4e3, L:/192.168.1.251:8080 - R:/192.168.1.1:61968]
12:43:57.783 TRACE- Connected device id 1170, dash id 1400334845
12:43:57.783 INFO - **************@gmail.com hardware joined.
12:43:58.023 TRACE- Incoming id=2, command=Internal, body='ver 0.6.1 h-beat 10 buff-in 256 dev Arduino UNO WiFi Rev2 con WiFiNINA build Dec  7 2020 12:41:32 '
12:43:58.023 TRACE- Info command. heartbeat interval 10
12:44:06.633 TRACE- Incoming id=4, command=Ping, body=''
12:44:07.990 TRACE- Incoming id=3, command=Ping, body=''
12:44:16.598 TRACE- Incoming id=5, command=Ping, body=''
12:44:17.958 TRACE- Incoming id=4, command=Ping, body=''
12:44:26.563 TRACE- Incoming id=6, command=Ping, body=''
12:44:27.926 TRACE- Incoming id=5, command=Ping, body=''
12:44:36.527 TRACE- Incoming id=7, command=Ping, body=''
12:44:37.893 TRACE- Incoming id=6, command=Ping, body=''
12:44:46.491 TRACE- Incoming id=8, command=Ping, body=''
12:44:47.860 TRACE- Incoming id=7, command=Ping, body=''
12:44:56.453 TRACE- Incoming id=9, command=Ping, body=''
12:44:57.827 TRACE- Incoming id=8, command=Ping, body=''
12:45:06.416 TRACE- Incoming id=10, command=Ping, body=''
12:45:07.796 TRACE- Incoming id=9, command=Ping, body=''
12:45:16.396 TRACE- Incoming id=11, command=Ping, body=''
12:45:17.763 TRACE- Incoming id=10, command=Ping, body=''
12:45:26.425 TRACE- Incoming id=12, command=Ping, body=''
12:45:27.729 TRACE- Incoming id=11, command=Ping, body=''
12:45:36.313 TRACE- Incoming id=13, command=Ping, body=''
12:45:37.698 TRACE- Incoming id=12, command=Ping, body=''
12:45:46.264 TRACE- Incoming id=14, command=Ping, body=''
12:45:47.660 TRACE- Incoming id=13, command=Ping, body=''
12:45:56.225 TRACE- Incoming id=15, command=Ping, body=''
12:45:57.624 TRACE- Incoming id=14, command=Ping, body=''
12:46:06.187 TRACE- Incoming id=16, command=Ping, body=''
12:46:07.588 TRACE- Incoming id=15, command=Ping, body=''
12:46:16.150 TRACE- Incoming id=17, command=Ping, body=''
12:46:17.550 TRACE- Incoming id=16, command=Ping, body=''
12:46:26.109 TRACE- Incoming id=18, command=Ping, body=''
12:46:27.514 TRACE- Incoming id=17, command=Ping, body=''
12:46:36.069 TRACE- Incoming id=19, command=Ping, body=''
12:46:37.492 TRACE- Incoming id=18, command=Ping, body=''
12:46:46.029 TRACE- Incoming id=20, command=Ping, body=''
12:46:47.439 TRACE- Incoming id=19, command=Ping, body=''
12:46:55.993 TRACE- Incoming id=21, command=Ping, body=''
12:46:57.403 TRACE- Incoming id=20, command=Ping, body=''
12:47:05.950 TRACE- Incoming id=22, command=Ping, body=''
12:47:07.366 TRACE- Incoming id=21, command=Ping, body=''
12:47:15.950 TRACE- Incoming id=23, command=Ping, body=''
12:47:17.329 TRACE- Incoming id=22, command=Ping, body=''
12:47:25.873 TRACE- Incoming id=24, command=Ping, body=''
12:47:27.310 TRACE- Incoming id=23, command=Ping, body=''
12:47:35.832 TRACE- Incoming id=25, command=Ping, body=''
12:47:37.259 TRACE- Incoming id=24, command=Ping, body=''
12:47:45.795 TRACE- Incoming id=26, command=Ping, body=''
12:47:47.224 TRACE- Incoming id=25, command=Ping, body=''
12:47:57.187 TRACE- Incoming id=26, command=Ping, body=''
12:48:07.151 TRACE- Incoming id=27, command=Ping, body=''
12:48:17.114 TRACE- Incoming id=28, command=Ping, body=''
12:48:27.077 TRACE- Incoming id=29, command=Ping, body=''
12:48:37.038 TRACE- Incoming id=30, command=Ping, body=''
12:48:47.001 TRACE- Incoming id=31, command=Ping, body=''
12:48:56.965 TRACE- Incoming id=32, command=Ping, body=''
12:49:06.928 TRACE- Incoming id=33, command=Ping, body=''
12:49:16.890 TRACE- Incoming id=34, command=Ping, body=''
12:49:26.852 TRACE- Incoming id=35, command=Ping, body=''
12:49:36.817 TRACE- Incoming id=36, command=Ping, body=''
12:49:46.778 TRACE- Incoming id=37, command=Ping, body=''
12:49:56.741 TRACE- Incoming id=38, command=Ping, body=''
12:50:06.704 TRACE- Incoming id=39, command=Ping, body=''
12:50:16.666 TRACE- Incoming id=40, command=Ping, body=''
12:50:26.628 TRACE- Incoming id=41, command=Ping, body=''
12:50:36.592 TRACE- Incoming id=42, command=Ping, body=''
12:50:46.555 TRACE- Incoming id=43, command=Ping, body=''
12:50:56.515 TRACE- Incoming id=44, command=Ping, body=''
12:51:06.480 TRACE- Incoming id=45, command=Ping, body=''
12:51:16.438 TRACE- Incoming id=46, command=Ping, body=''
12:51:26.400 TRACE- Incoming id=47, command=Ping, body=''
12:51:36.362 TRACE- Incoming id=48, command=Ping, body=''
12:51:46.327 TRACE- Incoming id=49, command=Ping, body=''
12:51:56.282 TRACE- Incoming id=50, command=Ping, body=''
12:52:06.243 TRACE- Incoming id=51, command=Ping, body=''
12:52:16.200 TRACE- Incoming id=52, command=Ping, body=''
12:52:26.161 TRACE- Incoming id=53, command=Ping, body=''
12:52:36.115 TRACE- Incoming id=54, command=Ping, body=''
12:52:46.074 TRACE- Incoming id=55, command=Ping, body=''
12:52:56.035 TRACE- Incoming id=56, command=Ping, body=''
12:53:05.995 TRACE- Incoming id=57, command=Ping, body=''
12:53:15.956 TRACE- Incoming id=58, command=Ping, body=''
12:53:25.918 TRACE- Incoming id=59, command=Ping, body=''
12:53:35.883 TRACE- Incoming id=60, command=Ping, body=''
12:53:45.832 TRACE- Incoming id=61, command=Ping, body=''
12:53:55.798 TRACE- Incoming id=62, command=Ping, body=''
12:54:05.748 TRACE- Incoming id=63, command=Ping, body=''
12:54:15.703 TRACE- Incoming id=64, command=Ping, body=''
12:54:25.665 TRACE- Incoming id=65, command=Ping, body=''
12:54:35.618 TRACE- Incoming id=66, command=Ping, body=''
12:54:45.578 TRACE- Incoming id=67, command=Ping, body=''
12:54:55.536 TRACE- Incoming id=68, command=Ping, body=''
12:55:05.525 TRACE- Incoming id=69, command=Ping, body=''
12:55:15.453 TRACE- Incoming id=70, command=Ping, body=''
12:55:25.416 TRACE- Incoming id=71, command=Ping, body=''
12:55:35.371 TRACE- Incoming id=72, command=Ping, body=''
12:55:45.332 TRACE- Incoming id=73, command=Ping, body=''
12:55:55.284 TRACE- Incoming id=74, command=Ping, body=''
12:56:05.240 TRACE- Incoming id=75, command=Ping, body=''
12:56:15.195 TRACE- Incoming id=76, command=Ping, body=''
12:56:25.152 TRACE- Incoming id=77, command=Ping, body=''
12:56:35.108 TRACE- Incoming id=78, command=Ping, body=''
12:56:45.064 TRACE- Incoming id=79, command=Ping, body=''
12:56:55.076 TRACE- Incoming id=80, command=Ping, body=''
12:57:04.977 TRACE- Incoming id=81, command=Ping, body=''
12:57:14.934 TRACE- Incoming id=82, command=Ping, body=''
12:57:24.894 TRACE- Incoming id=83, command=Ping, body=''
12:57:34.848 TRACE- Incoming id=84, command=Ping, body=''
12:57:44.805 TRACE- Incoming id=85, command=Ping, body=''
12:57:54.764 TRACE- Incoming id=86, command=Ping, body=''
12:58:04.716 TRACE- Incoming id=87, command=Ping, body=''
12:58:14.673 TRACE- Incoming id=88, command=Ping, body=''
12:58:24.629 TRACE- Incoming id=89, command=Ping, body=''
12:58:34.586 TRACE- Incoming id=90, command=Ping, body=''
12:58:44.543 TRACE- Incoming id=91, command=Ping, body=''
12:58:54.574 TRACE- Incoming id=92, command=Ping, body=''
12:59:04.458 TRACE- Incoming id=93, command=Ping, body=''
12:59:14.416 TRACE- Incoming id=94, command=Ping, body=''
12:59:24.371 TRACE- Incoming id=95, command=Ping, body=''
12:59:34.333 TRACE- Incoming id=96, command=Ping, body=''
12:59:44.286 TRACE- Incoming id=97, command=Ping, body=''
12:59:54.238 TRACE- Incoming id=98, command=Ping, body=''
13:00:04.201 TRACE- Incoming id=99, command=Ping, body=''
13:00:14.149 TRACE- Incoming id=100, command=Ping, body=''
13:00:24.103 TRACE- Incoming id=101, command=Ping, body=''
13:00:34.061 TRACE- Incoming id=102, command=Ping, body=''
13:00:44.016 TRACE- Incoming id=103, command=Ping, body=''
13:00:53.968 TRACE- Incoming id=104, command=Ping, body=''
13:01:03.922 TRACE- Incoming id=105, command=Ping, body=''
13:01:13.876 TRACE- Incoming id=106, command=Ping, body=''
13:01:23.831 TRACE- Incoming id=107, command=Ping, body=''
13:01:33.787 TRACE- Incoming id=108, command=Ping, body=''
13:01:43.740 TRACE- Incoming id=109, command=Ping, body=''
13:01:53.696 TRACE- Incoming id=110, command=Ping, body=''
13:02:03.649 TRACE- Incoming id=111, command=Ping, body=''
13:02:13.623 TRACE- Incoming id=112, command=Ping, body=''
13:02:23.556 TRACE- Incoming id=113, command=Ping, body=''
13:02:33.516 TRACE- Incoming id=114, command=Ping, body=''
13:02:43.463 TRACE- Incoming id=115, command=Ping, body=''
13:02:53.417 TRACE- Incoming id=116, command=Ping, body=''
13:03:03.369 TRACE- Incoming id=117, command=Ping, body=''
13:03:13.324 TRACE- Incoming id=118, command=Ping, body=''
13:03:23.278 TRACE- Incoming id=119, command=Ping, body=''
13:03:33.233 TRACE- Incoming id=120, command=Ping, body=''
13:03:43.188 TRACE- Incoming id=121, command=Ping, body=''
13:03:53.145 TRACE- Incoming id=122, command=Ping, body=''
13:04:03.097 TRACE- Incoming id=123, command=Ping, body=''
13:04:13.049 TRACE- Incoming id=124, command=Ping, body=''
13:04:23.008 TRACE- Incoming id=125, command=Ping, body=''
13:04:32.960 TRACE- Incoming id=126, command=Ping, body=''
13:04:42.917 TRACE- Incoming id=127, command=Ping, body=''
13:04:52.876 TRACE- Incoming id=128, command=Ping, body=''
13:05:02.833 TRACE- Incoming id=129, command=Ping, body=''
13:05:12.787 TRACE- Incoming id=130, command=Ping, body=''
13:05:22.741 TRACE- Incoming id=131, command=Ping, body=''
13:05:32.695 TRACE- Incoming id=132, command=Ping, body=''
13:05:35.948 TRACE- HTTP connection detected.
13:05:36.009 TRACE- In http and websocket unificator handler.
13:05:42.709 TRACE- Incoming id=133, command=Ping, body=''
13:05:52.605 TRACE- Incoming id=134, command=Ping, body=''
13:06:02.554 TRACE- Incoming id=135, command=Ping, body=''
13:06:12.525 TRACE- Incoming id=136, command=Ping, body=''
13:06:22.459 TRACE- Incoming id=137, command=Ping, body=''
13:06:32.410 TRACE- Incoming id=138, command=Ping, body=''
13:06:42.361 TRACE- Incoming id=139, command=Ping, body=''
13:06:52.315 TRACE- Incoming id=140, command=Ping, body=''
13:07:02.265 TRACE- Incoming id=141, command=Ping, body=''
13:07:12.220 TRACE- Incoming id=142, command=Ping, body=''
13:07:22.170 TRACE- Incoming id=143, command=Ping, body=''
13:07:32.126 TRACE- Incoming id=144, command=Ping, body=''
13:07:42.080 TRACE- Incoming id=145, command=Ping, body=''
13:07:52.120 TRACE- Incoming id=146, command=Ping, body=''
13:08:01.992 TRACE- Incoming id=147, command=Ping, body=''
13:08:11.945 TRACE- Incoming id=148, command=Ping, body=''
13:08:21.898 TRACE- Incoming id=149, command=Ping, body=''
13:08:31.850 TRACE- Incoming id=150, command=Ping, body=''
13:08:41.809 TRACE- Incoming id=151, command=Ping, body=''
13:08:51.836 TRACE- Incoming id=152, command=Ping, body=''
13:09:01.716 TRACE- Incoming id=153, command=Ping, body=''
13:09:11.671 TRACE- Incoming id=154, command=Ping, body=''
13:09:21.627 TRACE- Incoming id=155, command=Ping, body=''
13:09:31.584 TRACE- Incoming id=156, command=Ping, body=''
13:09:41.538 TRACE- Incoming id=157, command=Ping, body=''
13:09:51.492 TRACE- Incoming id=158, command=Ping, body=''
13:10:01.445 TRACE- Incoming id=159, command=Ping, body=''
13:10:11.406 TRACE- Incoming id=160, command=Ping, body=''
13:10:21.450 TRACE- Incoming id=161, command=Ping, body=''
13:10:31.310 TRACE- Incoming id=162, command=Ping, body=''
13:10:41.268 TRACE- Incoming id=163, command=Ping, body=''
13:10:51.225 TRACE- Incoming id=164, command=Ping, body=''
13:11:01.172 TRACE- Incoming id=165, command=Ping, body=''
13:11:11.132 TRACE- Incoming id=166, command=Ping, body=''
13:11:21.078 TRACE- Incoming id=167, command=Ping, body=''
13:11:31.032 TRACE- Incoming id=168, command=Ping, body=''
13:11:41.022 TRACE- Incoming id=169, command=Ping, body=''
13:11:50.941 TRACE- Incoming id=170, command=Ping, body=''
13:12:00.899 TRACE- Incoming id=171, command=Ping, body=''
13:12:10.850 TRACE- Incoming id=172, command=Ping, body=''
13:12:20.804 TRACE- Incoming id=173, command=Ping, body=''
13:12:30.762 TRACE- Incoming id=174, command=Ping, body=''
13:12:40.714 TRACE- Incoming id=175, command=Ping, body=''
13:12:50.679 TRACE- Incoming id=176, command=Ping, body=''
13:13:00.626 TRACE- Incoming id=177, command=Ping, body=''
13:13:10.575 TRACE- Incoming id=178, command=Ping, body=''
13:13:20.526 TRACE- Incoming id=179, command=Ping, body=''
13:13:30.481 TRACE- Incoming id=180, command=Ping, body=''
13:13:40.430 TRACE- Incoming id=181, command=Ping, body=''
13:13:50.379 TRACE- Incoming id=182, command=Ping, body=''
13:14:00.335 TRACE- Incoming id=183, command=Ping, body=''
13:14:10.285 TRACE- Incoming id=184, command=Ping, body=''
13:14:20.238 TRACE- Incoming id=185, command=Ping, body=''
13:14:30.189 TRACE- Incoming id=186, command=Ping, body=''
13:14:40.144 TRACE- Incoming id=187, command=Ping, body=''
13:14:50.096 TRACE- Incoming id=188, command=Ping, body=''
13:40:00.281 TRACE- Blynk hardware plain protocol connection detected.
13:41:55.944 TRACE- HTTP connection detected.
13:41:55.946 TRACE- In http and websocket unificator handler.
13:41:55.956 TRACE- Initialized http pipeline. [HttpServerCodec, HttpServerKeepAlive, HttpObjectAggregator, LetsEncryptHandler#0, HttpChunkedWrite, HttpUrlMapper, HttpStaticFile, ResetPasswordHttpLogic#0, HttpAPILogic#0, NoMatchHandler#0, DefaultChannelPipeline$TailContext#0]
13:41:55.957 TRACE- Mapping from /manager/html to /manager/html
13:41:55.958 DEBUG- Error resolving url. No path found. GET : /manager/html
13:43:36.526 TRACE- Blynk server IOException.
io.netty.channel.unix.Errors$NativeIoException: readAddress(..) failed: Connection reset by peer

Was this with just one of your boards connecting to the server?

Are you using different Auth codes for the two boards?

Pete.

@PeteKnight This was with both boards going at the same time with different auth, but the same sketch. They both use the same power supply so they both come on at the exact same time. I have a delay in the robot sketch that offsets it from the rfid sketch, but I didn’t do that for this test. Do you want me to take one of them out and do it again?

I’d say that the simpler the better for testing. One device running a very simple sketch.

Pete.

@PeteKnight Alright. I went ahead and removed one of the boards, cleared the Blynk.log file, and started the other board back up with the serial monitor. Code is the MKR1010 example sketch.

@PeteKnight It did the same thing again. I’ve posted the serial monitor output below

Serial Monitor

12:29:50.780 -> [759] WiFi firmware: 1.3.0
12:29:50.780 -> [760] Connecting to ********
12:29:53.653 -> [3634] IP: 192.168.1.197
12:29:53.653 -> [3634] 
12:29:53.653 ->     ___  __          __
12:29:53.688 ->    / _ )/ /_ _____  / /__
12:29:53.732 ->   / _  / / // / _ \/  '_/
12:29:53.778 ->  /____/_/\_, /_//_/_/\_\
12:29:53.778 ->         /___/ v0.6.1 on Arduino UNO WiFi Rev2
12:29:53.841 -> 
12:29:53.841 -> [3763] Connecting to **.***.***.**
12:29:53.887 -> [3816] <[1D|00|01|00] ********************************
12:29:53.934 -> [3889] >[00|00|01|00|C8]
12:29:53.934 -> [3890] Ready (ping: 30ms).
12:29:53.997 -> [3915] Free RAM: 5584
12:29:53.997 -> [3958] <[11|00|02|00]bver[00]0.6.1[00]h-beat[00]10[00]buff-in[00]256[00]dev[00]Arduino UNO WiFi Rev2[00]con[00]WiFiNINA[00]build[00]Dec  7 2020 12:41:32[00]
12:29:54.169 -> [4111] >[00|00|02|00|C8]
12:30:04.057 -> [14107] <[06|00|03|00|00]
12:30:04.104 -> [14120] >[00|00|03|00|C8]
12:30:14.051 -> [24111] <[06|00|04|00|00]
12:30:14.051 -> [24121] >[00|00|04|00|C8]
12:30:24.014 -> [34115] <[06|00|05|00|00]
12:30:24.062 -> [34131] >[00|00|05|00|C8]
12:30:33.978 -> [44120] <[06|00|06|00|00]
12:30:34.026 -> [44139] >[00|00|06|00|C8]
12:30:43.924 -> [54125] <[06|00|07|00|00]
12:30:43.971 -> [54135] >[00|00|07|00|C8]
12:30:53.904 -> [64131] <[06|00|08|00|00]
12:30:53.951 -> [64141] >[00|00|08|00|C8]
12:31:03.884 -> [74136] <[06|00|09|00|00]
12:31:03.931 -> [74147] >[00|00|09|00|C8]
12:31:13.848 -> [84142] <[06|00|0A|00|00]
12:31:13.896 -> [84151] >[00|00|0A|00|C8]
12:31:23.817 -> [94147] <[06|00|0B|00|00]
12:31:23.861 -> [94155] >[00|00|0B|00|C8]
12:31:33.776 -> [104152] <[06|00|0C|00|00]
12:31:33.823 -> [104164] >[00|00|0C|00|C8]
12:31:43.754 -> [114157] <[06|00|0D|00|00]
12:31:43.802 -> [114169] >[00|00|0D|00|C8]
12:31:53.740 -> [124163] <[06|00|0E|00|00]
12:31:53.740 -> [124173] >[00|00|0E|00|C8]
12:32:03.681 -> [134167] <[06|00|0F|00|00]
12:32:03.729 -> [134177] >[00|00|0F|00|C8]
12:32:13.644 -> [144173] <[06|00|10|00|00]
12:32:13.677 -> [144182] >[00|00|10|00|C8]
12:32:23.592 -> [154179] <[06|00|11|00|00]
12:32:23.638 -> [154186] >[00|00|11|00|C8]
12:32:33.570 -> [164184] <[06|00|12|00|00]
12:32:33.617 -> [164194] >[00|00|12|00|C8]
12:32:43.537 -> [174188] <[06|00|13|00|00]
12:32:43.585 -> [174197] >[00|00|13|00|C8]
12:32:53.545 -> [184194] <[06|00|14|00|00]
12:32:53.545 -> [184212] >[00|00|14|00|C8]
12:33:03.494 -> [194199] <[06|00|15|00|00]
12:33:03.494 -> [194225] >[00|00|15|00|C8]
12:33:13.441 -> [204205] <[06|00|16|00|00]
12:33:13.489 -> [204216] >[00|00|16|00|C8]
12:33:23.405 -> [214209] <[06|00|17|00|00]
12:33:23.452 -> [214219] >[00|00|17|00|C8]
12:33:33.369 -> [224214] <[06|00|18|00|00]
12:33:33.416 -> [224224] >[00|00|18|00|C8]
12:33:43.332 -> [234219] <[06|00|19|00|00]
12:33:43.379 -> [234230] >[00|00|19|00|C8]
12:33:53.313 -> [244224] <[06|00|1A|00|00]
12:33:53.359 -> [244285] >[00|00|1A|00|C8]
12:34:03.276 -> [254230] <[06|00|1B|00|00]
12:34:03.311 -> [254283] >[00|00|1B|00|C8]
12:34:13.256 -> [264235] <[06|00|1C|00|00]
12:34:13.334 -> [264361] >[00|00|1C|00|C8]
12:34:23.202 -> [274240] <[06|00|1D|00|00]
12:34:23.202 -> [274251] >[00|00|1D|00|C8]
12:34:33.136 -> [284247] <[06|00|1E|00|00]
12:34:33.183 -> [284256] >[00|00|1E|00|C8]
12:34:43.111 -> [294251] <[06|00|1F|00|00]
12:34:43.146 -> [294262] >[00|00|1F|00|C8]
12:34:53.082 -> [304258] <[06|00] [00|00]
12:34:53.130 -> [304268] >[00|00] [00|C8]
12:35:03.061 -> [314263] <[06|00]![00|00]
12:35:03.061 -> [314276] >[00|00]![00|C8]
12:35:12.990 -> [324269] <[06|00]"[00|00]
12:35:13.037 -> [324280] >[00|00]"[00|C8]
12:35:22.964 -> [334273] <[06|00]#[00|00]
12:35:23.011 -> [334283] >[00|00]#[00|C8]
12:35:32.918 -> [344278] <[06|00]$[00|00]
12:35:32.964 -> [344290] >[00|00]$[00|C8]
12:35:42.921 -> [354282] <[06|00]%[00|00]
12:35:42.921 -> [354296] >[00|00]%[00|C8]
12:35:52.874 -> [364286] <[06|00]&[00|00]
12:35:52.874 -> [364300] >[00|00]&[00|C8]
12:36:02.838 -> [374292] <[06|00]'[00|00]
12:36:02.838 -> [374300] >[00|00]'[00|C8]
12:36:12.817 -> [384297] <[06|00]([00|00]
12:36:12.817 -> [384308] >[00|00]([00|C8]
12:36:22.736 -> [394302] <[06|00])[00|00]
12:36:22.782 -> [394315] >[00|00])[00|C8]
12:36:32.727 -> [404307] <[06|00]*[00|00]
12:36:32.727 -> [404320] >[00|00]*[00|C8]
12:36:42.676 -> [414312] <[06|00]+[00|00]
12:36:42.676 -> [414320] >[00|00]+[00|C8]
12:36:52.655 -> [424316] <[06|00],[00|00]
12:36:52.655 -> [424327] >[00|00],[00|C8]
12:37:02.604 -> [434321] <[06|00]-[00|00]
12:37:02.604 -> [434333] >[00|00]-[00|C8]
12:37:12.558 -> [444326] <[06|00].[00|00]
12:37:12.558 -> [444340] >[00|00].[00|C8]
12:37:22.528 -> [454330] <[06|00]/[00|00]
12:37:22.528 -> [454338] >[00|00]/[00|C8]
12:37:32.447 -> [464336] <[06|00]0[00|00]
12:37:32.494 -> [464345] >[00|00]0[00|C8]
12:37:42.441 -> [474340] <[06|00]1[00|00]
12:37:42.441 -> [474352] >[00|00]1[00|C8]
12:37:52.390 -> [484345] <[06|00]2[00|00]
12:37:52.437 -> [484361] >[00|00]2[00|C8]
12:38:02.351 -> [494351] <[06|00]3[00|00]
12:38:02.434 -> [494408] >[00|00]3[00|C8]
12:38:12.315 -> [504355] <[06|00]4[00|00]
12:38:12.409 -> [504470] >[00|00]4[00|C8]
12:38:22.265 -> [514359] <[06|00]5[00|00]
12:38:22.312 -> [514370] >[00|00]5[00|C8]
12:38:32.245 -> [524364] <[06|00]6[00|00]
12:38:32.245 -> [524376] >[00|00]6[00|C8]
12:38:42.177 -> [534370] <[06|00]7[00|00]
12:38:42.224 -> [534383] >[00|00]7[00|C8]
12:38:52.122 -> [544373] <[06|00]8[00|00]
12:38:52.156 -> [544381] >[00|00]8[00|C8]
12:39:02.102 -> [554378] <[06|00]9[00|00]
12:39:02.149 -> [554389] >[00|00]9[00|C8]
12:39:12.065 -> [564382] <[06|00]:[00|00]
12:39:12.065 -> [564393] >[00|00]:[00|C8]
12:39:22.015 -> [574387] <[06|00];[00|00]
12:39:22.062 -> [574397] >[00|00];[00|C8]
12:39:31.978 -> [584393] <[06|00]<[00|00]
12:39:32.025 -> [584400] >[00|00]<[00|C8]
12:39:41.942 -> [594397] <[06|00]=[00|00]
12:39:41.977 -> [594409] >[00|00]=[00|C8]
12:39:51.908 -> [604401] <[06|00]>[00|00]
12:39:51.908 -> [604411] >[00|00]>[00|C8]
12:40:01.869 -> [614407] <[06|00]?[00|00]
12:40:01.869 -> [614415] >[00|00]?[00|C8]
12:40:11.815 -> [624412] <[06|00]@[00|00]
12:40:11.862 -> [624420] >[00|00]@[00|C8]
12:40:21.769 -> [634416] <[06|00]A[00|00]
12:40:21.813 -> [634429] >[00|00]A[00|C8]
12:40:31.727 -> [644420] <[06|00]B[00|00]
12:40:31.775 -> [644431] >[00|00]B[00|C8]
12:40:41.676 -> [654424] <[06|00]C[00|00]
12:40:41.723 -> [654433] >[00|00]C[00|C8]
12:40:51.654 -> [664428] <[06|00]D[00|00]
12:40:51.701 -> [664443] >[00|00]D[00|C8]
12:41:01.618 -> [674434] <[06|00]E[00|00]
12:41:01.618 -> [674446] >[00|00]E[00|C8]
12:41:11.554 -> [684439] <[06|00]F[00|00]
12:41:11.588 -> [684448] >[00|00]F[00|C8]
12:41:21.544 -> [694444] <[06|00]G[00|00]
12:41:21.544 -> [694454] >[00|00]G[00|C8]
12:41:31.478 -> [704450] <[06|00]H[00|00]
12:41:31.525 -> [704466] >[00|00]H[00|C8]
12:41:41.472 -> [714456] <[06|00]I[00|00]
12:41:41.472 -> [714491] >[00|00]I[00|C8]
12:41:51.422 -> [724460] <[06|00]J[00|00]
12:41:51.469 -> [724499] >[00|00]J[00|C8]
12:42:01.382 -> [734465] <[06|00]K[00|00]
12:42:01.497 -> [734586] >[00|00]K[00|C8]
12:42:11.347 -> [744470] <[06|00]L[00|00]
12:42:11.347 -> [744480] >[00|00]L[00|C8]
12:42:21.295 -> [754476] <[06|00]M[00|00]
12:42:21.295 -> [754485] >[00|00]M[00|C8]
12:42:31.244 -> [764481] <[06|00]N[00|00]
12:42:31.291 -> [764488] >[00|00]N[00|C8]
12:42:41.224 -> [774487] <[06|00]O[00|00]
12:42:41.224 -> [774498] >[00|00]O[00|C8]
12:42:51.188 -> [784492] <[06|00]P[00|00]
12:42:51.188 -> [784500] >[00|00]P[00|C8]
12:43:01.101 -> [794498] <[06|00]Q[00|00]
12:43:01.133 -> [794509] >[00|00]Q[00|C8]
12:43:11.065 -> [804503] <[06|00]R[00|00]
12:43:11.112 -> [804516] >[00|00]R[00|C8]
12:43:21.046 -> [814508] <[06|00]S[00|00]
12:43:21.093 -> [814520] >[00|00]S[00|C8]
12:43:30.992 -> [824513] <[06|00]T[00|00]
12:43:31.039 -> [824521] >[00|00]T[00|C8]
12:43:40.969 -> [834519] <[06|00]U[00|00]
12:43:41.004 -> [834529] >[00|00]U[00|C8]
12:43:50.918 -> [844525] <[06|00]V[00|00]
12:43:50.964 -> [844533] >[00|00]V[00|C8]
12:44:00.913 -> [854530] <[06|00]W[00|00]
12:44:00.913 -> [854542] >[00|00]W[00|C8]
12:44:10.865 -> [864534] <[06|00]X[00|00]
12:44:10.912 -> [864543] >[00|00]X[00|C8]
12:44:20.828 -> [874541] <[06|00]Y[00|00]
12:44:20.875 -> [874557] >[00|00]Y[00|C8]
12:44:30.800 -> [884545] <[06|00]Z[00|00]
12:44:30.800 -> [884555] >[00|00]Z[00|C8]
12:44:40.747 -> [894551] <[06|00][[00|00]
12:44:40.794 -> [894559] >[00|00][[00|C8]
12:44:50.704 -> [904555] <[06|00]\[00|00]
12:44:50.741 -> [904563] >[00|00]\[00|C8]
12:45:00.696 -> [914561] <[06|00]][00|00]
12:45:00.696 -> [914571] >[00|00]][00|C8]
12:45:10.619 -> [924567] <[06|00]^[00|00]
12:45:10.661 -> [924578] >[00|00]^[00|C8]
12:45:20.576 -> [934571] <[06|00]_[00|00]
12:45:20.623 -> [934582] >[00|00]_[00|C8]
12:45:30.571 -> [944576] <[06|00]`[00|00]
12:45:30.571 -> [944584] >[00|00]`[00|C8]
12:45:40.504 -> [954580] <[06|00]a[00|00]
12:45:40.546 -> [954590] >[00|00]a[00|C8]
12:45:50.467 -> [964586] <[06|00]b[00|00]
12:45:50.467 -> [964592] >[00|00]b[00|C8]
12:46:00.413 -> [974593] <[06|00]c[00|00]
12:46:00.447 -> [974607] >[00|00]c[00|C8]
12:46:10.409 -> [984599] <[06|00]d[00|00]
12:46:10.409 -> [984612] >[00|00]d[00|C8]
12:46:20.325 -> [994603] <[06|00]e[00|00]
12:46:20.373 -> [994615] >[00|00]e[00|C8]
12:46:30.274 -> [1004607] <[06|00]f[00|00]
12:46:30.321 -> [1004615] >[00|00]f[00|C8]
12:46:40.269 -> [1014612] <[06|00]g[00|00]
12:46:40.269 -> [1014627] >[00|00]g[00|C8]
12:46:50.184 -> [1024617] <[06|00]h[00|00]
12:46:50.216 -> [1024627] >[00|00]h[00|C8]
12:47:00.179 -> [1034622] <[06|00]i[00|00]
12:47:00.179 -> [1034632] >[00|00]i[00|C8]
12:47:10.113 -> [1044629] <[06|00]j[00|00]
12:47:10.160 -> [1044640] >[00|00]j[00|C8]
12:47:20.077 -> [1054636] <[06|00]k[00|00]
12:47:20.124 -> [1054644] >[00|00]k[00|C8]
12:47:30.055 -> [1064641] <[06|00]l[00|00]
12:47:30.055 -> [1064650] >[00|00]l[00|C8]
12:47:39.985 -> [1074647] <[06|00]m[00|00]
12:47:40.033 -> [1074656] >[00|00]m[00|C8]
12:47:49.949 -> [1084651] <[06|00]n[00|00]
12:47:49.996 -> [1084660] >[00|00]n[00|C8]
12:47:59.900 -> [1094657] <[06|00]o[00|00]
12:47:59.947 -> [1094665] >[00|00]o[00|C8]
12:48:09.848 -> [1104661] <[06|00]p[00|00]
12:48:09.894 -> [1104669] >[00|00]p[00|C8]
12:48:19.800 -> [1114665] <[06|00]q[00|00]
12:48:19.842 -> [1114676] >[00|00]q[00|C8]
12:48:29.791 -> [1124671] <[06|00]r[00|00]
12:48:29.791 -> [1124682] >[00|00]r[00|C8]
12:48:39.767 -> [1134678] <[06|00]s[00|00]
12:48:39.783 -> [1134689] >[00|00]s[00|C8]
12:48:49.699 -> [1144682] <[06|00]t[00|00]
12:48:49.699 -> [1144695] >[00|00]t[00|C8]
12:48:59.681 -> [1154688] <[06|00]u[00|00]
12:48:59.681 -> [1154697] >[00|00]u[00|C8]
12:49:09.596 -> [1164694] <[06|00]v[00|00]
12:49:09.632 -> [1164703] >[00|00]v[00|C8]
12:49:19.559 -> [1174699] <[06|00]w[00|00]
12:49:19.606 -> [1174710] >[00|00]w[00|C8]
12:49:29.524 -> [1184703] <[06|00]x[00|00]
12:49:29.524 -> [1184715] >[00|00]x[00|C8]
12:49:39.488 -> [1194708] <[06|00]y[00|00]
12:49:39.488 -> [1194717] >[00|00]y[00|C8]
12:49:49.421 -> [1204714] <[06|00]z[00|00]
12:49:49.468 -> [1204728] >[00|00]z[00|C8]
12:49:59.398 -> [1214720] <[06|00]{[00|00]
12:49:59.398 -> [1214729] >[00|00]{[00|C8]
12:50:09.362 -> [1224726] <[06|00]|[00|00]
12:50:09.362 -> [1224736] >[00|00]|[00|C8]
12:50:19.280 -> [1234732] <[06|00]}[00|00]
12:50:19.326 -> [1234741] >[00|00]}[00|C8]
12:50:29.258 -> [1244736] <[06|00]~[00|00]
12:50:29.336 -> [1244747] >[00|00]~[00|C8]
12:50:39.207 -> [1254742] <[06|00|7F|00|00]
12:50:39.254 -> [1254751] >[00|00|7F|00|C8]
12:50:49.168 -> [1264747] <[06|00|80|00|00]
12:50:49.215 -> [1264757] >[00|00|80|00|C8]
12:50:59.130 -> [1274753] <[06|00|81|00|00]
12:50:59.178 -> [1274762] >[00|00|81|00|C8]
12:51:09.081 -> [1284758] <[06|00|82|00|00]
12:51:09.128 -> [1284770] >[00|00|82|00|C8]
12:51:19.043 -> [1294764] <[06|00|83|00|00]
12:51:19.091 -> [1294772] >[00|00|83|00|C8]
12:51:29.011 -> [1304770] <[06|00|84|00|00]
12:51:29.011 -> [1304790] >[00|00|84|00|C8]
12:51:38.970 -> [1314776] <[06|00|85|00|00]
12:51:38.970 -> [1314788] >[00|00|85|00|C8]
12:51:48.919 -> [1324780] <[06|00|86|00|00]
12:51:48.966 -> [1324794] >[00|00|86|00|C8]
12:51:58.851 -> [1334786] <[06|00|87|00|00]
12:51:58.899 -> [1334795] >[00|00|87|00|C8]
12:52:08.815 -> [1344790] <[06|00|88|00|00]
12:52:08.830 -> [1344809] >[00|00|88|00|C8]
12:52:18.796 -> [1354795] <[06|00|89|00|00]
12:52:18.796 -> [1354804] >[00|00|89|00|C8]
12:52:28.755 -> [1364800] <[06|00|8A|00|00]
12:52:28.755 -> [1364812] >[00|00|8A|00|C8]
12:52:38.689 -> [1374806] <[06|00|8B|00|00]
12:52:38.736 -> [1374818] >[00|00|8B|00|C8]
12:52:48.668 -> [1384811] <[06|00|8C|00|00]
12:52:48.668 -> [1384820] >[00|00|8C|00|C8]
12:52:58.616 -> [1394818] <[06|00|8D|00|00]
12:52:58.616 -> [1394827] >[00|00|8D|00|C8]
12:53:08.563 -> [1404823] <[06|00|8E|00|00]
12:53:08.610 -> [1404841] >[00|00|8E|00|C8]
12:53:18.542 -> [1414828] <[06|00|8F|00|00]
12:53:18.542 -> [1414839] >[00|00|8F|00|C8]
12:53:28.474 -> [1424832] <[06|00|90|00|00]
12:53:28.521 -> [1424848] >[00|00|90|00|C8]
12:53:38.439 -> [1434838] <[06|00|91|00|00]
13:09:54.363 -> [2415472] Connecting to **.***.***.**
13:10:04.342 -> [2425482] Connecting to **.***.***.**
13:10:14.290 -> [2435490] Connecting to **.***.***.**
13:10:24.263 -> [2445503] Connecting to **.***.***.**
13:10:34.235 -> [2455510] Connecting to **.***.***.**
13:10:44.178 -> [2465523] Connecting to **.***.***.**
13:10:54.145 -> [2475534] Connecting to **.***.***.**
13:11:04.093 -> [2485542] Connecting to **.***.***.**
13:11:14.078 -> [2495551] Connecting to **.***.***.**
13:11:24.033 -> [2505562] Connecting to **.***.***.**
13:11:34.004 -> [2515572] Connecting to **.***.***.**
13:11:43.946 -> [2525580] Connecting to **.***.***.**
13:11:53.926 -> [2535587] Connecting to **.***.***.**
13:12:03.850 -> [2545595] Connecting to **.***.***.**
13:12:13.825 -> [2555603] Connecting to **.***.***.**
13:12:23.778 -> [2565612] Connecting to **.***.***.**
13:12:33.732 -> [2575624] Connecting to **.***.***.**
13:12:43.690 -> [2585635] Connecting to **.***.***.**
13:12:53.686 -> [2595659] Connecting to **.***.***.**
13:13:03.669 -> [2605680] Connecting to **.***.***.**
13:13:13.620 -> [2615690] Connecting to **.***.***.**
13:13:23.598 -> [2625698] Connecting to **.***.***.**
13:13:33.564 -> [2635718] Connecting to **.***.***.**
13:13:43.510 -> [2645730] Connecting to **.***.***.**
13:13:53.472 -> [2655738] Connecting to **.***.***.**
13:14:03.451 -> [2665748] Connecting to **.***.***.**
13:14:13.374 -> [2675755] Connecting to **.***.***.**
13:14:23.348 -> [2685766] Connecting to **.***.***.**

@PeteKnight Below is the Blynk.log file from the test with one board

Blynk.log

12:29:13.935 INFO - Using data dir '/home/mike/Documents/blynk_server'
12:29:14.004 DEBUG- Starting reading user DB.
12:29:15.060 DEBUG- Reading user DB finished.
12:29:15.061 INFO - Region : local. Host : 127.0.1.1.
12:29:15.124 INFO - Using native epoll transport.
12:29:15.848 INFO - Initializing gmail smtp mail transport. Username : example@gmail.com. SMTP host : smtp.gmail.com:587
12:29:15.898 INFO - Reports : 0
12:29:15.899 INFO - Didn't find custom user certificates.
12:29:15.901 INFO - Didn't find Let's Encrypt certificates.
12:29:15.902 WARN - You didn't specified 'server.host' or 'contact.email' properties in server.properties file. Automatic certificate generation is turned off. Please specify above properties for automatic certificates retrieval.
12:29:15.902 INFO - Using native openSSL provider.
12:29:15.902 WARN - ATTENTION. Server certificate paths (cert : '/home/mike', key : '/home/mike') not valid. Using embedded server certs and one way ssl. This is not secure. Please replace it with your own certs.
12:29:16.700 DEBUG- hard.socket.idle.timeout = 0
12:29:16.781 INFO - HTTP API and WebSockets server listening at 8080 port.
12:29:16.784 INFO - HTTPS API, WebSockets and Admin page server listening at 9443 port.
12:29:16.786 INFO - Mqtt hardware server listening at 8440 port.
12:29:43.522 TRACE- Blynk hardware plain protocol connection detected.
12:29:43.536 TRACE- Incoming HardwareLoginMessage{LoginMessage{id=1, command=LoginHardware, body='********************************'}}
12:29:43.551 TRACE- Creating unique session for user: UserKey{email='**********@gmail.com', appName='Blynk'}
12:29:43.575 DEBUG- completeLogin. [id: 0x7e53836a, L:/192.168.1.251:8080 - R:/192.168.1.1:63517]
12:29:43.581 TRACE- Connected device id 1170, dash id 1400334845
12:29:43.581 INFO - **********@gmail.com hardware joined.
12:29:43.875 TRACE- Incoming id=2, command=Internal, body='ver 0.6.1 h-beat 10 buff-in 256 dev Arduino UNO WiFi Rev2 con WiFiNINA build Dec  7 2020 12:41:32 '
12:29:43.883 TRACE- Info command. heartbeat interval 10
12:29:52.915 TRACE- Blynk hardware plain protocol connection detected.
12:29:52.923 TRACE- Incoming HardwareLoginMessage{LoginMessage{id=1, command=LoginHardware, body='********************************'}}
12:29:52.925 DEBUG- Re registering hard channel. [id: 0x4010e50b, L:/192.168.1.251:8080 - R:/192.168.1.1:56922]
12:29:52.933 DEBUG- completeLogin. [id: 0x4010e50b, L:/192.168.1.251:8080 - R:/192.168.1.1:56922]
12:29:52.934 TRACE- Connected device id 1170, dash id 1400334845
12:29:52.934 INFO - **********@gmail.com hardware joined.
12:29:53.155 TRACE- Incoming id=2, command=Internal, body='ver 0.6.1 h-beat 10 buff-in 256 dev Arduino UNO WiFi Rev2 con WiFiNINA build Dec  7 2020 12:41:32 '
12:29:53.156 TRACE- Info command. heartbeat interval 10
12:30:03.127 TRACE- Incoming id=3, command=Ping, body=''
12:30:13.095 TRACE- Incoming id=4, command=Ping, body=''
12:30:23.062 TRACE- Incoming id=5, command=Ping, body=''
12:30:33.038 TRACE- Incoming id=6, command=Ping, body=''
12:30:43.000 TRACE- Incoming id=7, command=Ping, body=''
12:30:52.965 TRACE- Incoming id=8, command=Ping, body=''
12:31:02.937 TRACE- Incoming id=9, command=Ping, body=''
12:31:12.903 TRACE- Incoming id=10, command=Ping, body=''
12:31:18.184 TRACE- HTTP connection detected.
12:31:18.252 TRACE- In http and websocket unificator handler.
12:31:22.870 TRACE- Incoming id=11, command=Ping, body=''
12:31:32.838 TRACE- Incoming id=12, command=Ping, body=''
12:31:42.805 TRACE- Incoming id=13, command=Ping, body=''
12:31:52.767 TRACE- Incoming id=14, command=Ping, body=''
12:32:02.730 TRACE- Incoming id=15, command=Ping, body=''
12:32:12.695 TRACE- Incoming id=16, command=Ping, body=''
12:32:22.659 TRACE- Incoming id=17, command=Ping, body=''
12:32:32.626 TRACE- Incoming id=18, command=Ping, body=''
12:32:42.590 TRACE- Incoming id=19, command=Ping, body=''
12:32:52.564 TRACE- Incoming id=20, command=Ping, body=''
12:33:02.538 TRACE- Incoming id=21, command=Ping, body=''
12:33:12.489 TRACE- Incoming id=22, command=Ping, body=''
12:33:22.450 TRACE- Incoming id=23, command=Ping, body=''
12:33:32.417 TRACE- Incoming id=24, command=Ping, body=''
12:33:42.380 TRACE- Incoming id=25, command=Ping, body=''
12:33:52.394 TRACE- Incoming id=26, command=Ping, body=''
12:34:02.355 TRACE- Incoming id=27, command=Ping, body=''
12:34:12.391 TRACE- Incoming id=28, command=Ping, body=''
12:34:22.243 TRACE- Incoming id=29, command=Ping, body=''
12:34:32.205 TRACE- Incoming id=30, command=Ping, body=''
12:34:42.170 TRACE- Incoming id=31, command=Ping, body=''
12:34:52.133 TRACE- Incoming id=32, command=Ping, body=''
12:35:02.098 TRACE- Incoming id=33, command=Ping, body=''
12:35:12.063 TRACE- Incoming id=34, command=Ping, body=''
12:35:22.023 TRACE- Incoming id=35, command=Ping, body=''
12:35:31.987 TRACE- Incoming id=36, command=Ping, body=''
12:35:41.950 TRACE- Incoming id=37, command=Ping, body=''
12:35:51.908 TRACE- Incoming id=38, command=Ping, body=''
12:36:01.869 TRACE- Incoming id=39, command=Ping, body=''
12:36:11.834 TRACE- Incoming id=40, command=Ping, body=''
12:36:21.799 TRACE- Incoming id=41, command=Ping, body=''
12:36:31.760 TRACE- Incoming id=42, command=Ping, body=''
12:36:41.716 TRACE- Incoming id=43, command=Ping, body=''
12:36:51.675 TRACE- Incoming id=44, command=Ping, body=''
12:37:01.635 TRACE- Incoming id=45, command=Ping, body=''
12:37:11.596 TRACE- Incoming id=46, command=Ping, body=''
12:37:21.553 TRACE- Incoming id=47, command=Ping, body=''
12:37:31.514 TRACE- Incoming id=48, command=Ping, body=''
12:37:41.474 TRACE- Incoming id=49, command=Ping, body=''
12:37:51.433 TRACE- Incoming id=50, command=Ping, body=''
12:38:01.435 TRACE- Incoming id=51, command=Ping, body=''
12:38:11.458 TRACE- Incoming id=52, command=Ping, body=''
12:38:21.314 TRACE- Incoming id=53, command=Ping, body=''
12:38:31.271 TRACE- Incoming id=54, command=Ping, body=''
12:38:41.235 TRACE- Incoming id=55, command=Ping, body=''
12:38:51.188 TRACE- Incoming id=56, command=Ping, body=''
12:39:01.150 TRACE- Incoming id=57, command=Ping, body=''
12:39:11.106 TRACE- Incoming id=58, command=Ping, body=''
12:39:21.062 TRACE- Incoming id=59, command=Ping, body=''
12:39:31.023 TRACE- Incoming id=60, command=Ping, body=''
12:39:40.984 TRACE- Incoming id=61, command=Ping, body=''
12:39:50.942 TRACE- Incoming id=62, command=Ping, body=''
12:40:00.900 TRACE- Incoming id=63, command=Ping, body=''
12:40:10.861 TRACE- Incoming id=64, command=Ping, body=''
12:40:20.823 TRACE- Incoming id=65, command=Ping, body=''
12:40:30.780 TRACE- Incoming id=66, command=Ping, body=''
12:40:40.739 TRACE- Incoming id=67, command=Ping, body=''
12:40:50.703 TRACE- Incoming id=68, command=Ping, body=''
12:41:00.660 TRACE- Incoming id=69, command=Ping, body=''
12:41:10.615 TRACE- Incoming id=70, command=Ping, body=''
12:41:20.576 TRACE- Incoming id=71, command=Ping, body=''
12:41:30.540 TRACE- Incoming id=72, command=Ping, body=''
12:41:40.522 TRACE- Incoming id=73, command=Ping, body=''
12:41:50.481 TRACE- Incoming id=74, command=Ping, body=''
12:42:00.523 TRACE- Incoming id=75, command=Ping, body=''
12:42:10.370 TRACE- Incoming id=76, command=Ping, body=''
12:42:20.330 TRACE- Incoming id=77, command=Ping, body=''
12:42:30.287 TRACE- Incoming id=78, command=Ping, body=''
12:42:40.250 TRACE- Incoming id=79, command=Ping, body=''
12:42:50.206 TRACE- Incoming id=80, command=Ping, body=''
12:43:00.169 TRACE- Incoming id=81, command=Ping, body=''
12:43:10.128 TRACE- Incoming id=82, command=Ping, body=''
12:43:20.091 TRACE- Incoming id=83, command=Ping, body=''
12:43:30.049 TRACE- Incoming id=84, command=Ping, body=''
12:43:40.013 TRACE- Incoming id=85, command=Ping, body=''
12:43:49.975 TRACE- Incoming id=86, command=Ping, body=''
12:43:59.940 TRACE- Incoming id=87, command=Ping, body=''
12:44:09.902 TRACE- Incoming id=88, command=Ping, body=''
12:44:19.875 TRACE- Incoming id=89, command=Ping, body=''
12:44:29.829 TRACE- Incoming id=90, command=Ping, body=''
12:44:39.787 TRACE- Incoming id=91, command=Ping, body=''
12:44:49.747 TRACE- Incoming id=92, command=Ping, body=''
12:44:59.709 TRACE- Incoming id=93, command=Ping, body=''
12:45:09.670 TRACE- Incoming id=94, command=Ping, body=''
12:45:19.625 TRACE- Incoming id=95, command=Ping, body=''
12:45:29.584 TRACE- Incoming id=96, command=Ping, body=''
12:45:39.541 TRACE- Incoming id=97, command=Ping, body=''
12:45:49.496 TRACE- Incoming id=98, command=Ping, body=''
12:45:59.464 TRACE- Incoming id=99, command=Ping, body=''
12:46:09.418 TRACE- Incoming id=100, command=Ping, body=''
12:46:19.375 TRACE- Incoming id=101, command=Ping, body=''
12:46:29.329 TRACE- Incoming id=102, command=Ping, body=''
12:46:39.292 TRACE- Incoming id=103, command=Ping, body=''
12:46:49.241 TRACE- Incoming id=104, command=Ping, body=''
12:46:59.198 TRACE- Incoming id=105, command=Ping, body=''
12:47:09.154 TRACE- Incoming id=106, command=Ping, body=''
12:47:19.112 TRACE- Incoming id=107, command=Ping, body=''
12:47:29.070 TRACE- Incoming id=108, command=Ping, body=''
12:47:39.025 TRACE- Incoming id=109, command=Ping, body=''
12:47:48.983 TRACE- Incoming id=110, command=Ping, body=''
12:47:58.940 TRACE- Incoming id=111, command=Ping, body=''
12:48:08.898 TRACE- Incoming id=112, command=Ping, body=''
12:48:18.856 TRACE- Incoming id=113, command=Ping, body=''
12:48:28.815 TRACE- Incoming id=114, command=Ping, body=''
12:48:38.772 TRACE- Incoming id=115, command=Ping, body=''
12:48:48.728 TRACE- Incoming id=116, command=Ping, body=''
12:48:58.683 TRACE- Incoming id=117, command=Ping, body=''
12:49:08.640 TRACE- Incoming id=118, command=Ping, body=''
12:49:18.597 TRACE- Incoming id=119, command=Ping, body=''
12:49:28.553 TRACE- Incoming id=120, command=Ping, body=''
12:49:38.510 TRACE- Incoming id=121, command=Ping, body=''
12:49:48.474 TRACE- Incoming id=122, command=Ping, body=''
12:49:58.426 TRACE- Incoming id=123, command=Ping, body=''
12:50:08.382 TRACE- Incoming id=124, command=Ping, body=''
12:50:18.339 TRACE- Incoming id=125, command=Ping, body=''
12:50:28.295 TRACE- Incoming id=126, command=Ping, body=''
12:50:38.252 TRACE- Incoming id=127, command=Ping, body=''
12:50:48.211 TRACE- Incoming id=128, command=Ping, body=''
12:50:58.167 TRACE- Incoming id=129, command=Ping, body=''
12:51:08.123 TRACE- Incoming id=130, command=Ping, body=''
12:51:18.080 TRACE- Incoming id=131, command=Ping, body=''
12:51:28.047 TRACE- Incoming id=132, command=Ping, body=''
12:51:37.995 TRACE- Incoming id=133, command=Ping, body=''
12:51:47.952 TRACE- Incoming id=134, command=Ping, body=''
12:51:57.905 TRACE- Incoming id=135, command=Ping, body=''
12:52:07.871 TRACE- Incoming id=136, command=Ping, body=''
12:52:17.816 TRACE- Incoming id=137, command=Ping, body=''
12:52:27.772 TRACE- Incoming id=138, command=Ping, body=''
12:52:37.730 TRACE- Incoming id=139, command=Ping, body=''
12:52:47.685 TRACE- Incoming id=140, command=Ping, body=''
12:52:57.642 TRACE- Incoming id=141, command=Ping, body=''
12:53:07.605 TRACE- Incoming id=142, command=Ping, body=''
12:53:17.551 TRACE- Incoming id=143, command=Ping, body=''
12:53:27.514 TRACE- Incoming id=144, command=Ping, body=''
12:53:37.466 TRACE- Incoming id=145, command=Ping, body=''
12:58:04.689 TRACE- HTTP connection detected.
12:58:04.692 TRACE- In http and websocket unificator handler.
13:08:30.164 TRACE- HTTP connection detected.

What type of device is your server running on?
Is it doing anything else?

Is your home network simple - one router acting as a WAP and nothing else, or more complex with repeaters etc?

Either way, rebooting everything, and simplifying things if it’s a complex setup is something to look at.

Do you have any other types of boards available - NodeMCUs for example?

Pete.

@PeteKnight I’m running a Java 8 server on debian linux over ethernet. It is not doing anything else. I have a simple wifi setup (single router for all devices). I do have an arduino uno and a mega. Sorry it took so long to reply. I’ve been working 12hr shifts all week and it’s catching up to me. Unfortunately I’m about to have to do it again here in a few so I’ll have to try the reboot thing when I get home.

Do you have an Ethernet shield for your Uno/Mega?

If so then I’d try running a simple sketch on that., even though these Ethernet shields are a bit unreliable.
If you can get your hands on a NodeMCU then testing with one of these is the preferred option.

Is there any possibility that it’s a power supply issue with your existing boards?

Pete.

@PeteKnight I don’t have an ethernet shield, but I do have a wifi module (ESP8266). I do have a multimeter so I can check that it is getting the full 5v. I’ll get back to you after running these tests and let you know.

Most 8266s will burn up with 5v supply. Take a picture of the module you have and post it here.

I worded my last post a little screwy. I was referring to checking my 2 uno wifi rev 2’s with the multimeter.

I assume that you’re powering it via USB?

Maybe worth plugging a 7-12v power supply into the power port instead.

Pete.

@PeteKnight @daveblynk This is my door unlocking robot project. The two Arduino Uno Wifi rev 2’s use the same power supply and LCD display. I unsoldered the headers on one of the arduinos and put stackable headers in its place. I then plugged it into the bottom uno wifi and plugged the shield into the top of those. The rfid shield receives the main power source which is transfered through the 5v and ground pins to both arduinos.

I did end up measuring the voltage on the 2 terminals for power on the shield, on the pins leading to the first arduino, and the pins leading to the second arduino. The measurements were 5.1V-5.2V at the power terminal, about 5.1V between the shield and first arduino, and 4.98V on the pins leading to the bottom arduino.

I had issues setting up esp8266 module with my regular arduino uno that I’m going to setup the example sketch on, but I’ll get it working tomorrow and let you know how it goes.