I already tried to connect my uno and GPS Ublox M8N with several libraries, such as tinyGPS, tinyGPS++, and Ublox.
But, unfortunately, I don't get latitude, longitude, and altitude. All values just get 0.00000 and 0.00 .
I don't know what to do with this Ublox M8N but when I connect my GPS into U center, I can find my GPS works indicated by latitude, longitude, and altitude that shown in U center. I think there are some mistakes in libraries or maybe M8N didn't recognize to Uno.
What I should do? change my GPS and buy another one that have a type M6 Ublox? or anyone here know how to get data GPS M8N into Arduino Uno?
My wiring in Arduino just a simple wire, Rx to TX and vice versa, VCC to 3.3V or 5V because M8N support 3-5V, GND to GND. But in M8N there are another pin about SCL and SDA that I don't connect to Arduino.
A common mistake is done when using GPS module with SoftwareSerial and "Serial" at the same time with baudrates of more than 4800 baud.
A simple solution would be: Avoid SoftwareSerial and use a board with more than just one Serial.
I.e. MEGA2560 boards have also Serial1, Serial2 and Serial3 as hardware serial ports.
So with aMEGA2560 board, just connect GPS module to "Serial1" and then use "Serial1" for reading from GPS and print output to "Serial".
Using two hardware serial ports at the same time is no problem
But using SoftwareSerial and hardware "Serial" at the same time might cause conflicts caused by corrupted data.
Have you tried NeoGPS? It's smaller and faster than other libraries, and it has a diagnostic program that may tell you something (see the Troubleshooting page).
Regarding serial ports, there are several alternatives for software implementations: AltSoftSerial is best, but it only works on pins 8 & 9 (on an UNO). If you can hook the GPS to those two pins, it's a safe way to go.
Next best is a library I maintain, NeoSWSerial. It is almost as efficient and reliable as AltSoftSerial. NeoSWSerial will work on any two pins, but it only supports baud rates 9600, 19200 and 38400. You are probably using 9600.
SoftwareSerial is the last choice, because it disables interrupts for long periods of time. At 9600, interrupts are disabled for ~1ms, an eternity for an Arduino running at 16MHz. This can interfere with other parts of your sketch.
Like others have said, let's see your code, because the examples from other libraries are poorly structured, and frequently break when modified. Lots of folks have no problem getting a UNO+GPS system to work, once they understand some of the timing issues.