Showing posts with label CW. Show all posts
Showing posts with label CW. Show all posts

Thursday, April 19, 2018

Setting up my Raspberry Pi as an BACAR Balloon telemetry system using GPSD,CW,AFSK,RPITX and Direwolf

Setting up my Raspberry Pi as an Balloon telemetry system using GPSD, CW, rpitx, AFSK and Direwolf.

 
Bacar Balloon

I wanted to take part in a local BACAR Balloon experiment and wanted to send my GPS position via the APRS network and also send a CW beacon every 7 minutes. I got an opportunity to add my payload to a school project.



Raspberry TX Hat for 2m Band

So I decided to use the the 2m transmitting board form Giga technology plug it on the raspberry pi. this should give me about 32.7mW (15.1dBm)
Power is a bit low but its a good for now.

Balloon Telemetry System


BACAR launch details is available here.
http://secundaweather.co.za/blog/?p=2012

Learnings
  1. Power to Low (Working on model 2 with a power output of 100 to 900mw output.
  2. Need to record everything that hapens in Local log so you can recover more information that you would send with Telemetry.
 Hardware.
  1. Raspberry Pi 3
  2. Giga Technology TX PI HAT for 2M
  3. RTL dongle for RX
  4. Giga Technology USB GPS unit.
  5. Giga Technology Battery and Powersupply Boards.
  6. Temperature sensor
  7. Optional USB Camera for CCTV.
High Level Hardware configuration

Software.
  1. CW (CW tone generation for Beacon transmission)
  2. Direwolf. (AX 25 telemetry generation for Temperature and on-board sensors  board 1200 AFSK)
  3. rtl_sdr (SDR receiver software for incoming commands controlling transponder)
  4. rpitx (RF transmitter details)
  5. ALSA loopback (this is needed to send audio between direwolf cw and rpitx)
  6. gpsd GPS positioning server read by direwolf APRS transmission
  7. Kal (rtl dongle frequensy calibaration details)
  8. csdr DSP libraries  that can be used for SDR.
  9. Some shell scripts taing this all together. Download from github https://github.com/antonjan/Raspberry_Telemetry

Software Block Diagram



Lets install the software for the system.

sudo apt-get install cw
sudo apt-get install direwolf
sudo apt-get install rtl-sdr
sudo apt-get install gpsd
sudo apt-get install alsa-utils
sudo modprobe snd-aloop
sudo apt-get instal python
Install the csdir sdr libraries doing the following.

git clone https://github.com/simonyiszk/csdr
cd csdr
make 
sudo make install
Get the direwolf example configurations
git clone https://github.com/wb2osz/direwolf
Lets install aprs utility.
got home directory
cd
git clone https://github.com/casebeer/afsk.git
cd afsk

sudo pip install afsk
sudo pip install --allow-external PyAudio --allow-unverified PyAudio PyAudio
Lets test aprs util
aprs
You should see the following
usage: aprs [-h] -c CALLSIGN [--destination DESTINATION] [-d DIGIPEATERS]
            [-o OUTPUT] [-v]
            INFO
aprs: error: too few arguments


Lets check if alsa loop installed

sudo arecord -l
you should see this

card 2: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 2: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7



You cal also check it in the sound volume control

Right click on the Sound icon and select setting and you should see the following

Input Tab should have the loopback sound card


Output Sound Card should have loopback


Lets test CW

cw -h
You should see the help

Lets test gpsd

gpsd -h
You should see the gpsd help
Install the gps on USB port.

We now need to find out what is the usb port for your GPS device so we can run the following command.  sudo gpsd -D 5 -N -n /dev/ttyACM0
We assume here that your usb device is  /dev/ttyACM0
Run this command and then plug in and out your gps on usb port.
tail -f /var/log/syslog | grep ttyAC


You will the see something like this.

/dev/ttyACM0
Then run the command sudo gpsd -D 5 -N -n /dev/ttyACM0 replacing it with your GPS usb port.

gpsd:PROG: Changed mask: {ONLINE|TIME|LATLON|ALTITUDE|STATUS|MODE|PACKET|PPSTIME} with reliable cycle detection
gpsd:PROG: GPGSA sets mode 3
gpsd:CLIENT: => client(0): $GPGSA,A,3,08,27,16,09,,,,,,,,,4.12,1.97,3.61*0D\x0d\x0a
gpsd:PROG: Changed mask: {ONLINE|MODE|DOP|PACKET|USED} with reliable cycle detection
gpsd:PROG: Partial satellite data (1 of 4).
gpsd:CLIENT: => client(0): $GPGSV,4,1,14,01,64,012,08,03,05,014,,04,06,121,,07,69,274,18*72\x0d\x0a
gpsd:PROG: Partial satellite data (2 of 4).
gpsd:CLIENT: => client(0): $GPGSV,4,2,14,08,43,151,28,09,11,321,22,11,88,165,17,16,15,081,21*7E\x0d\x0a
gpsd:PROG: Partial satellite data (3 of 4).
gpsd:CLIENT: => client(0): $GPGSV,4,3,14,17,06,290,22,22,14,033,16,23,04,348,,27,14,129,08*7A\x0d\x0a
gpsd:CLIENT: => client(0): $GPGSV,4,4,14,28,16,230,11,30,40,230,21*75\x0d\x0a
gpsd:PROG: Changed mask: {ONLINE|DOP|SATELLITE|PACKET} with reliable cycle detection

There is also another utility that could give you the status of the gpsd service.

Ok lets make our gpsd configuration permanent.
Edit the following configuration file using your favorite text editor.
and change the usb interface to what was detected above

sudo Vi /etc/default/gpsd

# /etc/default/gpsd
START_DAEMON="true" 
GPSD_OPTIONS="-n" 
DEVICES="/dev/ttyAMA0
USBAUTO="false" 
GPSD_SOCKET="/var/run/gpsd.sock"

Lets restart the gpsd service

sudo systemctl stop gpsd.socket

sudo systemctl start gpsd.socket
You can now test if it works fine with the following command
sudo gpsmon
You should see the following if all is ok with gps connected.

This is the GPS details as read by GPSD














Lets test direwolf



direwolf -h
You should see the direwolf help screen in white inverse.


Ok lets check rtl_sdr. (the SDR receiving software)
Plug-in your rtl dongle and then run the following command.

sudo rtl_test

You should see some test results and gain parameters supported by your device.
Ok


Connect your ds18b20 temperature sensor.
One of the coolest things about OneWire and DS18B20 temperature sensors is that each sensor has its own embedded address so you can have many of them on 1 data wire. 




Configure the raspberry pi to read the temperature.
Edit the following config file
sudo vi /boot/config.txt


Add the following at the bottom of the file
dtoverlay=w1-gpio
Then reboot the pi
sudo reboot
We now need to load the device drivers for the temperature sensor.
sudo modprobe w1-gpio 
sudo modprobe w1-therm

Now check if the device was loaded

ls /sys/bus/w1/devices


you should see a directory like this below
28-000007602ffa
Go into this directory replacing the part in yellow with your directory
cd /sys/bus/w1/devices/28-000007602ffa
Now run the following command to get the temperature.
w1_slaveYou should see something lie this.
bd 01 4b 46 7f ff 03 10 ff : crc=ff YES
bd 01 4b 46 7f ff 03 10 ff t=27812

Ok its working.
We can now use a python script to read the readings
get the python code from github using the following command
git clone https://github.com/pimylifeup/temperature_sensor.git
goto the new directory that was created. temperature_sensor
cd temperature_sensor

Give the application executable writes by using the following command 
chmod 776  temperature_sensor_code.py

Then run the command
./temperature_sensor_code.py
You should see the temperature readings scrawling on the screen.
Ok we can stop it with CTRL C.
Ok now all seems to be working for the temperature readings



We now need to test the Radio transmitter.
Please note you need to have a Amateur Radio license to do this as you will be transmitting on the Amateur allocated frequencies.

Install the Raspberry Pi hat on the Raspberry Pi and then test the transmitter with the following commands.
Clone the following examples in your home directory from github
git clone https://github.com/antonjan/Raspberry_Telemetry.git

cd to the Raspberry_Telemetry directory.
Connect a 2m external antenna to the raspberry Pi Hat SMA connector.
run the following command
sudo ./Start_Carier_check.sh
Now check for a rf carrier on the following frequency
U can use a SDR dongle or HT (Baofeng) or spectrum analyzer if you have one.
The frequency can be changed by editing this file and changing the yellow value
vi ./Start_Carier_check.sh
sudo rpitx -m VFO -f 145300 -c1
Now that we have the transmitter tested we can start testing the telemetry.




Lets start doing some real time applications.

Now lets configure the APRS and CW telemetry to send sensor data and call sign. I suggest using 70cm up-link and 2M down-link not to overdrive the receiver front end. ( There is a diplex available from Giga technology)  
2m and 70cm Diplexer

  1. Sending APRS telemetry every minute with GPS and temperature readings.
  2. Sending a CW (morse code) with calsign and temperature reading every two minutes.
  3. Lets test a command to control the system. Replying with APRS got command.
  4. I wanted to send telemetry every minute but decided to make it a prime number just in case there is two telemetry transmissions disturbing each other so this would be helping to resolve this problem. (67 seconds)

Sending APRS telemetry every minute with GPS and temperature readings.


Download the following shell scripts
1) wget https://raw.githubusercontent.com/antonjan/Raspberry_Telemetry/master/sh/cron_aprs_gps_position.sh

