

Gpsdo
David's Pretty Satisfactory Gps-disciplined Oscillator
- Size
- 140 × 100 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 161
- Nets
- 124
- Pads
- 698
- Tracks, vias
- 1,563, 371
- Pours
- 5
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 8 Apr 2020
- Updated
- 14 Aug 2020
Overview
Gpsdo is an open-source printed circuit board by dpiegdon, from the dpiegdon/dpsgo repository on GitHub. It is a 4-layer board of 140 × 100 mm with 161 parts on 124 nets, routed with 1,563 tracks and 371 vias.
It is built around the ICE40LP384-SG32, 74LVC1G17Z and AD5761RBCP, with the PRTR5V0U2X and LL4148 among its other parts. Its parts include 49 resistors, 48 capacitors, 14 diodes, 12 connectors and 7 ICs. It belongs with the FPGA and CPLD boards of this library.
Main components
5ICE40LP384-SG32
QFN-32(5x5)-40℃~+100℃ 1.14V~1.26V 21 384 48 iCE40 LP QFN-32(5x5) Programmable Logic Device (CPLDs/FPGAs) ROHSLatticeProgrammable Logic Device (CPLDs/FPGAs)74LVC1G17Z
SOT-553-40℃~+125℃ 1 1 1.65V~5.5V 10uA 32mA 32mA 4.4ns@5V,15pF 74LVC Push-pull Schmitt trigger Unidirectional SOT-553 Buffers, Drivers, Receivers, Transceivers ROHSDiodes IncorporatedBuffers, Drivers, Receivers, TransceiversAD5761RBCP
QFN1616-Bit, Bipolar/Unipolar Voltage Output DACs with 2 ppm/°C ReferenceAnalog DevicesUncategorisedPRTR5V0U2X
SOT-143-55℃~+125℃ 0.3pF、0.8pF 100W 10V、15V 5V 6.5V 6A 80nA ESD IEC 61000-4-2、IEC 61000-4-5、IEC 61000-4-4 Three channels Unidirectional SOT-143 ESD and Surge Protection (TVS/ESD) ROHSTECH PUBLICESD And Surge Protection (TVS/ESD)LL4148
LL-341 Independent 1V@10mA 200mA 4A 4ns 500mW 5uA@75V 75V LL-34 Switching Diodes ROHSMDDSwitching Diodes
README
README.mdDPSGO
David's Pretty Satisfactory Gps-disciplined Oscillator
GPS disciplined oscillator
Accurate frequency reference for measurement equipment.
A 10MHz OCXO is tuned to a timing signal of a GPS, e.g. the 1PPS output. A frequency syntheziser then generates different signals from this reference as needed/configured by the user.
Development status
Currently I am working on the firmware for V1 of the PCB. During that I found multiple issues with PCB-V1 (Schematic) which hopefully culminate in another revision of the PCB, and then the firmware. See PCB-V1 ERRATA.
I.e.: usable, but only as a prototype development platform for V2.
The main control loop (OCXO -> frequency comparison -> DAC) works and the OCXO can be tuned to the GPS signal within 1PPB or better.
The chosen tiny FPGA is too small to hold all the logic that was designated for it. Most LEDs are connected to it and cannot be addressed because of that. Currently also the rotary encoder and buttons are connected to it and are usable, but may be removed to have more logic for frequency adjustment. In PCB-V2 I will likely move the UI to the microcontroller, or pick a slightly larger FPGA, e.g. the HX1K.
System components PCB-V1

