Arduino 328p connect gps and display

Hello,
I would like to start my journey with Arduino Pro mini. Im a big noob at those things, thats why im asking for help/advice.

I bought following parts:

  1. Pc connector for my Arduino Pro mini (FTDI232)
  2. Arduino Pro Mini 5v (atmega 328p)
  3. GPS (gn-801)
  4. Display OLED LCD 4PIN IIC interface I2C 128x64

I already connected 1 (connector) and 2 (arduino), checked with normal blink and its working.

Now im trying to connect 2 (arduino) to 3 (gps). I have connected VCC and GND, and:

  1. gps TX to RX atmega(pin 0) and gps RX to TX atmega (pin 1), but it failed to put the program inside atmega
  2. gps TX to 2 atmega (pin 2) and gps RX to 3 atmega (pin 3), but the program couldnt start.

Can anyone tell me, is it possible at all to connect those parts together? I would like to create some kind of speedometer to count how long car does from 0-100 km/h etc.

Im pasting code I used below (the code wasn't written by me, downloaded it and added some changes):

#include <TinyGPS++.h>
#include <SoftwareSerial.h>

static const int RXPin = 2, TXPin = 3;
static const uint32_t GPSBaud = 9600;

TinyGPSPlus gps;
float Long,Lat;
void setup() {
  Serial.begin(9600); // put your setup code here, to run once:
}

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

void loop() {
// put your main code here, to run repeatedly:
  get_gps_data();
}
void get_gps_data(){
  while (Serial.available() > 0){
    gps.encode(Serial.read());
    if (gps.location.isUpdated()){
      Lat=gps.location.lat();
      Long=gps.location.lng();
      Serial.println(gps.location.lat());
      Serial.println(gps.location.lng());
    }
  }
  Serial.println("Serial not available");
}

In attachments I added screenshoot of parts I have.

Thank you for any help.

FTDI232-USB-to-TTL-Serial-Converter-Adapter-Module.jpg

Screenshot from 2020-02-06 19-06-44.png

Put the SoftwareSerial constructor before setup(). Initialize the software serial port in setup(). Read the GPS with the software serial port, write to serial monitor with the hardware Serial port.

Compiles. Untested.

#include <TinyGPS++.h>
#include <SoftwareSerial.h>

static const int RXPin = 2, TXPin = 3;
static const uint32_t GPSBaud = 9600;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
TinyGPSPlus gps;

float Long, Lat;

void setup()
{
   Serial.begin(9600); // put your setup code here, to run once:
   ss.begin(GPSBaud);  //initialized the GPS serial port
}



void loop()
{
   // put your main code here, to run repeatedly:
   get_gps_data();
}

void get_gps_data()
{
   while (ss.available() > 0)
   {
      gps.encode(ss.read());
      if (gps.location.isUpdated())
      {
         Lat = gps.location.lat();
         Long = gps.location.lng();
         Serial.println(gps.location.lat());
         Serial.println(gps.location.lng());
      }
   }
   Serial.println("Serial not available");
}

There is a worked and tested example of using a Pro Mini, GPS, TinyGpS++, softwareserial and putting the GPS output on an SSD1306 (or SH1106) OLED display here;

Look for \examples\hardware_checks\29_GPS_Checker_With_Display

You dont need to install the LoRa library to use that program.

I will post it here if there is interest.

groundFungus:
Put the SoftwareSerial constructor before setup(). Initialize the software serial port in setup(). Read the GPS with the software serial port, write to serial monitor with the hardware Serial port.

Compiles. Untested.

#include <TinyGPS++.h>

#include <SoftwareSerial.h>

static const int RXPin = 2, TXPin = 3;
static const uint32_t GPSBaud = 9600;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
TinyGPSPlus gps;

float Long, Lat;

void setup()
{
  Serial.begin(9600); // put your setup code here, to run once:
  ss.begin(GPSBaud);  //initialized the GPS serial port
}

void loop()
{
  // put your main code here, to run repeatedly:
  get_gps_data();
}

void get_gps_data()
{
  while (ss.available() > 0)
  {
      gps.encode(ss.read());
      if (gps.location.isUpdated())
      {
        Lat = gps.location.lat();
        Long = gps.location.lng();
        Serial.println(gps.location.lat());
        Serial.println(gps.location.lng());
      }
  }
  Serial.println("Serial not available");
}

Sadly, but its not working. It seems that the pins are wrong.

srnet:
There is a worked and tested example of using a Pro Mini, GPS, TinyGpS++, softwareserial and putting the GPS output on an SSD1306 (or SH1106) OLED display here;

GitHub - StuartsProjects/SX12XX-LoRa: Library for SX12XX LoRa devices

Look for \examples\hardware_checks\29_GPS_Checker_With_Display

You dont need to install the LoRa library to use that program.

I will post it here if there is interest.

It also doesn't work. It keeps returning ??????????????? in console output. Attaching screenshoot. Of course I moved pins to A2/A3 as in the description. Used your 28_GPS_Checker.ino file, since im only trying to make GPS to work.

Vaflex:
It also doesn't work. It keeps returning ??????????????? in console output. Attaching screenshoot. Of course I moved pins to A2/A3 as in the description. Used your 28_GPS_Checker.ino file, since im only trying to make GPS to work.

I would not expect that to work, as per the instructions with the program;

"Serial monitor baud rate is set at 115200, GPS baud rate to 9600, both are configured in setup()"

You have the Serial Monitor baud rate set to ?

And a further hint, if you get scrambled or unreadable output on the serial monitor when reading a GPS and sending the characters to the Serial Monitor, then the normal reason is that either the GPS or Serial Monitor baud rates are not correct.

Hello Vaflex.

The TTL/USB converter is a handy tool.

Connect it to the GPS module and plug its USB pot into your computer. You should be able to see on the Arduino IDE the NMEA sentences being generated by the GPS.

This proves the GPS module is working without using an Arduino and sketch.

John.

srnet:
And a further hint, if you get scrambled or unreadable output on the serial monitor when reading a GPS and sending the characters to the Serial Monitor, then the normal reason is that either the GPS or Serial Monitor baud rates are not correct.

Yes, you were right. I changed console baud rate readings to 115200, but it still seems not working properly. Here is what im getting:

28_GPS_Checker Starting

Wait for updated GPS Fix
G⸮Ȃ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮z&G⸮O⸮cvq⸮cv⸮2⸮N⸮G⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮eF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cFb⸮F`⸮⸮⸮G⸮ʂ⸮Sg⸮cF⸮cF⸮jEG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮Ȃ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cH⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʃ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮S'J⸮g⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sf⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jEG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮d⸮G⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮#g⸮cF⸮jDG⸮ʂ⸮Sf⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sgb⸮FaJcF`⸮⸮⸮G⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʃ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cX⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮eF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jD

I have changed (in 28_GPS_Checker.ino):

#define RXpin A3                                  //pin number for GPS RX input into Arduino - TX from GPS
#define TXpin A2                                  //pin number for GPS TX output from Arduino- RX into GPS

And connected Arduino A2 to GPS RX, A3 to GPS TX.

HillmanImp:
Hello Vaflex.

The TTL/USB converter is a handy tool.

Connect it to the GPS module and plug its USB pot into your computer. You should be able to see on the Arduino IDE the NMEA sentences being generated by the GPS.

This proves the GPS module is working without using an Arduino and sketch.

John.

Yes, I know that part. I already wrote in first post, that got tool like this. And I was able to connect it into my Arduino and do basic blink with this. Right now im trying to make GPS work.

Hi,
Did you actually connect the USB/TTL to the GPS as suggested to confirm GPS output?

Set both baud rates to 9600.

Make sure there is a common ground.

itmoto:
Hi,
Did you actually connect the USB/TTL to the GPS as suggested to confirm GPS output?

Set both baud rates to 9600.

Make sure there is a common ground.

Yes I did. I think there is a problem like in this topic:
https://forum.arduino.cc/index.php?topic=477795.0

The problem is that im testing inside my house, and maybe it need to be tested outside... Got no idea... Its weird that its not getting any signal inside my house.

Vaflex:
The problem is that im testing inside my house, and maybe it need to be tested outside... Got no idea... Its weird that its not getting any signal inside my house.

Its not at all weird that a GPS wont get a fix indoors, thats normal.

However even when there is no fix (i.e indoors) the GPS will still put out data as NMEA sentences, its just they wont contain fix data ........

The various outputs you should see are explained here;

srnet:
Its not at all weird that a GPS wont get a fix indoors, thats normal.

However even when there is no fix (i.e indoors) the GPS will still put out data as NMEA sentences, its just they wont contain fix data ........

The various outputs you should see are explained here;

GitHub - StuartsProjects/GPSTutorial: A simple tutorial for troubleshooting GPSs on Arduino

Thanks for tip. Yeah the data seems to be garbage as described here:

No GPS Characters
If the serial monitor is blank then either you have a faulty GPS or its connected wrong, its also possible the GPS baud rate is wrong. Reversing the GPSRX and GPSTX pins can be tried, I have not known this damage a GPS, but no guarantees.

If the characters you see on the serial monitor are garbage, then it likely you have the GPS baud rate wrong. Check the documentation for your GPS.

Im getting things like this:

⸮
09:03:14 Feb  9 2020
V1.0

29_GPS_Checker_Display Starting

Wait GPS Fix 5 seconds
Lj⸮⸮⸮cJ⸮cR⸮⸮bR⸮⸮BJ)c⸮⸮cZ&⸮⸮C^c⸮֧⸮⸮C⸮⸮s⸮⸮c⸮⸮⸮⸮⸮Lj⸮⸮⸮c⸮⸮NJ⸮

