Shop OBEX P1 Docs P2 Docs Learn Events
GPS Code/Wiring Question — Parallax Forums

GPS Code/Wiring Question

NWCCTVNWCCTV Posts: 3,629
edited 2014-09-09 02:18 in Propeller 1
I am thinking of adding GPS to my Wild Thumper but I want to test it out and see how well it works outside in my limited space. I downloaded some Spin code from the OBEX but before I go any further I need to verify the attached diagram. The wiring diagram states to run Blue Wire to the Emitter, P10 to Base and Collector to Ground. So, what exactly does this mean? Do I run P10 to a spot on my breadboard and connect the Blue Wire there and they both then go to Vss? I am somewhat confused on that statement and do not want to burn out my GPS.
         ┌──────────┐
           N/C ─┤          │
           N/C ─┤          │
           Vss ─┤Black     │
        Vdd(5v)─┤Red       │
     ┌──────────┤Blue      │      
     │     P15 ─┤Yellow    │
     │          └──────────┘
     │
     │            *Blue wire to the Emitter
P10─  ─────────*P10 to the Base 
     │            *Collector to Ground
     └──Vss
    
}'-----------------------------------------
CON
  _clkmode      = xtal1 + pll16x
  _xinfreq      = 5_000_000
  CR            = 13
  LF            = 10
  
OBJ
  PST          : "Parallax Serial Terminal"
  GPS          : "GPS_Float_Lite"
  FS           : "FloatString"
  Serial       : "FullDuplexSerial"
  
VAR
  Long Counter
  Long Lat, Lon  
  
PUB Main 
  counter := 0                                       'The counter is here so that you can see how fast the code is executing
  PST.Start(9600)                                    'Starts the PST at 9600 baud to view data and messages
  PST.Clear                                          'Clears the PST of any data or characters
  waitcnt(clkfreq*2+cnt)
  
  PST.str(string("GPS Warmup"))
  waitcnt(clkfreq*10+cnt)                            'Gives the GPS 10 seconds to warm up
  
  PST.Newline
  PST.str(string("Disabling S/N"))
  Serial.Start(15,10,0,4800)                         'Starts a serial line that will be used to re-configure the GPS from
                                                     'static navigatino to constant navigation
  Disable_Static_Nav
  
  PST.Newline
  PST.str(string("Complete"))
  waitcnt(clkfreq+cnt)
  PST.Clear
  
  Serial.stop                                        'Stops the serial line that re-configured the GPS, allowing us to use the 
                                                     'same I/O pins in the GPS_Float_Lite object to receive the newly configured
                                                     'data.
  GPS.Init                                           'Starts the GPS_Float_Lite object   
  
  FS.SetPrecision(7)                                 'Sets FloatString's precision to 7 digits(the maximum value)
  repeat    
                                                     
    Lat := GPS.Float_Latitude_Deg                    '
    Lon := GPS.Float_Longitude_Deg    
    Display
    
    counter++
    if counter == 50000
      counter := 0
    waitcnt(clkfreq/2+cnt)
    
PRI Display
  PST.Home
  PST.str(string("Lat: "))
  PST.str(FS.FloatToString(Lat))
  PST.str(string("  "))
  PST.Newline
  PST.Newline
  PST.str(string("Lon: "))
  PST.str(FS.FloatToString(Lon))
  PST.str(string("  "))
  PST.Newline
  PST.Newline
  PST.str(string("Cnt:  "))
  PST.dec(counter)
  PST.str(string("  "))
PRI Disable_Static_Nav | i
  waitcnt(cnt + clkfreq)
  Serial.str(string("$PSRF100,0,4800,8,1,0*0F", CR, LF))   'Switch to SiRF binary protocol at 4800,8,N,1
  'Diable Static Navigation
  
  waitcnt(clkfreq + cnt)
  repeat i from 0 to 9
    Serial.tx(DisStatNav[i])
  'Switch back To NMEA Protocol Message ID 129, leave only GGA and RMC strings and keep speed at 4800
  
  waitcnt(clkfreq / 2 + cnt)
  repeat i from 0 to 31
    Serial.tx(BackToNMEA[i]) 

DAT
floatNaN       LONG $7FFF_FFFF                 'NaN code 
'SiRF Disable Static Navigation, Message ID 143
DisStatNav    byte      $A0,$A2,$00,$02,$8F,$00,$00,$8F,$B0,$B3
'Switch back To NMEA Protocol Message ID 129 at 4800 bauds, leave on GGA and RMC strings updating oce per second.
BackToNMEA    byte      $A0,$A2,$00,$18,$81,$02,$01,$01,$00,$01
              byte      $00,$01,$00,$01,$01,$01,$00,$01,$00,$01
              byte      $00,$01,$00,$01,$00,$01,$12,$C0,$01,$61
              byte      $B0, $B3

Comments

  • dgatelydgately Posts: 1,630
    edited 2014-09-08 20:59
    Andy,


    Unknown-1.jpeg


    That symbol is for a PNP transistor...

    File:Transistor PNP symbol.png - Wikimedia Commons


    Place a 'common' PNP transistor into a breadboard:

    PNP-Breadboard.jpg


    Connect the blue wire to the PNP transistor's emitter.
    Connect the Prop's P10 to the PNP transistor's base. (A resistor may be needed between P10 and the base)
    Connect the PNP transistor's collector to ground.

    dgately
    77 x 91 - 2K
    165 x 152 - 15K
  • NWCCTVNWCCTV Posts: 3,629
    edited 2014-09-08 21:09
    That's why I asked. Thank you much. Which resistor do you recommend? And which transistor? I have tons of them!!!
  • dgatelydgately Posts: 1,630
    edited 2014-09-08 21:34
    Hmm, I'm more of a software mangler...

    Where did the diagram come from (from what spin project does that file exist?)? If that schematic is actually correct, you could use any pot the following transistors.

    Generic amplifier PNP transistor choices:
    2N3906
    2N2907

    You should look at a data sheet of one of these.

    As far as the resistor to use, start high and use the highest that allows the Prop to receive data :-) I would start at 1K and reduce as far as down to 330 Ohm... (Just a guess, you may want advise from much more knowledgable forum folk).

    The resistor is just protection since P10 will be an input... My assumption is that it's there just in-case there's a surge when the board and the GPS are turned on.


    dgately
  • NWCCTVNWCCTV Posts: 3,629
    edited 2014-09-08 21:49
    The diagram is within the file from the Constant_Nav_Mod in the OBEX. I will give this a try tomorrow and let you know how it goes.

    EDIT: Not sure why I did not pick up on the diagram being of a transistor. I know what emitter, base and collector are from. Must be working on this project too much. Time to take a break!!!
Sign In or Register to comment.