Convert code from M5Stack Core to M5Stack Core2?

Hi

How can I change this code so it compiles for M5Stack-Core2 instead of M5Stack-Core?

I tried replacing the M5Stack.h include with M5Core2.h but it didn't help. I also tried adding the latter to the first, but it also didn't help.

Thanks!

/*
    device_B.ino
*/

#include <M5Stack.h>
#include <LoRaWan.h>

#define SerialUSB Serial

unsigned char buffer[128] = {
    0,
};
uint8_t flag_test_868 = 0;

void key_scan(void *arg)
{
  while (1)
  {
    onReceive();
    // lora.loraDebug();
  }
  vTaskDelete(NULL);
}

void setup(void)
{
  M5.begin(true,true,true,false);
  SerialUSB.begin(9600);
  lora.init();
  delay(2000); // must delay for lorawan power on
  lora.initP2PMode(868, SF12, BW500, 8, 8, 20);
  M5.Lcd.setTextFont(2);
  M5.Lcd.println("Device B");
  M5.Lcd.setTextColor(BLUE);
  int core = xPortGetCoreID();
  // M5.Lcd.println(core);
  xTaskCreatePinnedToCore(key_scan, "key_scan", 2048, NULL, 0, NULL, 0);
}

void loop(void)
{
  // lora.loraDebug();
  if (M5.BtnA.wasPressed())
  {
    M5.Lcd.setCursor(0, 20);
    M5.Lcd.fillRect(0, 20, 320, 215, BLACK);
  }
  if (M5.BtnB.wasPressed()) //send data (433MHz)
  {
    flag_test_868 = 0;
    M5.Lcd.setTextColor(BLUE);
    init_433();
    send_data();
    delay(300);
    Serial2.print("AT+TEST=RXLRPKT\r\n");
        M5.Lcd.println("433M Init and Send \"Hello World\"...");
  }
  if (M5.BtnC.wasPressed()) //send data (868MHz)
  {
    flag_test_868 = 1;
    M5.Lcd.setTextColor(YELLOW);
    init_868();
    send_data();
    delay(300);
    Serial2.print("AT+TEST=RXLRPKT\r\n");
    M5.Lcd.println("868M Init and Send \"Hello World\"...");
  }
  M5.update();
}

void init_433()
{
  lora.initP2PMode(433, SF12, BW500, 8, 8, 20);
}

void init_868()
{
  lora.initP2PMode(868, SF12, BW500, 8, 8, 20);
}

void send_data()
{
  lora.transferPacketP2PMode("hello world");
}

void onReceive()
{
  short length = 0;
  short rssi = 0;

  memset(buffer, 0, 128);
  length = lora.receivePacketP2PMode(buffer, 128, &rssi, 1);

  if (length)
  {
    SerialUSB.print("Length is: ");
    SerialUSB.println(length);
    SerialUSB.print("RSSI is: ");
    SerialUSB.println(rssi);
    SerialUSB.print("Data is: ");
    if (flag_test_868)
    {
      M5.Lcd.print("868M Recv:  ");
    }
    else
    {
      M5.Lcd.print("433M Recv:  ");
    }
    for (unsigned char i = 0; i < length; i++)
    {
      SerialUSB.print((char)buffer[i]);
      M5.Lcd.print((char)buffer[i]);
      //   SerialUSB.print("0x");
      //   SerialUSB.print(buffer[i], HEX);
      //   SerialUSB.print(" ");
    }
    SerialUSB.println();
    M5.Lcd.println();
  }
}

Here are the first couple of errors that occur.

In file included from C:\Users\Thomas Nilsson\Documents\Arduino\libraries\M5Core2\src/M5Core2.h:78,
from C:\Users\Thomas Nilsson\Documents\Arduino\M5-ProductExampleCodes\Module\LORAWAN\Arduino\lorawan_receiver\lorawan_receiver.ino:6:
C:\Users\Thomas Nilsson\Documents\Arduino\libraries\M5Core2\src/utility/M5Button.h:804:7: error: redefinition of 'class Button'
class Button : public Zone {
^~~~~~
In file included from C:\Users\Thomas Nilsson\Documents\Arduino\libraries\M5Stack\src/M5Stack.h:110,
from C:\Users\Thomas Nilsson\Documents\Arduino\M5-ProductExampleCodes\Module\LORAWAN\Arduino\lorawan_receiver\lorawan_receiver.ino:5:
C:\Users\Thomas Nilsson\Documents\Arduino\libraries\M5Stack\src/utility/Button.h:18:7: note: previous definition of 'class Button'
class Button {
^~~~~~

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.