Timeout - No GPS Fix

Wait GPS Fix 5 seconds
Lj⸮⸮⸮cJ⸮cR⸮⸮bR⸮⸮BJ)c⸮⸮cZ&⸮⸮C^c⸮֧⸮⸮C⸮⸮s⸮⸮c⸮⸮⸮⸮⸮Lj⸮⸮⸮c⸮⸮NJ⸮

Timeout - No GPS Fix

Wait GPS Fix 5 seconds
Lj⸮⸮⸮cJ⸮cR⸮⸮bR⸮⸮BJ)c⸮⸮cZ&⸮⸮C^c⸮֧⸮⸮C⸮⸮s⸮⸮c⸮⸮⸮⸮⸮Lj⸮⸮⸮c⸮⸮NJ⸮

Timeout - No GPS Fix

So my next guess baud rate is wrong. But in this thread:

The guy got the same GPS I do, and he is using baud rate 9600. In the output he got normal characters.

Also there was a similar topic here:
https://forum.arduino.cc/index.php?topic=621220.0

But there is no further information how to solve this.

Vaflex,

Experienced people are trying to give guidance to get through an exercise that many, many people before have had trouble with.

When new to GPS, the first goal is NOT to get a fix. The first goal is to read the NMEA sentences generated by the module.

The easiest way to do this is to connect the GPS module to the TTL/USB converter and connect the USB port to a computer and read the output in the IDE monitor. People should not have to advise about baud rates -- we should all be able to get that right without help.

