Hello everyone,
I’m currently trying to use the Xiao ESP32C3 board with the Reiyax RYLR998 LoRa module, but I’m encountering issues when uploading the code. The upload process seems to start correctly, but shortly after, the ESP32C3 disconnects from the Arduino IDE and the upload fails. Has anyone experienced this issue before or have any ideas on how to troubleshoot and solve it?
I suspect that the problem might be related to the declaration of Serial for the LoRa module on pins 6 and 7. To address this.
This is the error
Sketch uses 245058 bytes (18%) of program storage space. Maximum is 1310720 bytes.
Global variables use 13844 bytes (4%) of dynamic memory, leaving 313836 bytes for local variables. Maximum is 327680 bytes.
esptool.py v4.5.1
Serial port COM3
A fatal error occurred: Could not open COM3, the port doesn’t exist
Failed uploading: uploading error: exit status 2
#include <HardwareSerial.h>
// Configuración de pines para LoRaSerial
const int LoRaSerialRX = -1; // Por defecto
const int LoRaSerialTX = -1; // Por defecto
// Configuraciones de LoRa Module para el nodo transmisor
String lora_band = "915000000"; // Banda LoRa
String lora_TX_address = "126"; // Dirección LoRa del transmisor
String lora_networkid = "7"; // ID de red LoRa (debe ser el mismo para nodos Tx y Rx)
// Parámetros LoRa
int spreadingFactor = 9; // Factor de esparcimiento
int bandwidth = 7; // Ancho de banda
int codingRate = 1; // Tasa de codificación
int programmedPreamble = 12; // Preámbulo programado
int potenciaTx = 22; // Potencia de transmisión en dBm
// Contraseña para las comunicaciones
String password = "EEDCAA90";
HardwareSerial LoRaSerial(1); // Instancia de LoRaSerial
void setup() {
Serial.begin(115200); // Inicialización del Serial Monitor
LoRaSerial.begin(115200, SERIAL_8N1, LoRaSerialRX, LoRaSerialTX); // Inicialización de
configureLoRa(); // Configuración del módulo LoRa al inicio
}
void loop() {
// Enviar un mensaje "Hola Mundo" desde el dispositivo uno
int address = 1; // Dirección del dispositivo uno
int payloadLength = 10; // Longitud del mensaje "Hola Mundo"
String data = "Hola Mundo"; // Mensaje a enviar
send_data(address, payloadLength, data);
Serial.print("Mensaje enviado: ");
Serial.println(data); // Mostrar el mensaje enviado en el puerto serial
delay(5000); // Esperar 5 segundos antes de enviar otro mensaje
}
// Función para configurar el módulo LoRa
void configureLoRa() {
// Configurar banda LoRa
LoRaSerial.println("AT+BAND=" + lora_band);
delay(500);
Serial.println("Banda LoRa configurada: " + lora_band);
// Configurar dirección LoRa del transmisor
LoRaSerial.println("AT+ADDRESS=" + lora_TX_address);
delay(500);
Serial.println("Dirección LoRa del transmisor configurada: " + lora_TX_address);
// Configurar ID de red LoRa
LoRaSerial.println("AT+NETWORKID=" + lora_networkid);
delay(500);
Serial.println("ID de red LoRa configurado: " + lora_networkid);
// Configurar potencia Tx
LoRaSerial.println("AT+CRFOP=" + potenciaTx);
delay(500);
Serial.println("Potencia de transmisión configurada: " + String(potenciaTx) + " dBm");
// Configurar contraseña para las comunicaciones
LoRaSerial.println("AT+CPIN=" + password);
delay(500);
Serial.println("Contraseña configurada para las comunicaciones LoRa: " + password);
// Construir el comando AT para establecer los parámetros LoRa
String sf_bw_cd_pB = "AT+PARAMETER=" + String(spreadingFactor) + "," + String(bandwidth) + "," + String(codingRate) + "," + String(programmedPreamble);
// Enviar el comando AT para establecer los parámetros LoRa
LoRaSerial.println(sf_bw_cd_pB);
delay(500);
Serial.println("Parámetros LoRa configurados: SF=" + String(spreadingFactor) + ", BW=" + String(bandwidth) + ", CR=" + String(codingRate) + ", Preamble=" + String(programmedPreamble));
}
// Función para enviar datos a través de LoRaSerial
void send_data(int address, int payloadLength, String data) {
String command = "AT+SEND=" + String(address) + "," + String(payloadLength) + "," + data;
LoRaSerial.println(command);
delay(250);
}