properly planning out major upgradez

This commit is contained in:
2026-07-24 20:43:59 -06:00
parent 24387ef1e0
commit 79e8e0dc0f
4 changed files with 434 additions and 0 deletions
@@ -0,0 +1,167 @@
## for sure upgrades:
1. UPGRADE TO PI5 8GB
1. HARDWARE IMPROVEMENTS
1. the Pi5 8GB/16GB
2. High stability USB-C power
1. quality GaN
2. behind surge protector (less ideal) or batt backup (ideal)
3. Case ([amazon link to quality case](https://www.amazon.com/dp/B0CN8NQC47/?coliid=I25D7WU06WT9HS&colid=1ZF04J4MPX8Z9&th=1))
1. Metal
2. Quality
3. case has thermal paste/heats inks/fans
1. [High quality thermal compound to attach to heatsinks](https://www.amazon.com/dp/B09VDLH5M6/?coliid=I2IGRDTAC7943I&colid=1ZF04J4MPX8Z9&th=1)
4. Fan controlled and monitored, heat monitored
1. Alarm for higher or lower than usual temp
2. output fan usage/history to log/telegraf/grafana every 5 seconds
3. output system temperature to log/telegrad/grafana every 5 seconds
4. output uptime/%CPU/%MEM to log/telegraf/grafana every 5 seconds
5. Exposes ALL GPIO and usb
2. [Quality 512GB microsd (Sandisk Extreme Pro (latest model) 512GB)](https://www.amazon.com/dp/B0G8M74T13/?coliid=I2R7TER3Q0G09U&colid=1ZF04J4MPX8Z9&th=1)
3. [20ft CAT8 Ethernet](https://www.amazon.com/dp/B0G8M74T13/?coliid=I2R7TER3Q0G09U&colid=1ZF04J4MPX8Z9&th=1)
2. PCB HAT
1. MADE OF
1. PERF Board (have)
2. female to male pins, gold coated copper (have)
3. good leaded activated solder and activated flux (have)
4. Solid copper core plastic coated, colored wire
5. Clock pulse generator/frequency programmable dividers/multipliers (to get)
1. 10mhz reference clock gpio pin input (from reference oscillator)
2. programmable low jitter clean quality programmable clock generators/frequency divider/multiplier (3.3v)
1. clock generator chips (these can take 10mhz/etc as input then multiply or divide the signal into a clean jitter free signal modified frequency output)
3. Texas Instruments LMK04832 (best, supports 54mhz, programmablew)
1. plus programming figured out
6. Analog Devices ADF4351 (worse, doesnt natively support 54mhz, programmable)
1. plus programming figured out
7. 7490 IC 4-bit counter (div/5, div/2, together div/10) (cheapest, easiest, most common, can only convert 10mhz to 1mhz (div 5+2), 5mhz (div 2), or 2mhz (div 5))
1. plus programming figured out (shoudl just be setting/connecting/shorting some pins)
2. UART gpio pins in/out (from NEO-10 gps timekeeping, pin in/out same as UART on NEO-10T) (3.3v)
3. i2c pins for high precision RTC module (3.3v)
1. and 3.3v lithium coin batt
4. with NEO-10 gps module attached
1. room for 3.3v lithium coin batt on NEO-10 gps timekeeping
5. room for external antenna (have, get adaptor)
1. get adaptor for [IP65 IPEX (U.FL) to SMA](https://gnss.store/products/elt0179)
6. pps gpio pin input (from NEO-10 gps timekeeping)
1. Solid Coper Wire ideally (have)
1. _possibly_ with female/male pins crimped on?
1. gold coated copper
2. connection quality
3. connection strength
2. or stranded high quality copper jumper with gold coated copper pins
7. (?) Logic shifters (high precision, arbitrary)
1. like TXS0108E (have)
8. SOFTWARE IMPROVEMENTS
1. OPERATING SYSTEM IMPROVEMENTS
1. Rpi os lite 64bit latest stable
2. disable and uninstall any unused services
3. get list of registered services with
```bash
sudo service --status-all | tee -a "~/$(date +"%Y-%m-%d-%H%M-%S-%Z")_service-status-all.txt"
```
4. uninstall any unused packages
1. get list of packages installed with
```bash
sudo apt list --installed | tee -a "~/$(date +"%Y-%m-%d-%H%M-%S-%Z")_installed_packages.txt"
```
1. pin chrony/etc to one specific core?
2. dial up NEO-10 gps timekeeping uart speed to highest practical baud rate
1. to Pi5 GPIO
2. to Ublox2 highest stable setting
1. This will require serial interface with the chip
1. normal pins for uart?
2. usb d+ and d- lines?
3. external uart to somewhere else
3. OUTPUT IMPROVEMENTS
1. remote hosted web apps (prolly node) that get goverened by grandfather clock over idk webrtc/websockets/mqtt/calling a page, whatever
1. goven universal beat time web app
2. govern a normal multi-tz grandmasterclock output web app
2. highest possible accuracy/speed ntp/time server available
3. Update Telegraf/Grafana/etc to log
1. pps variance over four periods of time
1. measure each pps, log exact value in telegraf->grafana
2. Occasinoally calculate an average inaccuracy
1. Hourly (display in grafana view)
2. Daily (display in grafana view)
3. Weekly (display in grafana view)****
4. Monthly (display in grafana view)
3. use average inaccuracy to develop multiplier/divisor in real time for chrony
2. cpu speed variance
1. Occasinoally calculate an average inaccuracy
1. Hourly (display in grafana view)
2. Daily (display in grafana view)
3. Weekly (display in grafana view)
4. Monthly (display in grafana view)
2. use average inaccuracy to develop multiplier/divisor in real time
3. checks against RTC
1. Occasinoally calculate an average inaccuracy
1. Hourly (display in grafana view)
2. Daily (display in grafana view)
3. Weekly (display in grafana view)
4. Monthly (display in grafana view)
2. use average inaccuracy to develop multiplier/divisor in real time
4. checks against NTP burst
1. Occasinoally calculate an average inaccuracy
1. Hourly (display in grafana view)
2. Daily (display in grafana view)
3. Weekly (display in grafana view)
4. Monthly (display in grafana view)
2. use average inaccuracy to develop multiplier/divisor in real time
5. telegraf->grafana
1. average hourly, daily, weekly, monthly erors average from
1. NTP Burst check
2. High quality RTC
3. Pulsar signals (later)
2. max/min error of
1. NTP Burst check
2. high quality RTC
3. os clock speed
4. pulsar signals (later)
5. each
1. Hourly
2. Daily
3. Weekly
4. Monthly
1. GPS MODULE TIMEKEEPING
1. new NEO-10 gps timekeeping one, one with a 3.3v battery input for hot/warm starts maybe the [139Euro NEO-F10T L1/L5/E5a Receiver](https://gnss.store/products/elt0184) (need) MAKE SURE YOUR ANTENNA PLUG MATCHES THIS FORMAT! NO SCREW ON MORE LIKE SMA attached
2. maybe get the canonical antenna/cable/adaptors off same site:
1. (? not sure this is any better than my existing barrel antenna) [gps antenna](https://gnss.store/products/elt0140)
2. (need) [gps antenna adaptor](https://gnss.store/products/elt0179)
3. solder 3.3v lithium coincell battery/breakout to timekeeping gps (see datasheet)
1. for hot and warm starts when power is lost
2. to prevent pwoer loss of precision or accuracy
4. see datasheet
2. HIGH PRECISION REFERENCE OSCILLATOR SHIT ([gps disciplined 10mhz rubidium reference oscillator](https://www.aliexpress.us/item/3256811412964525.html)) (neeed)
1. options for adding external oscillator:
1. desolder pi4's normal crystal and input 10mhz reference pulses after high precision multiplying/dividing to the expected value, then soldered in. high precision pi native clock
1. crystal available internetally
2. would make pi4s ops far more consistant speed
3. no effect on pps accuracy
2. desolder gps timekeeping crystal and wire in 10mhz reference through high precision frequency multiplier/divider and soldered in
1. this will make the gps pps very very accurate
2. will let pi5 just operate off of the high quality pps signal
3. apply 10mhz reference clock to rpi x xtal 0,1 to get 10mhz signal inside pi (see pi4 datasheet/notes)
1. recalibrate chrony/gpsd/etc to base time off of this input?
1. may require custom forks or other shenanigans
4. use high precision frequency multiplier/divider to get 10mhz reference into useable frequency for timekeeping, then input via x xtal 0,1 (see pi4 datasheet/notes)
1. then base chrony/gpsd/etc off of that clock?
3. PULSAR SHIT
1. will need to use google starmap thing to identify the roughs of where the milisecond pulsars are
2. 2+ RTL-SDR V4 s
3. 2+ LNA (Low Noise Amplifiers)
1. coax in and out
2. low noise < 0.5db
3. high gain > 20db
4. BPF (Bandpass Filter) to block strong out of band sdignasls
5. parabolic antennas (ali express)
1. high gain
2. 2.5-3 meter diamater
3. tuned to 420440 MHz (70cm band) and/or 1420 MHz (21cm band).
6. wire to connect to RTL-SDR 4
7. tripod/mount/adjustment mount (look into)
8. maybe extra usb space
@@ -0,0 +1,78 @@
Detecting a **Millisecond Pulsar (MSP)** with an RTL-SDR is one of the most demanding tasks in amateur radio astronomy. While detecting slower, brighter pulsars like **B0329+54** (period $\sim 714\text{ ms}$) or the **Vela Pulsar** ($\sim 89\text{ ms}$) is achievable with standard amateur setups, true millisecond pulsars (periods $< 10\text{ ms}$) are extremely faint and heavily distorted by interstellar dispersion.
To detect any pulsar signal with an 8-bit, 2.4 MHz bandwidth RTL-SDR dongle, you must rely on **synchronous integration (epoch folding)** and **de-dispersion** to pull the signal out of the noise floor.
---
## 1. Essential Hardware Requirements
Because pulsar signals are weaker than the natural thermal noise of the universe, your RF front-end must maximize gain and minimize system noise:
* **Antenna:** A high-gain dish (minimum 2.53 meters in diameter) or a phased array of long Yagi antennas tuned to **420440 MHz (70cm band)** or **1420 MHz (21cm band)**.
* **Low Noise Amplifier (LNA):** Placed directly at the antenna feed point, featuring a low noise figure ($< 0.5\text{ dB}$) and high gain ($> 20\text{ dB}$).
* **Bandpass Filter (BPF):** Essential in front of the SDR to block out strong out-of-band terrestrial Radio Frequency Interference (RFI).
* **High-Stability Receiver:** An RTL-SDR with a **TCXO ($\le 1\text{ ppm}$)** or modified for an external **GPSDO (GPS-Disciplined Oscillator)**. Frequency drift over hours of recording will smear the pulse period and destroy your integrated signal.
---
## 2. The Signal Processing Pipeline
Pulsar radiation arrives as broadband noise pulses. The signal processing flow requires four major steps:
```
[ Ant / LNA / BPF ] ──> [ Raw IQ Capture ] ──> [ Filterbank Generation ] ──> [ Incoherent De-Dispersion ] ──> [ Epoch Folding ]
```
### Step A: Raw IQ Capture
Record uncompressed 8-bit complex IQ data at the maximum stable sampling rate (typically $2.4\text{ MS/s}$) at your target frequency. A single observation session usually requires $1\text{ to }4\text{ hours}$ of continuous data.
```bash
# Example recording 2 hours of raw IQ at 423 MHz with rtl_sdr
rtl_sdr -f 423000000 -s 2400000 -g 40 -n 17280000000 raw_pulsar_data.bin
```
### Step B: Filterbank Generation
Convert the continuous IQ time series into time-frequency channel data (a filterbank file). The 2.4 MHz RF spectrum is split into multiple narrower frequency channels (e.g., 64 to 256 channels) using an FFT.
### Step C: Incoherent De-Dispersion
As the pulsar signal travels through free electrons in the interstellar medium (ISM), lower radio frequencies arrive slightly later than higher radio frequencies. This delay is quantified by the pulsar's **Dispersion Measure (DM)**:
$$\Delta t \approx 4.15 \times 10^3 \times \text{DM} \times \left( \frac{1}{f_{\text{low}}^2} - \frac{1}{f_{\text{high}}^2} \right) \text{ seconds}$$
To de-disperse:
1. Look up the candidate pulsar's DM from the **ATNF Pulsar Catalogue** (e.g., PSR B0329+54 has a $\text{DM} \approx 26.76\text{ pc cm}^{-3}$).
2. Calculate the channel arrival delays and shift the filterbank time channels backward in time so all frequencies align.
### Step D: Epoch Folding (Synchronous Averaging)
Because single pulses are far below the receiver noise floor, you must fold the continuous data stream on top of itself at the exact rotational period ($P_0$) of the pulsar:
1. Calculate the apparent period ($P_0$) at your exact observation time using **TEMPO2** (accounting for Earth's Doppler shift relative to the solar system barycenter).
2. Divide the time series into segments equal to $P_0$.
3. Sum (average) thousands of rotational periods into a single phase profile of 100 to 1000 phase bins.
4. The random thermal noise integrates down by $\sqrt{N}$ (where $N$ is the number of pulses folded), causing the sharp pulse profile to emerge.
---
## 3. Recommended Software Tools
Rather than building every step from scratch, radio astronomers use established open-source tools:
* **PRESTO:** The industry-standard suite for pulsar search and timing. Use `prepdata` for de-dispersion and `prepfold` for epoch folding.
* **SIGPROC:** Used to convert raw IQ data into `.fil` filterbank files.
* **DSPSR:** High-performance digital signal processing software for pulsar astronomy (supports fold, filterbank, and de-dispersion functions).
* **GNU Radio:** Useful for custom receiver blocks and streaming data directly to filterbank files.
---
## 4. Tips for Success
1. **Start with a "Standard" Pulsar First:** Before attempting a millisecond pulsar, test your hardware pipeline on **PSR B0329+54** or **PSR B0833-45 (Vela)**. If you cannot resolve B0329+54, the aperture or noise figure is insufficient for an MSP.
2. **Verify Timing Precision:** Millisecond pulsars require sub-microsecond timing accuracy. Ensure your system clock is locked via NTP/GPS and your RTL-SDR sample clock is backed by a TCXO or GPSDO.
3. **Clean RFI:** Ensure your local environment is clear of switching power supplies, solar inverters, and USB 3.0 radiation.
@@ -0,0 +1,63 @@
## for sure upgrades:
1. Upgrade to Pi5 8GB
1.
2. GPS MODULE TIMEKEEPING
1. new NEO-10 gps timekeeping one, one with a 3.3v battery input for hot/warm starts maybe the [139Euro NEO-F10T L1/L5/E5a Receiver](https://gnss.store/products/elt0184)* MAKE SURE YOUR ANTENNA PLUG MATCHES THIS FORMAT! NO SCREW ON MORE LIKE SMA attached
2. maybe get the canonical antenna/cable/adaptors off same site:
1. (? not sure this is any better than my existing barrel antenna) [gps antenna](https://gnss.store/products/elt0140)
2. (need) [gps antenna adaptor](https://gnss.store/products/elt0179)
3. solder 3.3v lithium coincell battery/breakout to timekeeping gps (see datasheet)
1. for hot and warm starts when power is lost
2. to prevent pwoer loss of precision or accuracy
4. see datasheet
3. PCB HAT
1. featuring
1. pps gpio pin input (from NEO-10 gps timekeeping)
2. 10mhz reference clock gpio pin input
3. UART gpio pins in/out (from NEO-10 gps timekeeping)
4. i2c pins for high precision RTC module
1. and 3.3v lithium coin batt
2. with NEO-10 gps module attached
1. room for 3.3v lithium coin batt on NEO-10 gps timekeeping
2. room for external antenna
3. (?) clock generator chips (Texas Instruments LMK04832 or Analog Devices ADF4351) plus programming figured out
1. these can take 10mhz/etc as input then multiply or divide the signal into a clean jitter free signal modified frequency output
4. HIGH PRECISION REFERENCE OSCILLATOR SHIT ([gps disciplined 10mhz rubidium reference oscillator](https://www.aliexpress.us/item/3256811412964525.html))
1. options for adding external oscillator:
1. desolder pi4's normal crystal and input 10mhz reference pulses after high precision multiplying/dividing to the expected value, then soldered in. high precision pi native clock
1. crystal available internetally
2. would make pi4s ops far more consistant speed
3. no effect on pps accuracy
2. desolder gps timekeeping crystal and wire in 10mhz reference through high precision frequency multiplier/divider and soldered in
1. this will make the gps pps very very accurate
2. will let pi4 just operate off of the high quality pps signal
3. apply 10mhz reference clock to rpi x xtal 0,1 to get 10mhz signal inside pi (see pi4 datasheet/notes)
1. recalibrate chrony/gpsd/etc to base time off of this input
1. may require custom forks or other shenanigans
4. use high precision frequency multiplier/divider to get `10mhz reference into useable frequency for timekeeping, then input via x xtal 0,1 (see pi4 datasheet/notes)
1. then base chrony/gpsd/etc off of that clock
2. clock pulse generator? https://www.adafruit.com/product/2045
1. uses i2c and an internal precision ox to generate up to three clock signals
2. no clock input?
3. convert 10mhz ref clock into 54mhz clock for rpi4 and rpi5
1. Texas Instruments LMK04832 or Analog Devices ADF4351 programmed with a 5.4 frequency multiplier to convert 10mhz to 54mhz for rpi4+5 clock
5. OUTPUT IMPROVEMENTS
1. remote hosted web apps (prolly node) that get goverened by grandfather clock over idk webrtc/websockets/mqtt/calling a page, whatever
1. goven universal beat time web app
2. govern a normal multi-tz grandmasterclock output web app
6. PULSAR SHIT
1. will need to use google starmap thing to identify the roughs of where the milisecond pulsars are
2. 2+ RTL-SDR V4 s
3. 2+ LNA (Low Noise Amplifiers)
1. coax in and out
2. low noise < 0.5db
3. high gain > 20db
4. BPF (Bandpass Filter) to block strong out of band sdignasls
5. parabolic antennas (ali express)
1. high gain
2. 2.5-3 meter diamater
3. tuned to 420440 MHz (70cm band) and/or 1420 MHz (21cm band).
6. wire to connect to RTL-SDR 4
7. tripod/mount/adjustment mount (look into)
8. maybe extra usb space
+126
View File
@@ -0,0 +1,126 @@
## for sure upgrades:
1. UPGRADE TO PI5 8GB
1. HARDWARE IMPROVEMENTS
1. the Pi5 8GB
2. Case
1. Metal
2. Quality
3. Actively Cooled (fan)
4. Exposes ALL GPIO and usb
3. Nice quality 256GB microsd (Sandisk Extreme 256GB)
4. New long high grade ethernet cable
2. SOFTWARE IMPROVEMENTS
1. OPERATING SYSTEM IMPROVEMENTS
1. Rpi os lite 64bit latest stable
2. disable and uninstall any unused services
1. get list of registered services with
```bash
sudo service --status-all | tee -a "~/$(date +"%Y-%m-%d-%H%M-%S-%Z")_service-status-all.txt"
```
1. uninstall any unused packages
1. get list of packages installed with
```bash
sudo apt list --installed | tee -a "~/$(date +"%Y-%m-%d-%H%M-%S-%Z")_installed_packages.txt"
```
1. pin chrony/etc to one specific core?
2. dial up NEO-10 gps timekeeping uart speed to highest practical baud rate
1. to Pi5 GPIO
2. to Ublox2 highest stable setting
1. This will require serial interface with the chip
1. normal pins for uart?
2. usb d+ and d- lines?
3. external uart to somewhere else
3. OUTPUT IMPROVEMENTS
1. remote hosted web apps (prolly node) that get goverened by grandfather clock over idk webrtc/websockets/mqtt/calling a page, whatever
1. goven universal beat time web app
2. govern a normal multi-tz grandmasterclock output web app
2. highest possible accuracy/speed ntp/time server available
3. Update Telegraf/Grafana/etc to log
1. pps variance over four periods of time
1. measure each pps, log exact value in telegraf->grafana
2. Occasinoally calculate an average inaccuracy
1. Hourly (display in grafana view)
2. Daily (display in grafana view)
3. Weekly (display in grafana view)****
4. Monthly (display in grafana view)
3. use average inaccuracy to develop multiplier/divisor in real time for chrony
2. cpu speed variance
1. Occasinoally calculate an average inaccuracy
1. Hourly (display in grafana view)
2. Daily (display in grafana view)
3. Weekly (display in grafana view)
4. Monthly (display in grafana view)
2. use average inaccuracy to develop multiplier/divisor in real time
3. checks against RTC
1. Occasinoally calculate an average inaccuracy
1. Hourly (display in grafana view)
2. Daily (display in grafana view)
3. Weekly (display in grafana view)
4. Monthly (display in grafana view)
2. use average inaccuracy to develop multiplier/divisor in real time
4. checks against NTP burst
1. Occasinoally calculate an average inaccuracy
1. Hourly (display in grafana view)
2. Daily (display in grafana view)
3. Weekly (display in grafana view)
4. Monthly (display in grafana view)
2. use average inaccuracy to develop multiplier/divisor in real time
1. GPS MODULE TIMEKEEPING
1. new NEO-10 gps timekeeping one, one with a 3.3v battery input for hot/warm starts maybe the [139Euro NEO-F10T L1/L5/E5a Receiver](https://gnss.store/products/elt0184)* MAKE SURE YOUR ANTENNA PLUG MATCHES THIS FORMAT! NO SCREW ON MORE LIKE SMA attached
2. maybe get the canonical antenna/cable/adaptors off same site:
1. (? not sure this is any better than my existing barrel antenna) [gps antenna](https://gnss.store/products/elt0140)
2. (need) [gps antenna adaptor](https://gnss.store/products/elt0179)
3. solder 3.3v lithium coincell battery/breakout to timekeeping gps (see datasheet)
1. for hot and warm starts when power is lost
2. to prevent pwoer loss of precision or accuracy
4. see datasheet
2. PCB HAT
1. featuring
1. pps gpio pin input (from NEO-10 gps timekeeping)
2. 10mhz reference clock gpio pin input
3. UART gpio pins in/out (from NEO-10 gps timekeeping)
4. i2c pins for high precision RTC module
1. and 3.3v lithium coin batt
2. with NEO-10 gps module attached
1. room for 3.3v lithium coin batt on NEO-10 gps timekeeping
2. room for external antenna
3. (?) clock generator chips (Texas Instruments LMK04832 or Analog Devices ADF4351) plus programming figured out
1. these can take 10mhz/etc as input then multiply or divide the signal into a clean jitter free signal modified frequency output
3. HIGH PRECISION REFERENCE OSCILLATOR SHIT ([gps disciplined 10mhz rubidium reference oscillator](https://www.aliexpress.us/item/3256811412964525.html))
1. options for adding external oscillator:
1. desolder pi4's normal crystal and input 10mhz reference pulses after high precision multiplying/dividing to the expected value, then soldered in. high precision pi native clock
1. crystal available internetally
2. would make pi4s ops far more consistant speed
3. no effect on pps accuracy
2. desolder gps timekeeping crystal and wire in 10mhz reference through high precision frequency multiplier/divider and soldered in
1. this will make the gps pps very very accurate
2. will let pi4 just operate off of the high quality pps signal
3. apply 10mhz reference clock to rpi x xtal 0,1 to get 10mhz signal inside pi (see pi4 datasheet/notes)
1. recalibrate chrony/gpsd/etc to base time off of this input
1. may require custom forks or other shenanigans
4. use high precision frequency multiplier/divider to get `10mhz reference into useable frequency for timekeeping, then input via x xtal 0,1 (see pi4 datasheet/notes)
1. then base chrony/gpsd/etc off of that clock
2. clock pulse generator? https://www.adafruit.com/product/2045
1. uses i2c and an internal precision ox to generate up to three clock signals
2. no clock input?
3. convert 10mhz ref clock into 54mhz clock for rpi4 and rpi5
1. Texas Instruments LMK04832 or Analog Devices ADF4351 programmed with a 5.4 frequency multiplier to convert 10mhz to 54mhz for rpi4+5 clock
4. PULSAR SHIT
1. will need to use google starmap thing to identify the roughs of where the milisecond pulsars are
2. 2+ RTL-SDR V4 s
3. 2+ LNA (Low Noise Amplifiers)
1. coax in and out
2. low noise < 0.5db
3. high gain > 20db
4. BPF (Bandpass Filter) to block strong out of band sdignasls
5. parabolic antennas (ali express)
1. high gain
2. 2.5-3 meter diamater
3. tuned to 420440 MHz (70cm band) and/or 1420 MHz (21cm band).
6. wire to connect to RTL-SDR 4
7. tripod/mount/adjustment mount (look into)
8. maybe extra usb space