-
Designing the new radio receiver
08/06/2024 at 21:22 • 0 commentsHi everyone,
Just a quick update here. I'm in the phase of designing my own radio receiver, in order to remove the H1 SawBird and use my own custom hardware.
It will consist of multiple RF amplifiers and RF band-pass filters tuned to receive neutral hydrogen radiations.
The design will include a metallic container for the electronics, a cooling system designed to cool down the power amplifiers during measurement sessions and a USB-C power supply port.
I will experiment with different kinds of RF components, in order to find the correct combination for my radio telescope.
-
Designing the new radio receiver
08/06/2024 at 21:22 • 0 commentsHi everyone,
Just a quick update here. I'm in the phase of designing my own radio receiver, in order to remove the H1 SawBird and use my own custom hardware.
It will consist of multiple RF amplifiers and RF band-pass filters tuned to receive neutral hydrogen radiations.
The design will include a metallic container for the electronics, a cooling system designed to cool down the power amplifiers during measurement sessions and a USB-C power supply port.
I will experiment with different kinds of RF components, in order to find the correct combination for my radio telescope.
-
HLDP: new powerful version
07/18/2024 at 10:01 • 0 commentsHi everyone,
sorry for not uploading new updates on the project page for a while, but I've been busy with exams :/
I just uploaded a new very important report about the new powerful version of HLDP (Hydrogen Line Data Processor), the software (multiple software) I've been developing for processing raw data from the radio telescope.
I explained everything in the report and the results are really good!
-
First picture time
05/31/2024 at 13:42 • 0 commentsHi everyone,
I just wanted to let you know that starting tomorrow I'll start collecting data for creating my first image of a part of the MIlky Way, the Perseus Arm.
Stay tuned.
-
24 hours experiment concluded!
05/27/2024 at 20:37 • 0 commentsHi everyone,
I just uploaded the report on the 24-hour experiment where my radiotelescope gathered data for an entire day, achieving really good results.
In the report, you can find insights on the new code I wrote for data analysis.
Go here to read the complete report.
EXPERIMENT GALLERY
-
Data gathering time
05/19/2024 at 20:45 • 0 commentsHi everyone,
just another quick update.
I've been experimenting with the radiotelescope and writing some interesting code to collect data autonomously over time.
I already have some really good results! I will share them as soon as I write the complete report.Additionally, I wrote an interesting algorithm to process the data and remove most noise; it works like a charm.
-
First results!
05/08/2024 at 13:47 • 0 commentsBig news today,
I just published the first results obtained with the radiotelescope.
Please read the article here, it's fascinating. -
Coding update (problems)
05/06/2024 at 17:01 • 0 commentsJust a quick update on the software side.
Although the code I published a few days ago is okay for displaying spectrum analysis results in other applications, my research and some testing have led me to conclude that that code is not useful in the field of radio astronomy. This is because it lacks some fundamental functions to obtain meaningful data during the pointing of astronomical objects, including:
- the ability to measure background noise and subtract it from subsequent measurements.
- the ability to integrate a series of measurements to obtain more averaged data with less interference/noise and, likewise, with amplified and visible signal peaks (what we want to see).
I am currently developing another code, which I will publish in the coming days. Stay tuned.
-
Antenna feed is ready
05/06/2024 at 16:54 • 0 commentsNews
In the last few days, thanks to my father's help in soldering and assembling the device, the feed antenna for the parabolic dish is ready.
Design
The feed antenna consists of a can-antenna made of a copper cylinder with a depth of 304mm and a diameter of 145mm. Additionally, at 101mm from the bottom of the cylinder, there is a straight copper wire with a length of 52.8mm (the actual antenna wire).
This design was created using this online tool (link here), in order to have a central frequency of 1420MHz, a lower cut-off frequency of 1212MHz, and an upper cut-off frequency of 1582MHz.
So, besides being centred on the frequency of the Hydrogen Line, it should also serve as an initial filter for the radiations we don't want to analyze.
Finally, an SMA connector was soldered to enable connection with a 50ohm coaxial cable to carry the signal from the feed antenna to the LNA and RTL-SDR.
Finally, in order to position this feed antenna above the parabola in the focal point area, an aluminium disk was fabricated to support the copper cylinder and to be connected to the 3 arms of the parabola typically used for satellite LNB connection (approximately 45cm above the bottom of the dish).
The aluminium ring allows adjusting the height at which the cylinder is suspended. My idea (to be verified) is that by lowering the feed antenna slightly below the focal point level, thus sacrificing some gain, the beam-width of the antenna becomes narrower, allowing me to aim more precisely at small astronomical objects.
Difficulties
- Soldering the copper cylinder.
- Soldering the SMA connector to the copper cylinder without damaging the connector.
Why a can-antenna?
This is a question I began asking myself right from the start and delved into further during the design of this feed antenna.
Firstly, the design solutions for a feed antenna typically involve horn antennas and patch antennas. Patch antennas are generally more challenging to fabricate at home without manufacturing errors significantly compromising performance. Horn antennas are also the most common type for these applications (just look at satellite LNB images), so my design would have followed that path.
Some online resources, particularly an intriguing video by Neptunium, showed how it was possible to use a cylinder instead of a horn for the feed of a parabolic antenna, possibly sacrificing some performance, but the compromise was entirely acceptable.
Gallery
( ! ) This setup is temporary, not the final design of the whole system.
-
Another coding night
04/30/2024 at 12:23 • 0 commentsJust a quick update.
New Python code to display spectrum also with a heat-map.
from rtlsdr import RtlSdr from matplotlib import mlab as mlab import matplotlib.pyplot as plt import os from tkinter import * # SETTINGS GAIN = 4 SAMPLE_RATE = 2.4e6 F_CORRECTION = 60 DATA_RES = 128 try: sdr = RtlSdr() except: print("Error: cannot initialize the SDR device") exit(0) #ASK FOR FREQUENCIES os.system("clear") print("Insert initial frequency [MHz]: ", end="") CENTER_FREQ = int(input())*1e6 print("Insert final frequency [MHz]: ", end="") END_FREQ = int(input())*1e6 #CONFIGURATION sdr.sample_rate = SAMPLE_RATE sdr.center_freq = CENTER_FREQ sdr.freq_correction = F_CORRECTION sdr.gain = GAIN garbage = sdr.read_samples(DATA_RES * 1024) step = 2.5e5 half_step = step/2 center_f_arr = [] n = int((END_FREQ - CENTER_FREQ)/step) def getdata(): pow_arr = [] freq_arr = [] for k in range(0,n): sdr.center_freq = CENTER_FREQ + (step*k) center_f_arr.append((CENTER_FREQ + (step*k))/1e6) #save the central frequency for later samples = sdr.read_samples(DATA_RES * 1024) power, psd_freq = mlab.psd(samples, NFFT=1024, Fs=sdr.sample_rate/1e6) psd_freq = psd_freq + sdr.center_freq/1e6 for i in range(0, len(psd_freq)): if psd_freq[i] < (sdr.center_freq+half_step)/1e6 and psd_freq[i] > (sdr.center_freq-half_step)/1e6: freq_arr.append(psd_freq[i]) pow_arr.append(power[i]) if(len(freq_arr) > 536870000): print("Fatal error: trying to store too much data") exit(0) i = 0 for e in freq_arr: if e in center_f_arr: pow_arr[i] = pow_arr[i-1] pow_arr[i+1] = pow_arr[i+2] pow_arr[i-1] = pow_arr[i-2] i=i+1 return freq_arr,pow_arr #ask for data freq_arr,pow_arr = getdata() #create 2d map mappa = [[0 for x in range(len(pow_arr))] for y in range(len(pow_arr))] for i in range(0, len(pow_arr)): for j in range(0, len(pow_arr)): mappa[i][j] = pow_arr[j] f, axarr = plt.subplots(2) axarr[0].plot(freq_arr, pow_arr, color="green") c = axarr[1].imshow(mappa, cmap='hot', interpolation='nearest',origin ='lower', aspect='auto') axarr[1].axis("off") f.colorbar(c) plt.show()
Output plot: