Difference between revisions of "GPS Frequency Standard"
Jump to navigation
Jump to search
Blwikiadmin (talk | contribs) (→Code) |
Blwikiadmin (talk | contribs) |
||
Line 165: | Line 165: | ||
* [[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. | ||
+ | |||
+ | == Code == | ||
+ | |||
+ | * 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 == |
Revision as of 08:04, 31 July 2022
Contents
Build V2 Features
Stand-alone design does not require PC. Generates a 10 MHz output after satellite lock.
- Hackaday project page
- NEO-7M GPS
- QTPy49 card
- CircuitPython code fits into QT Py (SAMD based) but a QT Py (RP2040 based) could be used
- 3.3V, 48 MHz
- DRIVE50 - 50 Ohm coax card
- Receives input from GPS output and drives 50 Ohm output on BNC
- Status LED
- Blinks in for 1 second at power up
- Goes off until serial communications are working
- Blinks on-off as data is received from GPS while waiting for Satellite signal lock
- LED is on solid once output is enabled
- Fits into Aluminum Project Box Enclosure DIY 100*76*35mm - ebay search
- Inspired by Scullcom design
QTPy49 Card
- CPU choices are
- QT Py (SAMD based)
- QT Py (RP2040 based)
- XIAO ESP32C3
- SeeedStudio XIAO ESP32C3 (New 2022-07)
- RISC-V Single Core
- Up to 160 MHz
- 400 KB SRAM
- 4 MB Flash
- 2.4GHz Wi-Fi subsystem
- Wiki
- ESP32C3 Datasheet
- Connectors/Headers
- DC Power
- AD0 GVS
- AD1 GVS
- AD2 GVS
- AD3 GVS
- I2C with ground/VCC
- TX/RX with ground/VCC
- SPI with ground/VCC
- QTPy49 can be powered from with either the USB C or DC jack
- Automatic Schottky diode power switching between
- 5V from USB C
- 5V on external DC jack
- 7-12V on DC jack
- Automatic Schottky diode power switching between
- 49x49mm ODAS form factor
- (4) 4-40 mounting holes
GPS Card
- GPS Satellite Positioning Module NEO7M UBLOX
- 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.
50 Ohm Driver Card
- 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 (Original) Driver Design
- Original 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
- Schematic
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
- Build Version 1
- Requires PC running ublox software on PC to set output.
Code
- Code runs on multiple CPUs on QTPy49
- FreqStdCap.ino - Tool that runs on Arduino to generate frequency bytestrings to send to GPS
- GPS_004.py - Final working code
- Saved as code.py to auto-run
- GPS_003.py - Capture data from GPS module a line at a time - helpful for debugging
- GPS_002.py - Read 32 bytes at a time
- GPS_001.py - Formatted stings output
Enclosure
- Fits into Aluminum Project Box Enclosure DIY 100*76*35mm - ebay search
- White-on-Black P-Touch labels
Reference Materials
- Design & Build a GPS locked Frequency Standard- Scullcom
- SIMPLE 10 MHZ GPS FREQUENCY STANDARD AND RF GENERATOR
- uses Arduino Nano as FTDI replacement
- An Arduino-based GPS Disciplined Oscillator
- An Arduino Version of Brooks Shera's GPSDO
- Simulating the Brooks Shera (W5OJM) GPSDO Algorithm
Videos