🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Convert Core code to Core2

    Core2 for AWS
    2
    3
    3.9k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Thomasx
      last edited by

      Hi

      How can I change this code so it compiles for M5Stack-Core2 AWS 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's a couple of the first errors that occurs

      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 {
      ^~~~~~

      1 Reply Last reply Reply Quote 0
      • felmueF
        felmue
        last edited by

        Hello @Thomasx

        to make it compile I only had to include <M5Core2.h> instead of <M5Stack.h>. (The error you posted suggests that you probably include both. You only need one or the other though.)

        Note: If that produces working code I cannot say as I don't have the LoraWAN module.

        Thanks
        Felix

        GPIO translation table M5Stack / M5Core2
        Information about various M5Stack products.
        Code examples

        1 Reply Last reply Reply Quote 0
        • T
          Thomasx
          last edited by Thomasx

          Thanks!

          For some reason I had to remove the M5Stack library entirely from the libs-folder, then it worked. Annoying.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post