xreef / LoRa_E32_Series_Library

Arduino LoRa EBYTE E32 device library complete and tested with Arduino, esp8266, esp32, STM32 and Raspberry Pi Pico (rp2040 boards). sx1278/sx1276
https://www.mischianti.org
Other
368 stars 75 forks source link

Reboot loop #27

Closed clabnet closed 3 years ago

clabnet commented 3 years ago

Ciao Renzo, I don't know if is an issue of library but this is my problem.

I need to add an EBYTE 868T30D as LoRa receiver to a board type TTGO T-CALL SIM800L board.

I use Serial2 because the Serial1 it is already used by modem SIM800L.

The code is taken from your ArduinoConfiguration sample.

Any suggest please ?

This is the code:

#include <Arduino.h>

#include <HardwareSerial.h>

#define E32_TTL_1W
#define FREQUENCY_868

#include "LoRa_E32.h"

#define LoRa_E32_DEBUG
#define DEBUG_PRINTER Serial

#define Receiver Serial2

uint32_t serialConfig = SERIAL_8N1;

#define rxE32pin 27
#define txE32pin 19
#define M0 33
#define M1 35
#define AUX 34

void printParameters(struct Configuration configuration);

void printModuleInformation(struct ModuleInformation moduleInformation);

void setup()
{
    Serial.begin(115200);
    delay(500);

    Receiver.begin(9600, SERIAL_8N1, rxE32pin, txE32pin);
    delay(500);

    LoRa_E32 e32ttl100(&Receiver, AUX, M0, M1);

    // Startup all pins and UART
    e32ttl100.begin();

    ResponseStructContainer c;
    c = e32ttl100.getConfiguration();
    // It's important get configuration pointer before all other operation
    Configuration configuration = *(Configuration *)c.data;
    Serial.println(c.status.getResponseDescription());
    Serial.println(c.status.code);

    printParameters(configuration);

    ResponseStructContainer cMi;
    cMi = e32ttl100.getModuleInformation();
    // It's important get information pointer before all other operation
    ModuleInformation mi = *(ModuleInformation *)cMi.data;

    Serial.println(cMi.status.getResponseDescription());
    Serial.println(cMi.status.code);

    printModuleInformation(mi);

    c.close();
    cMi.close();
}

void loop()
{
}

void printParameters(struct Configuration configuration)
{
    Serial.println("----------------------------------------");

    Serial.print(F("HEAD BIN: "));
    Serial.print(configuration.HEAD, BIN);
    Serial.print(" ");
    Serial.print(configuration.HEAD, DEC);
    Serial.print(" ");
    Serial.println(configuration.HEAD, HEX);
    Serial.println(F(" "));
    Serial.print(F("AddH BIN: "));
    Serial.println(configuration.ADDH, BIN);
    Serial.print(F("AddL BIN: "));
    Serial.println(configuration.ADDL, BIN);
    Serial.print(F("Chan BIN: "));
    Serial.print(configuration.CHAN, DEC);
    Serial.print(" -> ");
    Serial.println(configuration.getChannelDescription());
    Serial.println(F(" "));
    Serial.print(F("SpeedParityBit BIN    : "));
    Serial.print(configuration.SPED.uartParity, BIN);
    Serial.print(" -> ");
    Serial.println(configuration.SPED.getUARTParityDescription());
    Serial.print(F("SpeedUARTDataRate BIN : "));
    Serial.print(configuration.SPED.uartBaudRate, BIN);
    Serial.print(" -> ");
    Serial.println(configuration.SPED.getUARTBaudRate());
    Serial.print(F("SpeedAirDataRate BIN  : "));
    Serial.print(configuration.SPED.airDataRate, BIN);
    Serial.print(" -> ");
    Serial.println(configuration.SPED.getAirDataRate());

    Serial.print(F("OptionTrans BIN       : "));
    Serial.print(configuration.OPTION.fixedTransmission, BIN);
    Serial.print(" -> ");
    Serial.println(configuration.OPTION.getFixedTransmissionDescription());
    Serial.print(F("OptionPullup BIN      : "));
    Serial.print(configuration.OPTION.ioDriveMode, BIN);
    Serial.print(" -> ");
    Serial.println(configuration.OPTION.getIODroveModeDescription());
    Serial.print(F("OptionWakeup BIN      : "));
    Serial.print(configuration.OPTION.wirelessWakeupTime, BIN);
    Serial.print(" -> ");
    Serial.println(configuration.OPTION.getWirelessWakeUPTimeDescription());
    Serial.print(F("OptionFEC BIN         : "));
    Serial.print(configuration.OPTION.fec, BIN);
    Serial.print(" -> ");
    Serial.println(configuration.OPTION.getFECDescription());
    Serial.print(F("OptionPower BIN       : "));
    Serial.print(configuration.OPTION.transmissionPower, BIN);
    Serial.print(" -> ");
    Serial.println(configuration.OPTION.getTransmissionPowerDescription());

    Serial.println("----------------------------------------");
}

void printModuleInformation(struct ModuleInformation moduleInformation)
{
    Serial.println("----------------------------------------");
    Serial.print(F("HEAD BIN: "));
    Serial.print(moduleInformation.HEAD, BIN);
    Serial.print(" ");
    Serial.print(moduleInformation.HEAD, DEC);
    Serial.print(" ");
    Serial.println(moduleInformation.HEAD, HEX);

    Serial.print(F("Freq.: "));
    Serial.println(moduleInformation.frequency, HEX);
    Serial.print(F("Version  : "));
    Serial.println(moduleInformation.version, HEX);
    Serial.print(F("Features : "));
    Serial.println(moduleInformation.features, HEX);
    Serial.println("----------------------------------------");
}

Thank's, ciao

Claudio, Torino

xreef commented 3 years ago

Hi, I answered here https://www.mischianti.org/forums/topic/ebyte-e32-868t30d-reboot-loop