MakerGram Logo

    MakerGram

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Users
    • Groups

    Gps data is not getting into TTN console after Connecting LoRa E5

    General Discussion
    2
    5
    396
    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.
    • zainmuhammed
      zainmuhammed last edited by

      I'm working on building a tracker with Xiao nrf52840 sense, Lora E5 and with NEO M8N GPS module.

      Now I have completed connecting XIAO nRF SENSE, LoRa E5 with TTN and it is working properly . Also I connect GPS to Pin number 4 and 5 using SS and it's working properly.
      Now both GPS and LoRa individually working properly. When I combine both GPS and LoRa, Lora in hardware serial and gps in software serial LoRa is connecting to the ttn and sending 0, 0 as latitude and longitude. And also I give a separate power for GPS.

      anyone can help me to fix the issue

      zainmuhammed 1 Reply Last reply Reply Quote 0
      • zainmuhammed
        zainmuhammed @zainmuhammed last edited by

        @zainmuhammed
        this is the code

        #include <Arduino.h>
        #include <U8x8lib.h>
        #include <TinyGPS++.h>
        #include <SoftwareSerial.h>
        
        static const int RXPin = 1, TXPin = 2;
        static const uint32_t GPSBaud = 9600;
        
        // The TinyGPS++ object
        TinyGPSPlus gps;
        
        // The serial connection to the GPS device
        SoftwareSerial ss(RXPin, TXPin);
        U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/*reset=*/U8X8_PIN_NONE);
        // U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(/*clock=*/ SCL, /*data=*/ SDA, /*reset=*/ U8X8_PIN_NONE);   // OLEDs without Reset of the Display
        
        static char recv_buf[512];
        static bool is_exist = false;
        static bool is_join = false;
        static int led = 0;
        
        static int at_send_check_response(char *p_ack, int timeout_ms, char *p_cmd, ...) {
          int ch;
          int num = 0;
          int index = 0;
          int startMillis = 0;
          va_list args;
          char cmd_buffer[256];  // Adjust the buffer size as needed
          memset(recv_buf, 0, sizeof(recv_buf));
          va_start(args, p_cmd);
          vsprintf(cmd_buffer, p_cmd, args);  // Format the command string
          Serial1.print(cmd_buffer);
          Serial.print(cmd_buffer);
          va_end(args);
          delay(200);
          startMillis = millis();
        
          if (p_ack == NULL) {
            return 0;
          }
        
          do {
            while (Serial1.available() > 0) {
              ch = Serial1.read();
              recv_buf[index++] = ch;
              Serial.print((char)ch);
              delay(2);
            }
        
            if (strstr(recv_buf, p_ack) != NULL) {
              return 1;
            }
        
          } while (millis() - startMillis < timeout_ms);
          return 0;
        }
        
        static void recv_prase(char *p_msg) {
          if (p_msg == NULL) {
            return;
          }
          char *p_start = NULL;
          int data = 0;
          int rssi = 0;
          int snr = 0;
        
          p_start = strstr(p_msg, "RX");
          if (p_start && (1 == sscanf(p_start, "RX: \"%d\"\r\n", &data))) {
            Serial.println(data);
            u8x8.setCursor(2, 4);
            u8x8.print("led :");
            led = !!data;
            u8x8.print(led);
            if (led) {
              digitalWrite(LED_BUILTIN, LOW);
            } else {
              digitalWrite(LED_BUILTIN, HIGH);
            }
          }
        
          p_start = strstr(p_msg, "RSSI");
          if (p_start && (1 == sscanf(p_start, "RSSI %d,", &rssi))) {
            u8x8.setCursor(0, 6);
            u8x8.print("                ");
            u8x8.setCursor(2, 6);
            u8x8.print("rssi:");
            u8x8.print(rssi);
          }
          p_start = strstr(p_msg, "SNR");
          if (p_start && (1 == sscanf(p_start, "SNR %d", &snr))) {
            u8x8.setCursor(0, 7);
            u8x8.print("                ");
            u8x8.setCursor(2, 7);
            u8x8.print("snr :");
            u8x8.print(snr);
          }
        }
        
        void setup(void) {
          u8x8.begin();
          u8x8.setFlipMode(1);
          u8x8.setFont(u8x8_font_chroma48medium8_r);
          ss.begin(GPSBaud);
          Serial.begin(GPSBaud);
          pinMode(LED_BUILTIN, OUTPUT);
          digitalWrite(LED_BUILTIN, HIGH);
        
          Serial1.begin(9600);
          Serial.print("E5 LORAWAN TEST\r\n");
          u8x8.setCursor(0, 0);
        
          if (at_send_check_response("+AT: OK", 100, "AT\r\n")) {
            is_exist = true;
            at_send_check_response("+ID: DevEui", 1000, "AT+ID=DevEui,\"xxxxx\"\r\n"); // replace 'xxxxxxxxxxxxx' with your DevEui
            at_send_check_response("+ID: AppEui", 1000, "AT+ID=AppEui,\"xxxxxxx\"\r\n"); // replace 'xxxxxxxxxxxxx' with your AppEui
            at_send_check_response("+KEY: APPKEY", 1000, "AT+KEY=APPKEY,\"xxxxxxxxx\"\r\n"); // replace 'xxxxxxxxxxxxx' with your AppKey
            at_send_check_response("+ID: DevAddr", 1000, "AT+ID=DevAddr\r\n"); 
            at_send_check_response("+ID: AppEui", 1000, "AT+ID\r\n");
            at_send_check_response("+MODE: LWOTAA", 1000, "AT+MODE=LWOTAA\r\n");
            at_send_check_response("+DR: IN865", 1000, "AT+DR=IN865\r\n");  // Change FREQ as per your location
            at_send_check_response("+CH: NUM", 1000, "AT+CH=NUM,0-2\r\n");
            at_send_check_response("+CLASS: C", 1000, "AT+CLASS=A\r\n");
            at_send_check_response("+PORT: 8", 1000, "AT+PORT=8\r\n");
            delay(200);
            u8x8.setCursor(5, 0);
            u8x8.print("LoRaWAN");
            is_join = true;
          } else {
            is_exist = false;
            Serial.print("No E5 module found.\r\n");
            u8x8.setCursor(0, 1);
            u8x8.print("unfound E5 !");
          }
        
          u8x8.setCursor(2, 4);
          u8x8.print("led :");
          u8x8.print(led);
        }
        
        void loop(void) {
          if (is_exist) {
            int ret = 0;
            if (is_join) {
        
              ret = at_send_check_response("+JOIN: Network joined", 12000, "AT+JOIN\r\n");
              if (ret) {
                is_join = false;
              } else {
                at_send_check_response("+ID: AppEui", 1000, "AT+ID\r\n");
                Serial.print("JOIN failed!\r\n\r\n");
                delay(5000);
              }
            } else {
              gps.encode(ss.read());
              float a=gps.location.lat();
              float b=gps.location.lng();
              Serial.println(a);
              Serial.println(b);
              char cmd[128];
              sprintf(cmd, "AT+CMSGHEX=\"%04X%04X\"\r\n", (float)a,(float)b);
              ret = at_send_check_response("Done", 5000, cmd);
              if (ret) {
                recv_prase(recv_buf);
              } else {
                Serial.print("Send failed!\r\n\r\n");
              }
              delay(5000);
            }
          } else {
            delay(1000);
          }
        }
        

        9135d5d3-6277-4c60-81df-a2acac65c93d-image.png

        salmanfaris 1 Reply Last reply Reply Quote 0
        • salmanfaris
          salmanfaris @zainmuhammed last edited by

          Hi @zainmuhammed ,

          Can you share the GPS and LoRa output when it’s working?

          Also can try capturing the GPS when the device is starting the loop instead after joining the LoRaWAN and see?

          Also make sure the device provides have enough to modules. The GPS need more power when you cold start.

          zainmuhammed 1 Reply Last reply Reply Quote 0
          • zainmuhammed
            zainmuhammed @salmanfaris last edited by

            @salmanfaris Today I tried after connecting a 18650 cell,
            WhatsApp Image 2024-04-12 at 10.40.06_c7d1947e.jpg WhatsApp Image 2024-04-12 at 10.40.05_897b8bb6.jpg
            Data getting in console after integration of both lora and gps.
            3f45cfe7-0061-4328-8c55-ef0a73385203-image.png
            here you can see that GPS value is 0,0. also in my previous post you can see that GPS value is not reading.
            Also the status LED is active after it is connected to the satellite.

            salmanfaris 1 Reply Last reply Reply Quote 0
            • salmanfaris
              salmanfaris @zainmuhammed last edited by salmanfaris

              @zainmuhammed Can try capturing the GPS when the device is starting the loop instead after joining the LoRaWAN and see?

              You can put the GPS value on top of the loop or setup function.

              Also, what kind of gateway are you using? Is it configured okay, OTA is done?

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

              Recent Posts

              • J

                At Lintex, we understand that being a doctor means more than long hours and tough calls; it also means showing up every day ready to move, think, and care with confidence. That’s why we design scrubs for doctors that are built for real-life performance without compromising on comfort or style.

                Our collection of doctor scrubs is crafted with breathable fabrics, smart tailoring, and functional features like strategically placed pockets, wrinkle resistance, and movement-friendly cuts. Whether you're making rounds, managing emergencies, or staying on your feet during surgeries, Lintex scrubs are made to support your every move.

                We don't believe in one-size-fits-all. From classic V-necks to modern fits, we offer options that let you choose what works best for your body and your role. If you're looking for the best scrubs for doctors, you’re in the right place.

                Join the Lintex community and discover the best scrubs for doctors that work as hard as you do.

                Explore more at www.lintex.in or drop us a line at reachus@anvka.com

                • read more
              • J

                I'm an Oral-Maxillofacial Surgeon working with a trauma hospital and academic setup in Delhi. We get our 3D models, from Curewith3D, a dedicated 3D lab equipped with FDM and SLA 3D printers, focused on presurgical planning and patient-specific modeling.

                We routinely use 3D printed anatomical models, especially for complex facial reconstructions, TMJ cases, and orthognathic surgeries. They’re invaluable for surgical rehearsals, resident training, and most importantly, patient education. When patients can physically hold their jaw model and understand the procedure, consent becomes more informed and anxiety levels drop.

                As for printing surgical instruments or implants, we’re cautious. While the 3D orthopedic implants we design are precise and patient-specific, their final manufacturing still goes through standard biocompatible grade processes. Like in most regions, concerns about sterilization, structural integrity, and litigation prevent experimental tools from entering the OR directly. That said, the potential for custom joint replacement implants and 3D knee replacement implants in underserved areas is enormous. We see 3D printing as a huge enabler in low-resource and humanitarian settings.

                • read more
              • D

                Signal Hunt: An ESP-NOW Workshop & Treasure Hunt

                Hello everyone! We’re planning on organizing a two-phase event that explores device-to-device communication using ESP-NOW protocol :

                Workshop: Participants learn to build and program ESP32-based receivers with a web interface that directly exchange signal data using ESP-NOW for RSSI-based distance approximation.

                Signal Hunt Competition: Equipped with these receivers, participants will track hidden ESP32 transmitters scattered around the campus, each with distinct point values.

                Current hardware setup:
                Reciever(one per team):
                Esp32 ~ 360rs
                9v battery = 20rs
                9v battery clip= 5rs
                buck converter (MP1584 or LM2596) ~ 45rs
                Perfboard + male to female berg strip ~30rs
                Total per reciever ~ 460rs
                Transmitters :6
                Components same as recievers = 460*6~2760rs

                (using non-rechargeable batteries to reduce cost,
                will using a 7805 voltage regulator IC be a viable way to reduce cost further?)

                We’d love your suggestions on ways to simplify hardware, reducing the cost, secure partnerships and funding, or enhance the interactive elements. Thank you, looking forward to any ideas that can help make the event engaging and successful!

                • read more
              • M

                RTA offers a diverse range of stylish apparel, including rta clothing staples like rta hoodie men, men's rta hoodie, and the sleek black rta hoodie. Their denim collection features must-haves such as rta denim pants, rta denim mens, rta denim jeans, rta skinny jeans, rta jeans mens, rta jeans, and rta denim shorts. Complete your look with rta shorts, rta shirts, rta t shirt, rta t shirt men, and cozy options like the rta sweatshirt. For a functional touch, add rta cargo pants to your wardrobe and create the ultimate rta outfit for any occasion.

                • read more
              • J

                So today, I was reading about a kid who got a custom prosthetic arm printed like really. Holly molly! People are printing prosthetics nowadays! That’s when I stumbled upon Curewith3D, and wow, 3D printing in healthcare is on another level.

                Apparently, I found out that they’re not just 3d printing limbs. They actually use patient-specific scans (like CT/MRI data) and some DICOM files to design prosthetics that fit the person’s body perfectly. Every angle, curve, and dimension is matched to the individual. No more bulky or uncomfortable fits.

                What’s wild is how fast and affordable the process is. Instead of traditional molds and weeks of waiting, Curewith3D can design, print, and deliver a customized prosthetic in a fraction of the time.

                I didn’t know 3D printing services could be this life-changing, and it's happening right here in India. It really makes you wonder what else we’re going to be printing next.

                Anyone else heard of this or know someone who’s used a 3D printed prosthetic? Would love to hear more.

                • read more
              By MakerGram | A XiStart Initiative | Built with ♥ NodeBB
              Copyright © 2023 MakerGram, All rights reserved.
              Privacy Policy | Terms & Conditions | Disclaimer | Code of Conduct