OCXO: refurbished 8663-XS with 10MHz output
DAC: AD5761R 16bit high quality low speed DAC with internal reference, generates tuning signal for OCXO
GPS: uBlox NEO 7M module with 1PPS output
VCXO: Si5351-C frequency generator for programmable output frequencies
-
CLK0: 90MHz as input for frequency comparison in the FPGA (for automatic tuning)
-
CLK1: 10MHz reference output signal
-
other programmable outputs (currently disabled)
FPGA: Lattice LP384: measures difference between the generated reference output and the GPS reference signal. That information is used to calculate the tuning voltage for the OCXO.
uC: nRF52840 as system- and display-controller
Power input: 14-16V
PMIC: TPS652510 PMIC generating three rails of:
-
12V: OCXO
-
3.3V: digital logic
-
1.2V: FPGA core voltage
Additional LDO for:
- 10V: DAC output rail (from 12V rail)
Temperature sensors: MCP9808 under OCXO and on bottom-side of PMIC (not visible in photo).
User interface:
-
SSD1306
-
Rotary encoder and buttons (via FPGA)
-
LEDs (currently not addressalbe as FPGA cannot hold more logic)
Interfaces:
-
USB to both GPS receiver and microcontroller
-
potentially Bluetooth or 802.11.5 to microcontroller
-
JTAG/SWD to microcontroller
External references
A list of some hobby GPSDO designs: https://attila.kinali.ch/blog/2016/02/07/gps-disciplined-oscillator
A GPSDO with rubidium standard: http://www.medpants.com/my-reeds/itemlist/category/28-electronics
Alternative OCXO tuning schematic: https://gerrysweeney.com/wp-content/uploads/2013/10/OCXO-Rev-1F.png
"bt7tbl" GPSDO that can be bought on the internets: https://www.eevblog.com/forum/testgear/bg7tbl-gpsdo-master-reference/
Single-chip GPSDO control loop GPSDO: https://www.analog.com/media/en/technical-documentation/application-notes/AN-1002.pdf
"OpenPPS" GPSDO project: http://www.rocketmanrc.com/openpps.html
"Themis" GPSDO from HPSDR: http://openhpsdr.org/wiki/index.php?title=GPSTCXO
GPSDO by dfannin: https://github.com/dfannin/gpsdo
Parts
161| Qty | Value | Footprint | References |
|---|---|---|---|
| 15 | 100n | Capacitor_SMD:C_0402_1005Metric | C1, C11, C12, C22, C26, C27, C29, C31, C35, C41, C42, C45, C46, C47, C48 |
| 8 | MountingHole | MountingHole:MountingHole_4.3mm_M4_ISO14580_Pad | H1, H2, H3, H4, H5, H6, H7, H8 |
| 5 | 100K | Resistor_SMD:R_0402_1005Metric | R2, R7, R8, R28, R29 |
| 5 | 10n | Capacitor_SMD:C_0402_1005Metric | C28, C30, C32, C34, C43 |
| 5 | 10u | Capacitor_SMD:C_1210_3225Metric | C21, C23, C37, C38, C40 |
| 5 | 47n | Capacitor_SMD:C_0402_1005Metric | C2, C3, C16, C17, C18 |
| 4 | 10u | Capacitor_SMD:C_0603_1608Metric | C19, C20, C33, C39 |
| 4 | 43K | Resistor_SMD:R_0402_1005Metric | R19, R21, R22, R26 |
| 4 | 680 | Resistor_SMD:R_0402_1005Metric | R39, R41, R42, R43 |
| 3 | 10K | Resistor_SMD:R_0402_1005Metric | R10, R23, R45 |
| 3 | 1K | Resistor_SMD:R_0402_1005Metric | R9, R13, R14 |
| 3 | 3K | Resistor_SMD:R_0603_1608Metric | R18, R47, R49 |
| 3 | 4n7 | Capacitor_SMD:C_0402_1005Metric | C6, C8, C10 |
| 3 | 50 | Resistor_SMD:R_0402_1005Metric | R11, R12, R44 |
| 3 | DNP | Capacitor_SMD:C_0402_1005Metric | C13, C14, C36 |
| 3 | Fiducial | Fiducial:Fiducial_1mm_Mask3mm | FID1, FID2, FID3 |
| 2 | 12K | Resistor_SMD:R_0402_1005Metric | R1, R20 |
| 2 | 1u | Capacitor_SMD:C_0603_1608Metric | C15, C25 |
| 2 | 27 | Resistor_SMD:R_0402_1005Metric | R37, R38 |
| 2 | 300K | Resistor_SMD:R_0402_1005Metric | R4, R6 |
| 2 | 470 | Resistor_SMD:R_0603_1608Metric | R34, R35 |
| 2 | 4K7 | Resistor_SMD:R_0402_1005Metric | R5, R27 |
| 2 | 4u7 | Inductor_SMD:L_7.3x7.3_H4.5 | L1, L2 |
| 2 | 74LVC1G17 | Package_TO_SOT_SMD:SOT-23-5 | U5, U7 |
| 2 | 7K5 | Resistor_SMD:R_0603_1608Metric | R46, R48 |
| 2 | MCP9808_MSOP | Package_SO:MSOP-8_3x3mm_P0.65mm | U1, U2 |
| 2 | PRTR5V0U2X | Package_TO_SOT_SMD:SOT-143 | D1, D3 |
| 2 | USB_B_Micro | dpiegdon:USB_Micro-B_Aliexpress_7.2mm_Pitch | J5, J12 |
| 1 | 0 | Resistor_SMD:R_0603_1608Metric | R30 |
| 1 | 10K | Resistor_SMD:R_0603_1608Metric | R16 |
| 1 | 10p | Capacitor_SMD:C_0402_1005Metric | C44 |
| 1 | 10u | Capacitor_SMD:C_0402_1005Metric | C4 |
| 1 | 12K | Resistor_SMD:R_0603_1608Metric | R33 |
| 1 | 12p | Capacitor_SMD:C_0402_1005Metric | C5 |
| 1 | 13 | Resistor_SMD:R_0603_1608Metric | R36 |
| 1 | 1K8 | Resistor_SMD:R_0603_1608Metric | R32 |
| 1 | 1K8 | Resistor_SMD:R_0402_1005Metric | R25 |
| 1 | 220u | Inductor_SMD:L_Vishay_IHLP-1616 | L3 |
| 1 | 22p | Capacitor_SMD:C_0402_1005Metric | C9 |
| 1 | 32768 | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y1 |
| 1 | 43K | Resistor_SMD:R_0603_1608Metric | R17 |
| 1 | 470 | Resistor_SMD:R_0402_1005Metric | R31 |
| 1 | 4K7 | Resistor_SMD:R_0603_1608Metric | R15 |
| 1 | 4u7 | Capacitor_SMD:C_0603_1608Metric | C24 |
| 1 | 7K5 | Resistor_SMD:R_0402_1005Metric | R3 |
| 1 | 82 | Resistor_SMD:R_0603_1608Metric | R24 |
| 1 | 82p | Capacitor_SMD:C_0402_1005Metric | C7 |
| 1 | 8663-XS | dpiegdon:OCXO-8662-8663 | Y2 |
| 1 | AD5761R | Package_SO:TSSOP-16_4.4x5mm_P0.65mm | U9 |
| 1 | ANT_PWR | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP1 |
| 1 | Antenna_Shield | dpiegdon:Antenna-GPS-1575R | AE1 |
| 1 | CLK0 | Connector_Coaxial:SMA_Molex_73251-1153_EdgeMount_Horizontal | J10 |
| 1 | CLK1 | Connector_Coaxial:SMA_Molex_73251-1153_EdgeMount_Horizontal | J9 |
| 1 | CLK2 | Connector_Coaxial:SMA_Molex_73251-1153_EdgeMount_Horizontal | J8 |
| 1 | CLK3 | Connector_Coaxial:SMA_Molex_73251-1153_EdgeMount_Horizontal | J6 |
| 1 | CLK4 | Connector_Coaxial:SMA_Molex_73251-1153_EdgeMount_Horizontal | J15 |
| 1 | CLK5 | Connector_Coaxial:SMA_Molex_73251-1153_EdgeMount_Horizontal | J14 |
| 1 | CLK6 | Connector_Coaxial:SMA_Molex_73251-1153_EdgeMount_Horizontal | J13 |
| 1 | CLK7 | Connector_Coaxial:SMA_Molex_73251-1153_EdgeMount_Horizontal | J11 |
| 1 | DNP | Resistor_SMD:R_0402_1005Metric | R40 |
| 1 | DNP | Inductor_SMD:L_0805_2012Metric | L4 |
| 1 | E73-2G4M08S1C-52840 | dpiegdon:E73-2G4M80S1C | M1 |
| 1 | EC11 | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW1 |
| 1 | EXT_CLOCK | Connector_Coaxial:U.FL_Molex_MCRF_73412-0110_Vertical | J3 |
| 1 | GREEN | Diode_SMD:D_0603_1608Metric | D15 |
| 1 | ICE40LP384-SG32 | Package_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.6x3.6mm | IC1 |
| 1 | JTAG | Connector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical_SMD | J1 |
| 1 | LL4148 | Diode_SMD:D_MiniMELF | D16 |
| 1 | LT1763xS8 | Package_SO:SO-8_3.9x4.9mm_P1.27mm | U4 |
| 1 | MCML4-112B | dpiegdon:MCML4-L | SW2 |
| 1 | OUT0 | Diode_SMD:D_0603_1608Metric | D4 |
| 1 | OUT1 | Diode_SMD:D_0603_1608Metric | D5 |
| 1 | OUT2 | Diode_SMD:D_0603_1608Metric | D6 |
| 1 | OUT3 | Diode_SMD:D_0603_1608Metric | D7 |
| 1 | OUT4 | Diode_SMD:D_0603_1608Metric | D8 |
| 1 | OUT5 | Diode_SMD:D_0603_1608Metric | D9 |
| 1 | OUT6 | Diode_SMD:D_0603_1608Metric | D10 |
| 1 | OUT7 | Diode_SMD:D_0603_1608Metric | D11 |
| 1 | RED | Diode_SMD:D_0603_1608Metric | D14 |
| 1 | RED | Diode_SMD:D_1206_3216Metric | D2 |
The 152 most common of 161 parts.
Questions
How big is the Gpsdo PCB?
It measures 140 × 100 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Gpsdo use?
161 parts, built around the ICE40LP384-SG32, 74LVC1G17Z, AD5761RBCP and PRTR5V0U2X. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Gpsdo KiCad files?
From the dpiegdon/dpsgo repository on GitHub, at the commit this page was made from: the board is pcb/gpsdo.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Gpsdo design in my own project?
Its repository states no licence, so its author keeps all rights: ask dpiegdon before reusing the design.
Similar boards
- 2 layers54.1 × 23.5 mm

- 2 layers

- 4 layers30 × 15 mm

- 2 layers50 × 50 mm

- 2 layers50.8 × 20.3 mm

- 2 layers173.5 × 85 mm

Whitterm hat
tuna-f1sh/whitterm-wt220
Design files, firmware and linux scripts for my /clever/ serial terminal, the Whitterm-220 - WT-220.
208 parts4GPL-3.0 - 4 layers40 × 50 mm

Pcb m
perigoso/wmo-remastered
Replacement PCB for the classic WMO (Wheel mouse Optical) by Mcrosoft
42 parts1 - 2 layers75 × 50 mm

Openeew openeew sensor pcb
punkfab/pcb-corpus
235 real KiCad boards from open-source hardware repositories, prepared as a placement and routing benchmark
104 parts1