Files

4.9 KiB

Version 3

To Figure Out

  1. Details on the NEO-F10T/breakout
    1. Battery
    2. GPIO Pinouts
    3. Voltages
    4. GPIO pin pitch
    5. Antenna connector type
    6. Best GPS Antenna+Cable for it
    7. PPS Settings
    8. UART Speed settings
  2. RPI5
    1. pulse out/in (32kHz 31.25us period/10mhz 1ns period?)
  3. Pulsar Clock
    1. all daaat shit lmao
  4. 10MHzReference Sources (If Needed)
  5. figure out how to support Universal Beat Time to high precision
  6. Boot up sequence
    1. warm ups
    2. get signals
    3. run services with affinityies
    4. check

Hardware

  1. Raspberry Pi 5 16GB
    1. Raspberry OS Lite
    2. Will need to carefully use real time priority, maybe even pinned to a core?
      1. gpsd, etc?
      2. Reading GPIO Pulses/etc
      3. UART?
sudo taskset -cp 2 1234 # set task pid 1234 pin to core 2
sudo chrt -f -p 90 1234 # set pid 1234 to priority 90 (1-99  highest)
  1. RTC 32khz pulses (31.25us period)

  2. Pulsar readings

  3. RTC set/read over i2c

  4. GPS Module PPS

  5. NVME hat for NVME boot (? IF NOT INTERFERE WITH GPIO SHIT)

    1. NVME SSD (? IF NOT INTERFERE WITH GPIO SHIT)
  6. Custom Hat

    1. Adafruit DS3231 RTC Precision I2C Breakout Module x1
      CR1220 x1 (Battery)
  7. Gen 10 Timekeeping Specific GPS Module - NEO-F10T

  8. GPS Module

    1. Buy Varieties (Europe)
      1. Make sure BATTERY TYPE and APPLICATION is figured out
      2. May have to solder in holder or something
        1. use the good solder/pins/wire :3
      3. Make fuckin sure af you have a good fuckin pinout
      4. check if can be configed via uart using u-center-2?
        1. figure out a convenient UART (Tigard/FT422H) and plug
      5. Make sure GPIO pins are FUCKING 2.54mm AND 3.3v OR 5v
        1. use good/gold/copper pinssss/wire/solder
    2. Gen 10 Timekeeping Specific GPS Module - NEO-F10T
    3. Product Summary
    4. Data Sheet
    5. Hardware Integration Guide
    6. Chip Product Page
  9. GPS cable

    1. check connectors
    2. check adaptors
    3. check variety
      1. speed/length
      2. check length
  10. GPS antenna 1. check protos 2. check bands 3. check features 4. check connectors

RPI5 Wiring

Wiring of Note

  • CLK/PCM/GPIO18/PIN12:
    • CLK in/out up to 10mHz (1ns period)
    • 9824306b308e6d2d21274a5bfe933c6b.png
    • only one i2c port?
    • mostly all 3v3?
    • PCM is kinda like DAC?
    • GPIO Read?
    • PWM?
    • find sum DAC/ADC? sumtin?
    • May have to nix double RTC Module

Wiring

  • UART (GPS Module, tinker with speed)
  • I2C (RTC)
  • CLK/PCM/GPIO READ? (RTC 32khz pulse - 31.25us period)

Operation Flow

Both RTCs loaded time over I2C, both inputting 32kHz (31.25us period) signal via GPIO

RTC time, GPS time, system time, GPS PPS, 32kHz (31.25us period) signal, pulsar readings:

  • tested off each other
    • deltas per pulse (errors) (add to Grafana)
    • averages per pulse (add to Grafana)
    • stored in histograms, constantly updating (add to Grafana)
      • dial in desired confidence interval over time (add to Grafana)
    • divisor/multiplier for 32kHz pulses to make them ONE BEAT constantly updated (displayed in Grafana)
      • 32kHz oscillator (31.25us period) (or most reliable) will be dubbed the "master universal beat pulse", made into pulse by divisor/multiplier based on previous calculations
      • and will serve as source of truth for UBT web display
  • sanity tested against network sources
  1. Test both RTC times against GPS time
  2. Test system time against GPS time
  3. Test system time against network time
  4. Sanity Checks
    1. Time reported vs time actual (net)
    2. Cable/system delay calculated vs delay measured
    3. Readability check
    4. Repeatability check
    5. Accuracy check
    6. Precision check

Maybe

  1. Play with PPS (dial faster?)
  2. Play with UART speed (dial faster?)
  3. tinker with 10mhz clock out/test/tinker
  4. tinker with 32khz clock in/test/tinker