Giter Site home page Giter Site logo

antonjan / balloon-transponder Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 1.0 2.38 MB

This repository will have the Software for the Orange PI SDR transponder.

License: GNU General Public License v3.0

Shell 6.82% C 93.18%
transponder orangepi-zero rtl-sdr rtlsdr si570 vhf uhf linear i2c sdr-transmitter-board

balloon-transponder's Introduction

Balloon-Transponder

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

Project Status

This project has just started 15 June 2018.
The code is not compleet yet but hardware board is compleet.

Block diagram of SDR transponder and OBC

Alt text

Flow Diagram

Alt text

Software instelation prosedure for Orange Pi Zero

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 [email protected] 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.

We now need to download the operating system

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)

Status

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

Gnu Radio test flow

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
Alt text
Application output
Alt text
Alt text

AFSK RTL command reception.

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 / [email protected]","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 / [email protected]","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}
...

ref: https://github.com/MLAB-project/si570

balloon-transponder's People

Contributors

antonjan avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

frontcover

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.