Gps Data Logger


+ Reply to Thread
Page 1 of 3 123 LastLast
Results 1 to 15 of 31

Thread: Gps Data Logger5088 days old

  1. #1
    ohararp
    Guest ohararp's Avatar

    0 Not allowed!

    Default Gps Data Logger

    Steven, a spinoff from your sd_file_system is this gps data logger that I designed just recently. I just got the first one assembled. The EM406 gps uses the latest SIRFSTAR III chipset to make sure you get a signal in areas of dense foliage, canyons, and even inside buildings depending on the construction technique. Battery is a 3.6V lithium ion type large enough to provide 22 hours of continuous operation and can be replaced with a fresh battery or charged/powered via a usb port at 100mA. The SD memory card can be as large as 2GB and up to 255 files can be on the card at a time. The time and date of each file is also recorded when the file is created and updated. Recording options allow for direct recording of NMEA output from the gps or processed data in the form of LAT,LON,ALT,HDG,SPD,SAT,FIX,Hours,SD_Minutes,SD_Se conds,SD_Day,SD_Month,SD_Year. Either option is configurable via a CONFIG.TXT file. The contents of this file are below.

    The first line is what actually configures the device. You set the baud rate (communication setting), recording time in seconds, and finally a 1 (on) or 0 (off) for the options of the two different recording methods. It’s really easier than it seems. The device defaults to the setup you currently see. You can “tweak” things if you want to or not.

    The device is similar in functionality to the sparkfun gps data logger but is a bit more feature rich in both hardware and software.

    I am working on getting a storefront opened up in the near future and will keep everyone posted.

    Code:
    4800,1,11111111
    ‘BAUD,INTERVAL,OPTIONS
    ‘BAUD OPTIONS     (1200,2400,4800,9600,19200,38400)
    ‘INTERVAL OPTIONS (0-65536) SECONDS
    ‘NMEA MODE[7]=0 (MODE[7] NC[6]       GPVTG[5] GPRMC[4] GPGSV[3] GPGSA[2] GPGLL[1] GPGGA[0])
    ‘KML  MODE[7]=1 (MODE[7] LAT/LONG[6] ALT[5]   HDG[4]   SPD[3]   SAT[2]   FIX[1]   TIME/DATE[0])
    ‘BIT[X]=0=OFF        BIT[X]=1=ON


  2. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  3. #2
    swright
    Guest swright's Avatar

    0 Not allowed!

    Thumbs up Excellent..!

    Ryan,

    An excellent piece of work. The board looks very professional and I'm impressed with the Lithium battery option - any chance of a circuit diagram for the charging part of it? How accurate is the GPS fix from this unit?

    Regards,

    Steven

  4. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  5. #3
    pverburg
    Guest pverburg's Avatar

    0 Not allowed!

    Default

    A very nice looking design.

    Its scary how close some minds work and come up with simular ideas.

    This is exacly the idea I was working on but using an existing old gps with limited storage and log from the serial output.
    (car travel for up to a week or so)

    Well done now you have raised the bar of option and configuration to a new level, more late nights and headaches.

    Paul V.

  6. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  7. #4
    Fanatical Contributor Tim's Avatar
    Join Date
    Jan 2003
    Posts
    7,754
    Thumbs Up
    Received: 51
    Given: 96
    Total Downloaded
    1.33 GB

    0 Not allowed!

    Default

    Ditto

    I was asked to do one but decided against it. To many on the market, I did though work out the twists in the spec/design to suit the project. And we were going to supply with bespoke PC software to do analisis on the data etc.

    While we have Fat32 code and can store 1,000's of unique files we decided to go bespoke, the application required we needed secure data.

    But its all not worth talking about because we dropped the project.

    ohararp what would the retail price be?

    Steve the battery looks like a 2/3 aa lithium Tdarian (not rechargable)
    Tim

  8. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  9. #5
    ohararp
    Guest ohararp's Avatar

    0 Not allowed!

    Default

    Looking at approximately $150 US. The battery I got was from Mouser and is spec'd at 3.6V 2400 mAh and is lithium ion. I took the picture with my camera phone. Hence the lack of clarity or illusion of propriety. I'll work on getting a better photo up shortly. Schematic is posted below. I have both isis and ares files available if you are interested. I had to do some custom packages for microchip smd parts. GPS accuracy is pretty good and of course depends on how many satellites you can track (20 channel unit). The SIRFSTAR III chipset acquires wicked fast locks (<10 s sometimes). Spec sheet can be found at www.usglobalsat.com.

    PS... this was my first smt board and I am so pumped it worked! I am know a member of the "Church of the Hot Plate". Buy some solder paste, syringe, and a hot plate (like the one you cook pancakes on) and 10 minutes later Bon Apetite.


  10. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  11. #6
    swright
    Guest swright's Avatar

    0 Not allowed!

    Default

    Ryan, many thanks for sharing the circuit and the extra info - once again, an excellent job.

    Regards,

    Steven

  12. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  13. #7
    Paul Shepard
    Guest Paul Shepard's Avatar

    0 Not allowed!

    Default

    Ryan

    Ditto, very nice looking module.

    Cheers

  14. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  15. #8
    ohararp
    Guest ohararp's Avatar

    0 Not allowed!

    Default

    Amazing what a "real" camera can do...In the interest of open source code I have decided to post all the source code for this project as well. In the near future I would like to create a pdf article of this project. For all those using sd cards you may want to look at some of the routines I used to "check for files" - Label INIT_SD_CHECK_WRITE and READ_CONFIG_FILE to read a line from the user defined configuration file.

    Additionally, this board was designed to be used with a www.circuitshell.com type enclosure. These are pretty handy I and I have used them in a number of other apps.

    LITHIUM CLARIFICATION:

    Many "lithium cells" that you see on the market today are not rechargeable (TIM thanks for catching that). I spec'd a lithium battery from mouser with a capacity of 2200 maH at 3.6V. Well I should have known better since 2200 mah was nearly 3x greater than similarly sized lithium ion batteries that are rechargeable. Of course the datasheet on this part did not expressly say DO NOT RECHARGE. Luckily once I received that battery it did say DO NOT RECHARGE. I will more than likely be doing a slight redesign on this project to apply 3 x 750 mAh lithium ion cells to acheive the required battery life of this project.

    If you have any questions don't hesitate to drop me a line.



    Code:
    '$GPGGA,170834,4124.8963,N,08151.6838,W,1,05,1.5,280.2,M,-34.0,M,,,*75
    '$GPRMC,081836,A,3751.65,S,14507.36,E,000.0,360.0,130998,011.3,E*62
        Device = 18F4620
        XTAL = 20
     	OPTIMISER_LEVEL = 6							' Set the optimiser to maximum
        Dim LAT            As Float
    	Dim SIGN_LAT       As Float
    	Dim LON            As Float
    	Dim SIGN_LONG      As Float
        Dim FIX            As Byte
        Dim SAT            As Byte 
        Dim ALT            As Float
    	
    	Dim SPD            As Float
    	Dim HDG            As Float
    
    	Dim GPVTG_STR[84]  As Byte
    	Dim GPRMC_STR[84]  As Byte
    	Dim GPGSV_STR[84]  As Byte
    	Dim GPGSA_STR[84]  As Byte
    	Dim GPGLL_STR[84]  As Byte
    	Dim GPGGA_STR[84]  As Byte
    	
    	Dim IDX_GP         As Byte 'GP Sentence IDX
    	Dim IDX_INT        As Word 'Inteval IDX
    	Dim IDX_B          As Byte 'Baud IDX
     '*******************************************************************************
    'Extract the Value Variables
       	Dim GPS_BLOOP      As Byte 						    ' \
    	Dim GPS_EXTRACT_ITEM As Byte 					'  \
    	Dim GPS_COMMA_COUNT  As Byte 					'    General purpose variables
    	Dim GPS_CHARPOS    As Byte 						'  /
    	Dim GPS_CHAR       As Byte 							' /
    '*******************************************************************************
    'GPS_PARSE Variables    	
    	Dim GPS_DATA_STRING[20] As Byte						' Temp buffer
    	Symbol GPS_RXBUFFER_LENGTH = 200
    	Dim GPS_RXBUFF[GPS_RXBUFFER_LENGTH] As Byte		' Serial buffer for NMEA sentences
    '*******************************************************************************
    'String to Float Variables
        Dim N               As Byte
        Dim STF_STRING_IN[20] As Byte 'String to Float Variables
        Dim STF_POWER_10    As Float
        Dim STF_RESULT      As Float
        Dim STF_SIGN        As Byte
        Dim STF_CHAR        As Byte
        Dim STF_CHARPOS     As Byte
        Dim STF_TEMP        As Float
        Dim TEST_CHAR       As Byte     
        Dim TEST_CHAR_IDX   As Byte        
    '*******************************************************************************
    'String to Float Variables
        Dim DDMM_STRING_IN[20] As Byte 'String to Float Variables
        Dim DDMM_POWER_10    As Float
        Dim DDMM_RESULT      As Float
        Dim DDMM_SIGN        As Byte
        Dim DDMM_CHAR        As Byte
        Dim DDMM_CHARPOS     As Byte
        Dim DDMM_CHARPOS_LOW As Byte
        Dim DDMM_TEMP        As Float
        Dim DDMM_TEMP_STR[6] As Byte        
    '*******************************************************************************
    'Config File Variables
        Dim CONFIG_BUFF[50] As Byte
        Dim CONFIG_VALUE    As Word
    
        Dim BAUD_INIT       As Word 
        BAUD_INIT = 4800
        Dim BAUD            As Word
        Dim BAUD_SD         As Word
        Dim BAUD_EPROM      As Word
    
        Dim INTERVAL_INIT   As Word
        INTERVAL_INIT = 1       
        Dim INTERVAL        As Word
        Dim INTERVAL_SD     As Word
        Dim INTERVAL_EPROM  As Word
    
        Dim MODE_INIT       As Byte
        MODE_INIT = %11111111
        Dim MODE            As Byte    
        Dim MODE_SD         As Byte
        Dim MODE_EPROM      As Byte
    
    '*******************************************************************************
    'SD VARIABLES
        Dim Response As Byte   'SD Card Response
        Dim IDX_FL   As Byte   'Filename Index
        Dim SAMPLES  As Byte   '# of Samples to take before writing file
        Dim WRITE_MODE As Byte '0 = NMEA & 1 = KML
        Symbol NMEA_LED = PORTB.3
        Symbol KML_LED  = PORTB.2
    '*******************************************************************************
    'SD PIN DECLARES
        Symbol SD_CS  = PORTC.0                         'SPI CS to SD CS (SD pin 1)
        Symbol SD_DI  = PORTC.5                         'SPI DO to SD DI (SD Pin 2)
        Symbol SD_CLK = PORTC.3                        'SPI CLK to SD CLK (SD Pin 5)
        Symbol SD_DO  = PORTC.4                         'SPI DI to SD DO (SD Pin 7)
    '*******************************************************************************
        Include "RY_GPS_PARSEE_LIB.PBP"                'Include managed library file
    '*******************************************************************************
    'Get Date and Time From GPS
        DelayMS 1000
        GoSub INIT_EUART
        GoSub INIT_SD_CARD    
        GoSub READ_CONFIG_FILE    
        GoSub GPRMC_EXTRACT
        GoSub INIT_SD_CREATE
    '*******************************************************************************
    MAIN:
        For IDX_INT = 0 To INTERVAL
            DelayMS 1000
        Next 
        
        If MODE.7 = 0 Then
                GoSub NMEA_EXTRACT
                GoSub NMEA_WRITE
        ElseIf MODE.7 = 1 Then 
                GoSub GPGGA_EXTRACT
                GoSub GPRMC_EXTRACT                       
                GoSub KML_WRITE
        EndIf
    GoTo MAIN
    '*******************************************************************************
    INIT_EUART:
        GoSub READ_CONFIG_EPROM
        BAUD = BAUD_EPROM
        GoSub CONFIG_EUART
    Return
    '*******************************************************************************
    INIT_SD_CARD:                   
        'WAIT FOR CARD INSERT
                Repeat
                    High NMEA_LED 
                    Low KML_LED
                    Response = SD_Init_FS_MSSP SD_SPI_FOSC_64
                    Low NMEA_LED 
                    High KML_LED
                    DelayMS 150
                Until Response = 0
            High NMEA_LED 
            High KML_LED  
    Return        
    '*******************************************************************************    
    READ_CONFIG_FILE:
    DelayMS 100
    High NMEA_LED
    High KML_LED
            SD_File_Name = "CONFIG"
            SD_File_Ext  = "CSV"
            Response = SD_Check_For_File
        
        'READ_CONFIG_STRING
            If Response = 0 Then '0 - File Present 1 - File Not Present
                Response = SD_Open_File
                
                'Get Spec'd Baud Rate
                GoSub READ_CONFIG_VALUE
                BAUD_SD = Val (CONFIG_BUFF,Dec)
    
                'Get Spec'd Sampling Interval
                GoSub READ_CONFIG_VALUE
                INTERVAL_SD = Val (CONFIG_BUFF,Dec)            
    
                'Get Spec'd NMEA/KML Mode        
                GoSub READ_CONFIG_VALUE
                MODE_SD = Val (CONFIG_BUFF,BIN)            
                
                'Read EPROM Values
                GoSub READ_CONFIG_EPROM
                
                'Compare SD and EPROM Values
                Select BAUD_SD
                    Case 1200,2400,4800,9600,19200,38400
                        If BAUD_SD <> BAUD_EPROM Then
                            BAUD = BAUD_SD
                        Else
                            BAUD = BAUD_EPROM
                        EndIf
                    Case Else
                            BAUD = BAUD_EPROM
                    EndSelect    
                'Compare SD and EPROM Values
                Select INTERVAL_SD
                    Case 0 To 65535
                        If INTERVAL_SD <> INTERVAL_EPROM  Then
                            INTERVAL = INTERVAL_SD
                        Else 
                            INTERVAL = INTERVAL_EPROM
                        EndIf
                    Case Else
                            INTERVAL = INTERVAL_EPROM
                EndSelect
                'Compare SD and EPROM Values            
                Select MODE_SD
                    Case 0 To 65535
                        If MODE_SD <> MODE_EPROM  Then
                            MODE = MODE_SD
                        Else 
                            MODE = MODE_EPROM
                        EndIf                    
                    Case Else
                        MODE = MODE_EPROM
                EndSelect        
            ElseIf Response = 1 Then 'File Not Present
                'Read Values from EPROM and Process
                BAUD     = BAUD_EPROM
                INTERVAL = INTERVAL_EPROM
                MODE     = MODE_EPROM
                GoSub WRITE_CONFIG_FILE
            EndIf
            GoSub CONFIG_EUART                
            GoSub WRITE_CONFIG_EPROM    
    Low NMEA_LED
    Low KML_LED
    Return
    '*******************************************************************************
    CONFIG_GPS_OUTPUT:
        For N = 0 To 2
            HSerOut ["$PSRF103,00,00,01,01*20",13,10] 'GGA,1Hz,CHECKSUM
            DelayMS 10
            HSerOut ["$PSRF103,01,00,01,01*20",13,10] 'GLL,1Hz,CHECKSUM
            DelayMS 10
            HSerOut ["$PSRF103,02,00,01,01*20",13,10] 'GSA,1Hz,CHECKSUM
            DelayMS 10
            HSerOut ["$PSRF103,03,00,01,01*20",13,10] 'GSV,1Hz,CHECKSUM
            DelayMS 10
            HSerOut ["$PSRF103,04,00,01,01*20",13,10] 'RMC,1Hz,CHECKSUM
            DelayMS 10
            HSerOut ["$PSRF103,05,00,01,01*20",13,10] 'VTG,1Hz,CHECKSUM    
            DelayMS 10
        Next
    Return
    '*******************************************************************************        
    CONFIG_EUART:
        IDX_B = LookDownL BAUD , [1200,2400,4800,9600,19200,38400]
        RCSTA = CRead HSERIAL_RCSTA_DATA + IDX_B
        TXSTA = CRead HSERIAL_TXSTA_DATA + IDX_B
        SPBRG = CRead HSERIAL_SPBRG_DATA + IDX_B
    Return
    '*******************************************************************************
    INIT_SD_CREATE:
        GoSub INIT_SD_CHECK_WRITE
        GoSub INIT_SD_HEADER
    Return
    '*******************************************************************************        
    INIT_SD_CHECK_WRITE:
    DelayMS 100
    High NMEA_LED
    High KML_LED
        Clear IDX_FL
        Repeat 
            Select IDX_FL
                Case < 10
                    SD_File_Name = "GPSXX00" + Str$ (Dec IDX_FL)        'File Name, upper case only!
                Case < 100
                    SD_File_Name = "GPSXX0" + Str$ (Dec IDX_FL)        'File Name, upper case only!
                Case < 255    
                    SD_File_Name = "GPSXX" + Str$ (Dec IDX_FL)        'File Name, upper case only!
            EndSelect
            SD_File_Ext = "CSV"                             'File Ext, upper case only!  
            Response = SD_Check_For_File                    'Check if file already exists
            Inc IDX_FL
        Until Response = 1
        Response = SD_New_File
        SD_Save_File
    Low NMEA_LED
    Low KML_LED    
    Return
    '*******************************************************************************        
    INIT_SD_HEADER:
    DelayMS 100
    High NMEA_LED
    High KML_LED    
        If MODE.7 = 0 Then
            SD_IO_String = "NMEA DATA" + 13 + 10
            SD_Write_String_To_File
        ElseIf MODE.7 = 1 Then
            If MODE.6 = 1 Then SD_IO_String = "LATITUDE(DD.MMMMMM),LONGITUDE(DD.MMMMMM)"
            If MODE.5 = 1 Then SD_IO_String = SD_IO_String + ",ALTITUDE(M)"
            If MODE.4 = 1 Then SD_IO_String = SD_IO_String + ",HEADING"
            If MODE.3 = 1 Then SD_IO_String = SD_IO_String + ",SPEED(KTS)"
            If MODE.2 = 1 Then SD_IO_String = SD_IO_String + ",SATELLITES"
            If MODE.1 = 1 Then SD_IO_String = SD_IO_String + ",FIX"                                                                
            If MODE.0 = 1 Then SD_IO_String = SD_IO_String + ",UTC TIME(HH:MM:SS),DATE(DD/MM/YR)"                
            SD_IO_String = SD_IO_String + 13 + 10
            SD_Write_String_To_File
        EndIf
        SD_Save_File
    Low NMEA_LED
    Low KML_LED
    Return
    '*******************************************************************************        
    NMEA_EXTRACT:
        Cls
        If MODE.5 = 1 Then HSerIn [Wait("$GPVTG")] : GoSub RECEIVE_GP_SENTENCE : StrN GPVTG_STR = Str GPS_RXBUFF
        If MODE.4 = 1 Then HSerIn [Wait("$GPRMC")] : GoSub RECEIVE_GP_SENTENCE : StrN GPRMC_STR = Str GPS_RXBUFF
        If MODE.3 = 1 Then HSerIn [Wait("$GPGSV")] : GoSub RECEIVE_GP_SENTENCE : StrN GPGSV_STR = Str GPS_RXBUFF
        If MODE.2 = 1 Then HSerIn [Wait("$GPGSA")] : GoSub RECEIVE_GP_SENTENCE : StrN GPGSA_STR = Str GPS_RXBUFF                
        If MODE.1 = 1 Then HSerIn [Wait("$GPGLL")] : GoSub RECEIVE_GP_SENTENCE : StrN GPGLL_STR = Str GPS_RXBUFF                
        If MODE.0 = 1 Then HSerIn [Wait("$GPGGA")] : GoSub RECEIVE_GP_SENTENCE : StrN GPGGA_STR = Str GPS_RXBUFF                
    Return
    '*******************************************************************************        
    RECEIVE_GP_SENTENCE:
            GPS_CHARPOS = 0
            Repeat								      ' Create a loop to receive the serial string
                HSerIn [GPS_CHAR]                     ' Receive a character serially
                If GPS_CHAR = 13 Then Break			  ' Exit the loop if the string reaches the end
                GPS_RXBUFF[GPS_CHARPOS] = GPS_CHAR	  ' Convert ASCII to INT and load array GPS_RXBUFF
             	Inc GPS_CHARPOS
            Until GPS_CHARPOS > GPS_RXBUFFER_LENGTH	  ' Repeat the loop until the buffer runs out
    Return
    '*******************************************************************************        
    NMEA_WRITE:
        High NMEA_LED
            If MODE.5 = 1 Then SD_IO_String = "$GPVTG" + Str GPVTG_STR + 13 + 10 : Response = SD_Write_String_To_File
            If MODE.4 = 1 Then SD_IO_String = "$GPRMC" + Str GPRMC_STR + 13 + 10 : Response = SD_Write_String_To_File
            If MODE.3 = 1 Then SD_IO_String = "$GPGSV" + Str GPGSV_STR + 13 + 10 : Response = SD_Write_String_To_File
            If MODE.2 = 1 Then SD_IO_String = "$GPGSA" + Str GPGSA_STR + 13 + 10 : Response = SD_Write_String_To_File
            If MODE.1 = 1 Then SD_IO_String = "$GPGLL" + Str GPGLL_STR + 13 + 10 : Response = SD_Write_String_To_File
            If MODE.0 = 1 Then SD_IO_String = "$GPGGA" + Str GPGGA_STR + 13 + 10 : Response = SD_Write_String_To_File
            SD_Save_File
        Low NMEA_LED
    Return                  
    '*******************************************************************************        
    GPGGA_EXTRACT:
        Clear GPS_RXBUFF
        HSerIn [Wait("$GPGGA")]
        GPS_CHARPOS = 0
        
        Repeat										' Create a loop to receive the serial string
            HSerIn [GPS_CHAR]                       ' Receive a character serially
            If GPS_CHAR = 13 Then Break				' Exit the loop if the string reaches the end
            GPS_RXBUFF[GPS_CHARPOS] = GPS_CHAR		' Convert ASCII to INT and load array GPS_RXBUFF
         	Inc GPS_CHARPOS
        Until GPS_CHARPOS > GPS_RXBUFFER_LENGTH		' Repeat the loop until the buffer runs out
    
        'GET LAT
        	GPS_EXTRACT_ITEM = 2			 
            GoSub EXTRACT_THE_VALUE
            Str STF_STRING_IN = Str GPS_DATA_STRING        
            GoSub STRING_TO_FLOAT
           	LAT = STF_RESULT / 100        	
           	StrN DDMM_STRING_IN = Str$(DEC6 LAT)
           	GoSub DDMM_TO_FLOAT
           	LAT = DDMM_RESULT
        'GET LAT SIGN
        	GPS_EXTRACT_ITEM = 3 
            GoSub EXTRACT_THE_VALUE        
            If GPS_DATA_STRING[0] = "N" Then SIGN_LAT = 1
            If GPS_DATA_STRING[0] = "S" Then SIGN_LAT = -1
            LAT = LAT * SIGN_LAT
        'GET LON
        	GPS_EXTRACT_ITEM = 4		
            GoSub EXTRACT_THE_VALUE
            Str STF_STRING_IN = Str GPS_DATA_STRING             
            GoSub STRING_TO_FLOAT
            LON = STF_RESULT / 100        
        	StrN DDMM_STRING_IN = Str$(DEC6 LON)
           	GoSub DDMM_TO_FLOAT
           	LON = DDMM_RESULT
           	HSerOut [Str GPS_DATA_STRING," ",Str STF_STRING_IN," ",Str DDMM_STRING_IN," ",Dec DDMM_RESULT," ",Dec LON," "]
        'GET LON SIGN
        	GPS_EXTRACT_ITEM = 5		
            GoSub EXTRACT_THE_VALUE
            If GPS_DATA_STRING[0] = "W" Then SIGN_LONG = -1
            If GPS_DATA_STRING[0] = "E" Then SIGN_LONG = 1
            LON = LON * SIGN_LONG
            HSerOut [Dec LON," ",Dec SIGN_LONG,13]
        'GET FIX
            GPS_EXTRACT_ITEM = 6		
            GoSub EXTRACT_THE_VALUE
            FIX = Val(GPS_DATA_STRING,Dec)
        'GET SAT
        	GPS_EXTRACT_ITEM = 7		
            GoSub EXTRACT_THE_VALUE             
            SAT = Val(GPS_DATA_STRING,Dec)
        'GET ALT
        	GPS_EXTRACT_ITEM = 9		
            GoSub EXTRACT_THE_VALUE
            Str STF_STRING_IN = Str GPS_DATA_STRING             
        	GoSub STRING_TO_FLOAT
            ALT = STF_RESULT
    Return		
    '*******************************************************************************
    GPRMC_EXTRACT:
        Clear GPS_RXBUFF
        HSerIn [Wait("$GPRMC")] 
        GPS_CHARPOS = 0
        
        Repeat										' Create a loop to receive the serial string
            HSerIn [GPS_CHAR]
            If GPS_CHAR = 13 Then Break				' Exit the loop if the string reaches the end
            GPS_RXBUFF[GPS_CHARPOS] = GPS_CHAR		' Convert ASCII to INT and load array GPS_RXBUFF
         	Inc GPS_CHARPOS
        Until GPS_CHARPOS > GPS_RXBUFFER_LENGTH		' Repeat the loop until the buffer runs out
    
        'GET TIME
            GPS_EXTRACT_ITEM = 1			 
            GoSub EXTRACT_THE_VALUE       	 
            SD_Hours    = (GPS_DATA_STRING[0] - 48) * 10
            SD_Hours    = (GPS_DATA_STRING[1] - 48) + SD_Hours
            SD_Minutes  = (GPS_DATA_STRING[2] - 48) * 10
            SD_Minutes  = (GPS_DATA_STRING[3] - 48) + SD_Minutes
            SD_Seconds  = (GPS_DATA_STRING[4] - 48) * 10
            SD_Seconds  = (GPS_DATA_STRING[5] - 48) + SD_Seconds                
            SD_MSeconds = (GPS_DATA_STRING[6] - 48) * 10
            SD_MSeconds = (GPS_DATA_STRING[7] - 48) + SD_MSeconds                
        'GET SPD
        	GPS_EXTRACT_ITEM = 7		
            GoSub EXTRACT_THE_VALUE
            Str STF_STRING_IN = Str GPS_DATA_STRING
            GoSub STRING_TO_FLOAT
            SPD = STF_RESULT
        'GET HDG
        	GPS_EXTRACT_ITEM = 8
            GoSub EXTRACT_THE_VALUE
            Str STF_STRING_IN = Str GPS_DATA_STRING        
            GoSub STRING_TO_FLOAT
            HDG = STF_RESULT
        'GET DATE
            GPS_EXTRACT_ITEM = 9			 
            GoSub EXTRACT_THE_VALUE       	 
            SD_Day   = (GPS_DATA_STRING[0] - 48) * 10
            SD_Day   = (GPS_DATA_STRING[1] - 48) + SD_Day
            SD_Month = (GPS_DATA_STRING[2] - 48) * 10
            SD_Month = (GPS_DATA_STRING[3] - 48) + SD_Month
            SD_Year  = (GPS_DATA_STRING[4] - 48) * 10
            SD_Year  = (GPS_DATA_STRING[5] - 48) + SD_Year
    Return		
    '*******************************************************************************
    KML_WRITE:
        High KML_LED
            If MODE.6 = 1 Then SD_IO_String = Str$(DEC8 LAT) + "," + Str$(DEC8 LON)
            If MODE.5 = 1 Then SD_IO_String = SD_IO_String + "," + Str$(DEC1 ALT)
            If MODE.4 = 1 Then SD_IO_String = SD_IO_String + "," + Str$(DEC1 HDG)
            If MODE.3 = 1 Then SD_IO_String = SD_IO_String + "," + Str$(DEC1 SPD)
            If MODE.2 = 1 Then SD_IO_String = SD_IO_String + "," + Str$(Dec SAT)
            If MODE.1 = 1 Then SD_IO_String = SD_IO_String + "," + Str$(Dec FIX)
            If MODE.0 = 1 Then
                SD_IO_String = SD_IO_String + "," + Str$(Dec SD_Hours) + ":" + Str$(Dec SD_Minutes) + ":" + Str$(Dec SD_Seconds)
                SD_IO_String = SD_IO_String + "," + Str$(Dec SD_Day) + "/" + Str$(Dec SD_Month) + "/" + Str$(Dec SD_Year)            
            EndIf
            SD_IO_String = SD_IO_String + 13 + 10
            Response = SD_Write_String_To_File
            SD_Save_File
            HSerOut [DEC4 LAT," ",DEC4 LON," ",DEC1 ALT," ",DEC1 HDG," ",DEC1 SPD," ",Dec SAT," ",Dec FIX," ",Dec SD_Hours,":",Dec SD_Minutes,":",Dec SD_Seconds," ",Dec SD_Day,"/",Dec SD_Month,"/",Dec SD_Year,10,13]
        Low KML_LED           
    Return
    '*******************************************************************************
    EXTRACT_THE_VALUE:
            Clear GPS_DATA_STRING
            GPS_COMMA_COUNT = 0										' Reset the comma counting variable
            GPS_CHARPOS = 0											' Start at the beginning of the array
            Repeat
            	GPS_CHAR = GPS_RXBUFF[GPS_CHARPOS]					' Scan the array to parse
                If GPS_CHAR = "," Then Inc GPS_COMMA_COUNT			' Increment GPS_COMMA_COUNT if a comma is found
                If GPS_COMMA_COUNT = GPS_EXTRACT_ITEM Then			' Have we found the correct comma ?
                	GPS_BLOOP = 0									' Yes.  So....              
                    Repeat											' Form a loop
                    	Inc GPS_CHARPOS								' Skip over the comma and keep scanning the array
                        GPS_CHAR = GPS_RXBUFF[GPS_CHARPOS]			' Extract the pieces of the value into GPS_CHAR
                        If GPS_CHAR = 0 Then Return
                        If GPS_CHAR = "," Then Return
                        GPS_DATA_STRING[GPS_BLOOP] = GPS_CHAR'- 48	' Fill GPS_DATA_STRING with the value, (converted into integers)
                    	Inc GPS_BLOOP								' Point to the next data piece
                    Until GPS_CHARPOS > GPS_RXBUFFER_LENGTH  		' Keep looping until a terminator is found, or the array runs out
                	Return
                EndIf
            Inc GPS_CHARPOS
            Until GPS_CHARPOS > GPS_RXBUFFER_LENGTH
    Return
        
    '*******************************************************************************		
    STRING_TO_FLOAT:
        STF_POWER_10 = 1
        STF_RESULT = 0
        STF_SIGN = 0
        STF_CHARPOS = 0
        
        STF_CHAR = STF_STRING_IN[STF_CHARPOS] ' \ Get a character from the String
             Inc STF_CHARPOS			      ' /
        If STF_CHAR = "-" Then		' Have we found a "-" character ? 
            STF_CHAR = STF_STRING_IN[STF_CHARPOS] ' \ Yes. So Discard the "-" character
            Inc STF_CHARPOS			              ' /
            STF_SIGN = 1				' Indicate that the value is negative
        Else If STF_CHAR = "+" Then ' Have we found a "+" character ?
            STF_CHAR = STF_STRING_IN[STF_CHARPOS] ' \ Yes. So Discard the "+" character
            Inc STF_CHARPOS			              ' /
        EndIf
        
        While 1 = 1			 ' Scan the digits before the decimal point (if included)
            If STF_CHAR < "0" Then Break ' \
            If STF_CHAR > "9" Then Break ' / Exit the loop if non numeric characters found
            STF_RESULT = STF_RESULT * 10	 ' \
            STF_RESULT = STF_RESULT + STF_CHAR	' Calculate the whole part of the floating point value
            STF_RESULT = STF_RESULT - "0"	 ' /
            STF_CHAR = STF_STRING_IN[STF_CHARPOS] ' \
            Inc STF_CHARPOS			              ' / Get another character from the string
        Wend
        
        If STF_CHAR == "." Then	 ' Have we found a "." character ?
            STF_CHAR = STF_STRING_IN[STF_CHARPOS] ' \ Yes. So Discard the "." character
            Inc STF_CHARPOS			              ' / 
            
            While 1 = 1			 ' Scan the digits after the decimal point (if included)
                If STF_CHAR < "0" Then Break ' \
                If STF_CHAR > "9" Then Break ' / Exit the loop if non numeric characters found
                STF_POWER_10 = STF_POWER_10 * 10        ' \ 
                STF_TEMP = (STF_CHAR - "0") / STF_POWER_10 ' Calculate the fractional part of the floating point value
                STF_RESULT = STF_RESULT + STF_TEMP	    ' /
                STF_CHAR = STF_STRING_IN[STF_CHARPOS] ' \
                Inc STF_CHARPOS			              ' / Get another character from the string
            Wend
        EndIf
        If STF_SIGN = 1 Then STF_RESULT = -STF_RESULT ' Convert to negative if required
    Return
    '-------------------------------------------------------------------------------		
    'Convert from DD.MMSS to Decimal Degrees
    DDMM_TO_FLOAT: 
        DDMM_POWER_10    = 1
        DDMM_RESULT      = 0
        DDMM_SIGN        = 0
        DDMM_CHARPOS     = 0
        DDMM_CHARPOS_LOW = 0 
         
        DDMM_CHAR = DDMM_STRING_IN[DDMM_CHARPOS] ' \ Get a character from the String
            Inc DDMM_CHARPOS			         ' /
        If DDMM_CHAR = "-" Then		' Have we found a "-" character ? 
            DDMM_CHAR = DDMM_STRING_IN[DDMM_CHARPOS] ' \ Yes. So Discard the "-" character
            Inc DDMM_CHARPOS			             ' /
            DDMM_SIGN = 1				' Indicate that the value is negative
        Else If DDMM_CHAR = "+" Then ' Have we found a "+" character ?
            DDMM_CHAR = DDMM_STRING_IN[DDMM_CHARPOS] ' \ Yes. So Discard the "+" character
            Inc DDMM_CHARPOS			             ' /
        EndIf
        
        While 1 = 1			 ' Scan the digits before the decimal point (if included)
            If DDMM_CHAR < "0" Then Break ' \
            If DDMM_CHAR > "9" Then Break ' / Exit the loop if non numeric characters found
            DDMM_RESULT = DDMM_RESULT * 10	     ' \
            DDMM_RESULT = DDMM_RESULT + DDMM_CHAR	' Calculate the whole part of the floating point value
            DDMM_RESULT = DDMM_RESULT - "0"	     ' /
            DDMM_CHAR = DDMM_STRING_IN[DDMM_CHARPOS] ' \
            Inc DDMM_CHARPOS			             ' / Get another character from the string
        Wend
        
        If DDMM_CHAR == "." Then	 ' Have we found a "." character ?
            DDMM_CHAR = DDMM_STRING_IN[DDMM_CHARPOS] ' \ Yes. So Discard the "." character
            Inc DDMM_CHARPOS			             ' / 
            
             While 1 = 1			 ' Scan the digits after the decimal point (if included)
                If DDMM_CHAR < "0" Then Break ' \
                If DDMM_CHAR > "9" Then Break ' / Exit the loop if non numeric characters found
                DDMM_TEMP_STR[DDMM_CHARPOS_LOW] = DDMM_CHAR
                DDMM_CHAR = DDMM_STRING_IN[DDMM_CHARPOS] ' \
                Inc DDMM_CHARPOS			 ' / Get another character from the string
                Inc DDMM_CHARPOS_LOW
                If DDMM_CHARPOS_LOW = 5 Then Break 'Quit at DEC6
            Wend
                DDMM_TEMP   = Val(DDMM_TEMP_STR,Dec)     ' Convert String to Decimal
                DDMM_TEMP   = DDMM_TEMP / 60000         ' Convert .MMMMM to .DDDD
                DDMM_RESULT = DDMM_RESULT + DDMM_TEMP
        EndIf
        If DDMM_SIGN = 1 Then DDMM_RESULT = -DDMM_RESULT ' Convert to negative if required
       
    Return
    '*******************************************************************************
    READ_CONFIG_VALUE:
          Clear CONFIG_BUFF
          Clear CONFIG_VALUE
          For N = 0 To 50
              Response = SD_Read_Byte_From_File
              If Response = "," Then Break
              If Response = 13  Then Break
              If Response = 10  Then Break  
              CONFIG_BUFF[N] = Response
          Next
    Return
    '*******************************************************************************
    READ_CONFIG_EPROM:
        BAUD_EPROM.HighByte     = ERead 0
        BAUD_EPROM.LowByte      = ERead 1
        INTERVAL_EPROM.HighByte = ERead 2
        INTERVAL_EPROM.LowByte  = ERead 3
        MODE_EPROM              = ERead 4
    Return
    '*******************************************************************************
    WRITE_CONFIG_EPROM:
        EWrite 0,[BAUD.HighByte]
        EWrite 1,[BAUD.LowByte]    
        EWrite 2,[INTERVAL.HighByte]
        EWrite 3,[INTERVAL.LowByte]    
        EWrite 4,[MODE]
    Return
    '*******************************************************************************
    WRITE_CONFIG_FILE:
        High NMEA_LED
        High KML_LED
        
        SD_File_Name = "CONFIG"
        SD_File_Ext  = "CSV"
    
        Response = SD_New_File
            SD_IO_String = Str$(Dec BAUD) + "," + Str$(Dec INTERVAL) + "," + Str$(BIN8 MODE) + 13 + 10
            Response = SD_Write_String_To_File                      
            SD_IO_String = "BAUD,INTERVAL,OPTIONS" + 13 + 10
            Response = SD_Write_String_To_File                      
            SD_IO_String = "BAUD OPTIONS     (1200,2400,4800,9600,19200,38400)" + 13 + 10
            Response = SD_Write_String_To_File                      
            SD_IO_String = "INTERVAL OPTIONS (0-65536) SECONDS" + 13 + 10
            Response = SD_Write_String_To_File                      
            SD_IO_String = "NMEA MODE[7]=0 (MODE[7] NC[6]       GPVTG[5] GPRMC[4] GPGSV[3] GPGSA[2] GPGLL[1] GPGGA[0])" + 13 + 10
            Response = SD_Write_String_To_File                      
            SD_IO_String = "KML  MODE[7]=1 (MODE[7] LAT/LONG[6] ALT[5]   HDG[4]   SPD[3]   SAT[2]   FIX[1]   TIME/DATE[0])" + 13 + 10
            Response = SD_Write_String_To_File                      
            SD_IO_String = "BIT[X]=0=OFF" + 13 + 10
            Response = SD_Write_String_To_File                      
            SD_IO_String = "BIT[X]=1=ON" + 13 + 10
            Response = SD_Write_String_To_File
        Response = SD_Close_File
        
        Low NMEA_LED
        Low KML_LED    
    Return
    '*******************************************************************************    
    'DEFAULT-EPROM
        EData BAUD_INIT.HighByte, BAUD_INIT.LowByte, INTERVAL_INIT.HighByte, INTERVAL_INIT.LowByte, MODE_INIT
    '*******************************************************************************    
    'HSERIAL BAUD MODES - 1200,2400,4800,9600,19200,38400
        HSERIAL_RCSTA_DATA: CData As Byte $90,$90,$90,$90,$90,$90,$90,$90
        HSERIAL_TXSTA_DATA: CData As Byte $20,$20,$20,$20,$20,$20,$24,$24
        HSERIAL_SPBRG_DATA: CData As Byte 255,129,64,32,15,7,21,10

  16. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  17. #9
    malle
    Guest malle's Avatar

    0 Not allowed!

    Default

    Ryan, I am really impressed by your work!

    I already saw it on the Sparkfun forum. I am very interested in buying one device. Could you also send me the circuit, I would like to understand how you solved the task.

    Thank's a lot.

    Best Regards,
    Malte

  18. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  19. #10
    ohararp
    Guest ohararp's Avatar

    0 Not allowed!

    Default Layout Files

    Per request here are the isis,ares, and gerber files.

  20. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  21. #11
    malle
    Guest malle's Avatar

    0 Not allowed!

    Default

    Thank's a lot. It is already some time ago that I set up circuits. But I would like to start again with it. I hope I will be able to understand all this

    Regarding power consumption: There is a new Sirf III firmware that has a much better power management (I think it is v.2). Some Sirf III GPS already have this firmware. I think Sirf would like to catch up with Nemerix in this issue.

    Anyway. Thanks a lot.

  22. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  23. #12
    ohararp
    Guest ohararp's Avatar

    0 Not allowed!

    Default Data to Google Earth (.kml)

    I wanted to address the data being provided by the SD GPS Datalogger and how this information is most easily transferred to google earth. I have provided an example of my drive to my "real job". Basically the logger saves the travel of the adventurer in .csv format (see screen capture and .zip below). There is a lot of data available that can be included at each log point (LATITUDE, LONGITUDE, ALTITUDE, HEADING,SPEED, SATELLITES, FIX, UTC TIME, DATE). This is represented by the picture below and the GPSXX004.CSV file. A subset of this data (LAT,LONG,ALT) is found in GPSXX004a.CSV and is easily loaded into www.gpsvisualizer.com via the web. GPS Visualizer produces the actual KML/KMZ file for use with google earth. GPS Visualizer allows you to really customize the way the data is viewed. You can add topo and aerial photo overlays, waypoints at predetermined intervals, etc. It is really a powerful tool and supports a variety of gps data formats. If anybody has any questions feel free to drop me a line.






  24. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  25. #13
    ohararp
    Guest ohararp's Avatar

    0 Not allowed!

    Default

    I have decided to move update of this project to:

    http://sdgpsdatalogger.blogspot.com/

  26. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  27. #14
    orduzandres02
    Guest orduzandres02's Avatar

    0 Not allowed!

    Cool Program Of Compilation

    in what program you compile this...... how to conec to program with the micro

  28. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

  29. #15
    orduzandres02
    Guest orduzandres02's Avatar

    0 Not allowed!

    Exclamation the hex file and the licence of proton

    at the moment I am developing this gps but i like me that helpme in the compilation of the program thanks i need the hex file

  30. Attention
    ×

    This valuable resource relies upon the very small amount of revenue generated by displaying online advertisements to our visitors.

    The advertisements we display are relevant to this web site and your browsing history

    Please consider supporting us by disabling your ad blocker.


    Note: Some users have reported issues related to ad-blockers rendering parts of this wesite unusable,
    where possible we will rectify the issues to enable you to use this resource with adblocking enabled.

    If you can, please report issues in the forum area WebSite / Forum Issues


    Thank you for your attention.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Similar Threads

  1. GPS speed logger for RC planes.
    By david in forum GPS
    Replies: 6
    Last Post: 22nd January 2019, 20:01
  2. Data Logger module
    By geoff_c in forum Proton Plus Compiler v3
    Replies: 2
    Last Post: 26th October 2008, 07:04
  3. Some sort of data logger
    By chuckieboy in forum Proton Plus Compiler v3
    Replies: 62
    Last Post: 1st August 2007, 15:10
  4. SD GPS DATA LOGGER - Sleep but does not Wake
    By ohararp in forum Proton Plus Compiler v3
    Replies: 10
    Last Post: 14th March 2007, 20:45
  5. [SOLVED !] SD GPS DATA LOGGER - Sleep but does not Wake
    By ohararp in forum Proton Plus Compiler v3
    Replies: 0
    Last Post: 18th November 2006, 00:39

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts