Arduino Nano, TX and RX (Pins 0, 1) not working for GPS!!

Dear friends

I try to use a GPS Neo-6mv2 connected GPS TX to RX and RX to TX but not working. Nothing happens. I don,t want to use Software serial for prevent read errors. I want to make a Data Logger for use with karting. I´m using an arduino nano. What I do wrong? Here the Skatch:


#include <SD.h>

const int chipSelect = 10;
int start_log, start, file_number;
byte c;
File dataFile;
char file_name[10] = "logxx.ubx";

void setup()
Serial.begin(9600); //Set the correct log baud rate
pinMode(6, OUTPUT); //Led
pinMode(7, INPUT_PULLUP); //Switch

if (!SD.begin(chipSelect)) {
//Card error or card is missing.
digitalWrite(6, !digitalRead(6));

void loop(){
//Prevent contact bouncing / slow switching.
if(PIND & B10000000 && start_log < 1000)start_log ++;
else if(start_log > 0)start_log --;

if(start_log > 700 && start == 0){
for(start = 0; start < 7; start ++){
digitalWrite(6, !digitalRead(6));
file_name[3] = '0';
file_name[4] = '0';
//Open a new ubx file after the last file on the card.
for(file_number = 0; file_number < 100 && !dataFile; file_number ++){
file_name[3] = (file_number / 10) + 48;
file_name[4] = (file_number % 10) + 48;
if(!SD.exists(file_name))dataFile =, FILE_WRITE);

if (dataFile){
digitalWrite(6, HIGH);
start = 1;
while(Serial.available())c =; //Clear serial buffer.
else{ //File is not open for writing.
digitalWrite(6, !digitalRead(6));

if (Serial.available()){
c =;
else if(start_log < 200){
if(!dataFile)digitalWrite(6, LOW);
start = 0;


but not working.

What part is not doing what you expect? That code is WAY too complicated for testing that the GPS is working.

I don,t want to use Software serial for prevent read errors.

And THAT is utter nonsense. At reasonable baud rates, such as used by a GPS, there are no errors reading serial data using SoftwareSerial.

There are other reasons to avoid SoftwareSerial, but errors in reading are not one of them.

There is NO reason to be using direct port manipulation to determine that a pin is HIGH when you then open a file and spin reading and writing serial data.

All those magic numbers related to start_log make no sense. Your code seriously needs comments (and probably a complete restructure).

Use SoftwareSerial.
Try the 2nd example in Serial Input Basics