Table of Contents
Raspberry Pi XO Replacement
Success!
Made an initial attempt on the evening of 2023-03-26 on a Pi 2 B. Drop in replacement is working surprisingly well right off. Have not performed any longitudinal testing yet, but initial tracking numbers are positive.
Notable Test Points
PP3 GND PP4 GND PP5 GND PP6 GND PP7 5V after polyfuse PP8 3V3 PP9 1V8
Pi 3 B v1.2 Stock XO
Marked AEL19.2
As far as I can tell, the Pi 2B through 3B+ all use this part, as well as a number of the A models. The Pi 4B uses two AEL crystals, one at 25MHz, the other at 54MHz. I have not yet experimented with replacing these parts.
New TCXO
Quantifying Results
There are a number of different methods for quantifying the results of this sort of modification. A few that I am exploring will be detailed below.
chrony tracking
(Graphs coming eventually)
Python Frequency Generator
- sigGen.py
#!/usr/bin/python import RPi.GPIO as GPIO from time import sleep GPIO.setmode(GPIO.BCM) GPIO.setup(10,GPIO.OUT) p=GPIO.PWM(10,1140) p.start(20) sleep(3600) p.stop() GPIO.cleanup() exit()
WiringPi GPIO_CLOCK
The WiringPi toolset has a function to use the SoC's PLLs to generate a precise clock using the GPIO_CLOCK function. This can be initiated easily from the linux userspace by first setting the pin mode, then the output frequency. Only WiringPi Pin 7 (GPIO 4) supports this mode.
gpio mode 7 clock gpio clock 7 1000000 # frequency in Hz