I just bought the U-blox NEO-6M GPS Module and have successfully been able to receive data from it via my Arduino, however I am not able to send data the other way. As perhaps not many people know, the GPS chip on the module is fully configurable with the help of relevant documentation and software. For example, I need to change the position update rate up to 5 Hz from the default of 1 Hz. Upon trying to send commands for this both from Arduino code and from the manufacturers configuration software (u-center), no commands have made it through. Any other feature of the manufacturers software requiring data transfer to the chip also does not work.
From my research, these symptoms point to the issue being a fried Rx port on the GPS chip, due to 5V TTL signals being sent to the chip instead of 3.3V. I assumed all pins can work with 5V levels, since it is able to be powered by 5V and the product description page on this site mentions “TTL IOs” as a feature. I have made up a voltage divider circuit to reduce the Arduino’s 5V IO to 3.3V, but before I buy another module I would like to ask for any advice.
I was told by email that hundreds of units have been sold without mention of this issue, but I suspect these sales have all been to people who either a) were skeptical about the “TTL IOs” and opted to use 3.3V or b) never attempted to make configuration changes.