2) wget https://raw.githubusercontent.com/antonjan/Raspberry_Telemetry/master/sh/crontab_bacar_cw.sh
3) wget https://raw.githubusercontent.com/antonjan/Raspberry_Telemetry/master/sh/crontab_bacar_aprs.sh
4) wget https://raw.githubusercontent.com/antonjan/Raspberry_Telemetry/master/telem-balloon_2.conf

Lets edit the file for your path.
vi cron_aprs_gps_position.sh
Fix the yellow with path to your direwolf file.
#load looback and start gpsd service for gps data.
sudo /usr/sbin/gpsd -D 5 -N -n /dev/ttyACM0 &
sleep 5
sudo /sbin/modprobe snd-aloop
sleep 2

#We now will write out the audio from loopback from direwolf to a wav file
sudo timeout 10s arecord -c1 -t wav -r 48000  --vumeter=mono -D hw:Loopback,1,0 -fS16_LE /home/pi/sh/direwalf.wav &
#We now will create a APRS audio withS position and send it to loopback device
sudo timeout 9s direwolf -c /home/pi/Downloads/direwolf/telemetry-toolkit/telem-balloon_2.conf

# we now wait for short wile
sleep 1

#we now convert the wav file in a format to transmit
sudo sox -v 0.3 -S /home/pi/sh/direwalf.wav /home/pi/sh/direwalf_sox.wav  rate -L -s 48000

