diff --git a/data/js/settings.js b/data/js/settings.js
index 6c1d9a39e19844568902e3c276a8591dee95cfa7..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/data/js/settings.js
+++ b/data/js/settings.js
@@ -1,3 +0,0 @@
-ssid="smartpower2";
-ipaddr="192.168.4.1";
-passwd="12345678";
diff --git a/data/txt/settings.txt b/data/txt/settings.txt
index e94e0f50d2b65a2cfe96bc6a9d13bc5fa3b6d074..d3c82da70c9fa27d06baeb219a476fe81046063e 100644
--- a/data/txt/settings.txt
+++ b/data/txt/settings.txt
@@ -1,2 +1,3 @@
 autorun=0
 voltage=5.00
+firstboot=1
diff --git a/src/smartpower2.ino b/src/smartpower2.ino
index 5756ab913458d2ab9e540ed916258a4470f7b2bd..d4283c76cb9c392436756fc4f7e68405c7178dc3 100644
--- a/src/smartpower2.ino
+++ b/src/smartpower2.ino
@@ -338,8 +338,10 @@ void handleClientData(uint8_t num, String data)
 
 void fs_init(void)
 {
+    String ssidTemp = "ssid=\"SmartPower2_" + String(ESP.getChipId(), HEX) + "\"";
+
     File f = SPIFFS.open("/js/settings.js", "w");
-    f.println("ssid=\"sp2\"");
+    f.println(ssidTemp.c_str());
     f.println("ipaddr=\"192.168.4.1\"");
     f.println("passwd=\"12345678\"");
     f.flush();
@@ -348,7 +350,8 @@ void fs_init(void)
 
     File f2 = SPIFFS.open("/txt/settings.txt", "w");
     f2.println("autorun=0");
-    f2.print("voltage=5.00");
+    f2.println("voltage=5.00");
+    f2.println("firstboot=0");
     f2.flush();
     f2.close();
     readHWSettings();
@@ -421,11 +424,44 @@ void readNetworkConfig(void)
     f.close();
 }
 
+bool isFirstBoot()
+{
+  File f = SPIFFS.open("/txt/settings.txt", "r");
+
+  f.seek(0, SeekSet);
+  f.findUntil("firstboot", "\n\r");
+  f.seek(1, SeekCur);
+  int value = f.readStringUntil('\n').toInt();
+
+  bool result;
+  if (value)
+  {
+    result = true;
+  }
+  else
+  {
+    result = false;
+  }
+
+  f.close();
+
+  return result;
+}
+
 void initSmartPower(void)
 {
-    readHWSettings();
+    if (isFirstBoot())
+    {
+      fs_init();
+    }
+    else
+    {
+      readHWSettings();
+      readNetworkConfig();
+    }
+
     onoff = !autorun;
-    readNetworkConfig();
+
 
     mcp4652_write(WRITE_WIPER0, quadraticRegression(setVoltage));
     pinMode(POWER, OUTPUT);