I have a relay contact closure event that needs to be timestamped accurately ( 1 msec) with a GPS and the PPS output... I am not sure how to feed the relay contact output to a microcontroller and then synchronize the microcontroller clock to the GPS ...plus how to get the UTC afterall? Can you please help me. thanks
Accurately measuring Time for an event ( relay contact closure) using GPS PPS
230 views Asked by Rastin At
1
There are 1 answers
Related Questions in GPS
- Query Overpass turbo by lat/lon to find specific tags
- SQL: Assigning occasion numbers to GPS points when visiting places based on conditions
- Updating Ublox module via commandline with file
- Why does getting the speed in my android app fluctuate too high even when not moving while in the app "GPS Test" it shows 0?
- Unity - AR - GPS (Simple 3D Objects Appear at GPS coordinates) - Android and iOS
- Android location is providing timestamps in the future, or am I stupid? Try it for yourself
- Convert data of the format [longitude, latitude, altitude] into the format [x, y, z]
- How to program GNSS with SIMCOM A7670 and Arduino
- convert hatanaka to rinex for multiple files
- Calculating a DateTime in a Specific Encoding in C#
- GPS neo and Arduino mega 2560 with other sensors
- Receiving Data from Teltonika FMB140 Device via SIM on Server using CodeIgniter 4
- Load IGC file as Simple Features in R
- Android Java - LocationListener taking too long too fetch location even with stable connection
- Is there a function to isolate rows of data based on the distance between the start and stop of their GPS coordinates?
Related Questions in MICROCONTROLLER
- ESP32 Consequtive Interrupt WDT Timeout Exception
- STM32G030 refuses write to flash
- can't configurate VL53l0x api
- STM32L011K4Tx Compare toggle not working as expected
- How to get PC of first instruction of inline asm block (C)?
- ESP-32 (FreeRTOS): The serial monitor prints unknown symbols (???) instead of a string
- SWO on a Blackpill board
- I2C LCD1602 interfacing with PIC16F877A
- J-Link script to flash program in S32K144 (allow security)
- Design of a function that modifies from 1-4 values of a register
- Is it possible to change values of the zephyr-rtos configuration file prj.conf using CMake arguments?
- Memory Aliasing to a specific Flash Sector
- How to make a proper delay in a microcontroller?
- USART to serial monitor/pc STM32
- How to use a c++ class as wrapper for timer-interrupts on RP2040 (RPPico)
Related Questions in GPS-TIME
- awk ward gps monitoring
- Correctly reading GPS_time from LiDAR .las file using laspy (python)
- Through NMEA data, how to get four satellite states: not in use, receiving, searching, and in use?
- Get GPS to UTC leap seconds
- How to get GPS Time in Flutter?
- How to check if "Use GPS-provided time" is selected in "Automatic date & time" programmatically?
- Convert UTC to GPS time
- Arduino GPS Time And Coordinates Values Update Issue
- GPS seconds of week to UTC time in R
- Extract Epoch Time (Unix time) from a string hhmmss
- How to use calendar.timegm() with fractional seconds
- Converting from Date-Time to GPS time
- How get GPS time with javascript
- how to convert GPS time composed of Time, weeks and leap seconds to UTC Timestamp
- PID smoothing an irregular GPS time input?
Related Questions in TIMESTAMPING
- Weight measurement with real-time time stamping using the Kern KB 3600-2N precision balance
- Find Certificate information of timestamp token present in signature timestamp attribute using pdfbox
- OpenSSL: Get network card / linux kernel timestamps
- Audio recording with alsa - how to minimize jitter
- Is there any PDFBox sample to make Document Timestamp Signature as LTV enabled?
- Purpose of IP_RECVERR message when working with TX timestamps
- Timestamps Misbehaving
- When doing an upsert to MongoDb is it possible to set a field with a timestamp only if other data in the record has changed?
- Bash: add timestamp prefix to log without using "ts"
- How to add timestamp certificate without signature using setasign
- How to know whether an IRQ was served immediately on ARM Cortex M0+ (or any other MCU)
- I want to get a timestamp on edit in my datetime row, but I need it to also timestamp when I copy/paste multiple rows in google script
- Python for generating Timestamps for a manually transcribed .wav file
- How to get the timestamp to start from 0ms when using live video on openCV
- Digital Signature With TSA Timestamping and building revocation information for PDF with OID pdfRevocationInfoArchival in Java
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
If your microcontroller has at least two interrupts based on hardware pins, you could connect the relay to one of the interrupt-generating pins, and the PPS to the other interrupt-generating pin.
You will need to connect the NMEA (or other proprietary protocol of your GPS) to the corresponding port in your microcontroller. Some common buses are UART or SIP.
Then, every time that you get a PPS interrupt, you enable a global flag that can be used in the main loop to reset a counter. This counter will tell you how far apart from the PPS the relay switched (if it happens within that second). If you know the base frequency of your counter, you can convert the counter into fractions of seconds. Note that if both edges of the relay state change have to be detected, you will need an interrupt source capable to interrupt on both edges (or use two interrupts)
Then, if the Relay interrupt goes off, you can get the value of the counter upon interrupt, and save it in storage, send it to host, etc. (Note, it would be best to save the value in RAM, lift a flag of "value present", and leave the sending/storing to the main loop, then turning off the flag).
Finally, when you receive a complete NMEA message (this could be being parsed in your main loop by a state machine for instance), you can send this information to the host or storage along with the counter that you saved to time your relay state change. Note please that the NMEA message will be generated and decoded with a certain delay from the PPS, so you will need to compensate for that.