From 8ee713b616f6b47192e3cb4078db93408c20597f Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Wed, 22 Jan 2020 15:26:07 +0100 Subject: [PATCH 01/41] Included some code from @dakarym to support the self powered board for testing --- src/AmsToMqttBridge.ino | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino index 69ce40c6..0160c227 100644 --- a/src/AmsToMqttBridge.ino +++ b/src/AmsToMqttBridge.ino @@ -4,9 +4,7 @@ Author: roarf */ - -//#define HAS_DALLAS_TEMP_SENSOR 1 // Set to zero if Dallas one wire temp sensor is not present -//#define IS_CUSTOM_AMS_BOARD 1 // Set to zero if using NodeMCU or board not designed by Roar Fredriksen +ADC_MODE(ADC_VCC); #include #include @@ -77,6 +75,15 @@ void setup() { debugger->println("Started..."); } + if (ESP.getVcc() < 3300) { + if(debugger) { + debugger->print("Voltage is too low: "); + debugger->print(ESP.getVcc()); + debugger->println("v"); + } + ESP.deepSleep(5000000); //Deep sleep for 5 seconds to allow output cap to charge up + } + // Flash the LED, to indicate we can boot as AP now pinMode(LED_PIN, OUTPUT); led_on(); From aef78962fb63b3fc62545ea424acf35480900f47 Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Thu, 23 Jan 2020 18:47:02 +0100 Subject: [PATCH 02/41] Some modifications to reduce power consumption i AP mode --- lib/HanConfigAp/src/HanConfigAp.cpp | 7 ++++--- src/AmsToMqttBridge.ino | 12 ++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/HanConfigAp/src/HanConfigAp.cpp b/lib/HanConfigAp/src/HanConfigAp.cpp index 8cfeef96..daa09dda 100644 --- a/lib/HanConfigAp/src/HanConfigAp.cpp +++ b/lib/HanConfigAp/src/HanConfigAp.cpp @@ -28,8 +28,8 @@ void HanConfigAp::setup(int accessPointButtonPin, Stream* debugger) // Assign pin for boot as AP pinMode(accessPointButtonPin, INPUT_PULLUP); - // Test if we're holding down the AP pin, over 5 seconds - int time = millis() + 5000; + // Test if we're holding down the AP pin, over 1 second + int time = millis() + 1000; print("Press the AP button now to boot as access point"); while (millis() < time) { @@ -55,8 +55,9 @@ void HanConfigAp::setup(int accessPointButtonPin, Stream* debugger) WiFi.mode(WIFI_OFF); delay(2000); - WiFi.softAP(AP_SSID); WiFi.mode(WIFI_AP); + WiFi.setOutputPower(0); + WiFi.softAP(AP_SSID); /* Setup the DNS server redirecting all the domains to this IP */ dnsServer.setErrorReplyCode(DNSReplyCode::NoError); diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino index 0160c227..9f0c56e7 100644 --- a/src/AmsToMqttBridge.ino +++ b/src/AmsToMqttBridge.ino @@ -73,13 +73,16 @@ void setup() { while (!debugger); debugger->println(""); debugger->println("Started..."); + debugger->print("Voltage: "); + debugger->print(ESP.getVcc()); + debugger->println("mV"); } if (ESP.getVcc() < 3300) { if(debugger) { debugger->print("Voltage is too low: "); debugger->print(ESP.getVcc()); - debugger->println("v"); + debugger->println("mV"); } ESP.deepSleep(5000000); //Deep sleep for 5 seconds to allow output cap to charge up } @@ -138,8 +141,11 @@ void loop() else { // Continously flash the LED when AP mode - if (millis() / 1000 % 2 == 0) led_on(); + if (millis() / 50 % 64 == 0) led_on(); else led_off(); + + // Make sure there is enough power to run + delay(max(10, 3500-ESP.getVcc())); } ws.loop(); } @@ -229,6 +235,7 @@ void readHanPort() json["id"] = WiFi.macAddress(); json["up"] = millis(); json["t"] = time; + json["vcc"] = ((double) ESP.getVcc()) / 1000; // Add a sub-structure to the json object, // to keep the data from the meter itself @@ -372,6 +379,7 @@ void sendMqttData(String data) json["id"] = WiFi.macAddress(); json["up"] = millis(); json["data"] = data; + json["vcc"] = ((double) ESP.getVcc()) / 1000; // Stringify the json String msg; From 27cb5dd8333b8178d35227358e0169157d153948 Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Thu, 6 Feb 2020 19:15:06 +0100 Subject: [PATCH 03/41] Trying a large sleep when cap is not charged --- src/AmsToMqttBridge.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino index 1545f374..9adaddfb 100644 --- a/src/AmsToMqttBridge.ino +++ b/src/AmsToMqttBridge.ino @@ -97,7 +97,7 @@ void setup() { debugger->print(ESP.getVcc()); debugger->println("mV"); } - ESP.deepSleep(5000000); //Deep sleep for 5 seconds to allow output cap to charge up + ESP.deepSleep(10000000); //Deep sleep to allow output cap to charge up } // Flash the LED, to indicate we can boot as AP now From f6df84bf9a26ffbe6ea99bafa0a7c23a9f8e2ea8 Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Tue, 11 Feb 2020 18:40:38 +0100 Subject: [PATCH 04/41] Auto detect meter type --- lib/HanConfigAp/src/configuration.cpp | 5 - lib/HanConfigAp/src/configuration.h | 2 +- src/AmsToMqttBridge.ino | 197 ++++++++++++++++---------- src/web/AmsWebServer.cpp | 82 ++++------- 4 files changed, 151 insertions(+), 135 deletions(-) diff --git a/lib/HanConfigAp/src/configuration.cpp b/lib/HanConfigAp/src/configuration.cpp index 3c14091c..34715e63 100644 --- a/lib/HanConfigAp/src/configuration.cpp +++ b/lib/HanConfigAp/src/configuration.cpp @@ -69,19 +69,14 @@ bool configuration::load() ssid = 0; ssidPassword = 0; - meterType = (byte)0; mqttHost = 0; mqttClientID = 0; mqttPublishTopic = 0; mqttSubscribeTopic = 0; mqttUser = 0; mqttPass = 0; - mqttPort = 1883; - authSecurity = 0; authUser = 0; authPass = 0; - fuseSize = 0; - distSys = 0; EEPROM.begin(EEPROM_SIZE); int cs = EEPROM.read(address); diff --git a/lib/HanConfigAp/src/configuration.h b/lib/HanConfigAp/src/configuration.h index 13640773..471bcec7 100644 --- a/lib/HanConfigAp/src/configuration.h +++ b/lib/HanConfigAp/src/configuration.h @@ -17,7 +17,7 @@ public: char* ssid; char* ssidPassword; char* mqttHost; - int mqttPort; + int mqttPort = 1883; char* mqttClientID; char* mqttPublishTopic; char* mqttSubscribeTopic; diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino index a1d1099c..51a68216 100644 --- a/src/AmsToMqttBridge.ino +++ b/src/AmsToMqttBridge.ino @@ -13,6 +13,10 @@ #include "HanReader.h" #include "HanToJson.h" +#include "Aidon.h" +#include "Kaifa.h" +#include "Kamstrup.h" + // Configuration configuration config; @@ -68,44 +72,40 @@ void setup() { led_off(); - if (!ap.isActivated) - { + if (!ap.isActivated) { setupWiFi(); - - // Configure uart for AMS data -#if defined SOFTWARE_SERIAL - if(config.meterType == 3) { - hanSerial->begin(2400, SWSERIAL_8N1); - } else { - hanSerial->begin(2400, SWSERIAL_8E1); - } -#else - if(config.meterType == 3) { - hanSerial->begin(2400, SERIAL_8N1); - } else { - hanSerial->begin(2400, SERIAL_8E1); - } -#if defined UART2 - hanSerial->swap(); -#endif -#endif - while (!&hanSerial); - - hanReader.setup(hanSerial, debugger); - - // Compensate for the known Kaifa bug - hanReader.compensateFor09HeaderBug = (config.meterType == 1); } +#if defined SOFTWARE_SERIAL + if(config.meterType == 3) { + hanSerial->begin(2400, SWSERIAL_8N1); + } else { + hanSerial->begin(2400, SWSERIAL_8E1); + } +#else + if(config.meterType == 3) { + hanSerial->begin(2400, SERIAL_8N1); + } else { + hanSerial->begin(2400, SERIAL_8E1); + } +#if defined UART2 + hanSerial->swap(); +#endif +#endif + while (!&hanSerial); + + hanReader.setup(hanSerial, debugger); + + // Compensate for the known Kaifa bug + hanReader.compensateFor09HeaderBug = (config.meterType == 1); + ws.setup(&config, debugger); } // the loop function runs over and over again until power down or reset -void loop() -{ +void loop() { // Only do normal stuff if we're not booted as AP - if (!ap.loop()) - { + if (!ap.loop()) { // Turn off the LED led_off(); @@ -121,15 +121,12 @@ void loop() } } } - - readHanPort(); - } - else - { + } else { // Continously flash the LED when AP mode if (millis() / 1000 % 2 == 0) led_on(); else led_off(); } + readHanPort(); ws.loop(); } @@ -189,57 +186,111 @@ void mqttMessageReceived(String &topic, String &payload) // Ideas could be to query for values or to initiate OTA firmware update } -void readHanPort() -{ - if (hanReader.read() && config.hasConfig()) - { - // Flash LED on, this shows us that data is received - led_on(); +bool even = true; +unsigned long lastSuccessfulRead = 0; +void readHanPort() { + if (hanReader.read()) { + lastSuccessfulRead = millis(); - // Get the timestamp (as unix time) from the package - time_t time = hanReader.getPackageTime(); - if (debugger) debugger->print("Time of the package is: "); - if (debugger) debugger->println(time); + if(config.meterType > 0) { + // Flash LED on, this shows us that data is received + led_on(); - // Define a json object to keep the data - StaticJsonDocument<500> json; + // Get the timestamp (as unix time) from the package + time_t time = hanReader.getPackageTime(); + if (debugger) debugger->print("Time of the package is: "); + if (debugger) debugger->println(time); - // Any generic useful info here - json["id"] = WiFi.macAddress(); - json["up"] = millis(); - json["t"] = time; + // Define a json object to keep the data + StaticJsonDocument<500> json; - // Add a sub-structure to the json object, - // to keep the data from the meter itself - JsonObject data = json.createNestedObject("data"); + // Any generic useful info here + json["id"] = WiFi.macAddress(); + json["up"] = millis(); + json["t"] = time; + + // Add a sub-structure to the json object, + // to keep the data from the meter itself + JsonObject data = json.createNestedObject("data"); #if defined TEMP_SENSOR_PIN - // Get the temperature too - tempSensor.requestTemperatures(); - data["temp"] = tempSensor.getTempCByIndex(0); + // Get the temperature too + tempSensor.requestTemperatures(); + data["temp"] = tempSensor.getTempCByIndex(0); #endif - hanToJson(data, config.meterType, hanReader); + hanToJson(data, config.meterType, hanReader); - if(config.mqttHost != 0 && strlen(config.mqttHost) != 0 && config.mqttPublishTopic != 0 && strlen(config.mqttPublishTopic) != 0) { - // Write the json to the debug port - if (debugger) { - debugger->print("Sending data to MQTT: "); - serializeJsonPretty(json, *debugger); - debugger->println(); + if(config.mqttHost != 0 && strlen(config.mqttHost) != 0 && config.mqttPublishTopic != 0 && strlen(config.mqttPublishTopic) != 0) { + // Write the json to the debug port + if (debugger) { + debugger->print("Sending data to MQTT: "); + serializeJsonPretty(json, *debugger); + debugger->println(); + } + + // Publish the json to the MQTT server + String msg; + serializeJson(json, msg); + + mqtt.publish(config.mqttPublishTopic, msg.c_str()); + mqtt.loop(); } + ws.setJson(json); - // Publish the json to the MQTT server - String msg; - serializeJson(json, msg); - - mqtt.publish(config.mqttPublishTopic, msg.c_str()); - mqtt.loop(); + // Flash LED off + led_off(); + } else { + for(int i = 1; i <= 3; i++) { + String list; + switch(i) { + case 1: + list = hanReader.getString((int) Kaifa_List1Phase::ListVersionIdentifier); + break; + case 2: + list = hanReader.getString((int) Aidon_List1Phase::ListVersionIdentifier); + break; + case 3: + list = hanReader.getString((int) Kamstrup_List1Phase::ListVersionIdentifier); + break; + } + if(!list.isEmpty()) { + list.toLowerCase(); + if(list.startsWith("kfm")) { + config.meterType = 1; + if(debugger) debugger->println("Detected Kaifa meter"); + break; + } else if(list.startsWith("aidon")) { + config.meterType = 2; + if(debugger) debugger->println("Detected Aidon meter"); + break; + } else if(list.startsWith("kamstrup")) { + config.meterType = 3; + if(debugger) debugger->println("Detected Kamstrup meter"); + break; + } + } + } + hanReader.compensateFor09HeaderBug = (config.meterType == 1); } - ws.setJson(json); + } - // Flash LED off - led_off(); + if(config.meterType == 0 && millis() - lastSuccessfulRead > 10000) { + lastSuccessfulRead = millis(); +#if defined SOFTWARE_SERIAL + if(even) { + hanSerial->begin(2400, SWSERIAL_8N1); + } else { + hanSerial->begin(2400, SWSERIAL_8E1); + } +#else + if(even) { + hanSerial->begin(2400, SERIAL_8N1); + } else { + hanSerial->begin(2400, SERIAL_8E1); + } +#endif + even = !even; } } diff --git a/src/web/AmsWebServer.cpp b/src/web/AmsWebServer.cpp index d8c15b24..a90a353d 100644 --- a/src/web/AmsWebServer.cpp +++ b/src/web/AmsWebServer.cpp @@ -155,62 +155,32 @@ void AmsWebServer::configurationHtml() { server.sendHeader("Pragma", "no-cache"); server.sendHeader("Expires", "-1"); - if(config->hasConfig()) { - html.replace("${config.ssid}", config->ssid); - html.replace("${config.ssidPassword}", config->ssidPassword); - html.replace("${config.meterType}", String(config->fuseSize)); - for(int i = 0; i<4; i++) { - html.replace("${config.meterType" + String(i) + "}", config->meterType == i ? "selected" : ""); - } - html.replace("${config.mqtt}", config->mqttHost == 0 ? "" : "checked"); - html.replace("${config.mqttHost}", config->mqttHost); - html.replace("${config.mqttPort}", String(config->mqttPort)); - html.replace("${config.mqttClientID}", config->mqttClientID); - html.replace("${config.mqttPublishTopic}", config->mqttPublishTopic); - html.replace("${config.mqttSubscribeTopic}", config->mqttSubscribeTopic); - html.replace("${config.mqttUser}", config->mqttUser); - html.replace("${config.mqttPass}", config->mqttPass); - html.replace("${config.authUser}", config->authUser); - html.replace("${config.authSecurity}", String(config->authSecurity)); - for(int i = 0; i<3; i++) { - html.replace("${config.authSecurity" + String(i) + "}", config->authSecurity == i ? "selected" : ""); - } - html.replace("${config.authPass}", config->authPass); - html.replace("${config.fuseSize}", String(config->fuseSize)); - for(int i = 0; i<64; i++) { - html.replace("${config.fuseSize" + String(i) + "}", config->fuseSize == i ? "selected" : ""); - } - for(int i = 0; i<3; i++) { - html.replace("${config.distSys" + String(i) + "}", config->distSys == i ? "selected" : ""); - } - } else { - html.replace("${config.ssid}", ""); - html.replace("${config.ssidPassword}", ""); - html.replace("${config.meterType}", ""); - for(int i = 0; i<4; i++) { - html.replace("${config.meterType" + String(i) + "}", i == 0 ? "selected" : ""); - } - html.replace("${config.mqtt}", ""); - html.replace("${config.mqttHost}", ""); - html.replace("${config.mqttPort}", "1883"); - html.replace("${config.mqttClientID}", ""); - html.replace("${config.mqttPublishTopic}", ""); - html.replace("${config.mqttSubscribeTopic}", ""); - html.replace("${config.mqttUser}", ""); - html.replace("${config.mqttPass}", ""); - html.replace("${config.authSecurity}", ""); - for(int i = 0; i<3; i++) { - html.replace("${config.authSecurity" + String(i) + "}", i == 0 ? "selected" : ""); - } - html.replace("${config.authUser}", ""); - html.replace("${config.authPass}", ""); - html.replace("${config.fuseSize}", ""); - for(int i = 0; i<64; i++) { - html.replace("${config.fuseSize" + String(i) + "}", i == 0 ? "selected" : ""); - } - for(int i = 0; i<3; i++) { - html.replace("${config.distSys" + String(i) + "}", i == 0 ? "selected" : ""); - } + html.replace("${config.ssid}", config->ssid); + html.replace("${config.ssidPassword}", config->ssidPassword); + html.replace("${config.meterType}", String(config->fuseSize)); + for(int i = 0; i<4; i++) { + html.replace("${config.meterType" + String(i) + "}", config->meterType == i ? "selected" : ""); + } + html.replace("${config.mqtt}", config->mqttHost == 0 ? "" : "checked"); + html.replace("${config.mqttHost}", config->mqttHost); + html.replace("${config.mqttPort}", String(config->mqttPort)); + html.replace("${config.mqttClientID}", config->mqttClientID); + html.replace("${config.mqttPublishTopic}", config->mqttPublishTopic); + html.replace("${config.mqttSubscribeTopic}", config->mqttSubscribeTopic); + html.replace("${config.mqttUser}", config->mqttUser); + html.replace("${config.mqttPass}", config->mqttPass); + html.replace("${config.authUser}", config->authUser); + html.replace("${config.authSecurity}", String(config->authSecurity)); + for(int i = 0; i<3; i++) { + html.replace("${config.authSecurity" + String(i) + "}", config->authSecurity == i ? "selected" : ""); + } + html.replace("${config.authPass}", config->authPass); + html.replace("${config.fuseSize}", String(config->fuseSize)); + for(int i = 0; i<64; i++) { + html.replace("${config.fuseSize" + String(i) + "}", config->fuseSize == i ? "selected" : ""); + } + for(int i = 0; i<3; i++) { + html.replace("${config.distSys" + String(i) + "}", config->distSys == i ? "selected" : ""); } server.send(200, "text/html", html); } From a06729b535cef7cba8bec14a723635090f1b3274 Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Wed, 12 Feb 2020 20:11:55 +0100 Subject: [PATCH 05/41] Bugfix for previous commit --- src/web/AmsWebServer.cpp | 2 +- web/index.html | 25 +++++-------------------- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/src/web/AmsWebServer.cpp b/src/web/AmsWebServer.cpp index 0a59572d..b8660527 100644 --- a/src/web/AmsWebServer.cpp +++ b/src/web/AmsWebServer.cpp @@ -240,7 +240,7 @@ void AmsWebServer::dataJson() { if(!checkSecurity(2)) return; - StaticJsonDocument<500> json; + StaticJsonDocument<768> json; String jsonStr; if(!this->json.isNull() && this->json.containsKey("data")) { diff --git a/web/index.html b/web/index.html index 9b3c12bd..1527f5ea 100644 --- a/web/index.html +++ b/web/index.html @@ -186,8 +186,7 @@ From c114b777c70d2a60871f993e346623a3fa8c72d1 Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Thu, 13 Feb 2020 20:40:33 +0100 Subject: [PATCH 06/41] Minor changes to UI --- hardware/v1/kicad/HAN_ESP_TSS721-rescue.dcm | 3 + hardware/v1/kicad/HAN_ESP_TSS721-rescue.lib | 356 +++++++ .../v1/kicad/_autosave-HAN_ESP_TSS721.sch | 920 ++++++++++++++++++ hardware/v1/kicad/sym-lib-table | 1 + web/configmeter.html | 113 +++ web/configwifi.html | 110 +++ web/index.html | 6 +- 7 files changed, 1506 insertions(+), 3 deletions(-) create mode 100644 hardware/v1/kicad/HAN_ESP_TSS721-rescue.dcm create mode 100644 hardware/v1/kicad/HAN_ESP_TSS721-rescue.lib create mode 100644 hardware/v1/kicad/_autosave-HAN_ESP_TSS721.sch create mode 100644 web/configmeter.html create mode 100644 web/configwifi.html diff --git a/hardware/v1/kicad/HAN_ESP_TSS721-rescue.dcm b/hardware/v1/kicad/HAN_ESP_TSS721-rescue.dcm new file mode 100644 index 00000000..5f3ed79b --- /dev/null +++ b/hardware/v1/kicad/HAN_ESP_TSS721-rescue.dcm @@ -0,0 +1,3 @@ +EESchema-DOCLIB Version 2.0 +# +#End Doc Library diff --git a/hardware/v1/kicad/HAN_ESP_TSS721-rescue.lib b/hardware/v1/kicad/HAN_ESP_TSS721-rescue.lib new file mode 100644 index 00000000..f0eda9a3 --- /dev/null +++ b/hardware/v1/kicad/HAN_ESP_TSS721-rescue.lib @@ -0,0 +1,356 @@ +EESchema-LIBRARY Version 2.4 +#encoding utf-8 +# +# BSS84-transistors +# +DEF BSS84-transistors Q 0 0 Y N 1 F N +F0 "Q" 200 75 50 H V L CNN +F1 "BSS84-transistors" 200 0 50 H V L CNN +F2 "TO_SOT_Packages_SMD:SOT-23" 200 -75 50 H I L CIN +F3 "" 0 0 50 H I L CNN +$FPLIST + SOT?23* +$ENDFPLIST +DRAW +C 65 0 111 0 1 10 N +C 100 -70 11 0 1 0 F +C 100 70 11 0 1 0 F +P 2 0 1 0 0 0 10 0 N +P 2 0 1 0 30 -70 100 -70 N +P 2 0 1 10 30 -50 30 -90 N +P 2 0 1 0 30 0 100 0 N +P 2 0 1 10 30 20 30 -20 N +P 2 0 1 0 30 70 100 70 N +P 2 0 1 10 30 90 30 50 N +P 2 0 1 0 100 -70 100 -100 N +P 2 0 1 0 100 -70 100 0 N +P 2 0 1 0 100 100 100 70 N +P 3 0 1 10 10 75 10 -75 10 -75 N +P 4 0 1 0 90 0 50 -15 50 15 90 0 F +P 4 0 1 0 100 -70 130 -70 130 70 100 70 N +P 4 0 1 0 110 -20 115 -15 145 -15 150 -10 N +P 4 0 1 0 130 -15 115 10 145 10 130 -15 N +X G 1 -200 0 200 R 50 50 1 1 I +X S 2 100 -200 100 U 50 50 1 1 P +X D 3 100 200 100 D 50 50 1 1 P +ENDDRAW +ENDDEF +# +# CP-device +# +DEF CP-device C 0 10 N Y 1 F N +F0 "C" 25 100 50 H V L CNN +F1 "CP-device" 25 -100 50 H V L CNN +F2 "" 38 -150 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + CP_* +$ENDFPLIST +DRAW +S -90 20 -90 40 0 1 0 N +S -90 20 90 20 0 1 0 N +S 90 -20 -90 -40 0 1 0 F +S 90 40 -90 40 0 1 0 N +S 90 40 90 20 0 1 0 N +P 2 0 1 0 -70 90 -30 90 N +P 2 0 1 0 -50 110 -50 70 N +X ~ 1 0 150 110 D 50 50 1 1 P +X ~ 2 0 -150 110 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# CP_Small-device +# +DEF CP_Small-device C 0 10 N N 1 F N +F0 "C" 10 70 50 H V L CNN +F1 "CP_Small-device" 10 -80 50 H V L CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + CP_* +$ENDFPLIST +DRAW +S -60 -12 60 -27 0 1 0 F +S -60 27 60 12 0 1 0 N +P 2 0 1 0 -50 60 -30 60 N +P 2 0 1 0 -40 50 -40 70 N +X ~ 1 0 100 73 D 50 50 1 1 P +X ~ 2 0 -100 73 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# C_Small-device +# +DEF C_Small-device C 0 10 N N 1 F N +F0 "C" 10 70 50 H V L CNN +F1 "C_Small-device" 10 -80 50 H V L CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + C_* +$ENDFPLIST +DRAW +P 2 0 1 13 -60 -20 60 -20 N +P 2 0 1 12 -60 20 60 20 N +X ~ 1 0 100 80 D 50 50 1 1 P +X ~ 2 0 -100 80 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# DS18B20-maxim +# +DEF DS18B20-maxim U 0 40 Y Y 1 F N +F0 "U" -150 250 50 H V C CNN +F1 "DS18B20-maxim" 0 -250 50 H V C CNN +F2 "" -150 250 50 H I C CNN +F3 "" -150 250 50 H I C CNN +$FPLIST + TO-92_* +$ENDFPLIST +DRAW +S -200 200 200 -200 0 1 0 N +X GND 1 -300 -100 100 R 50 50 1 1 W +X DQ 2 -300 0 100 R 50 50 1 1 B +X VDD 3 -300 100 100 R 50 50 1 1 W +ENDDRAW +ENDDEF +# +# ESP-12E-ESP8266 +# +DEF ESP-12E-ESP8266 U 0 40 Y Y 1 F N +F0 "U" 0 -100 50 H V C CNN +F1 "ESP-12E-ESP8266" 0 100 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + ESP-12E + ESP-12E_SMD +$ENDFPLIST +DRAW +S -600 -600 600 600 1 0 0 N +X REST 1 -900 300 300 R 50 50 1 1 I +X GPIO15 10 900 -300 300 L 50 50 1 1 B +X GPIO2 11 900 -200 300 L 50 50 1 1 B +X GPIO0 12 900 -100 300 L 50 50 1 1 B +X GPIO4 13 900 0 300 L 50 50 1 1 B +X GPIO5 14 900 100 300 L 50 50 1 1 B +X RXD 15 900 200 300 L 50 50 1 1 I +X TXD 16 900 300 300 L 50 50 1 1 O +X CS0 17 -250 -900 300 U 50 50 1 1 B +X MISO 18 -150 -900 300 U 50 50 1 1 B +X GPIO9 19 -50 -900 300 U 50 50 1 1 B +X ADC 2 -900 200 300 R 50 50 1 1 P +X GPIO10 20 50 -900 300 U 50 50 1 1 B +X MOSI 21 150 -900 300 U 50 50 1 1 B +X SCLK 22 250 -900 300 U 50 50 1 1 B +X CH_PD 3 -900 100 300 R 50 50 1 1 I +X GPIO16 4 -900 0 300 R 50 50 1 1 B +X GPIO14 5 -900 -100 300 R 50 50 1 1 B +X GPIO12 6 -900 -200 300 R 50 50 1 1 B +X GPIO13 7 -900 -300 300 R 50 50 1 1 B +X VCC 8 -900 -400 300 R 50 50 1 1 W +X GND 9 900 -400 300 L 50 50 1 1 W +ENDDRAW +ENDDEF +# +# FTDI_PROG_HDR-ESPProgHeader +# +DEF FTDI_PROG_HDR-ESPProgHeader J 0 40 Y N 1 F N +F0 "J" 0 300 50 H V C CNN +F1 "FTDI_PROG_HDR-ESPProgHeader" 0 -400 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Connector*:*_??x*mm* + Connector*:*1x??x*mm* + Pin?Header?Straight?1X* + Pin?Header?Angled?1X* + Socket?Strip?Straight?1X* + Socket?Strip?Angled?1X* +$ENDFPLIST +DRAW +S -50 -295 0 -305 1 1 6 N +S -50 -195 0 -205 1 1 6 N +S -50 -95 0 -105 1 1 6 N +S -50 5 0 -5 1 1 6 N +S -50 105 0 95 1 1 6 N +S -50 205 0 195 1 1 6 N +S -50 250 50 -350 1 1 10 f +X Pin_1 1 -200 200 150 R 50 50 1 1 N +X Pin_2 2 -200 100 150 R 50 50 1 1 P +X Pin_3 3 -200 0 150 R 50 50 1 1 P +X Pin_4 4 -200 -100 150 R 50 50 1 1 N +X Pin_5 5 -200 -200 150 R 50 50 1 1 N +X Pin_6 6 -200 -300 150 R 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Jumper-device +# +DEF Jumper-device JP 0 30 Y N 1 F N +F0 "JP" 0 150 50 H V C CNN +F1 "Jumper-device" 0 -80 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +A 0 -26 125 1426 373 0 1 0 N -98 50 99 50 +C -100 0 35 0 1 0 N +C 100 0 35 0 1 0 N +X 1 1 -300 0 165 R 50 50 0 1 P +X 2 2 300 0 165 L 50 50 0 1 P +ENDDRAW +ENDDEF +# +# LM1117-3.3-regul +# +DEF LM1117-3.3-regul U 0 10 Y Y 1 F N +F0 "U" -150 125 50 H V C CNN +F1 "LM1117-3.3-regul" 0 125 50 H V L CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + SOT?223* + TO?263* + TO?252* + TO?220* +$ENDFPLIST +DRAW +S -200 -200 200 75 0 1 10 f +X GND 1 0 -300 100 U 50 50 1 1 W +X VO 2 300 0 100 L 50 50 1 1 w +X VI 3 -300 0 100 R 50 50 1 1 W +ENDDRAW +ENDDEF +# +# RJ45-conn +# +DEF RJ45-conn J 0 40 Y Y 1 F N +F0 "J" 200 500 50 H V C CNN +F1 "RJ45-conn" -150 500 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +S -400 -300 400 450 0 1 10 f +P 3 0 1 0 -175 200 -175 250 -175 250 N +P 3 0 1 0 -125 250 -125 200 -125 200 N +P 3 0 1 0 -75 250 -75 200 -75 200 N +P 3 0 1 0 -25 250 -25 200 -25 200 N +P 3 0 1 0 25 250 25 200 25 200 N +P 3 0 1 0 75 250 75 200 75 200 N +P 3 0 1 0 125 200 125 250 125 250 N +P 3 0 1 0 175 200 175 250 175 250 N +P 14 0 1 0 -225 250 225 250 225 -150 125 -150 125 -200 75 -200 75 -250 -75 -250 -75 -200 -125 -200 -125 -150 -225 -150 -225 250 -225 250 N +X ~ 1 -350 -450 150 U 50 50 1 1 P +X ~ 2 -250 -450 150 U 50 50 1 1 P +X ~ 3 -150 -450 150 U 50 50 1 1 P +X ~ 4 -50 -450 150 U 50 50 1 1 P +X ~ 5 50 -450 150 U 50 50 1 1 P +X ~ 6 150 -450 150 U 50 50 1 1 P +X ~ 7 250 -450 150 U 50 50 1 1 P +X ~ 8 350 -450 150 U 50 50 1 1 P +X SHIELD 9 550 350 150 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# R_Small-device +# +DEF R_Small-device R 0 10 N N 1 F N +F0 "R" 30 20 50 H V L CNN +F1 "R_Small-device" 30 -40 50 H V L CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + R_* +$ENDFPLIST +DRAW +S -30 70 30 -70 0 1 8 N +X ~ 1 0 100 30 D 50 50 1 1 P +X ~ 2 0 -100 30 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# SW_Push-switches +# +DEF SW_Push-switches SW 0 40 N N 1 F N +F0 "SW" 50 100 50 H V L CNN +F1 "SW_Push-switches" 0 -60 50 H V C CNN +F2 "" 0 200 50 H I C CNN +F3 "" 0 200 50 H I C CNN +DRAW +C -80 0 20 0 1 0 N +C 80 0 20 0 1 0 N +P 2 0 1 0 0 50 0 120 N +P 2 0 1 0 100 50 -100 50 N +X 1 1 -200 0 100 R 50 50 0 1 P +X 2 2 200 0 100 L 50 50 0 1 P +ENDDRAW +ENDDEF +# +# TSS721-tss721 +# +DEF TSS721-tss721 U 0 40 Y Y 1 F N +F0 "U" 200 850 50 H V L CNN +F1 "TSS721-tss721" 200 750 50 H V L CNN +F2 "" 0 -850 50 H V C CIN +F3 "" -200 -800 50 H V C CNN +$FPLIST + SOIC*3.9x9.9mm*Pitch1.27mm* + TSSOP*4.4x5mm*Pitch0.65mm* +$ENDFPLIST +DRAW +S -500 -700 500 700 0 1 10 f +X BUSL2 1 -600 400 100 R 50 50 1 1 I +X VS 10 -600 0 100 R 50 50 1 1 P +X VDD 11 0 800 100 D 50 50 1 1 W +X RX 12 600 500 100 L 50 50 1 1 I +X RXI 13 600 400 100 L 50 50 1 1 I I +X RIS 14 300 -800 100 U 50 50 1 1 I +X GND 15 0 -800 100 U 50 50 1 1 W +X BUSL1 16 -600 500 100 R 50 50 1 1 I +X VB 2 -600 -150 100 R 50 50 1 1 P +X STC 3 -600 -500 100 R 50 50 1 1 P +X RIDD 4 200 -800 100 U 50 50 1 1 O +X PF 5 -600 100 100 R 50 50 1 1 I +X SC 6 400 -800 100 U 50 50 1 1 P +X TXI 7 600 100 100 L 50 50 1 1 O I +X TX 8 600 200 100 L 50 50 1 1 O +X BAT 9 -100 800 100 D 50 50 1 1 I +ENDDRAW +ENDDEF +# +# USB_OTG-conn +# +DEF USB_OTG-conn J 0 40 Y Y 1 F N +F0 "J" -200 450 50 H V L CNN +F1 "USB_OTG-conn" -200 350 50 H V L CNN +F2 "" 150 -50 50 H I C CNN +F3 "" 150 -50 50 H I C CNN +$FPLIST + USB* +$ENDFPLIST +DRAW +C -150 85 25 0 1 10 F +C -25 135 15 0 1 10 F +S -200 -300 200 300 0 1 10 f +S -5 -300 5 -270 0 1 0 N +S 10 50 -20 20 0 1 10 F +S 200 -205 170 -195 0 1 0 N +S 200 -105 170 -95 0 1 0 N +S 200 -5 170 5 0 1 0 N +S 200 195 170 205 0 1 0 N +P 2 0 1 10 -75 85 25 85 N +P 4 0 1 10 -125 85 -100 85 -50 135 -25 135 N +P 4 0 1 10 -100 85 -75 85 -50 35 0 35 N +P 4 0 1 10 25 110 25 60 75 85 25 110 F +P 5 0 1 0 -170 220 -70 220 -80 190 -160 190 -170 220 F +P 9 0 1 0 -185 230 -185 220 -175 190 -175 180 -65 180 -65 190 -55 220 -55 230 -185 230 N +X VBUS 1 300 200 100 L 50 50 1 1 W +X D- 2 300 -100 100 L 50 50 1 1 P +X D+ 3 300 0 100 L 50 50 1 1 P +X ID 4 300 -200 100 L 50 50 1 1 P +X GND 5 0 -400 100 U 50 50 1 1 W +X Shield 6 -100 -400 100 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +#End Library diff --git a/hardware/v1/kicad/_autosave-HAN_ESP_TSS721.sch b/hardware/v1/kicad/_autosave-HAN_ESP_TSS721.sch new file mode 100644 index 00000000..ba2ad65b --- /dev/null +++ b/hardware/v1/kicad/_autosave-HAN_ESP_TSS721.sch @@ -0,0 +1,920 @@ +EESchema Schematic File Version 4 +LIBS:HAN_ESP_TSS721-cache +EELAYER 30 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 1 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L HAN_ESP_TSS721-rescue:TSS721-tss721 U1 +U 1 1 5A9488D4 +P 4300 4800 +F 0 "U1" H 4500 5650 50 0000 L CNN +F 1 "TSS721" H 4500 5550 50 0000 L CNN +F 2 "Housings_SOIC:SOIC-16_3.9x9.9mm_Pitch1.27mm" H 4300 3950 50 0001 C CIN +F 3 "" H 4100 4000 50 0000 C CNN + 1 4300 4800 + 1 0 0 -1 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:BSS84-transistors Q1 +U 1 1 5A948969 +P 3450 5550 +F 0 "Q1" H 3650 5625 50 0000 L CNN +F 1 "BSS84" H 3650 5550 50 0000 L CNN +F 2 "TO_SOT_Packages_SMD:SOT-23-5_HandSoldering" H 3650 5475 50 0001 L CIN +F 3 "" H 3450 5550 50 0001 L CNN + 1 3450 5550 + -1 0 0 1 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:ESP-12E-ESP8266 U2 +U 1 1 5A948AC0 +P 8750 4600 +F 0 "U2" H 8750 4500 50 0000 C CNN +F 1 "ESP-12E" H 8750 4700 50 0000 C CNN +F 2 "ESP8266:ESP-12E_SMD" H 8750 4600 50 0001 C CNN +F 3 "" H 8750 4600 50 0001 C CNN + 1 8750 4600 + -1 0 0 -1 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:USB_OTG-conn J2 +U 1 1 5A948B4F +P 3000 1550 +F 0 "J2" H 2800 2000 50 0000 L CNN +F 1 "USB" H 2800 1900 50 0000 L CNN +F 2 "Connectors:USB_Micro-B" H 3150 1500 50 0001 C CNN +F 3 "" H 3150 1500 50 0001 C CNN + 1 3000 1550 + 1 0 0 -1 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:RJ45-conn J1 +U 1 1 5A948C76 +P 1850 4650 +F 0 "J1" H 2050 5150 50 0000 C CNN +F 1 "RJ45" H 1700 5150 50 0000 C CNN +F 2 "Connectors:RJ45_8" H 1850 4650 50 0001 C CNN +F 3 "" H 1850 4650 50 0001 C CNN + 1 1850 4650 + 0 -1 1 0 +$EndComp +Wire Wire Line + 3700 5300 3350 5300 +Wire Wire Line + 3350 5300 3350 5350 +$Comp +L power:GND #PWR01 +U 1 1 5A948E90 +P 3650 6150 +F 0 "#PWR01" H 3650 5900 50 0001 C CNN +F 1 "GND" H 3650 6000 50 0000 C CNN +F 2 "" H 3650 6150 50 0001 C CNN +F 3 "" H 3650 6150 50 0001 C CNN + 1 3650 6150 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR02 +U 1 1 5A948EAE +P 3350 6150 +F 0 "#PWR02" H 3350 5900 50 0001 C CNN +F 1 "GND" H 3350 6000 50 0000 C CNN +F 2 "" H 3350 6150 50 0001 C CNN +F 3 "" H 3350 6150 50 0001 C CNN + 1 3350 6150 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3650 5550 3650 6150 +$Comp +L HAN_ESP_TSS721-rescue:CP-device C1 +U 1 1 5A948ED4 +P 3350 6000 +F 0 "C1" H 3375 6100 50 0000 L CNN +F 1 "220u" H 3375 5900 50 0000 L CNN +F 2 "Capacitors_THT:CP_Radial_D10.0mm_P5.00mm" H 3388 5850 50 0001 C CNN +F 3 "" H 3350 6000 50 0001 C CNN + 1 3350 6000 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3350 5750 3350 5850 +$Comp +L power:GND #PWR03 +U 1 1 5A948FA8 +P 4300 6150 +F 0 "#PWR03" H 4300 5900 50 0001 C CNN +F 1 "GND" H 4300 6000 50 0000 C CNN +F 2 "" H 4300 6150 50 0001 C CNN +F 3 "" H 4300 6150 50 0001 C CNN + 1 4300 6150 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4300 5600 4300 6150 +$Comp +L HAN_ESP_TSS721-rescue:R_Small-device R1 +U 1 1 5A949001 +P 4500 5950 +F 0 "R1" H 4530 5970 50 0000 L CNN +F 1 "22k" H 4530 5910 50 0000 L CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" H 4500 5950 50 0001 C CNN +F 3 "" H 4500 5950 50 0001 C CNN + 1 4500 5950 + 1 0 0 -1 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:R_Small-device R2 +U 1 1 5A949034 +P 4800 5950 +F 0 "R2" H 4830 5970 50 0000 L CNN +F 1 "470R" H 4830 5910 50 0000 L CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" H 4800 5950 50 0001 C CNN +F 3 "" H 4800 5950 50 0001 C CNN + 1 4800 5950 + 1 0 0 -1 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:C_Small-device C2 +U 1 1 5A949059 +P 5100 5950 +F 0 "C2" H 5110 6020 50 0000 L CNN +F 1 "100n" H 5110 5870 50 0000 L CNN +F 2 "Capacitors_THT:C_Rect_L7.0mm_W3.5mm_P5.00mm" H 5100 5950 50 0001 C CNN +F 3 "" H 5100 5950 50 0001 C CNN + 1 5100 5950 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR04 +U 1 1 5A94908C +P 4500 6150 +F 0 "#PWR04" H 4500 5900 50 0001 C CNN +F 1 "GND" H 4500 6000 50 0000 C CNN +F 2 "" H 4500 6150 50 0001 C CNN +F 3 "" H 4500 6150 50 0001 C CNN + 1 4500 6150 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR05 +U 1 1 5A9490B2 +P 4800 6150 +F 0 "#PWR05" H 4800 5900 50 0001 C CNN +F 1 "GND" H 4800 6000 50 0000 C CNN +F 2 "" H 4800 6150 50 0001 C CNN +F 3 "" H 4800 6150 50 0001 C CNN + 1 4800 6150 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR06 +U 1 1 5A9490D8 +P 5100 6150 +F 0 "#PWR06" H 5100 5900 50 0001 C CNN +F 1 "GND" H 5100 6000 50 0000 C CNN +F 2 "" H 5100 6150 50 0001 C CNN +F 3 "" H 5100 6150 50 0001 C CNN + 1 5100 6150 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4500 6150 4500 6050 +Wire Wire Line + 4800 6150 4800 6050 +Wire Wire Line + 5100 6150 5100 6050 +Wire Wire Line + 5100 5850 5100 5600 +Wire Wire Line + 4800 5850 4800 5750 +Wire Wire Line + 4500 5850 4500 5600 +Text GLabel 5200 4600 2 60 Output ~ 0 +HAN_TX +Wire Wire Line + 5200 4600 4900 4600 +Text GLabel 7800 3900 1 60 Input ~ 0 +ESP_RX +Wire Wire Line + 5100 5600 4700 5600 +Wire Wire Line + 4800 5750 4600 5750 +Wire Wire Line + 4600 5750 4600 5600 +$Comp +L HAN_ESP_TSS721-rescue:R_Small-device R6 +U 1 1 5A957E86 +P 10050 4300 +F 0 "R6" H 10100 4350 50 0000 L CNN +F 1 "10k" H 10100 4250 50 0000 L CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" H 10050 4300 50 0001 C CNN +F 3 "" H 10050 4300 50 0001 C CNN + 1 10050 4300 + 0 -1 -1 0 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:R_Small-device R7 +U 1 1 5A957FFD +P 10050 4500 +F 0 "R7" H 10100 4450 50 0000 L CNN +F 1 "10k" H 10100 4550 50 0000 L CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" H 10050 4500 50 0001 C CNN +F 3 "" H 10050 4500 50 0001 C CNN + 1 10050 4500 + 0 1 1 0 +$EndComp +Wire Wire Line + 9650 4300 9750 4300 +Wire Wire Line + 9950 4500 9650 4500 +Wire Wire Line + 10500 4500 10150 4500 +Wire Wire Line + 10500 3600 10500 4300 +Wire Wire Line + 10150 4300 10500 4300 +Connection ~ 10500 4300 +Wire Wire Line + 10500 5000 9650 5000 +Connection ~ 10500 4500 +$Comp +L power:+3.3V #PWR07 +U 1 1 5A95814B +P 10500 3600 +F 0 "#PWR07" H 10500 3450 50 0001 C CNN +F 1 "+3.3V" H 10500 3740 50 0000 C CNN +F 2 "" H 10500 3600 50 0001 C CNN +F 3 "" H 10500 3600 50 0001 C CNN + 1 10500 3600 + 1 0 0 -1 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:R_Small-device R4 +U 1 1 5A958189 +P 7200 4700 +F 0 "R4" H 7230 4720 50 0000 L CNN +F 1 "10k" H 7230 4660 50 0000 L CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" H 7200 4700 50 0001 C CNN +F 3 "" H 7200 4700 50 0001 C CNN + 1 7200 4700 + 0 -1 -1 0 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:R_Small-device R3 +U 1 1 5A958353 +P 7200 4800 +F 0 "R3" H 7230 4820 50 0000 L CNN +F 1 "10k" H 7230 4760 50 0000 L CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" H 7200 4800 50 0001 C CNN +F 3 "" H 7200 4800 50 0001 C CNN + 1 7200 4800 + 0 1 1 0 +$EndComp +$Comp +L power:+3.3V #PWR08 +U 1 1 5A95839A +P 7050 3600 +F 0 "#PWR08" H 7050 3450 50 0001 C CNN +F 1 "+3.3V" H 7050 3740 50 0000 C CNN +F 2 "" H 7050 3600 50 0001 C CNN +F 3 "" H 7050 3600 50 0001 C CNN + 1 7050 3600 + 1 0 0 -1 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:R_Small-device R5 +U 1 1 5A9584D5 +P 7650 5150 +F 0 "R5" H 7680 5170 50 0000 L CNN +F 1 "10k" H 7680 5110 50 0000 L CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" H 7650 5150 50 0001 C CNN +F 3 "" H 7650 5150 50 0001 C CNN + 1 7650 5150 + -1 0 0 1 +$EndComp +$Comp +L power:GND #PWR09 +U 1 1 5A95851B +P 7650 5350 +F 0 "#PWR09" H 7650 5100 50 0001 C CNN +F 1 "GND" H 7650 5200 50 0000 C CNN +F 2 "" H 7650 5350 50 0001 C CNN +F 3 "" H 7650 5350 50 0001 C CNN + 1 7650 5350 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR010 +U 1 1 5A9585BE +P 7850 5350 +F 0 "#PWR010" H 7850 5100 50 0001 C CNN +F 1 "GND" H 7850 5200 50 0000 C CNN +F 2 "" H 7850 5350 50 0001 C CNN +F 3 "" H 7850 5350 50 0001 C CNN + 1 7850 5350 + 1 0 0 -1 +$EndComp +Wire Wire Line + 7850 5350 7850 5000 +Text GLabel 8000 3900 1 60 Input ~ 0 +ESP_TX +$Comp +L HAN_ESP_TSS721-rescue:Jumper-device JP1 +U 1 1 5A958CF6 +P 8800 1200 +F 0 "JP1" H 8800 1350 50 0000 C CNN +F 1 "RX" H 8800 1120 50 0000 C CNN +F 2 "Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm" H 8800 1200 50 0001 C CNN +F 3 "" H 8800 1200 50 0001 C CNN + 1 8800 1200 + 1 0 0 -1 +$EndComp +Text GLabel 8400 1200 0 60 Input ~ 0 +HAN_TX +Wire Wire Line + 8400 1200 8500 1200 +Text GLabel 9300 1200 2 60 Output ~ 0 +ESP_RX +Wire Wire Line + 9100 1200 9300 1200 +Text GLabel 7650 1800 2 60 Output ~ 0 +ESP_TX +Text GLabel 7650 1950 2 60 Output ~ 0 +ESP_RX +$Comp +L power:GND #PWR011 +U 1 1 5A95924F +P 7650 2300 +F 0 "#PWR011" H 7650 2050 50 0001 C CNN +F 1 "GND" H 7650 2150 50 0000 C CNN +F 2 "" H 7650 2300 50 0001 C CNN +F 3 "" H 7650 2300 50 0001 C CNN + 1 7650 2300 + 1 0 0 -1 +$EndComp +Wire Wire Line + 7450 1850 7550 1850 +Wire Wire Line + 7550 1850 7550 1800 +Wire Wire Line + 7550 1800 7650 1800 +Wire Wire Line + 7650 1950 7450 1950 +Wire Wire Line + 7450 2250 7650 2250 +Wire Wire Line + 7650 2250 7650 2300 +$Comp +L HAN_ESP_TSS721-rescue:LM1117-3.3-regul U3 +U 1 1 5A959567 +P 3900 1350 +F 0 "U3" H 3750 1475 50 0000 C CNN +F 1 "LM1117-3.3" H 3900 1475 50 0000 L CNN +F 2 "TO_SOT_Packages_SMD:SOT-223" H 3900 1350 50 0001 C CNN +F 3 "" H 3900 1350 50 0001 C CNN + 1 3900 1350 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3300 1350 3500 1350 +$Comp +L power:+3.3V #PWR012 +U 1 1 5A95966D +P 4750 1350 +F 0 "#PWR012" H 4750 1200 50 0001 C CNN +F 1 "+3.3V" H 4750 1490 50 0000 C CNN +F 2 "" H 4750 1350 50 0001 C CNN +F 3 "" H 4750 1350 50 0001 C CNN + 1 4750 1350 + 0 1 1 0 +$EndComp +Wire Wire Line + 4200 1350 4300 1350 +$Comp +L power:GND #PWR013 +U 1 1 5A959717 +P 3900 2100 +F 0 "#PWR013" H 3900 1850 50 0001 C CNN +F 1 "GND" H 3900 1950 50 0000 C CNN +F 2 "" H 3900 2100 50 0001 C CNN +F 3 "" H 3900 2100 50 0001 C CNN + 1 3900 2100 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3900 1650 3900 2050 +$Comp +L HAN_ESP_TSS721-rescue:C_Small-device C3 +U 1 1 5A95980F +P 3500 1800 +F 0 "C3" H 3510 1870 50 0000 L CNN +F 1 "100n" H 3510 1720 50 0000 L CNN +F 2 "Capacitors_THT:C_Rect_L7.0mm_W3.5mm_P5.00mm" H 3500 1800 50 0001 C CNN +F 3 "" H 3500 1800 50 0001 C CNN + 1 3500 1800 + 1 0 0 -1 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:CP_Small-device C4 +U 1 1 5A959880 +P 4300 1800 +F 0 "C4" H 4310 1870 50 0000 L CNN +F 1 "220u" H 4310 1720 50 0000 L CNN +F 2 "Capacitors_THT:CP_Radial_D10.0mm_P5.00mm" H 4300 1800 50 0001 C CNN +F 3 "" H 4300 1800 50 0001 C CNN + 1 4300 1800 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3500 1200 3500 1350 +Connection ~ 3500 1350 +Wire Wire Line + 4300 1700 4300 1350 +Wire Wire Line + 4300 2050 4300 1900 +Wire Wire Line + 2900 2050 3000 2050 +Connection ~ 3000 2050 +Wire Wire Line + 3500 1900 3500 2050 +Connection ~ 3500 2050 +Connection ~ 3900 2050 +Wire Wire Line + 3000 2050 3000 1950 +$Comp +L HAN_ESP_TSS721-rescue:SW_Push-switches SW1 +U 1 1 5A959F27 +P 8650 1900 +F 0 "SW1" H 8700 2000 50 0000 L CNN +F 1 "ESP Reset" H 8650 1840 50 0000 C CNN +F 2 "Buttons_Switches_THT:SW_PUSH_6mm_h5mm" H 8650 2100 50 0001 C CNN +F 3 "" H 8650 2100 50 0001 C CNN + 1 8650 1900 + 1 0 0 -1 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:SW_Push-switches SW2 +U 1 1 5A959FAC +P 8650 2200 +F 0 "SW2" H 8700 2300 50 0000 L CNN +F 1 "ESP Prog" H 8650 2140 50 0000 C CNN +F 2 "Buttons_Switches_THT:SW_PUSH_6mm_h5mm" H 8650 2400 50 0001 C CNN +F 3 "" H 8650 2400 50 0001 C CNN + 1 8650 2200 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR014 +U 1 1 5A959FFA +P 8300 2300 +F 0 "#PWR014" H 8300 2050 50 0001 C CNN +F 1 "GND" H 8300 2150 50 0000 C CNN +F 2 "" H 8300 2300 50 0001 C CNN +F 3 "" H 8300 2300 50 0001 C CNN + 1 8300 2300 + 1 0 0 -1 +$EndComp +Wire Wire Line + 8300 2200 8450 2200 +Wire Wire Line + 8450 1900 8300 1900 +Connection ~ 8300 2200 +Text GLabel 9150 1900 2 60 Output ~ 0 +ESP_RESET +Text GLabel 9150 2200 2 60 Output ~ 0 +ESP_PROG +Wire Wire Line + 8850 2200 9150 2200 +Wire Wire Line + 8850 1900 9150 1900 +Text GLabel 7400 3900 1 60 Input ~ 0 +ESP_PROG +Text GLabel 9750 3900 1 60 Input ~ 0 +ESP_RESET +Wire Wire Line + 9750 3900 9750 4300 +Connection ~ 9750 4300 +$Comp +L power:PWR_FLAG #FLG015 +U 1 1 5A95AFAB +P 4750 2050 +F 0 "#FLG015" H 4750 2125 50 0001 C CNN +F 1 "PWR_FLAG" H 4750 2200 50 0000 C CNN +F 2 "" H 4750 2050 50 0001 C CNN +F 3 "" H 4750 2050 50 0001 C CNN + 1 4750 2050 + 0 1 1 0 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:FTDI_PROG_HDR-ESPProgHeader J3 +U 1 1 5A95BFD3 +P 7250 1950 +F 0 "J3" H 7250 2250 50 0000 C CNN +F 1 "FTDI" H 7250 1550 50 0000 C CNN +F 2 "Pin_Headers:Pin_Header_Straight_1x06_Pitch2.54mm" H 7250 1950 50 0001 C CNN +F 3 "" H 7250 1950 50 0001 C CNN + 1 7250 1950 + -1 0 0 -1 +$EndComp +Wire Wire Line + 2900 1950 2900 2050 +$Comp +L power:PWR_FLAG #FLG016 +U 1 1 5A95C1D3 +P 3500 1200 +F 0 "#FLG016" H 3500 1275 50 0001 C CNN +F 1 "PWR_FLAG" H 3500 1350 50 0000 C CNN +F 2 "" H 3500 1200 50 0001 C CNN +F 3 "" H 3500 1200 50 0001 C CNN + 1 3500 1200 + 1 0 0 -1 +$EndComp +NoConn ~ 8500 5500 +NoConn ~ 8600 5500 +NoConn ~ 8700 5500 +NoConn ~ 8800 5500 +NoConn ~ 8900 5500 +NoConn ~ 9000 5500 +NoConn ~ 7850 4600 +NoConn ~ 9650 4400 +NoConn ~ 9650 4600 +NoConn ~ 9650 4700 +NoConn ~ 9650 4800 +NoConn ~ 9650 4900 +NoConn ~ 3700 4950 +NoConn ~ 3700 4800 +NoConn ~ 3700 4700 +NoConn ~ 4900 4700 +NoConn ~ 4900 4400 +$Comp +L power:GND #PWR017 +U 1 1 5A95C98C +P 1500 5450 +F 0 "#PWR017" H 1500 5200 50 0001 C CNN +F 1 "GND" H 1500 5300 50 0000 C CNN +F 2 "" H 1500 5450 50 0001 C CNN +F 3 "" H 1500 5450 50 0001 C CNN + 1 1500 5450 + 1 0 0 -1 +$EndComp +Wire Wire Line + 1500 5200 1500 5450 +Wire Wire Line + 4300 3350 4300 3850 +Wire Wire Line + 4200 4000 4200 3850 +Wire Wire Line + 4200 3850 4300 3850 +Connection ~ 4300 3850 +NoConn ~ 3300 1550 +NoConn ~ 3300 1650 +NoConn ~ 3300 1750 +NoConn ~ 2300 4500 +NoConn ~ 2300 4600 +NoConn ~ 2300 4700 +NoConn ~ 2300 4800 +NoConn ~ 2300 4900 +NoConn ~ 2300 5000 +Wire Notes Line + 2700 900 5100 900 +Wire Notes Line + 5100 900 5100 2400 +Wire Notes Line + 5100 2400 2700 2400 +Wire Notes Line + 2700 2400 2700 900 +Text Notes 4050 850 2 60 ~ 0 +Power Supply (USB -> 3.3V) +Wire Notes Line + 6850 900 6850 2650 +Wire Notes Line + 6850 900 10150 900 +Wire Notes Line + 10150 900 10150 2650 +Wire Notes Line + 10150 2650 6850 2650 +Text Notes 7650 850 2 60 ~ 0 +ESP Programming +Wire Notes Line + 6850 3200 6850 5900 +Wire Notes Line + 6850 5900 10750 5900 +Wire Notes Line + 10750 5900 10750 3200 +Wire Notes Line + 10750 3200 6850 3200 +Text Notes 8200 3150 2 60 ~ 0 +ESP (HAN decoding and WiFi) +Wire Notes Line + 2700 3200 5800 3200 +Wire Notes Line + 5800 3200 5800 6750 +Wire Notes Line + 5800 6750 2700 6750 +Wire Notes Line + 2700 6750 2700 3200 +Text Notes 3200 3150 2 60 ~ 0 +HAN to TTL +Wire Wire Line + 7850 4900 7650 4900 +Wire Wire Line + 7650 4900 7650 5050 +Wire Wire Line + 7650 5250 7650 5350 +Wire Wire Line + 7400 3900 7400 4700 +Connection ~ 7400 4700 +Wire Wire Line + 7050 3600 7050 4700 +Wire Wire Line + 7850 4400 7700 4400 +Wire Wire Line + 7850 4800 7300 4800 +Wire Wire Line + 7300 4700 7400 4700 +Wire Wire Line + 7100 4700 7050 4700 +Connection ~ 7050 4700 +Wire Wire Line + 7050 4800 7100 4800 +$Comp +L HAN_ESP_TSS721-rescue:R_Small-device R8 +U 1 1 5A962847 +P 3350 4300 +F 0 "R8" H 3380 4320 50 0000 L CNN +F 1 "220R" H 3380 4260 50 0000 L CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" H 3350 4300 50 0001 C CNN +F 3 "" H 3350 4300 50 0001 C CNN + 1 3350 4300 + 0 -1 -1 0 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:R_Small-device R9 +U 1 1 5A9629BD +P 3350 4400 +F 0 "R9" H 3380 4420 50 0000 L CNN +F 1 "220R" H 3380 4360 50 0000 L CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" H 3350 4400 50 0001 C CNN +F 3 "" H 3350 4400 50 0001 C CNN + 1 3350 4400 + 0 1 1 0 +$EndComp +Wire Wire Line + 3700 4400 3450 4400 +Wire Wire Line + 3700 4300 3450 4300 +Wire Wire Line + 3250 4400 2300 4400 +Wire Wire Line + 3250 4300 2300 4300 +Text GLabel 5200 4300 2 60 Output ~ 0 +HAN_RX +Wire Wire Line + 4900 4300 5200 4300 +$Comp +L HAN_ESP_TSS721-rescue:Jumper-device JP2 +U 1 1 5A963181 +P 8800 1550 +F 0 "JP2" H 8800 1700 50 0000 C CNN +F 1 "TX" H 8800 1470 50 0000 C CNN +F 2 "Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm" H 8800 1550 50 0001 C CNN +F 3 "" H 8800 1550 50 0001 C CNN + 1 8800 1550 + 1 0 0 -1 +$EndComp +Text GLabel 8400 1550 0 60 Input ~ 0 +HAN_RX +Text GLabel 9300 1550 2 60 Output ~ 0 +ESP_TX +Wire Wire Line + 9100 1550 9300 1550 +Wire Wire Line + 8400 1550 8500 1550 +Wire Wire Line + 8300 1900 8300 2200 +$Comp +L HAN_ESP_TSS721-rescue:CP-device C5 +U 1 1 5A96394F +P 3600 3650 +F 0 "C5" H 3625 3750 50 0000 L CNN +F 1 "220u" H 3625 3550 50 0000 L CNN +F 2 "Capacitors_THT:CP_Radial_D10.0mm_P5.00mm" H 3638 3500 50 0001 C CNN +F 3 "" H 3600 3650 50 0001 C CNN + 1 3600 3650 + 1 0 0 -1 +$EndComp +$Comp +L HAN_ESP_TSS721-rescue:R_Small-device R10 +U 1 1 5A9639E2 +P 3400 3650 +F 0 "R10" H 3430 3670 50 0000 L CNN +F 1 "22k" H 3430 3610 50 0000 L CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" H 3400 3650 50 0001 C CNN +F 3 "" H 3400 3650 50 0001 C CNN + 1 3400 3650 + -1 0 0 1 +$EndComp +$Comp +L power:GND #PWR018 +U 1 1 5A963AB6 +P 3600 3850 +F 0 "#PWR018" H 3600 3600 50 0001 C CNN +F 1 "GND" H 3600 3700 50 0000 C CNN +F 2 "" H 3600 3850 50 0001 C CNN +F 3 "" H 3600 3850 50 0001 C CNN + 1 3600 3850 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3400 3350 3600 3350 +Wire Wire Line + 3600 3350 3600 3500 +Wire Wire Line + 3400 3350 3400 3550 +Connection ~ 3600 3350 +Wire Wire Line + 3600 3850 3600 3800 +Wire Wire Line + 3600 3800 3400 3800 +Wire Wire Line + 3400 3800 3400 3750 +$Comp +L power:PWR_FLAG #FLG019 +U 1 1 5A964458 +P 4550 3350 +F 0 "#FLG019" H 4550 3425 50 0001 C CNN +F 1 "PWR_FLAG" H 4550 3500 50 0000 C CNN +F 2 "" H 4550 3350 50 0001 C CNN +F 3 "" H 4550 3350 50 0001 C CNN + 1 4550 3350 + -1 0 0 1 +$EndComp +Connection ~ 4300 3350 +Wire Wire Line + 10500 4300 10500 4500 +Wire Wire Line + 10500 4500 10500 5000 +Wire Wire Line + 3500 1350 3600 1350 +Wire Wire Line + 3500 1350 3500 1700 +Wire Wire Line + 3000 2050 3500 2050 +Wire Wire Line + 3500 2050 3900 2050 +Wire Wire Line + 3900 2050 3900 2100 +Wire Wire Line + 3900 2050 4300 2050 +Wire Wire Line + 8300 2200 8300 2300 +Wire Wire Line + 9750 4300 9950 4300 +Wire Wire Line + 4300 3850 4300 4000 +Wire Wire Line + 7400 4700 7850 4700 +Wire Wire Line + 7050 4700 7050 4800 +Wire Wire Line + 3600 3350 4300 3350 +Wire Wire Line + 4300 3350 4550 3350 +$Comp +L HAN_ESP_TSS721-rescue:DS18B20-maxim U4 +U 1 1 5A973246 +P 6150 1750 +F 0 "U4" H 6377 1796 50 0000 L CNN +F 1 "DS18B20" H 6377 1705 50 0000 L CNN +F 2 "TO_SOT_Packages_THT:TO-92_Inline_Wide" H 6000 2000 50 0001 C CNN +F 3 "http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf" H 6000 2000 50 0001 C CNN + 1 6150 1750 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR016 +U 1 1 5A973403 +P 5750 2150 +F 0 "#PWR016" H 5750 1900 50 0001 C CNN +F 1 "GND" H 5750 2000 50 0000 C CNN +F 2 "" H 5750 2150 50 0001 C CNN +F 3 "" H 5750 2150 50 0001 C CNN + 1 5750 2150 + 1 0 0 -1 +$EndComp +$Comp +L power:+3.3V #PWR015 +U 1 1 5A97345F +P 5750 1200 +F 0 "#PWR015" H 5750 1050 50 0001 C CNN +F 1 "+3.3V" H 5750 1340 50 0000 C CNN +F 2 "" H 5750 1200 50 0001 C CNN +F 3 "" H 5750 1200 50 0001 C CNN + 1 5750 1200 + 1 0 0 -1 +$EndComp +Text GLabel 5450 1850 3 60 Output ~ 0 +ESP_Temp +Wire Wire Line + 5450 1750 5850 1750 +Wire Wire Line + 5850 1850 5750 1850 +Wire Wire Line + 5750 1850 5750 2150 +Wire Notes Line + 5250 900 6750 900 +Wire Notes Line + 6750 900 6750 2400 +Wire Notes Line + 6750 2400 5250 2400 +Wire Notes Line + 5250 2400 5250 900 +Text Notes 5250 850 0 50 ~ 0 +Temperature Sensor +Wire Wire Line + 5450 1750 5450 1850 +$Comp +L HAN_ESP_TSS721-rescue:R_Small-device R11 +U 1 1 5A996C7E +P 5450 1500 +F 0 "R11" H 5480 1520 50 0000 L CNN +F 1 "4k7" H 5480 1460 50 0000 L CNN +F 2 "Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" H 5450 1500 50 0001 C CNN +F 3 "" H 5450 1500 50 0001 C CNN + 1 5450 1500 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5750 1200 5750 1350 +Wire Wire Line + 5750 1650 5850 1650 +Wire Wire Line + 5450 1400 5450 1350 +Wire Wire Line + 5450 1350 5750 1350 +Connection ~ 5750 1350 +Wire Wire Line + 5750 1350 5750 1650 +Wire Wire Line + 5450 1600 5450 1750 +Connection ~ 5450 1750 +Text GLabel 7600 3900 1 60 Input ~ 0 +ESP_Temp +Wire Wire Line + 7800 3900 7800 4000 +Wire Wire Line + 7700 4000 7700 4400 +Wire Wire Line + 7850 4300 7800 4300 +Wire Wire Line + 7800 4300 7800 4100 +Wire Wire Line + 7800 4100 8000 4100 +Wire Wire Line + 8000 4100 8000 3900 +Wire Wire Line + 7800 4000 7700 4000 +Wire Wire Line + 7600 3900 7600 4500 +Wire Wire Line + 7600 4500 7850 4500 +$Comp +L HAN_ESP_TSS721-rescue:C_Small-device C6 +U 1 1 5A9CBC57 +P 4600 1800 +F 0 "C6" H 4610 1870 50 0000 L CNN +F 1 "100n" H 4610 1720 50 0000 L CNN +F 2 "Capacitors_THT:C_Rect_L7.0mm_W3.5mm_P5.00mm" H 4600 1800 50 0001 C CNN +F 3 "" H 4600 1800 50 0001 C CNN + 1 4600 1800 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4600 1900 4600 2050 +Connection ~ 4600 2050 +Wire Wire Line + 4600 2050 4750 2050 +Wire Wire Line + 4600 1700 4600 1350 +Connection ~ 4600 1350 +Wire Wire Line + 4600 1350 4750 1350 +Connection ~ 4300 1350 +Connection ~ 4300 2050 +Wire Wire Line + 4300 1350 4600 1350 +Wire Wire Line + 4300 2050 4600 2050 +$EndSCHEMATC diff --git a/hardware/v1/kicad/sym-lib-table b/hardware/v1/kicad/sym-lib-table index 9c00ee7e..4bc9a47c 100644 --- a/hardware/v1/kicad/sym-lib-table +++ b/hardware/v1/kicad/sym-lib-table @@ -1,2 +1,3 @@ (sym_lib_table + (lib (name HAN_ESP_TSS721-rescue)(type Legacy)(uri ${KIPRJMOD}/HAN_ESP_TSS721-rescue.lib)(options "")(descr "")) ) diff --git a/web/configmeter.html b/web/configmeter.html new file mode 100644 index 00000000..4982ee45 --- /dev/null +++ b/web/configmeter.html @@ -0,0 +1,113 @@ + + + + + AMS reader - Meter configuration + + + + + + +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+
+ +
kW
+
+
+
+
+
+
+
+
+
+ Back +
+
+ +
+
+
+
+ + diff --git a/web/configwifi.html b/web/configwifi.html new file mode 100644 index 00000000..11ecb169 --- /dev/null +++ b/web/configwifi.html @@ -0,0 +1,110 @@ + + + + + AMS reader - WiFi configuration + + + + + + +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+
+ Back +
+
+ +
+
+
+
+ + diff --git a/web/index.html b/web/index.html index 1527f5ea..28ad7f9f 100644 --- a/web/index.html +++ b/web/index.html @@ -63,7 +63,7 @@
-