RadioEnge EndDevice com ESP32 LoRaWAN ABP com NLT/ATC

Boa tarde amigos
Tentei, sem sucesso, ativar com ABP na rede LoRaWAN NLT/ATC e EndDevice com ESP32, mas não estou tendo sucesso.
Agradeço caso alguem possa ajudar a corrigir ou acrescentar parâmetros ou mesmo fornecer um exemplo que funcione
Desde já os agradeço.
Segue meu código

#include <HardwareSerial.h>

char str_counter[128];
int counter = 0;

void setup(){
//No setup inicializa a Serial2:
Serial.begin(9600);
Serial2.begin(9600, SERIAL_8N1, 16, 17); //usando RX2 e TX2 do ESP, GPIO16 e 17

Serial.println(“Reset…”);
Serial2.write(“ATZ\r\n”);
delay(5000);

Serial.println(“Verificar baud rate”);
Serial2.write(“AT+BAUDRATE=?\r”);//envio do comando AT para verificar baudrate
delay(2000);//aguarda 2 segundos
while(Serial2.available()){
int b = Serial2.read();//recebe resposta do módulo
Serial.write(b);//imprime na tela serial a resposta
}
Serial.println(“Definindo autenticação ABP”);
Serial2.write(“AT+NJM=0?\r”);//envio do comando AT definindo modo de autenticação
delay(2000);
while(Serial2.available()){
int e = Serial2.read();//recebe resposta do módulo
Serial.write(e);//imprime na tela serial a resposta
}
//--------------------------
Serial.println(“Configurando DADDR…”);
Serial.write(“AT+DADDR=12:D6:D8:43\r\n”); //12D6D843
//AT+DEUI = 0012F8000000xxxx
delay(2000);
while(Serial2.available()){
int w = Serial2.read();//recebe resposta do módulo
Serial.write(w);//imprime na tela serial a resposta
}
Serial.println(“Configurando APPEUI…”);
Serial.write(“AT+APPEUI=CD:B1:D3:FE:CB:14:xx:xx\r\n”); //APPEUI = CDB1D3FECB14xxxx // Na NLT
delay(2000);
while(Serial2.available()){
int r = Serial2.read();//recebe resposta do módulo
Serial.write®;//imprime na tela serial a resposta
}
// Configurando EndDevice como ABP
Serial.println(“Sending Nwk Key…”);
Serial2.write(“AT+NWKSKEY=B3:8A:C5:44:54:1B:97:ED:D4:B2:BE:86:18:AC:6b:xx”); //B38AC544541B97EDD4B2BE8618AC6bxx
delay(2000);
while(Serial2.available()){
int x = Serial2.read();//recebe resposta do módulo
Serial.write(x);//imprime na tela serial a resposta
}

Serial.println(“Sending App Key…”);
Serial2.write(“AT+APPSKEY=7B:66:D9:F5:A5:DA:E9:EB:A4:32:C8:33:71:64:6c:xx”); //7B66D9F5A5DAE9EBA432C83371646cxx
delay(2000);
while(Serial2.available()){
int y = Serial2.read();//recebe resposta do módulo
Serial.write(y);//imprime na tela serial a resposta
}

Serial.println(“Sending Channel Mask…”);
//SendRaw(“AT+CHMASK=FF00:0000:0000:0000:0000:0000”); // TTN
Serial2.write(“AT+CHMASK=FF00:0000:0000:0000:0000:0000”); // TTN
delay(2000);
while(Serial2.available()){
int z = Serial2.read();//recebe resposta do módulo
Serial.write(z);//imprime na tela serial a resposta
}
//Para definir a Classe:
Serial.println(“Definindo Classe”);
Serial2.write(“AT+CLASS=C\r”);
delay(2000);
while (Serial2.available()) {
int k = Serial2.read();
Serial.write(k);
}
//-----------------------
//Para enviar uma mensagem:
Serial.println(“Teste de Envio”);
Serial2.write(“AT+SEND=1:teste\r”);//envio da string teste na porta 1
delay(2000);//aguarda 1 segundo
while(Serial2.available()){
int g = Serial2.read();//recebe resposta do módulo
Serial.write(g);//imprime na tela serial a resposta
}
//========================
Serial.println(“Verificando DevAddr”);
Serial2.write(“AT+DADDR=?\r”);
delay(2000);
while (Serial2.available()) {
int r = Serial2.read();
Serial.write®;
}

Serial.println("Verificando AppKey ");
Serial2.write(“AT+APPKEY=?\r”);
delay(2000);
while (Serial2.available()) {
int r = Serial2.read();
Serial.write®;
}
Serial.println("Verificando AppSKey ");
Serial2.write(“AT+APPSKEY=?\r”);
delay(2000);
while (Serial2.available()) {
int r = Serial2.read();
Serial.write®;
}
Serial.println("Verificando NwkSKey ");
Serial2.write(“AT+NWKSKEY=?\r”);
delay(2000);
while (Serial2.available()) {
int r = Serial2.read();
Serial.write®;
}
Serial.println("Verificando AppEui/JoinEui ");
Serial2.write(“AT+APPEUI=?\r”);
delay(1000);
while (Serial2.available()) {
int r = Serial2.read();
Serial.write®;
}
Serial.println("Verificando ADR ");
Serial2.write(“AT+ADR=?\r”);
delay(1000);
while (Serial2.available()) {
int r = Serial2.read();
Serial.write®;
}
Serial.println("Verificando Tx Power ");
Serial2.write(“AT+TXP=?\r”);
delay(2000);
while (Serial2.available()) {
int r = Serial2.read();
Serial.write®;
}
Serial.println(“Verificando Public Network”);
Serial2.write(“AT+PNM=?\r”);
delay(2000);
while (Serial2.available()) {
int r = Serial2.read();
Serial.write®;
}
Serial.println("Verificando Network ID ");
Serial2.write(“AT+NWKID=?\r”);
delay(2000);
while (Serial2.available()) {
int r = Serial2.read();
Serial.write®;
}
Serial.println("Verificando modo Join (0:ABP/1:OTAA) ");
Serial2.write(“AT+NJM=?\r”);
delay(2000);
while (Serial2.available()) {
int r = Serial2.read();
Serial.write®;
}
}
//============================

As chaves do padrão LoRaWAN devem conter apenas caracteres válidos na base Hexadecimal (0 a 9 e de A até F). Nas chaves e também no AppEui constam bytes com o valor “xx”.

.

Bom dia

Ví hoje o seu post, o que me chamou atenção é que vc coloca estar tentando se conectar à rede ATC porém no sketch configurou o channel mask para a rede TTN.

Teria resolvido o problema?