# we now wait for short wile  
sleep 1
#we now convert the APRS audio file to a fm file for transmission.
sudo /home/pi/Downloads/rpitx_new/rpitx/pifm  /home/pi/sh/direwalf_sox.wav /home/pi/sh/direwalf_sox.wav.ft

# we now wait for short wile
sleep 1
#We now transmit the the APRS gps postion on the frequensy 144,801Mhz
sudo /home/pi/Downloads/rpitx_new/rpitx/rpitx -i /home/pi/sh/direwalf_sox.wav.ft -m RF -f 144801 -c1
Save the file

Lets send our first APRS GPS position.
Change the callsign in the  telem-baloon_2.conf to your callsign
Check that the paths in the telem-baloon_2.conf  and cron_aprs_gps_position.sh is correct in relation to the directory you check the code out.
run the script sudo ./cron_aprs_gps_position.sh and you should now send a gps position aprs message. If you change the frequency to your local packet  (APRS in SA its 144.8Mhz)frequency you should see the Balloon Icon on the APRS server.  https://aprs.fi/#!lat=60.169998&lng=24.94
You mite want to calibrate the TX frequency by changing the frequency in the script.
You can now add this script in a cron to send every 1minute ...

Here is an exsample just to send a message
sudo aprs --callsign NOCALL --output - "30mw Belloon Beacon de NOCALL" | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo rpitx -m RF -i - -f 144325 -c1

