Difference between revisions of "GPS Frequency Standard"

From Land Boards Wiki
Jump to navigation Jump to search
 
(14 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
* [https://hackaday.io/project/186090-10-mhz-gps-frequency-standard Hackaday project page]
 
* [https://hackaday.io/project/186090-10-mhz-gps-frequency-standard Hackaday project page]
 
* [https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2334524.m570.l1313&_nkw=gps+module+neo-7M&_sacat=0&LH_TitleDesc=0&rt=nc&_odkw=gps+module+neo-7&_osacat=0&LH_PrefLoc=2 NEO-7M GPS]
 
* [https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2334524.m570.l1313&_nkw=gps+module+neo-7M&_sacat=0&LH_TitleDesc=0&rt=nc&_odkw=gps+module+neo-7&_osacat=0&LH_PrefLoc=2 NEO-7M GPS]
 +
** Right Angle external antenna connector
 
* [[QTPy49]] card
 
* [[QTPy49]] card
** [https://github.com/land-boards/QT-Py/blob/main/CircuitPython/lbcards/GPS/GPS_004.py CircuitPython code] fits into [[QT Py (SAMD based)]] but a [[QT Py (RP2040 based)]] could be used
+
** [https://github.com/land-boards/QT-Py/blob/main/CircuitPython/lbcards/GPS/GPS_004.py CircuitPython code] fits into [[QT Py (SAMD based)]]
 +
*** [[QT Py (RP2040 based)]] could be used as alternative
 
** 3.3V, 48 MHz
 
** 3.3V, 48 MHz
 
* [[DRIVE50]] - 50 Ohm coax card
 
* [[DRIVE50]] - 50 Ohm coax card
Line 20: Line 22:
 
** LED is on solid once output is enabled
 
** LED is on solid once output is enabled
 
* Fits into Aluminum Project Box Enclosure DIY 100*76*35mm - [https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2334524.m570.l1313&_nkw=100*76*35mm+aluminum&_sacat=0&LH_TitleDesc=0&_odkw=100*76*35mm+Aluminum+PCB+Instrument+Box+Enclosure+Electronic+Project+Case+Set&_id=174408274566 ebay search]
 
* Fits into Aluminum Project Box Enclosure DIY 100*76*35mm - [https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2334524.m570.l1313&_nkw=100*76*35mm+aluminum&_sacat=0&LH_TitleDesc=0&_odkw=100*76*35mm+Aluminum+PCB+Instrument+Box+Enclosure+Electronic+Project+Case+Set&_id=174408274566 ebay search]
 +
* [https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2334524.m570.l1313&_nkw=gps+antenna&_sacat=0&LH_TitleDesc=0&rt=nc&_odkw=gps+module+neo-7M&_osacat=0&LH_PrefLoc=2 External GPS Antenna] with SMA connector
 
* Inspired by [http://www.scullcom.uk/design-build-a-gps-locked-frequency-standard-part-4/ Scullcom design]
 
* Inspired by [http://www.scullcom.uk/design-build-a-gps-locked-frequency-standard-part-4/ Scullcom design]
  
== Code ==
+
== Hardware ==
  
* Code runs on multiple CPUs on [[QTPy49]]
+
=== QTPy49 Card ===
** [[QT Py (SAMD based)]] or
 
*** [https://www.seeedstudio.com/Seeeduino-XIAO-Arduino-Microcontroller-SAMD21-Cortex-M0+-p-4426.html?queryID=3273c05f7923d5ee5cbc677ce4892180&objectID=4426&indexName=bazaar_retailer_products SeeedStudio XIAO] or
 
*** [https://www.adafruit.com/product/4600 Adafruit QT Py]
 
** [[QT_Py_(RP2040_based)]]
 
*** [https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html SeeedStudio XIAO]
 
*** [https://www.adafruit.com/product/4900 Adafruit QT Py]
 
* [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/GPSFreqStd/FreqStdCap/FreqStdCap.ino FreqStdCap.ino] - Tool that runs on Arduino to generate frequency bytestrings to send to GPS
 
* [https://github.com/land-boards/QT-Py/blob/main/CircuitPython/lbcards/GPS/GPS_004.py GPS_004.py] - Final working code
 
** Saved as code.py to auto-run
 
* [https://github.com/land-boards/QT-Py/blob/main/CircuitPython/lbcards/GPS/GPS_003.py GPS_003.py] - Capture data from GPS module a line at a time - helpful for debugging
 
* [https://github.com/land-boards/QT-Py/blob/main/CircuitPython/lbcards/GPS/GPS_002.py GPS_002.py] - Read 32 bytes at a time
 
* [https://github.com/land-boards/QT-Py/blob/main/CircuitPython/lbcards/GPS/GPS_001.py GPS_001.py] - Formatted stings output
 
  
== QTPy49 Card ==
+
[[File:tindie-mediums.png|link=https://www.tindie.com/products/27066/]]
  
 
* CPU choices are
 
* CPU choices are
Line 75: Line 66:
 
* (4) 4-40 mounting holes
 
* (4) 4-40 mounting holes
  
== GPS Card ==
+
=== GPS Card ===
  
* GPS Satellite Positioning Module NEO7M UBLOX
+
* GPS Satellite Positioning Module NEO7M UBLOX Module
 +
** [https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2380057.m570.l1313&_nkw=NEO7M&_sacat=0 EBay search for NEO7M]
 
* Specifications:
 
* Specifications:
 
* Working Voltage: 3.3v-5.0v
 
* Working Voltage: 3.3v-5.0v
Line 89: Line 81:
 
[[File:GPS_NEO-7M-03.PNG]]
 
[[File:GPS_NEO-7M-03.PNG]]
  
== 50 Ohm Driver Card ==
+
=== 50 Ohm Driver Card ===
  
 
[[File:tindie-mediums.png|link=https://www.tindie.com/products/land_boards/5075-ohm-ttl-line-driver/]]
 
[[File:tindie-mediums.png|link=https://www.tindie.com/products/land_boards/5075-ohm-ttl-line-driver/]]
Line 102: Line 94:
 
** BNC is high quality (Amphenol) connector
 
** BNC is high quality (Amphenol) connector
  
=== Alternate (Original) Driver Design ===
+
=== Alternate (Previous) Driver Design ===
  
* Original design used modified [[PulseGen]] card to drive 50 Ohms at 3.3V level output
+
* Previous design used modified [[PulseGen]] card to drive 50 Ohms at 3.3V level output
 
** Remove oscillator circuit parts (R/C)
 
** Remove oscillator circuit parts (R/C)
 
** Only 1 BNC high quality (Amphenol) connector
 
** Only 1 BNC high quality (Amphenol) connector
Line 116: Line 108:
 
[[file:PulseGen_Mods.PNG]]
 
[[file:PulseGen_Mods.PNG]]
  
== Wiring ==
+
=== Wiring ===
  
 
* Dupont headers
 
* Dupont headers
Line 181: Line 173:
 
* [[Frequency_Calibration_via_GPS|Build Version 1]]
 
* [[Frequency_Calibration_via_GPS|Build Version 1]]
 
* Requires PC running ublox software on PC to set output.
 
* Requires PC running ublox software on PC to set output.
 +
 +
== Software ==
 +
 +
* Code runs on multiple CPUs on [[QTPy49]]
 +
** [[QT Py (SAMD based)]] or
 +
*** [https://www.seeedstudio.com/Seeeduino-XIAO-Arduino-Microcontroller-SAMD21-Cortex-M0+-p-4426.html?queryID=3273c05f7923d5ee5cbc677ce4892180&objectID=4426&indexName=bazaar_retailer_products SeeedStudio XIAO] or
 +
*** [https://www.adafruit.com/product/4600 Adafruit QT Py]
 +
** [[QT_Py_(RP2040_based)]]
 +
*** [https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html SeeedStudio XIAO]
 +
*** [https://www.adafruit.com/product/4900 Adafruit QT Py]
 +
* [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/GPSFreqStd/FreqStdCap/FreqStdCap.ino FreqStdCap.ino] - Tool that runs on Arduino to generate frequency bytestrings to send to GPS
 +
* [https://github.com/land-boards/QT-Py/blob/main/CircuitPython/lbcards/GPS/GPS_004.py GPS_004.py] - Final working code
 +
** Saved as code.py to auto-run
 +
* [https://github.com/land-boards/QT-Py/blob/main/CircuitPython/lbcards/GPS/GPS_003.py GPS_003.py] - Capture data from GPS module a line at a time - helpful for debugging
 +
* [https://github.com/land-boards/QT-Py/blob/main/CircuitPython/lbcards/GPS/GPS_002.py GPS_002.py] - Read 32 bytes at a time
 +
* [https://github.com/land-boards/QT-Py/blob/main/CircuitPython/lbcards/GPS/GPS_001.py GPS_001.py] - Formatted stings output
  
 
== Enclosure ==
 
== Enclosure ==

Latest revision as of 11:32, 1 August 2022

GPS Freq Std P18490-720px.jpg

Build V2 Features

Stand-alone design does not require PC. Generates a 10 MHz output after satellite lock.

Hardware

QTPy49 Card

Tindie-mediums.png

GPS Card

  • GPS Satellite Positioning Module NEO7M UBLOX Module
  • Specifications:
  • Working Voltage: 3.3v-5.0v
  • Color: As Picture Shown
  • Description:
  • With micro USB interface, you can debug GPS module with ordinary phone data cable, no longer need to use USB-TTL and other tools.
  • TTL interface is reserved to facilitate the use of USB-TTL or external microcontroller to control and receive GPS information.
  • Ceramic antenna on module board, no GPS external antenna can be used to search for stars.
  • Reserved SMA antenna interface, can use external antenna, star search ability is stronger.

GPS NEO-7M-03.PNG

50 Ohm Driver Card

Tindie-mediums.png

DRIVE50 P1080480-720PX.jpg

  • Uses DRIVE50 50 Ohm Driver
    • Able to drive long 50 ohm coax
    • 5 parallel 74AC14 outputs with 249 ohm series resistors on each output
    • Square wave output
    • Very fast edges
    • BNC is high quality (Amphenol) connector

Alternate (Previous) Driver Design

  • Previous design used modified PulseGen card to drive 50 Ohms at 3.3V level output
    • Remove oscillator circuit parts (R/C)
    • Only 1 BNC high quality (Amphenol) connector
    • Wire from GPS PPS pin attached as below
    • Use 1x2 pin header for power instead of 5MM Terminal Blocks

PulseGen Mod P18338-720px.jpg

  • Schematic

PulseGen Mods.PNG

Wiring

  • Dupont headers
    • GPS = 5-pin
    • LED = 3-pin
    • UART = 4-pin
    • DRIVE50 = 3-pin
Signal From To Color
GND QTPy49 J4-1 GPS pin 4 Black
VCC QTPy49 J4-2 GPS pin 5 Red
QTPy>GPS QTPy49 J4-3 GPS pin 2 Blue
GPS>QTPy QTPy49 J4-4 GPS pin 3 White
GND QTPy49 J5-1 DRIVE50 J1-3 GND Black
VCC QTPy49 J5-2 DRIVE50 J1-2 VCC Red
PPS GPU pin 1 DRIVE50 J1-1 In Purple
LED-VCC QTPy49 J9-3 D0 Red
LED-GND QTPy49 J9-1 GND Black

Build V1

Software

Enclosure

  • Fits into Aluminum Project Box Enclosure DIY 100*76*35mm - ebay search
  • White-on-Black P-Touch labels

PulseGen P1080344-720px.jpg

Reference Materials

Videos