Network ID search
Good morning, I have carefully followed the guide you have given me, I have managed to find the channels with which the whirlpool communicates which are 12 and 13. Unfortunately, when I load the program to search for the Network ID, the blue LED does not flash as indicated, it always has the same frequency as all the other channels. The detection of the channels has been done over and over again and the result was always channel 12 and 13. I have also tried inserting channels 9 10 11 12 13 14 15 16 but with very bad results. What can I do? I hope you can help me... Thank you in advance.
Could you Upload a screenshot of the Programm when you entered the channel
This is the channel search program
/*
- THIS SOFTWARE IS PROVIDED "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- Pin connection
-
LC12S Arduino ESP -
- | o| GNG GND GND
- | o| CS D5 D18
- | o| SET D6 D19
- | o| TX D2 D16
- | o| RX D4 D17
- |__________________o| VCC 3.3V 3.3V */
uint8_t test= 0x00;
#if defined (AVR) #include <SoftwareSerial.h> SoftwareSerial mySerial(2, 4); // RX, TX // Output defines #define DO_SET 6 #define DO_CS 5 #elif defined (ESP32) #define mySerial Serial2 #define DO_SET 19 #define DO_CS 18 #endif
void setup() { mySerial.begin(9600); Serial.begin(115200);
pinMode(DO_SET, OUTPUT); // SET pinMode(DO_CS, OUTPUT); // CS - можно просто соединить с GND delay(1000);
digitalWrite(DO_CS, LOW); // притягиваем к массе digitalWrite(DO_SET, LOW); delay(100);
// querryversion();
}
void loop() {
SetSettingsChannel(test++); Serial.print("Channel "); Serial.println(test-1, HEX); delay(1000); }
void SetSettingsChannel(uint8_t channelid){ byte Config[20]; char res[5];
Config[1]=0xAA;
Config[2]=0x5A;
//device ID Config[3]=0xB9; Config[4]=0x46;
//Network ID Config[5]=0x00; Config[6]=0X00;
Config[7]=0x00;
//RF Power Config[8]=0x03;
Config[9]=0x00;
// Baudrate Config[10]=0x04;
Config[11]=0x00; //channel Config[12]=channelid;
Config[13]=0x00; Config[14]=0x00; Config[15]=0x00; Config[16]=0x12; Config[17]=0x00; //reset checksum Config[18] =0x0;
//calculate Checsum for(int i=1;i<17;i++){
Config[18] =Config[18] +Config[i];
}
/*
Serial.print (F(" Config "));
for(int i=1;i<19;i++){
sprintf(&res[0],"%02X",Config[i]);
Serial.print(res);
Serial.print(F(" "));
}
Serial.println (F(""));
*/
digitalWrite(DO_SET, LOW);
delay(500);
for(int i=1;i<19;i++){
mySerial.write(Config[i]);
} delay(1000);
digitalWrite(DO_SET, HIGH);
}
void querryversion(){ byte Config[20]; char res[5];
//byte checksum;
Config[1]=0xAA;
Config[2]=0x5D;
Config[3]=0x00;
Config[4]=0x00;
Config[5]=0x00;
Config[6]=0x00;
Config[7]=0x00;
Config[8]=0x00;
Config[9]=0x00;
Config[10]=0x00;
Config[11]=0x00;
Config[12]=0x00;
Config[13]=0x00;
Config[14]=0x00;
Config[15]=0x00;
Config[16]=0x00;
Config[17]=0x00;
Config[18] =0x07;
Serial.print (F("Querry version "));
for(int i=1;i<19;i++){
sprintf(&res[0],"%02X",Config[i]);
Serial.print(res);
Serial.print(" ");
}
Serial.println (F("")); digitalWrite(DO_SET, LOW); delay(500);
for(int i=1;i<19;i++){
mySerial.write(Config[i]);
} delay(1000); digitalWrite(DO_SET, HIGH); }
This is the programme for searching the network ID once the channels have been found.
/*
- THIS SOFTWARE IS PROVIDED "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
LC12S Arduino ESP -
- | o| GNG GND GND
- | o| CS D5 D18
- | o| SET D6 D19
- | o| TX D2 D16
- | o| RX D4 D17
- |__________________o| VCC 3.3V 3.3V */
uint8_t Channel =0x13; #define SEARCH_NETWORK_ID uint16_t idtosend =0x0000;
#if defined (AVR) #include <SoftwareSerial.h> // Output defines SoftwareSerial mySerial(2, 4); // RX, TX // Output defines #define DO_SET 6 #define DO_CS 5 #elif defined (ESP32) #define mySerial Serial2 #define DO_SET 19 #define DO_CS 18 #endif
unsigned long LastTimeReciveData; uint16_t SearchNetworkIdDataCount; bool datareceived; bool NetworkIdOk;
void setup() { mySerial.begin(9600); Serial.begin(115200); pinMode(DO_SET, OUTPUT); // SET pinMode(DO_CS, OUTPUT); // CS delay(1000);
digitalWrite(DO_CS, LOW);
digitalWrite(DO_SET, LOW);
Serial.println(F(""));
Serial.println(F("-----------------------------------------------------------"));
Serial.println(F(""));
#ifdef SEARCH_NETWORK_ID
Serial.println (F(" Search Network id active"));
#else
Serial.println (F(" Check Channel"));
Serial.println (F(""));
Serial.println (F(" LED on LC12s should blink fast"));
#endif
Serial.println(F(""));
Serial.println(F("-----------------------------------------------------------"));
ChangeSettings(idtosend++);
//querryversion(); }
void loop() {
char res[5];
#ifdef AVR
mySerial.listen();
if ( mySerial.overflow() )
{
Serial.println("overflow");
while ( mySerial.available() )
mySerial.read();
}
else
#endif
{
if (mySerial.available())
{
uint8_t c =mySerial.read();
if (!NetworkIdOk){
sprintf(&res[0],"%02X",c);
Serial.write(res);
Serial.print(" ");
datareceived = true;
SearchNetworkIdDataCount++;
}
if (SearchNetworkIdDataCount >1500 && !NetworkIdOk){
NetworkIdOk = true;
uint16_t YourNetworkId = idtosend-1;
sprintf(&res[0],"%02X",YourNetworkId);
Serial.println (F(""));
Serial.println (F("-----------------------------------------------------------"));
Serial.println (F(""));
Serial.println (F(" Your network id is :"));
Serial.println (F(""));
Serial.print (F(" 0x"));
Serial.write(res);
Serial.println (F(""));
Serial.println (F(""));
Serial.println (F("-----------------------------------------------------------"));
}
LastTimeReciveData =millis();
}
}
#ifdef SEARCH_NETWORK_ID if ((millis()-LastTimeReciveData > 1000 ) && datareceived ){ Serial.println(""); datareceived = false; SearchNetworkIdDataCount = 0; ChangeSettings(idtosend++); }
if (millis()-LastTimeReciveData > 120000 ){ Serial.println(""); Serial.println("Timeout"); SearchNetworkIdDataCount = 0; datareceived = false; ChangeSettings(idtosend++); } #endif
}
void ChangeSettings(uint16_t id){ byte Config[20]; char res[5];
//byte checksum;
Config[1]=0xAA;
Config[2]=0x5A;
Config[3]=0xB9;
Config[4]=0x46;
Config[5]=id>>8;
Config[6]=id;
Config[7]=0x00;
Config[8]=0x03;
Config[9]=0x00;
Config[10]=0x04;
Config[11]=0x00;
Config[12]=Channel;
Config[13]=0x00;
Config[14]=0x00;
Config[15]=0x00;
Config[16]=0x12;
Config[17]=0x00;
Config[18] =0x0;
//calculate Checksum for(int i=1;i<17;i++){ Config[18] =Config[18] +Config[i]; }
Serial.println (F(""));
Serial.print (F("Config "));
for(int i=1;i<19;i++){
sprintf(&res[0],"%02X",Config[i]);
Serial.print(res);
Serial.print(F(" "));
}
Serial.println (F(""));
digitalWrite(DO_SET, LOW); delay(500);
for(int i=1;i<19;i++){
mySerial.write(Config[i]);
} delay(1000); digitalWrite(DO_SET, HIGH);
}
void querryversion(){ byte Config[20]; char res[5];
//byte checksum;
Config[1]=0xAA;
Config[2]=0x5D;
Config[3]=0x00;
Config[4]=0x00;
Config[5]=0x00;
Config[6]=0x00;
Config[7]=0x00;
Config[8]=0x00;
Config[9]=0x00;
Config[10]=0x00;
Config[11]=0x00;
Config[12]=0x00;
Config[13]=0x00;
Config[14]=0x00;
Config[15]=0x00;
Config[16]=0x00;
Config[17]=0x00;
Config[18] =0x07;
Serial.print (F("Querry version "));
for(int i=1;i<19;i++){
sprintf(&res[0],"%02X",Config[i]);
Serial.print(res);
Serial.print(" ");
}
Serial.println (F("")); digitalWrite(DO_SET, LOW); delay(500);
for(int i=1;i<19;i++){
mySerial.write(Config[i]);
} delay(1000); digitalWrite(DO_SET, HIGH);
}
Hello,
1.could you please say me whats append if you comment this line
//#define SEARCH_NETWORK_ID
2.Enable again this line
#define SEARCH_NETWORK_ID
3.Use putty an log the serial communication, as mentioned in the description, at lease 36h 0 4.Poste the logged file
Evening, point one I did not understand what you mean. For point two should I add the two bars? // or what should I write? Point three the Putty I haven't used yet since the led light doesn't have the correct frequency.
Thanks for helping me
for point 1 make a video please from the LC12S with the right chanel
for point 2 write #define SEARCH_NETWORK_ID on line 28 from the SearchNetworkId.ino
otther remarke you need to be close to your pump pump and display should be on without error E81
To do the signal detection I was close to about 50 centimetres with the display on without any error. In the program loaded on ESP32 I had written as you indicated (#define SEARCH_NETWORK_ID). Thank you