Ok lets now send some CW as a beacon.

Lets create a text file with the cw message we want to send.
vi cw_text 
enter the following example

                               32mw balloon experiment de NOCALSIGN
save the file (including the space in front)

we now will be using a different script crontab_bacar_cw.sh
edit this script.
vi crontab_bacar_cw.sh
#This script will send a cw at 10 words per minute 
#Start GPS and alsa loopback
sudo /usr/sbin/gpsd -D 5 -N -n /dev/ttyACM0 &
sleep 5
sudo /sbin/modprobe snd-aloop

#now setup loopback to write to file


sudo /usr/bin/timeout 11s /usr/bin/arecord -c1 -t wav -r 48000  --vumeter=mono -D hw:Loopback,1,0 -fS16_LE /home/pi/sh/bacar_cw.wav &
# now send cw to loopback with cw_text.txt
sudo /usr/bin/timeout 10s /usr/bin/cw -s a -d hw:Loopback,1,0 -t 1000 -v 50 -f /home/pi/sh/cw_text.txt
sleep 1
#Now convert the file to format that can be converted to fm signal.
sudo /usr/bin/sox -v 0.9 -S /home/pi/sh/bacar_cw.wav /home/pi/sh/bacar_cw_sox.wav  rate -L -s 48000
sleep 1
#now create transmission file for rpitx
sudo /home/pi/Downloads/rpitx_new/rpitx/pifm  /home/pi/sh/bacar_cw_sox.wav /home/pi/sh/bacar_cw_sox.wav.ft
sleep 1
#now send your CW (morse code on 144.328 Mhz) Change frequency as requerd
sudo /home/pi/Downloads/rpitx_new/rpitx/rpitx -i /home/pi/sh/bacar_cw_sox.wav.ft -m RF -f 144328 -c1

Save the file and run and test.
sudo ./crontab_bacar_cw.sh

Now listen on the tx frequency and run the script and you should here the message "32mw balloon experiment de YOURCALLSIGN"

Monday, February 22, 2016

Geostationary AMSAT Satellite (Phase 4) Spacecraft Covering the whole of Africa and Europe. (P4B) Es'hail-2

I think this Satellite will open up one of the most exiting telecommunication capabilities for Africa and Europe.(P4A/B) Es'hail-2 OS-100

Coverage map

Phase 4 AMSAT-DL planed

Qatar Satellite Company’s second satellite, Es’hailSat-2 (OS-100), will be placed in a geostationary orbit by a Space-X Falcon-9 rocket in November 2018. It will carry an AMSAT linear transponder as a secondary payload, giving Radio Amateurs access to a geostationary satellite for the first time.

Es’hailSat-2 will be “parked” 35 786 km above the equator at 25.5°East, nearly due North from Pretoria and Johannesburg (which are at 28°E).

Planned Frequency.

This satellite will have two linear transponders. (250 Khz and 8Mhz wide)
Narrow band transponder:
Up-links: 2400.050 - 2400.300 MHz modes SSB and CW. 5 Watt up link power,
Down links: 10489.550 - 10489.800 center 10 489.675 MHz. Vertical polarization.

Wide band transponder:
Up-links: 2401.500 - 2409.500 MHz
Down-links: 10491.000 -10499.000 MHz 

It will be so nice to have fixed antennas mounted on mast pointing to the satellite having continuous communication to any where in Africa and Europe. HI ;-) ;-)

Will have to start looking for some equipment and antennas for this one.

Link to Live websdr http://zr6aic.giga.co.za:8902

Live SDR of Es'hail 2 OS-100

Here is a list of Equipment that should work for the P4A satellite.

X-Band 10 GHz Down link:



HailSat-2 Down link configuration.

Please note Some LNB's is using a 22khz tone to switch Polarization.

Only the Generic LNB work with voltage switching.

Click to enlarge Satellite Systems



Here is how I inject my power. The black typed lead has an short peas of coaxle cable with an Inductor on Center peas going to a 13V Power supply.
Power DC blocker and Power injection

Top coax go to LNB
Left Bottom go to SDR and has build in Cap to isolate dc from SDR
Right Bottom has inductor on center going to 13V Power supply
Power Injection and DC isolation to SDR

I have change the LNB  to new one here is the LO details


LO 9.75 for 13V
I  had to do some calculations

Satellite frequency  For now is 10.706 - 9.75 = 0.956Mhz


For Narrow 250Khz Band Polarization is 0 deg V
Add caption 0 Deg V Polarization
Here is my 2.4Ghz Transmitting Antenna
2.4Ghz Tx Grid



Dish 60deg Elevation about 0 Deg Azimuth




2.4Ghz Transmitting Grid
View from back of two Antennas
Grid Mobile configuration

15db Grid antenna. just made it into satellite with ssb. CW was fine.


LNB (14 - 18V Polarization switching) 10.7Ghz

Generic one Port LNB Available from Giga Technology
Video of my first test on Eshail-2 using  Hackrf and preamp with and 2W PA and 2.4Ghz 15db Grid Antenna


Link to Live websdr http://zr6aic.giga.co.za:8902/
Websdr http://zr6aic.giga.co.za:8902


I think the signal must look lie this



Linear transponder 2400.050 - 2400.300 MHz Up-link 10489.550 - 10489.800 MHz Down link
Wide band digital transponder 2401.500 - 2409.500 MHz Up-link 10491.000 - 10499.000 MHz Down link

My RTL dongle needs to listen on the following frequency

LO with 12V injection = lo - 10.489500Ghz + 1M to get center of bottom of the Spectrum on websdr
=9.75Ghz - 10.489500Ghz + 1Mhz = 7395Mhz (this is still debatable )
  • 89 cm dishes in rainy areas at EOC like Brazil or Thailand.
  • 60 cm around coverage peak,
  • 75 cm dishes at peak -2dB.
Narrow Band : linear vertical polarization.
Wide Band: linear horizontal polarization.

S-Band 2.4 GHz Narrow Band-Uplink:
    • Narrow band modes like SSB, CW
    • 5W nominal Uplink power (22.5 dBi antenna gain, 75cm dish)
    • RHCP polarization

S-Band 2.4 GHz Wide Band-Uplink (DATV):

    • Wide band modes, DVB-S2
    • Peak EIRP of 53 dBW (2.4m dish and 100W) required
    • RHCP polarization


Azimuth and Elevation details for Johannesburg South Africa.
(For now the Elevation is 59.17 and Azimuth 350.43)

Azimuth and Elevation from Johannesburg
 Setting up elevation the simple way.


Paper with a piece of string at back of Dish

 Here is the Paper details


Gpredict tracking details.

Catalog number of Satellite is 43700

It seems that the satellite is still rotating around the equator

With the new TLE the Satellite has stabilized. at 59.17 Elevation and 350.43 Azimuth

Elevation is now 59.17 and Azimuth 350.43

2.4GHZ Transmitter.


The plan is to use my LimeSDR or hackrf for transmitter with low pass filter and a Power AMP. Details to follow

2.4Ghz Transmitter Diagram

Gnuradio Block diagram for Hackrf SSB


SSB Transmitter for Eshail2

Antenna setup

15db 2.4Ghz wifi Grid Antenna
I would recommend the 24db Grid or rather use 8 watt amp in 15db Grid.
Here is my presentation at the SARL on QO-100

My new transceiver setup.

  • 1) Raspberry Pi 3B +
  • Hackrf.
  • MSI SDR dongle 10Mhz Bandwith 12bit. RX.
  • 8W RF Amp.
  • 40db Pre-Amp
My Eshail-2 QO-100 transceiver setup.
Software on Raspberry Pi
Connect remotely via Wifi



Now start testing my Horizontal DBV-S2 Reception.

Video of DBV-S2 reception.



DBV-S2 decoding using leansdr (leandbv)



I will add more details soon.


https://docs.google.com/presentation/d/195l60I4IvKEl59Dl87AVFxjkrKzAcY5ZyUXNKXBXBcs/edit?usp=sharing


You can generate your own elevation and azimuth here http://www.satlex.us/en/azel_calc-params.html?satlo=&user_satlo=25.5&user_satlo_dir=E&location=-26.16%2C28.03&la=-26.16&lo=28.03&country_code=za&diam_w=75&diam_h=80

 REF:
Information http://amsat-uk.org/2015/07/03/phase-4-spacecraft-frequencies/
and here http://www.itu.int/en/ITU-R/space/workshops/2015-prague-small-sat/Presentations/Eshail-2.pdf
Spectrum Analizer for RTL https://github.com/pavels/spektrum/releases

Frequency list  http://frequencyplansatellites.altervista.org/Beacon-Telemetry_Europe-Africa-MiddleEast.html

Azimuth direction finding  http://www.satsig.net/ssazelm.htm



Friday, September 26, 2014

log PSAT cubesat 25 September 18:20GMT (APRS)

ParkinsonSAT (Psat) cubesat 25 September 18:20GMT

CW message from PSAT Cubesat.  "PSAT EVPT32DC 7.23V" , "PSAT EXPT32DC 7.24V 0DBM" , "PSAT EXPT32DC 7.25V 0DBM"




Psat is the next APRS satellite design from students at the US Naval Academy. Although we have built 5 previous APRS satellites, only the original PCSAT-1 is still in orbit because all the others were deployed from the Shuttle and at the low altitude, have re-entered. PCSAT-1 (W3ADO-1) is partially operational when ever sun angles are optimum a few times a day; and you can see its live downlink on http://pcsat.aprs.org.


APRS herd by PCSAT
more info available at http://www.aprs.org/psat.html

Thursday, September 25, 2014

Log of POPSAT-HIP1 Cubsat CW beacon on webSDR http://zr6aic.giga.co.za:8902

Log of POPSAT-HIP1 Cubsat CW beacon on webSDR http://zr6aic.giga.co.za:8902 CW Message  POPSAT EXPT25DC 7.74V ?0C


Here is the recording of the POPSAT-HIP1 Cubesat on 24 September 2014 at 9:26 GMT.

This recording was done on frequency 437,395Mhz Modulation set to FM CW



To access the webSDR click here http://zr6aic.giga.co.za:8901

Sunday, March 2, 2014

Satellite Log of MOVE1 CW (2 March 2014 08:02 GMT)

Satellite Log of MOVE1 CW (2 March 2014 08:02 GMT)

MOVE1 Satellite
Launched on 21/11/2013

Here is a Satellite recording of the CW Beacon.


You can monitor this satellite on the webSDR http://zr6aic.giga.co.za:8902
  • CW beacon 145.970 MHz (“MOVE1″)
  • AX.25 beacon 1k2 Cosine-BPSK
  • TLE details click here to track the sat (Catalog number 39439U)
More details is available from http://move2space.de/?page_id=910&lang=en

 



Wednesday, February 5, 2014

New Amateur radio Cubesats will be launched from the International Space Station on Thursday, February 6, 2014.

New Amateur radio Cubesats will be launched from the International Space Station on Thursday, 6 February 2014. ( 18:07 UTC) new date (February 28 at 07:30 UTC)

1) LituanicaSat-1 (

  • Onboard VGA camera
  • GPS receiver.
  • UHF CW beacon 100mW, 9k6 AX25 FSK telemetry TX 2 watts.
  • FM Mode V/U transponder 150mW Voice Repeater.
  • 145.950 Mhz Uplink FM transponder.
  • 435.180 MHz Downlink FM.
  • 145.850 MHz AX25 Uplink.
  • 437.550 MHz AX25 Downlink.
  • 437.275 MHz CW Beacon .
  • https://www.facebook.com/Lituanicasat1
2) LitSat-1


  • Beacon/TLM down link 145.850 MHz
  • Beacon RF packets are AX.25 UI frames https://www.tapr.org/pub_ax25.html Main parameters of the beacon frames are: TX baud rate 9600 bps (G3RUH), repetition period ~4.5s, beacon duration ~0.5 s, source call address – TNC, destination call address – LY1LS.
Linear Transponder details
  • Uplink 435.150 MHz LSB 
  • Downlink  145.950 MHz USB 
  • Bandwidth ±15 kHz from centre
  • CW beacon   435.1375 MHz (LY1LS/B)
  • Normal mode – transponder, beacon OFF
  • 437.550 MHz AX25 Uplink.
  • 145.850 MHz MHz AX25 Downlink.
  • LitSat-1 on Facebook https://www.facebook.com/palydovas

3) UAPSAT



4) ArduSat-2



5) UKube-1
The Ukube-1 Satellite was lunched on 8 July at 18:32:42 UTC. kep details at http://www.dk3wn.info/p/?p=46812UKube-1 CW was confirmed over Europe ;-)


UKube-1 communications subsystem:
• Telemetry downlink 145.840 MHz
• FUNcube subsystem beacon 145.915 MHz
• 400 mW inverting linear transponder for SSB and CW
- 435.080 -435.060 MHz Uplink
- 145.930 -145.950 MHz Downlink
• 2401.0 MHz S Band Downlink
• 437.425-437.525 MHz UKSEDS myPocketQub Downlink



Sunday, November 10, 2013

TISAT-1 Satellite recording log 10 Oct 2013 09 04 GMT

TISAT-1 Satellite recording log 10 Oct 2013 09 04 GMT


more details is available here https://directory.eoportal.org/web/eoportal/satellite-missions/t/tisat-1
and here http://www.spacelab.dti.supsi.ch/tiSat1.html


  • Downlink:  beacon frequency is 437.305MHz
  • Power: 400mW
  • Callsign: HB9DE.
    TIsat-1 periodically identifies itself by its codename TISAT radiated as Morse code (CW) at 19WPM, along with basic telemetry.

CW beacon recording CW Beacon "HI HI HI TISAT R" 
(The R at the end indicate the temperature)




Recording was done on webSDR http://zr6aic.giga.co.za:8902 on 10 October 2013 at 09:04 GMT

Thursday, May 23, 2013

NEE-01 PEGASUS Cubesat

NEE-01 PEGASUS Cubesat


Height: 650km 
Mass: 1266.6 g 
Frequency: Central: 910MHz 
Bandwidth: 25Mhz 
EIRP: 34.1dBm
Carrier: FM
Audio Modulation: AMTV / CW (3 carriers) / SSTV (various modes) 








Tuesday, May 7, 2013

How to do AFSK, PSK DTMF demodulation on Linux / Raspberry Pi using your RTL dongle

How to do AX25, AFSK, DTMF, POCSAG and PSK demodulation on Linux.

(RTL 2832U  receiver) Where can I get a RTL dongle http://www.giga.co.za


RTL 2832U


Using the programs multimon, sox, mkfifo, rtl_fm, git and RTL 2832U receiver you can demodulate the following modulations.

AX.25 (https://github.com/EliasOenal/multimon-ng/blob/master/README.md)
  • 1200 Baud AFSK
  • 2400 Baud AFSK (2 variants)
  • 4800 Baud HAPN
  • 9600 Baud FSK (G3RUH)
POCSAG
  • 512 Baud
  • 1200 Baud
  • 2400 Baud
Miscellaneous
  • DTMF
  • ZVEI
  • SCOPE

1) Download the following Library by using git
git clone https://github.com/EliasOenal/multimon-ng.git

cd to the multimon directory
cd multimon-ng
run the command make
mkdir build
cd build
qmake ../multimon-ng.pro
make
sudo make install

If you want to get this working on Raspberry pi you need to use the following

qmake --version qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory 
alias qmake="$(find /usr -name qmake | grep qt5)" 
qmake --version QMake version 3.0 Using Qt version 5.3.2 in /usr/lib/x86_64-linux-gnu


Command line options. (here is the help file) multimon-ng [options] [input_file]

sudo sudo multimon-ng -h
multimon-ng  (C) 1996/1997 by Tom Sailer HB9JNX/AE4WA
             (C) 2012-2014 by Elias Oenal
available demodulators: POCSAG512 POCSAG1200 POCSAG2400 FLEX EAS UFSK1200 CLIPFSK FMSFSK AFSK1200 AFSK2400 AFSK2400_2 AFSK2400_3 HAPN4800 FSK9600 DTMF ZVEI1 ZVEI2 ZVEI3 DZVEI PZVEI EEA EIA CCIR MORSE_CW DUMPCSV SCOPE

Usage: multimon-ng [file] [file] [file] ...
  If no [file] is given, input will be read from your default sound
  hardware. A filename of "-" denotes standard input.
  -t <type>  : Input file type (any other type than raw requires sox)
  -a <demod> : Add demodulator
  -s <demod> : Subtract demodulator
  -c         : Remove all demodulators (must be added with -a <demod>)
  -q         : Quiet
  -v <level> : Level of verbosity (e.g. '-v 3')
               For POCSAG and MORSE_CW '-v1' prints decoding statistics.
  -h         : This help
  -A         : APRS mode (TNC2 text output)
  -m         : Mute SoX warnings
  -r         : Call SoX in repeatable mode (e.g. fixed random seed for dithering)
  -n         : Don't flush stdout, increases performance.
  -e         : POCSAG: Hide empty messages.
  -u         : POCSAG: Heuristically prune unlikely decodes.
  -i         : POCSAG: Inverts the input samples. Try this if decoding fails.
  -p         : POCSAG: Show partially received messages.
  -f <mode>  : POCSAG: Disables auto-detection and forces decoding of data as <mode>
                       (<mode> can be 'numeric', 'alpha' and 'skyper')
  -b <level> : POCSAG: BCH bit error correction level. Set 0 to disable, default is 2.
                       Lower levels increase performance and lower false positives.
  -o         : CW: Set threshold for dit detection (default: 500)
  -d         : CW: Dit length in ms (default: 50)
  -g         : CW: Gap length in ms (default: 50)
  -x         : CW: Disable auto threshold detection
  -y         : CW: Disable auto timing detection
   Raw input requires one channel, 16 bit, signed integer (platform-native)
   samples at the demodulator's input sampling rate, which is
   usually 22050 Hz. Raw input is assumed and required if piped input is used.


how to decode a wav file

sudo ./multimon-ng -s SCOPE -t wav /tmp/message.wav (to read wav file) How to convert a wav file to row file using sox sudo sox foo.wav foo.raw
Now we want to take the received signal from rtl_fm and pyp it to the multimon
Create a fifo Pyp 
sudo mkfifo soundfifo.raw 
ls -al 
prw-r--r--  1 anton anton     0 2013-05-07 22:35 soundfifo.raw

You will see its not a normal file its got a prw in front of the file definition when you list the files.
Lets get multimon to start receiving audio from soundfifo.raw pyp.
sudo multimon-ng -a AFSK1200 -a SCOPE -t raw soundfifo.raw
 
And now send the audio from rtl_fm to the soundfifo.raw
Decoding live data from rtl receiver. (Tuning receiver to 144.800 Mhz packet frequency and demodulate that to 22.05kHz audio)
 sudo rtl_fm -f 144800000 -s 22050 ./soundfifo.raw (read my section on rtl if you want to install rtl utilities)


You should then see the scope screen below.
 

Multimon Scope Display
And your afsk1200 decoding will start in console and the scope display will show your audio.
Here is an example of hot to decode directly from rtl dongle sudo rtl_fm -d0 -f 144800000 -s 22050 - | multimon-ng -a AFSK1200 -t raw /dev/stdin

Hope this help...
REF: www.baycom.org/~tom/ham/linux/multimon.html, http://www.youtube.com/watch?v=GBmli8Vflig and http://www.ultratechie.com/2012/10/pigate/
https://github.com/EliasOenal/multimon-ng/blob/master/README.md