====== Raspberry Pi XO Replacement ====== Context: * https://raspberrypi.stackexchange.com/questions/74482/switch-out-the-x1-oscillator-on-a-rpi-2-3/109074#109074 ==== 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. ^ Pi 2 B with replaced XO ^ Pi 2 B with stock XO ^ | {{::pib-newxo-tracking.png?400|}} | {{::pib-stockxo-tracking.png?400|}} | ==== Notable Test Points ==== * https://ozzmaker.com/testing-points-raspberry-pi/ 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 * http://www.farnell.com/datasheets/2860337.pdf 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 ==== * [[https://www.digikey.com/en/products/detail/iqd-frequency-products/LFTVXO079052/9739101|IQXT-205-3-18]] or * [[https://www.digikey.com/en/products/detail/taitien/TXETBLSANF-19-200000/6127626|TXETBLSANF-19.200000]] ====== 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 ==== * [[https://sourceforge.net/p/raspberry-gpio-python/wiki/PWM/]] * [[https://gist.github.com/boseji/7296415]] #!/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