     File f = SPIFFS.open("/zconfig.txt", "r");
     String str=f.readString();
     f.close();
-    if((str!=0)&&(str.length()>0))
-    {
-      char ssi[str.length()+1];
-      strcpy(ssi,str.c_str());
-      char *pw=strstr(ssi,",");
-      if(pw>ssi)
+    if((str!=null)&&(str.length()>0))
+    {
+      int argn=0;
+      for(int i=0;i<str.length();i++)
       {
-        *pw=0;
-        pw++;
-        if(connectWifi(ssi,pw))
-          Serial.printf("CONNECTED TO %s (%s)\r\n",ssi,WiFi.localIP().toString().c_str());
+        if((str[i]==',')&&(argn<9))
+          argn++;
         else
-          Serial.printf("ERROR ON %s\r\n",ssi);
+          argv[argn] += str[i];
       }
     }
   }
+  if(argv[2].length()>0)
+    commandMode.baudRate=atoi(argv[2].c_str());
+  if(commandMode.baudRate <= 0)
+    commandMode.baudRate=115200;
+  Serial.begin(commandMode.baudRate);  //Start Serial
+  Serial.print("\r\nZiModem v");
+  Serial.setTimeout(60000);
+  Serial.println(ZIMODEM_VERSION);
+  Serial.printf("sdk=%s core=%s cpu@%d\r\n",ESP.getSdkVersion(),ESP.getCoreVersion().c_str(),ESP.getCpuFreqMHz());
+  Serial.printf("flash chipid=%d size=%d rsize=%d speed=%d\r\n",ESP.getFlashChipId(),ESP.getFlashChipSize(),ESP.getFlashChipRealSize(),ESP.getFlashChipSpeed());
+  if(argv[0].length()>0)
+  {
+    commandMode.wifiSSI=argv[0];
+    commandMode.wifiPW=argv[1];
+    if(connectWifi(argv[0].c_str(),argv[1].c_str()))
+      msg = "CONNECTED TO " + argv[0] + " (" + WiFi.localIP().toString().c_str() + ")\r\n";
+    else
+      msg = "ERROR ON " + argv[0] + "\r\n";
+  }
+  Serial.print(msg);
   Serial.println("READY.");
 }
 

#include <spiffs/spiffs.h>

#define ZIMODEM_VERSION "0.1"

class ZMode
{


void setup() 
{
  delay(10);
  SPIFFS.begin();
  String msg;
  String argv[10];
  if(!SPIFFS.exists("/zconfig.txt"))
  {
    msg="INITAILIZED\r\n";
    SPIFFS.format();
    File f = SPIFFS.open("/zconfig.txt", "w");
    f.printf(",,115200");
    f.close();
  }
  else