This method does NOT involve an Arduino board and sketch. The NMEA sentences come from the module, not from the satellites.

Until the user can read the NMEA sentences, there is no point in worrying about a fix.

John.

Sometimes I think the authors of GPS tutorials have done us all a dis-service by encouraging new users to think they can make GPS work without understanding how each component works.

John.

Vaflex:
The guy got the same GPS I do, and he is using baud rate 9600. In the output he got normal characters.

But there is no further information how to solve this.

Try a different GPS buad rate ?

srnet,

I want to apologise for my negative comment on GPS tutorials. I did not mean to include your tutorial in that comment. Your tutorial is an effort to help new users in this tricky business of getting a GPS gadget to work reliably.

I think it is the authors of GPS libraries and their examples that mislead people into thinking it is just a matter of connecting a couple of boards together, uploading their example sketch and hey presto! -- a working GPS system.

I think new users ought to be encouraged to develop their system in a step wise fashion, understanding each step. Then they can be self reliant and manage their issues instead of coming on the forum with "my GPS doesn't get a fix,
please help!". How many times have we heard that call for help? 10x? 20x? 30x?

John.

srnet:
Try a different GPS buad rate ?

I think I tried them all, but nothing went forward.

HillmanImp:
Sometimes I think the authors of GPS tutorials have done us all a dis-service by encouraging new users to think they can make GPS work without understanding how each component works.

John.

I tried NMEA, unpined tx/rx gps from arduino, then downloaded code like:

// Test code for Adafruit GPS modules using MTK3329/MTK3339 driver
//
// This code just echos whatever is coming from the GPS unit to the
// serial monitor, handy for debugging!
//
// Tested and works great with the Adafruit Ultimate GPS module
// using MTK33x9 chipset
//    ------> http://www.adafruit.com/products/746
// Pick one up today at the Adafruit electronics shop
// and help support open source hardware & software! -ada

//This code is intended for use with Arduino Leonardo and other ATmega32U4-based Arduinos

#include <Adafruit_GPS.h>
#include <SoftwareSerial.h>

// Connect the GPS Power pin to 5V
// Connect the GPS Ground pin to ground
// If using software serial (sketch example default):
//   Connect the GPS TX (transmit) pin to Digital 8
//   Connect the GPS RX (receive) pin to Digital 7
// If using hardware serial:
//   Connect the GPS TX (transmit) pin to Arduino RX1 (Digital 0)
//   Connect the GPS RX (receive) pin to matching TX1 (Digital 1)

// If using software serial, keep these lines enabled
// (you can change the pin numbers to match your wiring):
SoftwareSerial mySerial(8, 7);

// If using hardware serial, comment
// out the above two lines and enable these two lines instead:
//HardwareSerial mySerial = Serial1;

#define PMTK_SET_NMEA_UPDATE_1HZ  "$PMTK220,1000*1F"
#define PMTK_SET_NMEA_UPDATE_5HZ  "$PMTK220,200*2C"
#define PMTK_SET_NMEA_UPDATE_10HZ "$PMTK220,100*2F"

// turn on only the second sentence (GPRMC)
#define PMTK_SET_NMEA_OUTPUT_RMCONLY "$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29"
// turn on GPRMC and GGA
#define PMTK_SET_NMEA_OUTPUT_RMCGGA "$PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28"
// turn on ALL THE DATA
#define PMTK_SET_NMEA_OUTPUT_ALLDATA "$PMTK314,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0*28"
// turn off output
#define PMTK_SET_NMEA_OUTPUT_OFF "$PMTK314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28"

#define PMTK_Q_RELEASE "$PMTK605*31"

void setup() {
  while (!Serial); // wait for leo to be ready

  Serial.begin(57600); // this baud rate doesn't actually matter!
  mySerial.begin(9600);
  delay(2000);
  Serial.println("Get version!");
  mySerial.println(PMTK_Q_RELEASE);
 
  // you can send various commands to get it started
  //mySerial.println(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  mySerial.println(PMTK_SET_NMEA_OUTPUT_ALLDATA);

  mySerial.println(PMTK_SET_NMEA_UPDATE_10HZ);
 }


void loop() {
  if (Serial.available()) {
   char c = Serial.read();
   Serial.write(c);
   mySerial.write(c);
  }
  if (mySerial.available()) {
    char c = mySerial.read();
    Serial.write(c);
  }
}

and when I put gps TX to pin 8, its starting to output to console. Other pins are not outputting anything. But anyway the output looks like previously - im getting some weird symbols.

Get version!
G⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sf⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sf⸮cF⸮cF⸮jDG⸮ʃ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jCG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʃ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʃ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sf⸮cF⸮cF⸮G⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sf⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʋ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jEG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮,TN⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jD#⸮j⸮⸮G⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jD⸮G⸮ʂ⸮Sf⸮cF⸮cF⸮jD⸮⸮⸮⸮⸮G⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʃ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cH⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jD⸮⸮⸮⸮c⸮⸮G⸮T⸮N⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʃ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮⸮G⸮ʂ⸮ST⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮cF⸮cF⸮jDG⸮ʃ⸮Sg⸮cF⸮cF⸮jDG⸮ʂ⸮Sg⸮⸮⸮⸮⸮/

There is documentation here:
https://pl.aliexpress.com/item/32951163811.html

Which says baud rate for this gps: (default 9600) can set 1200,4800, 19200,38400, 57600,115200 bps

Anyway, when I set 115200 for this gps, the results look more normal than previous (on 9600).

Get version!
$GNRMC,,V,,,,,,,,,,N*4D
 $GNVTG,,,,,\,,,N*2E
$G⸮GGA,,,,,,0,`0,$GNRMC,,V,,,\,,,,,,N*4D
$GNVTG,,,,\,,,,N*2E
$⸮NGGA,,,,,,0\00,99.99,5,,,9
,,9.$,G0GV$GNRMCL,V,,,,,,,,,\N*4D
$GNVT⸮,,,,,,,,,N*bE
$GNGGA,,,,,,0,00,99/99,*A,99E,,)⸮b⸮rR5$,L*L*$GNRMC,,⸮,,,,,,,,,,NZ4D
$GNVTG\,,,,,,,,N*2E
$GNGGA,,,,,,0,00,99.9y,*G,,9E,,,^Pbb⸮
L0L,$G⸮RMC,,V,,,,\,,,,,N*4D
$GNVTG,,,,,,\,,N*2E
$GN⸮GA,,,,,,0,`0,99.99,5A,.9G,,8*V9,
,7$GNRMC,,V,,,,,,,\,,N*4D
$GNVTG,,,,,,,,,O*2E
$GNGG⸮,,,,,,0,00,y9.99,,G,,99G,,9*V
,6,A$GNRMC,,V,,\,,,,,,,N*4D
$GNVTG,,,,,,,,,N*2E
DGNGGA,,,,,,`,00,99.99,,S,,.2,,.9G1
1NV$GNRMC,,V,,,,\,,,,,N*4D
DGNVTG,,,,,,,,,N*2E
$G⸮GGA,,,,,,0,`0,99.99,5A,99
1,99G*,
,7$GNRMC,,V,,,,,,,,,,⸮*4D
$GNVTG,,,,,,,,,N*2⸮
$GNGGA,,,,,,0,00,99.y9,,
,,9.$,,)⸮⸮⸮⸮R5$0G*L7$GNRMC,,V,,,,,,,,,,N*4⸮
$GNVTG,,,\,,,,,N*2E
DGNGGA,,,,,\0,00,99.99,,⸮,,92,,99
,
1
,$GNRLC,,V,,,,,,\,,,N*4D
$G⸮VTG,,,,,,,,\N*2E
$GNGG⸮,,,,,,0,00,99.99,6A,9,
A,,)⸮⸮*
V
,
,A$GNRMC\,V,,,,,,,,\,N*4D
$GNV⸮G,,,,,,,,,NZ2E
$GNGGA,\,,,,0,00,9y.99,
A,,9G,,,9$,L0L*$GNRMC,,V,,.,,,,,,,N*4D
$GNVTG,,,,\,,,,N*2E
$GNGGA,,,,,,`,00,99.99,,N,,9.$,,.9S91
,$G⸮RMC,,V,,,,\,,,,,N*4D
DGNVTG,,,,,,\,,N*2E
$GNGGA,,,,,,0,00,99.99,
1,99G,9,$,
,

Im not sure, if its about baud rate, gps is broken or its not getting any signal ?

Signal doesn't matter at this stage. The GPS should send NMEA sentences anyway. Many of the fields will be empty, but they should still be recognizable. Do you have a factory reset sentence you can send?

Try other baud rates too. 4800 for example.

Stop using code. Stop using Arduino boards.

Use your TTL/USB converter to send the GPS output to the Arduino IDE monitor. This is so easy to do. It does not require satellite signals. (GPS TX goes to converter RX; don't use GPS RX, it isn't needed)

When you show us a snapshot of your NMEA sentences using this method then we can move on.

You may have a bad power supply.

John.

HillmanImp:
Stop using code. Stop using Arduino boards.

Use your TTL/USB converter to send the GPS output to the Arduino IDE monitor. This is so easy to do. It does not require satellite signals. (GPS TX goes to converter RX; don't use GPS RX, it isn't needed)

When you show us a snapshot of your NMEA sentences using this method then we can move on.

You may have a bad power supply.

John.

Sorry to ask, do you have any tutorial or something how to do this? All of the tutorials I found were connecting GPS module threw Arduino to TTL/USB converter. If I get what you are writing, then you mean I should directly connect GPS to TTL/USB converter ?

I did that, opened Serial Monitor but nothing was written there.