Friday, December 10, 2010
For the person like me, who is hoping to connect this to an embedded device, there's some particularly bad news: this chip doesn't communicate using the plain CDC-ACM; I'm told it has a proprietary communication system to the host. The best bet is to port the software from the linux kernel, alas.
In addition, if we want a micro-controller to talk to this thing, then I suppose it will need to have USB host mode on it, since the rig acts as a USB device, of course. The CUI32 apparently provides the hardware for this connection, so we'll see how that works.
Wednesday, November 24, 2010
Friday, November 19, 2010
Monday, November 15, 2010
The results are generally impressive. But I hope this might be some help in improving the codec. For instance, the roughening of sibilants like 'sss' in English (which becomes something like a 'sh' under codec2) is easily reproduced with festival.
To use this script, change the first line to point to the directory in which your c2enc file resides, save the script as, say, 'tts-codec2.sh' and then issue the command 'chmod a+x tts-codec2.sh' so that the script is executable. Then run it on the command line with 'tts-codec2.sh "Salmon steaks grill beautifully."' You'll hear the non-codec2 version, then the codec2 version.
CODEC2_HOME=/home/brucerob/Codec2/codec2/src TFILEA="/tmp/$(basename $0).$$a.tmp" TFILERAW="/tmp/$(basename $0).$$.raw" echo $1 | text2wave | sox - -r 8000 -t raw -s -2 $TFILERAW play -r 8000 -t raw -s -2 $TFILERAW $CODEC2_HOME/c2enc $TFILERAW $TFILEA $CODEC2_HOME/c2dec $TFILEA $TFILERAW du -sh $TFILEA play -r 8000 -t raw -s -2 $TFILERAW
Saturday, November 13, 2010
CODEC2_HOME=/home/brucerob/codec2-2010-11-11/src TFILE="/tmp/$(basename $0).$$.tmp" $CODEC2_HOME/c2enc $1 $TFILE $CODEC2_HOME/c2dec $TFILE $2
Here's a sox command to get a wav file (or whatever) into the proper raw format for codec2:
sox input.wav -r 8000 -t raw -s -2 output.raw
Friday, November 12, 2010
Anyway, some recent patches to the alpha code aim to get rid of crackles from the encoding, and I think I can provide evidence that they have done just that. Last weekend I recorded myself describing my QTH, etc. in typical long-winded ham fashion. I then encoded and decoded this raw audio file to see how intelligible it was after being passed through Codec 2. The result was quite impressive. I think the greatest criticism could be the clicks that appear on my name, 'Bruce' and when I draw my breath in early in the QSO.
After reading that the recent changes aimed to eliminate those noises, I updated my repository, rebuilt the code, and then round-tripped this same file. Listen to the new file, and you'll hear that it has fewer distracting clicks, especially in the two sections I mentioned.
If you are testing Codec2, consider recording your audio files with a boom mike or something similar, not with a mic that will pick up echos and ambient noise. Currently the codec suffers quite a bit if such distractions are around. This is interesting, of course, and important, but unless you are planning to test these problems, you might want to have them set aside for now.
Monday, November 8, 2010
begin 644 hello.c2 M&]&*F(K<H"O0CJB;_^`ATN[HOOK@L)#.[YYJX+*RQ.V>:F"YDLS*GFK@`=:L MJ;9;8.UQCJFV2>#M4XJIMLC@XU:,N;++8*56KJN>R^"J[.MLK@MI3D[YKN MX!-2K.Z?_6`+4:SJGMS@K=>.[Y;L0"-1K.R^U*`I$>[L_^7@)Q&,[I[%(*,1 MK.R[YL##$83N_^;@1_&,[)KF0`/1C.Z;<F#%4(3NO^)@'9&,[)KCX,.0BNZ> MX^`(].KKFM-@!+"N^8K1($C\C.N*P4`,-8[IOE#@6?&.V8Y'P`_PCLB&5.!H MEH[.AEU@T/*.SX9.X/+RCLV&SF#R](K+ADI@\MR.Z8;*X/+]BJF&RN#TMXB9 MA\M@_I&+^X_I8/_PB_^.Z6#_T(N]NDE@^=:/_;II8.GTC_6Z:V#KO.G]BDE@ MZ9RO_XYK8.N<K?J.RV#MG.N:CTM@Y+Y+F8=*8.K*QYJ+;^#JSN::C^[@YD+' MF8YM8.1"0XFO[>#J0,6ZB^S@`,V[N_)<X++J[?^V3<":E*2)BL[@;["LZ+O? MX(7PC$JJS^"!\*Q.BDW@AY"FROK-X)22XFRWS>"YEL(D_\W@\][B!+?,P`"V MP":W5"`8EL(,F]3@`M3"+X_4X`I\PBZ/5>`F?L(DI5?@/`K")*]6H`P^P"2/ 0UF`8?.(OCM)@&%3";H_2X``` ` end
Enter David, VK5DGR. He is using his Ph.D. research to produce a patent-free voice codec for radio amateurs, with loud cheering from Bruce Perens, who has long championed this idea. The code is recently out in alpha , compressing to 2500 bps. It built quite happily on my Linux box, and the c2enc and c2dec applications will convert from and to 8000 bps, 16 bit signed RAW audio, producing very intelligible results.
Since I had a PIC32 chip on the bench, I decided to set aside work on the qrpTracker and see how far I could get in porting Codec2 to the PIC32. It isn't working yet, and I think we'll need integer math to get there, but I've made some progress.
Tuesday, October 26, 2010
Here's some power observations to get things going:
Thursday, August 12, 2010
PC-based tuning programs will often tell you if a bird is eclipsed or in the sun, a feature that is even more useful these days as the aging AO-51 is not transponding in eclipse. Similarly, the AMSAT-UK video entitled 'FUNcube part one' states at its end that FUNcube will have a high-power telemetry mode while in sun (roughly when school is in session), and a low-power telemetry + transponder mode when it is in eclipse (roughly when school is out). This scheme fits the FUNcube KISS principle, but won't be ideal for the small but important number of students who live in Arctic regions.
So a 'sat in sun' indicator on the LCD is going to be more important than ever, but I wonder if we can go further and include insolation in our tracking logic. A HT user in the field really doesn't want his HT to start automatically tuning AO-51 if it isn't in the sun, so we might as well exclude AO-51 if it is in eclipse. Same thing with AO-7. FUNcube is a bit harder case, since they plan to be more clever with the schedule, keeping the transponder on all the time during weekends and school holidays.
Finally, there's the schedule of AO-27. I'd love to include some 'FM transponder on' code inside satpack so that it also only was tuned in when it is in transponder mode. Right now, it hogs the tuner pointlessly far too many times.
Saturday, August 7, 2010
Another possibility is the Yaesu FT-5100. It can be controlled at ttl levels with a modified mike interface.
Sunday, July 25, 2010
The utility of a portable full doppler tuning device will depend on how easily it can be updated with new Keplerian elements, so I've put some considerable work into the program that does this through a USB/serial connection. Here's a GUI version demonstrated:
Monday, April 19, 2010
Friday, April 16, 2010
Sunday, March 14, 2010
Friday, February 12, 2010
Wednesday, February 10, 2010
Thursday, February 4, 2010
The result is that for non-inverting transponders, the equation is this:Soon after, I received a kind email from Tony AA2TX, with an offprint of his 1997 Space Symposium paper that describes the object-oriented computational approach that is built into the InstantTune code. Since I've been happily pillaging the IT code for some time now, I'd noticed what this article confirms, namely that instead of using `(up_x) / (1- v_r/c)` to get the value of the origin signal from the received signal, InstantTune uses `(up_x) (1+ v_r/c)`.
`up_o = (dl_o - bc_d + bc_u)/(1-v_r/c)`
For inverting transponders:
`up_o = (bc_d + bc_u - dl_o) / (1 - v_r/c)`
Tuesday, February 2, 2010
Monday, February 1, 2010
Thursday, January 28, 2010
- Downlink tuning
- Periodic uplink tuning of the FT-817, with switching VFOs. This is in the manner of instantune, HRD and SatPC32
- CTCSS tone encoding to ensure access to SO-50 and similarly equipped radios