Pages: [1]   Go Down
Author Topic: Using 3.3v GPS Serial signals on Arduino  (Read 3163 times)
0 Members and 1 Guest are viewing this topic.
Brazil
Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello Guys!

I am creating a OSD for a remote control airplane and I had a little problem when connecting a ME-1000RW GPS Module on my arduino, because the signal was too low, when searching for a solution for this, I found out that people usually use MAX232 to level the signal. But I found out that using a transistor and two resistors do the trick.



here is my test circuit:



before level up the signal, I was getting only tresh on the serial port.

Hope this can be helpful to someone else.

Cheers,

Antonio Santos.
Logged

Offline Offline
Edison Member
*
Karma: 3
Posts: 1001
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The pullup resistors in your circuit seems a bit excessive - I would swap the position of the 1K and 10k resistors.

The use of a single transistor for "level" conversion suggests you're interfacing to RS-232 (as opposed to logic level TTL). Since your GPS apparently supports both TTL and RS-232, you may benefit from interfacing direct to the GPS logic level interface.
Logged

Brazil
Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi BenF!

this GPS module only suports LVTTL (Low voltage TTL) which is even worst from the signal level perspective.

Cheers!

Antonio Santos
Logged

Offline Offline
Edison Member
*
Karma: 3
Posts: 1001
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
this GPS module only suports LVTTL (Low voltage TTL)
This doesn't match with your circuit, the issues you report or the datasheet. When you use a single transistor, you invert the logic level and so signals would no longer be compatible with the Arduino USART. It may work however with RS-232 levels (despite the excessive pullups as I mentioned).

It seems to me you're not doing what you think you are and so it may not be a good idea for others to follow your example.

Check datasheet here:
http://res.trilha21.com/001000608/files/ME-1000RW.pdf
Logged

Brazil
Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 ;D

yep I know I inverted the logic level also. and yes this is to work with RS232 levels. This is the code I am using, and its working like a charm know.

Code:
#include <AFSoftSerial.h>

AFSoftSerial mySerial =  AFSoftSerial(4, 5);

void setup()  {
  pinMode(13, OUTPUT);
  Serial.begin(9600);
  Serial.println("Goodnight moon!");
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
}

void loop()                     // run over and over again
{
  if (mySerial.available()) {
      Serial.print((char)mySerial.read());
  }

}

I have that datasheet you mentioned but its poorly written and it has a bunch of errors, even the PINOUTS are wrong. I placed this here because I've seen people that bought it having problems to communicate with are doing, and they just gave up.

Besides the voltage levels, there is a logic invertion. I would buy another module like EM-406 or locosys, but this was the only one available in Brazil.

Thanks for the comments,

Antonio Santos

Logged

Brazil
Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi there!

I was browsing around and I found out that my GPS uses the same chipset used on the Sparkfun Venus GPS, the Venus634FLPX that I see many threads and none solved... If anyone is willing to try this please be careful, and try at your own risks, here is working great now.

and since I don't send anything to the GPS, I am only using the first portion of the schematic, a BC547 or BC548 and two resistors...

If this works with the Spark Fun Venus GPS, please post here...

Thanks,

Antonio Santos

Logged

0
Offline Offline
Tesla Member
***
Karma: 148
Posts: 9750
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Just looking at your schematic, it appears that you are connecting 5v to your 3.3v chip.
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Brazil
Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

yes, my arduino nano is working at 5v. But you can also conect to a 3.3v if you use a chip that uses 3.3v logic levels. These Venus634FLPX based GPS are a pain. This was the only way mine worked... I only got trash from the serial before doing this... now I am getting real data:

Code:
$GPRMC,172117.995,A,2247.2299,S,04705.1322,W,001.0,140.8,120710,,,A*69
$GPVTG,140.8,T,,M,001.0,N,001.8,K,A*08
$GPGGA,172118.995,2247.2297,S,04705.1322,W,1,06,2.2,622.7,M,-2.0,M,,0000*4B
$GPGSA,A,3,03,18,24,19,06,22,,,,,,,3.4,2.2,2.7*32
$GPGSV,2,1,08,14,72,056,25,06,68,301,16,03,58,264,44,24,57,153,28*7C
$GPGSV,2,2,08,22,44,155,22,19,39,226,33,18,15,130,38,16,12,328,17*7B
$GPRMC,172118.995,A,2247.2297,S,04705.1322,W,001.3,144.3,120710,,,A*64
$GPVTG,144.3,T,,M,001.3,N,002.3,K,A*0C
$GPGGA,172119.995,2247.2297,S,04705.1320,W,1,06,2.2,622.8,M,-2.0,M,,0000*47
$GPGSA,A,3,03,18,24,19,06,22,,,,,,,3.4,2.2,2.7*32
$GPGSV,2,1,08,14,72,056,26,06,68,302,15,03,58,264,43,24,57,153,28*78
$GPGSV,2,2,08,22,44,155,24,19,39,226,34,18,15,130,37,16,12,328,16*74
$GPRMC,172119.995,A,2247.2297,S,04705.1320,W,000.0,144.3,120710,,,A*65
$GPVTG,144.3,T,,M,000.0,N,000.0,K,A*0F
$GPGGA,172120.995,2247.2294,S,04705.1321,W,1,06,2.2,623.3,M,-2.0,M,,0000*45
$GPGSA,A,3,03,18,24,19,06,22,,,,,,,3.4,2.2,2.7*32
$GPGSV,2,1,08,14,72,056,26,06,68,302,15,03,58,264,41,24,57,153,28*7A
$GPGSV,2,2,08,22,44,155,23,19,39,226,34,18,15,130,39,16,12,328,15*7E
$GPRMC,172120.995,A,2247.2294,S,04705.1321,W,000.0,144.3,120710,,,A*6D
$GPVTG,144.3,T,,M,000.0,N,000.0,K,A*0F
$GPGGA,172121.995,2247.2286,S,04705.1314,W,1,06,2.2,623.0,M,-2.0,M,,0000*42
$GPGSA,A,3,03,18,24,19,06,22,,,,,,,3.4,2.2,2.7*32
$GPGSV,2,1,08,14,72,057,26,06,68,302,16,03,58,264,42,24,57,153,27*74
$GPGSV,2,2,08,22,44,155,23,19,39,226,33,18,15,130,38,16,12,328,15*78
$GPRMC,172121.995,A,2247.2286,S,04705.1314,W,000.0,144.3,120710,,,A*69
$GPVTG,144.3,T,,M,000.0,N,000.0,K,A*0F
Logged

Pages: [1]   Go Up
Jump to: