Interfacing GPS & hall sensor with Arduino Uno


I have an em-406a GPS module and I'm trying to connect it to the my arduino board. My question is if I can just hook it up directly or do I need to do something to it to make it work.

One of my concerns was that the GPS TTL level is only up to 2.85V, which is TTL high, but it's awfully close to 2.2V that's spec (TTL is 2.2V - 5V as far as I know).

My hall-effect sensor is connected to an analog input at the moment but I'm planning to hook it up to an interrupt input.

What I am planning to do is use millis() to calculate the time between the pulses of the hall sensor, while also getting the values from the GPS.

I guess this part should go in the hardware section because I was wondering how I could set it up so I wouldn't lose any GPS data if i got it during an interrupt (maybe use the pps output as an interrupt).

Basically what I want to do is either calculate the time between each pulse from the hall-effect sensor, while also reading data from the GPS OR read data from teh GPS every second and then seeing how many pulses I got from the Hall effect sensor in that second, my hall-effect sensor is used for a wheel-speed sensor, while the GPS is used for speed & location information, so I have to find a way to synchronize them (more or less), differences of almost up to a second should be okay

Also, if I wanted to make a scheduler, would I need to have an external real-time clock in order to drive interrupts?

Thanks (Lot's of differnet questions I know)

The specs I can find on the em-406 indicate that it is a 5V part. If you have a 3.3V version and want to use it with a 5V Arduino, what you will want is a level converter. Sparkfun has a $2 one that would work for you. Alternatively a transistor and voltage divider respectively on inputs and outputs, should do the job.

What I am planning to do is use millis() to calculate the time between the pulses of the hall sensor

If you have pulses coming in from something like that -- that might be quite frequent -- it is likely a better idea to use the pulses as input to one of the Arduino's hardware counters and then read that in software. There was a recent thread that discussed that.