This repository will have the Software for the Orange PI SDR transponder.
This software controle the SDR transmitter board and RTL-SDR dongle for RX.
The link to the SDR Transmitter board https://github.com/antonjan/IQ_Modulator
This project has just started 15 June 2018.
The code is not compleet yet but hardware board is compleet.
Armbian Operating system.
The operating system I recomentd is Armbian and it can be downloaded here https://www.armbian.com/orange-pi-zero/
Then unzip the file using the.
unzip Debian_stretch_next.7z
We now need to burn the SD card to be plased in Orange Pi.I would use 16Gb or bigger I think it suports upto 32Gb
Run the following command to burn the file to the SD card.
df -k
Look for the SD card. in my case its /dev/mmcblk0p1
Make sure you select the corect one as you could delete your hardrive (Warning)
sudo dd bs=1M if=./Debian_stretch_next.img of=/dev/mmcblk0p1
then run sync to make sure all is compleet.
Now place the SD in Orange Pi and connect an ethernet cable from your pi to your network with dhcp enabled.
Power up the Orange Pi an look what is the last Ip alocated on router to a device.
Then connect your Admin pc or laptop to this ip using root
Looking ad the Debian dock here is also a good adiee https://docs.armbian.com/
ssh root@192.168.1.105 was myne but yours will be difrent.
Default password 1234
You will be forsed to change it and add a new user.
Create a new user balloon and give it a password
Then swiche to this user.
su - balloon
Give this user sudo access.
usermod -aG sudo balloon
We can now start configuring your Orange pi
run the following commands.
sudo apt-get update
sudo apt-get upgrade
if you know your wifi id and key the do the following to make yor Pi connect
nmtui-connect SSIDi or run this if you dont now your wifi name nmtui-connect
and enter your Key
#ok now we need to sink our time zone
dpkg-reconfigure tzdata
#we now need to enable the I2C bus and I used the following utility.
sudo armbian-config
select Hardware - toggle board low level functions: UART, I2C, SPI, …
Enable the I2C bus as we need it to controle the Local Ocelattor and Read output RF power level from A/D converter
Ok We now need to install all the dependinsy applications reqierd to controle the RTL recever and IQ modulator.
Lets isntall the SDR reseption applications for the RTL dongle and iarspy
Lets install the aplication that will create the CW for the Telemetry Beacon.
sudo apt-get install cw
cw
aplay -l
sudo aplay -l
sudo alsamixer
sudo armbianmonitor -m
nmtui
su - balloon
sudo rtl_test
#Ok we now need to install the csdr DSP signal prosessing libraeries.
#Lets first install the dependensy libraries
sudo apt-get install libfftw3-dev
#we need to install the compiler
sudo pt-get install cmake
cd
git clone https://github.com/simonyiszk/csdr.git
#Change directory into csdr
cd csdr
#Lets compile the library
make
#Install teh library
sudo make install
#Lets check if csdr is working
csdr
#you should see the following
csdr - a simple commandline tool for Software Defined Radio receiver DSP.
#usage:
#csdr function_name <function_param1> <function_param2> [optional_param] ...
#We now need to install rtl sdr libraeries and drivers
cd
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
sudo apt-get install libusb-1.0-0-dev
sudo apt-get install mplayer
#Ok now we need to connect a rtl usbdongle to the usb port and see if the rtl_test utility is working.
sudo rtl_test
#[sudo] password for balloon:
#Found 1 device(s):
#0: Realtek, RTL2838UHIDIR, SN: 00000001
#Using device 0: Generic RTL2832U OEM
#Found Rafael Micro R820T tuner
#Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
#[R82XX] PLL not locked!
#Sampling at 2048000 S/s.
#Info: This tool will continuously read from the device, and report if
#samples get lost. If you observe no further output, everything is fine.
#Reading samples in async mode...
#Allocating 15 zero-copy buffers
#lost at least 164 bytes
#OK lets test rtl and csdr together.
sudo rtl_sdr -s 2400000 -f python -c "print int($1*1e6)"
-g $GAIN - | csdr convert_u8_f | csdr fir_decimate_cc 10 0.05 HAMMING | csdr fmdemod_quadri_cf | csdr fractional_decimator_ff 5 | csdr deemphasis_wfm_ff 48000 50e-6 | csdr convert_f_i16 |sudo mplayer -cache 1024 -quiet -rawaudio samplesize=2:channels=1:rate=48000 -demuxer rawaudio -
#we now need to makesure we have the ALSA audio configeration setup so we can use the alsa loopback and the line in and out configured.
#we will be using alsa out to send the I and Q audio to the IQ modulator via alsa using aplay command.
#we will be using loopback 0 for CW and afsk audio libraries to csdr to modulate FM iq stream.
#Instsalling the xwindows and vnc.
sudo apt-get xorg lightdm xfce4 tango-icon-theme gnome-icon-theme
sudo apt-get install xorg lightdm xfce4 tango-icon-theme gnome-icon-theme
sudo apt-get install tightvncserver thunar-volman udisks2 gvfs
sudo apt-get install gnuradio
#Installing gnuradio
sudo apt-get install gnuradio gr-osmosdr
#Test gnuradiobr>
sudo gnuradio-companion
#we now need to install CW
cd
sudo apt-get install cw
cw -h
cw test 123
man cw
echo "zr6aic balloon experiment" | cw -w 25 -t 700
aplay -l
sudo aplay -l
speacker-test
speaker-test
cat /proc/asound/cards
pqd
cd /
ls
sudo vi /boot/armbianEnv.txt
sudo shutdown -r 0
aplay -l
sudo aplay -l
sudo arecord -l
echo "zr6aic balloon experiment" | cw -w 25 -t 700
sudo apt-get install gnuradio gr-osmosdr
sudo gnuradio-companion
#we now need to install the IQ Test applications
sudo apt-get install python-matplotlib
sudo apt-get install python-tk
git clone https://github.com/jgibbard/iqtool.git
cd iqtool/
chmod 755 *.py
./iqgen.py -h
rtl-tcp
csdr
cw
direwolf
i2c libraries for orange pi
Alsa for the IQ audio generation and reading
rtl-sdr
sox
Orange Pi IO pin manipulation libraries to control the chip select.
Python for household.
Crontab for scheduling
sudo apt-get update
sudo apt-get install i2c-tools
sudo apt-get install python-smbus
sudo apt-get install libi2c-dev
sudo i2cdetect -r 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1 using read byte commands.
I will probe address range 0x03-0x77.
Continue? [Y/n] Y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
The min and maximum the IQ modulator operating frequensy is 140 to 1500Mhz
How can you cotrole the frequency by using the following command.
/home/balloon/Balloon-Transponder/si570/si570 -s 145.855
if you want to read the frequensy
/home/balloon/Balloon-Transponder/si570/si570 -r
Please remeber you will need to Enable the si570 by disabeling Port PA06.=(0)
We now need to set the IQ signal biase volatge to about 2.5V by adjusting the Potensiometers and measuring the the volatge on pin 15 and 16 of the TRF3701.
Its easer to put yur ptobe on the potensiometer wiper pin.
Seting up the IQ audio signal level.
By using the application alsamixer you can sent the level to about 500mv(p-p) onI and Q for maximum modelation on cap c7 and c12.
Please remeber to enable the IQ modulator you need to disable Port PA07 = 0
Maybe I will be able to run gnu Radio.
we now will create IQ audio test files.
My Board is the Orange Pi Zero Plus2 H2
Debian Desktop Jessie<br>
https://mega.nz/#!kk8U2Zwa!xEO525RNtBxSR4jJGMrzbEXd-aMuhvV-vjRy_NdPHUE<br>
Unrar the image
unrar debian_desktop_jessie_zeroplus2_h3_V0_1 .rar
now write the img file to the SD card
Make sure you have the correct device otherwise you will delete your hard rive
dd if=sdimage.img of=/dev/sdc bs=4M
sync
Then unmounted the sd card and put it in the Orange PI to boot up.
I used a serial debug cable to connect to the Orange pi. (Available from Giga Technology)
This Project has just started and is not compleet yet.
sudo apt-get install gnuradio gr-osmosdr
sudo gnuradio-companion
#we now need to install the IQ Test applications
sudo apt-get install python-matplotlib
sudo apt-get install python-tk
git clone https://github.com/jgibbard/iqtool.git
cd iqtool/
chmod 755 *.py
./iqgen.py -h
This flow can take audio from 1khz Sine generator or alsa microphone selectable.
The output id FFT scope and spectral.
The output signal can be send to Alsa or file in wav format and is selectable
Application output
I will be using the luaradio libraeries to receve my telemetry commads from ground to controle the the Satellite.
Here is the link to the libraries https://github.com/vsergeev/luaradio
This application exsample will return jason object of receved data
rtlsdr_ax25.lua
$ ./luaradio examples/rtlsdr_ax25.lua 144.390e6
{"payload":"@030151z3845.28N/12035.52W_000/000g000t054r000p000P000h70b10136/ {UIV32N}\r","control":3,"addresses":[{"ssid":48,"callsign":"APU25N"},{"ssid":112,"callsign":"K6GER "},{"ssid":112,"callsign":"WARD "},{"ssid":115,"callsign":"N6ZX "},{"ssid":112,"callsign":"WIDE2 "}],"pid":240}
{"payload":"2-1l 5k/'\"3r}GTARC 146.805 & 406.600 both (-) PL 100|)2%n']|!w?;!|3","control":3,"addresses":[{"ssid":48,"callsign":"S8QXXW"},{"ssid":57,"callsign":"KJ6PCW"},{"ssid":115,"callsign":"N6ZX "},{"ssid":112,"callsign":"WIDE1 "},{"ssid":49,"callsign":"WIDE2 "}],"pid":240}<br> {"payload":"
2-1l 5k/'"3r}GTARC 146.805 & 406.600 both (-) PL 100|)2%n']|!w?;!|3","control":3,"addresses":[{"ssid":48,"callsign":"S8QXXW"},{"ssid":57,"callsign":"KJ6PCW"},{"ssid":115,"callsign":"N6ZX "},{"ssid":112,"callsign":"WIDE1 "},{"ssid":112,"callsign":"BKELEY"},{"ssid":112,"callsign":"WIDE2 "}],"pid":240}
{"payload":"@094656h3754.16NI12216.92W&(Time 0:00:00)PHG3340/Kensington, CA (I-GATE) */A=000404","control":3,"addresses":[{"ssid":112,"callsign":"APWW10"},{"ssid":53,"callsign":"KC6SSM"},{"ssid":115,"callsign":"N6ZX "},{"ssid":112,"callsign":"WIDE1 "},{"ssid":49,"callsign":"WIDE2 "}],"pid":240}
{"payload":"!3956.16N/12138.86W# 13.6V 62F ","control":3,"addresses":[{"ssid":112,"callsign":"APOT30"},{"ssid":115,"callsign":"W6SCR "},{"ssid":115,"callsign":"N6ZX "},{"ssid":112,"callsign":"WIDE1 "}],"pid":240}
{"payload":"1N8l#K>/
"4{}443.575MHz T110 +500_%\r","control":3,"addresses":[{"ssid":48,"callsign":"SWRSYY"},{"ssid":121,"callsign":"KE6STH"},{"ssid":115,"callsign":"N6ZX "},{"ssid":112,"callsign":"WIDE1 "},{"ssid":49,"callsign":"WIDE2 "}],"pid":240}
{"payload":"1N8l#K>/
"4{}443.575MHz T110 +500_%\r","control":3,"addresses":[{"ssid":48,"callsign":"SWRSYY"},{"ssid":121,"callsign":"KE6STH"},{"ssid":115,"callsign":"N6ZX "},{"ssid":112,"callsign":"WIDE1 "},{"ssid":112,"callsign":"BKELEY"},{"ssid":112,"callsign":"WIDE2 "}],"pid":240}
{"payload":"@270947z3715.26N/12153.30W#Digi & Igate / ron@k6rpt.com","control":3,"addresses":[{"ssid":48,"callsign":"APMI06"},{"ssid":48,"callsign":"K6RPT "},{"ssid":115,"callsign":"N6ZX "},{"ssid":49,"callsign":"WIDE2 "}],"pid":240}
{"payload":"@270947z3715.26N/12153.30W#Digi & Igate / ron@k6rpt.com","control":3,"addresses":[{"ssid":48,"callsign":"APMI06"},{"ssid":48,"callsign":"K6RPT "},{"ssid":115,"callsign":"N6ZX "},{"ssid":112,"callsign":"BKELEY"},{"ssid":112,"callsign":"WIDE2 "}],"pid":240}
{"payload":"!4001.07N/12122.89W# 12.8V 44F K6FHL Highlakes Fillin W1","control":3,"addresses":[{"ssid":112,"callsign":"APOT30"},{"ssid":112,"callsign":"HILAKE"},{"ssid":115,"callsign":"N6ZX "},{"ssid":112,"callsign":"WIDE2 "}],"pid":240}
...