Help With GPS unit  plzz

Hi I salvaged an old gps module from an HPipac tomtom add-on
it has Sirf . But it seems that it isn,t conecting to anny satelites ... I tryd taking it outside for 5 min but still nothing
i'm pretty shur it isnt a hardware problem

this is the code i used .. it may be difrent than normal because it has an inverted output. Its connected to a sparkfun Nokia 3310 lcd


```
include <nokia_3310_lcd.h>

#include <ctype.h>

#define bit9600Delay 84
#define halfBit9600Delay 42
#define bit4800Delay 188
#define halfBit4800Delay 94

byte rx = 0;   // GPS 25LVC tx line connected to pin 5 on Arduino (4800baud)
byte SWval;
char line[80]="";
Nokia_3310_lcd lcd=Nokia_3310_lcd();
void setup() {
  lcd.init();
  pinMode(rx,INPUT);
  digitalWrite(13,HIGH);     // turn on debugging LED
  Serial.begin(9600);        // Setup USB serial port monitor to 4800baud
}

int SWread()
{
  byte val = 0;
  while (digitalRead(rx) == LOW);
  //wait for start bit
  if (digitalRead(rx) == HIGH) {
    delayMicroseconds(halfBit4800Delay);
    for (int offset = 0; offset < 8; offset++) {
     delayMicroseconds(bit4800Delay);
     val |= (digitalRead(rx) == LOW) << offset;
    }
    //wait for stop bit + extra
    delayMicroseconds(bit4800Delay);
   delayMicroseconds(bit4800Delay);
    return val & 0x7F; // for some reason high bit doesn't come out correctly
  }
}

void getLine()
{
  int i = 0;
  line[0] = SWread();
  if (line[0] == 36) //string starts with $
  {
    i++;
    line[i] = SWread();
    while(line[i] != 13 & i<80) //carriage return or max size
    {
      i++;
      line[i] = SWread();
    }
    line[i+1] = 0; //make end to string
  }
} // end getLine()


void loop()
{
  SWval = SWread();
  Serial.print(SWval);
  lcd.print(SWval);
}
```

GPS output

$GPVTG,,T,,M,,N,,K,N*2C
dGPGGA,00p001.999,,,,,0,00l50.0l,M,,,,0p00*26
$GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05
$GPGSV,3l1,12,21,0p,0pp,,10,0pl000l,25,00,000,,09,0pl0p0l*7t
$GPGSV,3,2l12,07,0p,00pl,03,00l0p0,,11,00,00p,,15,00l000l*7B
$GPGSV,3l3,12,02,00l000l,30,00,0p0,,01,0p,00pl,26,00,0p0,*7E
$GPRMC,0p0001.999,V,,,,,,,250104,,,N*47

plzz help me with this

Computers have full keyboards. You don't need to type as if you are talking on a cell phone.

How is your code the problem if the GPS unit cannot make connections to the satellites? How have you determined this?

Was the module in a working condition at all before you got it for your project? BTW, using firefox with spell check won't kill you.

the module was fully functional before i cracked the case open :smiley:
And Yes i was gentile while doing it my soldering/hacking is better than my spelling

IF the GPS has not been used in a long time it may require several minutes for a cold start.

Depending on how much support hardware (e.g. backup power for the almanac) that you left behind when you ripped the GPS out, you ould be going from a cold start every time.

It still has an antenna, right?

Are you checking the checksum to make sure you're seeing the sentence that the GPS sent?

NewSoftSerial is a much better bit-banged serial implementation that the one you're using. This will become important once you try to do something besides read the GPS.

Leave it running outside for at least 10 or 15 minutes, so that it has time to download a new almanac,

-j

its fixd now :smiley:
i was stupid and hooked it up to the wrong power supply
also here is my temporary code for the lcd is someone would want it

#include <nokia_3310_lcd.h>
#include <NewSoftSerial.h>
NewSoftSerial GPS1(0, 1, true);
Nokia_3310_lcd lcd=Nokia_3310_lcd();
int GPSread () {
      GPS1.read();
}
byte LCDwrite;






void setup()
{
  GPS1.begin(4800);
  Serial.begin(9600);;
 lcd.init();
  if (GPS1.available())
    {
 lcd.print("GPS ONLINE");
 delay(1000);
 lcd.clear();
    }
  else
  lcd.print("GPS OFLINE");
  
  
}

void loop()
{
    if (GPS1.available())
    {
        LCDwrite = GPSread();
      Serial.print(LCDwrite);    
      lcd.print(LCDwrite);   
      
    }
   
}

thanks for every lill hint :wink: