31 December 2013

fcsched

I've just cobbled together a rudimentary scheduler for triggering recording/post-processing of FUNcube-1 (AO-73) telemetry with the fcdec utilities.

It uses a predict server to provide pass predictions, is written in python, has a GPLV3 licence and is available on github here.  It is only a few hours old, and hasn't seen many passes, but it may well work :)


I found details of the predict server's command set here.

Using fcdec on Ubuntu 13.10

After some time away from home over Xmas, I decided to have a go at using Alex's fcdec telemetry decoder for the Funcube satellite.

The source is available on github here.  It is also necessary to get the source for fcdctl from here. I ran the makefiles in the decoder, fcdctl and filter directories. I then edited tools/submit.sh to reflect my credentials stored with the online data warehouse. I then edited the WORK_DIR and PROG_DIR macros in tools/fcd_sequencer.sh to reflect the paths in my home directory.

I then created links in my ~/bin dir to the binaries I'd just built for decode, fcdctl and filter, and also for the tools/submit.sh and tools/fcd_sequencer.sh scripts.

I discovered that I also needed to install the libsox-fmt-pulse package in order for pulse to work properly with sox and also needed to ensure that the fcd-pro was set to the "Analogue Stereo Input" profile in the configuration tab of pavucontrol.

This let me run fcd_sequencer which then waited for a command on tcp port 12345 to start collecting data.  This could be done using telnet.  I used telnet to connect to localhost on port 12345 and then submitted the command "start +600" followed by hitting the enter key and then pressing Ctrl+] then entered "quit" to exit telnet and close the tcp connection.  At that point, the fcd_sequencer script started to collect data.

There was a pass at 1108z this morning (31st Dec 2013) and it seemed that I was able to decode 40 telemetry packets.  This was with my original fcd-pro (not the pro-plus, for some reason I've not been able to get fcdctl to work with the pro-plus yet) and using my 2m turnstile-with-reflectors in the loft for the antenna.


20131231_110203: --------------------------------------------------------------
20131231_110204:
20131231_110204: Waiting for new command on port 12345
20131231_110713: Received start command: start
20131231_110713: Will capture IQ for 780 seconds
Freq set to 145.924000 MHz.
LNA gain set to 10 dB.
  nr   USB path       firmware   frequency         LNA gain   audio device
  0    0003:0014:02   18.10       145.924000 MHz     10 dB     card6
20131231_110713: Using audio input: alsa_input.usb-Hanlincrest_Ltd._FUNcube_Dongle_V1.0-00-V10.analog-stereo
20131231_110713: Start capture to /home/darren/funcube-data/out/20131231_110713/fcd_iq_sc_20131231_110713_96_145924.raw
20131231_112013: Filter and decode (G=100) /home/darren/funcube-data/out/20131231_110713/fcd_iq_sc_20131231_110713_96_145924.raw:40
20131231_112022: Filter and decode (G=200) /home/darren/funcube-data/out/20131231_110713/fcd_iq_sc_20131231_110713_96_145924.raw:40
20131231_112030: G=100 gave 40 packets; G=200 gave 40 packets
20131231_112030:  Submitting packets from /home/darren/funcube-data/out/20131231_110713/data-200.txt
20131231_112030:
20131231_112030: --------------------------------------------------------------



Having a look at the raw file with a modified tools/fcd_replay.grc file, I observed the following with the fosphor display.


In order to get this all working, I found it useful to temporarily instrument the fcd_sequencer.sh script by adding the -x option on the first line, as below:

#!/bin/bash -x
This let me determine exactly what was happening as the script ran.  I did actually make a mistake when creating the symbolic link to submit.sh (missing the .sh extension on the link name).  This caused the invocation of submit.sh by fcd_sequencer.sh to fail, but the use of the -x option in fcd_sequencer.sh allowed me to see the correct invocation of submit.sh and to manually invoke it once the symbolic link had been fixed, culminating in the appearance of a line in the upload rankings table here crediting G0HWW with 40 packets.

Update 1st Jan 2014: I've written fcsched to schedule fcdec according to passes reported by a predict server.