JT65 vs JT9 (vs WSPR?)

December 31, 2013 | Amateur Radio, WSPR | By: Mark VandeWettering

For the last several days, I’ve been running the latest version of wsjtx using my RFSPACE SDRIQ software defined radio, and just logging the results. Previously, for most of my JT65 needs, I used JT65-HF, but I was interested in trying out the JT9 mode as recommended to me by numerous hams. JT9 uses a similar (the same?) encoding as JT65, but in a much narrower bandwidth. The current usage seems to be that for JT65, JT9 signals are 2Khz (or 2.5khz) higher in the band. What’s cool about using my SDRIQ as a monitor is that I can set it up to pull in 4Khz, and WSJT-X will decode both JT65 and JT9 signals at the same time. Because JT9 isn’t quite as popular (yet) that is rather convenient: you get twice the modes/signals for the price of one!

But this has led me to wonder: JT9 sends the same information in the same time, but with drastically reduced bandwidth (less than 10%). Why use JT65 on HF at all? Joe Taylor (Nobel Laureate, and author of WSJT-X) says that JT9 was optimized for “MF and LF”, but doesn’t really hint at why it wouldn’t be better more universally. Does anyone have any ideas where JT65 might be better? If not, then shouldn’t we all be good citizens and move towards JT9?

Just curious.

Some Musings on Crossword Puzzles…

December 17, 2013 | Games and Diversions | By: Mark VandeWettering

puzzleWhen I was growing up, my Grandma Busch used to spend time each morning doing crossword puzzles. Off and on through my life, probably in imitation of her, I’ve enjoyed sitting down and doing them as well. The Oakland Tribune (the paper I see most often) carries two different puzzles per day: the Daily Commuter, and also the New York Times Crossword puzzle (an older one, not the current one in the NYT). I find the Daily Commuter to be pretty easy: I’m not good enough that I can just write out the answers mostly in order, I usually alternate horizontal and vertical, and in ten or twelve minutes, I usually power through them.

The NYT is a different story though. Early in the week, they are pretty simple. The Monday puzzles are just as easy as the Daily Commuters. But as the week goes on, my time to complete these puzzles goes up. By the time Thursday or Friday rolls around, I don’t often finish them without some judicious web searching. I find those puzzles often rely on what seems to me fairly obscure references to music, literature or geography. It actually makes them somewhat less fun for me. I seldom do the Sunday Crosswords for this reason: there is just something rather crude and unaesthetic to these puzzles.

Ultimately, there is a kind of beauty in the very best crosswords. The clues are hard, but not too hard. The themes are clever. The word choices are good. I like it when there are a few words that I’ve never seen before. I find it especially interesting when these are short words. Last week I encountered the word ORT (a morsel left after a meal) which I had never seen before. Today, I encountered the word TUTEE, which seems to me a rather odd word, but also one I’d never seen before. And of course you occasionally get to use words that seem cool, but aren’t commonly used. Today, one of the answers was a great word: PALAVER. It just doesn’t get used often enough.

The thing that wasn’t obvious to me (and may not be obvious to the casual puzzler) is that there are definitely “good” and “bad” puzzles. Bad puzzles just seem like they were assembled by machine, with no more pattern than the average Sudoku (I’m not very good at Sudoku, so maybe I’m just not educated enough to see beauty in them). But I never thought that there was actual criticism of crosswords on the net…

Enter Rex Harper does the NY Times Crossword Puzzle. Each day, he bats out (probably faster than I find a pencil) the NYT crossword, blogs the answers, and then, somewhat interestingly, presents his critique of the quality of the puzzle. For instance, today’s Tribune republished the NYT from November 12, 2013, which Rex blogged about here.. I must admit, I didn’t think the puzzle was that amazing, I got through it in about 22 minutes, with a question about the intersection of the clue for 55 Down (When the balcony scene occurs in “Romeo and Juliet”) and 67 Across (Lacking depth… or like 17- 23- 37- 48- and 58-Across). My recollection was that the balcony scene had to occur in Act II, but the spacing left only a single space. Was it really in Act I? I found that hard to believe. And the across clue, what was that about? I had discovered that all the clues had a pair of “Ds” to introduce them, which was the last letter of the four letter answer. INID? That didn’t seem right. I scratched my head. I finally mused upon the answer that it really was Act 2, but written “ACT2” making the cross clue “IN2D”. I didn’t like that, without a greater theme that suggests numbers are legitimate in the puzzle, this seemed arbitrary. Annoying. Rex apparently thought so too. He says…

Nobody says “In 2D” except, perhaps, ironically. “I’m gonna go see ‘My Dinner With Andre’ in glorious 2D!” So the revealer is contrived and awkward. Also, a bra-size revealer is going to be soooo much better here. You’d have to ditch DOUBLE DUTCH, but surely there are other DD answers out there for you to use. Friend of mine suggested DDS would work as a revealer as well (interesting twist on the dental degree, which is a common crossword answer). Not a big fan of this revealer, as I’ve now made overly clear.

I suspect that when I get better at these, I’ll be an even greater critic.

Addendum: The NYT Crossword App for the iPhone/iPad is great, especially on the iPad (harder to type on the iPhone, at least for my meaty fists).

Visual Cryptography

November 20, 2013 | Cryptography, My Projects | By: Mark VandeWettering

I read an interesting article the other day. I’ll skip to the end to show you the result. Check out this pair of binary images:

img1

img2

Not too fascinating, huh? If you print both images out on transparency though, and stack them together, you’ll get this…

both

Hopefully that worked (with my limited CSS skills, I don’t think I got it exactly right). I couldn’t get the CSS exactly right, so the above image is really just the pairwise minimum of both images above. But how I accomplish this miracle? My own simple python implementation of the ideas cribbed from this page. Script to come later.

Deconstructing the Classic Atari Game: Star Raiders

November 17, 2013 | Computer Graphics, My Projects, Retrocomputing | By: Mark VandeWettering

Gasp, I know. It’s been some time since I posted here. A combination of life and work events have conspired to sap me of my usual exuberant energy for the nerdy, geeky pointless topics that I usually like to post about here. But nerdy, geeky, pointless endeavors do continue (even if at a reduced pace) so I thought I’d post about one here that I’ve killed a few hours on.

I have fallen back into thinking about retrocomputing, not so much out of a sense of nostalgia, but because I was trying to understand the complex path that connected a 12 year old boy growing up in Oregon to the one who now exists. I think in no small part, I can draw it back to this game:

atari011

The classic 1979 Atari game Star Raiders. I’m pretty sure it was the second cartridge I bought for my Atari 400, right after Atari BASIC. Within it’s 8K boundaries, a first person space simulation was created. Not the boring, type “LRS” to get long range scan respresented in crude ASCII charts, but instead a visceral battle against the Zylon menace.

As much as I liked the game (and have played it a few times in the last few days, it still pretty much holds up) it also inspired me back then to learn how such highly interactive, real time games could be written. I got a copy of De Re Atari, and worked on learning about machine language programming, and how to manipulate POKEY and ANTIC to do my bidding. I used to say that the Atari was the last computer that I understood completely. Perhaps that was a little bit of bragging, combined with the humble realization that modern computers were far more of a black box than I felt I could understand.

But in the last couple of weeks, I thought to myself, “there must be some good programming hidden away in that 8K.” The scientist in me recognizes beauty not just in the final form of the organism, but in its constituent parts. So, I decided to see if I could take the raw ROM image of Star Raiders, and turn it back into an annotated chunk of source code. In theory, you could use this to make changes (I hesitate to say “fixes”, because it’s so brilliant) but really, it was just so I can learn something about how it works.

Luckily for me, modern tools have made this much simpler. I have a Linux box far more powerful than any computer I could have dreamed of back in the day, and retrocomputing pioneers have traveled this path already, and left tools that I could use along the way. I decided to use cc65, a freeware C compiler suite that can generate code for a variety of classic 6502 based systems. It includes da65, a disassembler that will take an “info” file which describes where the code starts and some machine specific labels, and then tries to disassemble the ROM back into assembly code. It more of less seems to default to the idea that the ROM is entirely code, and only inserts “.byte” assembly instructions when it can’t find a valid instruction at a particular location. By beginning at the known jump address, you can follow code and find areas where data instructions access tables and the like, and then use the .info file to describe block those out, slowly converging to more or less legible code. For instance, the decoded code that starts the cartridge looks like this:

; ----------------------------------------------------------------------------
CARTBOOT:
        lda     #$00                            ; A14A A9 00                    ..
        sta     SKCTL                           ; A14C 8D 0F D2                 ...
        sta     $66                             ; A14F 85 66                    .f
        sta     $62                             ; A151 85 62                    .b
        sta     $63                             ; A153 85 63                    .c
        lda     #$03                            ; A155 A9 03                    ..
        sta     SKCTL                           ; A157 8D 0F D2                 ...
LA15A:  ldy     #$2F                            ; A15A A0 2F                    ./
LA15C:  lda     #$FF                            ; A15C A9 FF                    ..
LA15E:  sty     $65                             ; A15E 84 65                    .e
        sta     $64                             ; A160 85 64                    .d
        lda     #$00                            ; A162 A9 00                    ..
        tax                                     ; A164 AA                       .
LA165:  sta     HPOSP0,x                        ; A165 9D 00 D0                 ...
        sta     DMACTL,x                        ; A168 9D 00 D4                 ...
        cpx     #$0F                            ; A16B E0 0F                    ..
        bcs     LA172                           ; A16D B0 03                    ..
        sta     AUDF1,x                         ; A16F 9D 00 D2                 ...
LA172:  sta     PORTA,x                         ; A172 9D 00 D3                 ...
        sta     a:$67,x                         ; A175 9D 67 00                 .g.
        inx                                     ; A178 E8                       .
        bne     LA165                           ; A179 D0 EA                    ..
        dex                                     ; A17B CA                       .
        txs                                     ; A17C 9A                       .
        cld                                     ; A17D D8                       .
        lda     #$02                            ; A17E A9 02                    ..
        jsr     LAE0F  

Seems like typical “begin the program” kind of stuff, the loop around LA165 is basically zeroing out a lot of I/O ports which control player missile graphic and audio, as well as lots of zero page memory starting around address $67. Not too exciting, but it gets you started.

A bit of poking (and review of old Atari programming manuals) made me realize that the system sets up the player missile graphics to be based from address zero. This means that the buffers for the player 0 will start at $400, for player 1 at $500, etc… Some further poking indicates that the display list (the list of ANTIC instructions that builds the display) begins at $280. I located a couple of data tables that contained a list of strings used in the game (with the first character in each having the high bit set). I located a fragment of a display list in ROM. I wrote a python program to generate a graphical version of each instruction (1s displayed as X’s, 0s as spaces) to see if I could locate some of the bit patterns from the game. This revealed that some font characters were defined starting right at the beginning of the ROM (mapped to address $A00) as well as the bit patterns for the TIE fighters, asteroids, etc…) in a variety of sizes:

B9B0:  X X
    :
    :X      X
    :X      X
    :X      X
    :X      X
    :X XXXX X
    :XXXXXXXX
B9B8:XXXXXXXX
    :X XXXX Xh
    :X      X
    :X      X
    :X      X
    :X      X
    :X     X
    :X     X
B9C0:X XXX X
    :XXXXXXX
    :XXXXXXX
    :X XXX X
    :X     X
    :X     X

That was helpful. But then progress began to slow a bit, and I wondered what other tools I could use. Back when I was teaching myself Atari 2600 programming, I found the Stella simulator to be absolutely key: it had an awesome single step debugger that I used to work out many a difficult chunk of code. Without any real research, I settled on using the atari800 simulator from sourceforge. A bit of digging uncovered that hitting F8 dropped you into a monitor. Not as sophisticated as the Stella one, but still quite helpful. For instance, if you type “DLIST”, you can get the currently active display list. During the “attract mode” of the game, you can break and find that the current display list is:

0280: 2x 8 BLANK
0282: LMS 1000 MODE D
0285: 10x MODE D
028F: 4 BLANK
0290: LMS 0D1F MODE 6
0293: LMS 12A8 MODE D
0296: 81x MODE D
02E7: JVB 0280

This is pretty helpful (although it’s probably gobblety-gook to most readers). Reading from top to bottom, it says that the display has 16 scanlines which are blank, then starts rendering with mode D (which is a 160 pixel resolution, 4 color mode, where each dot is 2 scanlines high). The LMS indicates that the graphics memory will start at $1000. There are a few more lines like that, then some blank lines followed by a mode 6 line (which is a 20 character display, 8 scanlines high). Then some more lines of Mode D (resetting the memory buffer to the appropriate address). The mode 6 line draws characters from the buffer beginning at $0D1F, which I had not identified in code anywhere. That presented a clue to me, enabling me to spot other useful chunks of code.

I’ll keep plodding away at this, it is kind of like working on a crossword puzzle. Each little bit you uncover allows you to understand more. Stay tuned.

Google Chromecast: First Impressions…

September 21, 2013 | Amateur Radio | By: Mark VandeWettering

It’s cool. It’s cheap. You might want to get one.

Okay, for those of you who haven’t heard of them, the Google Chromecast is a little $35 gadget that plugs into the HDMI port on your TV and allows you to watch stream Netflix/YouTube/Google Play videos from your iPad/iPhone/Android/laptop device on your big screen. with more media apps to come. The neat thing is that the Chromecast doesn’t stream the video from your device: it connects directly to the source, and your device merely controls it. That means that you can turn off your device or go do something else, and the video will keep playing. There are also extensions to Google’s Chrome browswer that allows you to echo your browser tab onto the big screen as well. I tested it with Hulu and Retrovision, and full screening the video worked reasonably well, but not as good as the built in Apps. I also brought up a couple of WebGL demos, and the mirroring worked quite well, but with a bit of lag. Google says support for more services is coming. I’d like to see an extension that allowed you to send any HTML5 video to the screen, but even as it is, it’s quite serviceable. It doesn’t do as much as the Apple TV, but works with more devices, and is much cheaper.

I’d write more about it, but I thought this review did a pretty good job of going over the details. Thumbs up from me!

Factoring numbers from Ivar Peterson’s The Mathematical Tourist

August 18, 2013 | Math | By: Mark VandeWettering

I’m a bit of a math geek. I have been periodically fascinated by the factoring of large numbers, which plays such an important role in modern cryptography algorithms like RSA. I’ve coded a few of the non-trivial factorization algorithms, such as Pollard-rho, but haven’t done a whole lot with it. It mostly remains just a curiosity.

Today, I was scanning my bookshelf, and ran across Ivar Peterson’s The Mathematical Tourist. On page 35 in figure 2.5, he duplicated a list of 10 “most wanted” numbers to factored from 1983. It claims that a “specially programmed supercomputer was able to crack all these numbers in the space of a year”. I was curious: thirty years later, what could a state of the art factoring program do on a typical computer.

For my “state of the art” program, I picked YAFU, a factoring utility that I’ve used before. I had previously used it to factor a 100 digit prime, which took almost 8 hours. I was wondering how it would fair on the 1983 list:

The answer is… darned well.

Number Largest factor Time
2211-1 3593875704495823757388199894268773153439 1.4 seconds
2251-1 12070396178249893039969681 7.98 seconds
2212+1 20946001591429012199281424246257 1.32 seconds
1064+1 515217525265213267447869906815873 6.21 seconds
1067-1 28213380943176667001263153660999177245677 6.93 seconds
1071-1 45994811347886846310221728895223034301839 48.09 seconds
3124+1 21775844224805408923066692226998392022049 3.41 seconds
3128+1 153849834853910661121 .26 seconds
1164+1 7032401262704707649518767703756385761576062060673 3.35 seconds
579-1 344120456368919234899 2.99 seconds

Pretty amazing. My own programs can do some pretty amazing feats, but nothing close to this. The combination of improved code and Moore’s law means that the kind of computing we used to do on Crays is now something we can do on Best Buy. Neat.

My comments re: RM-11699, a propsal to allow encryption on amateur radio frequencies…

July 10, 2013 | Amateur Radio | By: Mark VandeWettering

This is probably boring to a great number of you, but a recent FCC proposed notice of rule making has been getting a lot of play lately. RM-11699 is a proposal to allow encryption of traffic in amateur radio so that we can handle information of a sensitive nature in times of emergency, especially information that is covered in the U.S. under HIPAA. The vast majority of the comments on this proposal have been against it, as are my own. If you’d like to read what I have to say, you can read my own comments, complete with an embarrassing number of typos (I drew them up somewhat hastily) at this link at the FCC website. If you’d like to read some more well thought out (if more formal and legalistic) you can check out these comments by Bruce Perens.

More weekend radio…

July 8, 2013 | Amateur Radio | By: Mark VandeWettering

I didn’t get a whole lot more amateur radio done.   I spent some time running JT65, mostly on 20m, but sometimes skipping up higher to 17m and 15m.  I’m still eight states short of my WAS, and was teased by stations in NV, WY and ND, which I managed to start QSOs with, but didn’t actually complete.   Grrr!   I did leave my radio running in monitor mode, and continued to rack up spots from another fifteen countries:  Bolivia, Chile, Columbia, Croatia, Denmark, Guatamala, Hungary, Mariana Islands, Norway, Paraguay, Singapore, Surinam,  Switzerland, Tanzania, and Thailand.

I spent some time looking at FreeDV: the digital voice program for HF that uses David Rowe’s  Codec2; low bitrate voice codec.  I didn’t have a lot of luck: I did get it all configured and ready to go, but off and on monitoring of the published calling frequency (14.236) didn’t result in more than a momentary glimpse of a few tentative bleeps.   I tried using K7VE’s QSO finder, and found that indeed, there probably were QSOs going on during the weekend net (1100 Pacific time) that I simply couldn’t hear.  Not too surprising: despite my apparent success running JT65, I suspect my antenna system is actually not that good, and lots is going on below my detection threshold.   I thought that it would be possible to configure up some software to simply wait for audio signals and record them using Audacity, but my IC-735 isn’t especially well calibrated for frequency, and I think I’m probably tuning about 130Hz high, which would prevent a synch lock if I just blindly set the frequency.  I still might try to set that up, and see if I can capture some of this digital audio.   But I think I need to get lucky, and/or make some improvements to my receive antenna before I’ll make any headway.  If anyone else is interested in FreeDV, drop me a note: I’d love to give it a try…

Addendum: I thought maybe a video showing FreeDV might further tempt readers. Here’s one showing it in use. It isn’t especially interesting in terms of weak-signal performance (the SSB audio is clean, with very near full quieting) but it should be noted that the FreeDV signal takes up only about 1100Hz of bandwidth, while the SSB signal is 2.5Khz or so. I don’t think it will replace SSB anytime soon, but in theory doubling the number of QSOs that can take place in a given chunk of spectrum is pretty neat…



A week of listening to JT65…

July 3, 2013 | Amateur Radio | By: Mark VandeWettering

I’ve been leaving my radio monitoring JT65 frequencies for the last week, largely on 20m, with occasional diversions to 40m, 30m, and 17m. JT65HF can upload all your spots to pskreporter and from them, you can download an ADIF log file. I thought I’d see what stations I heard over the last week, and the results were surprising enough that I thought I’d share them.

First of all, I heard stations in 48 DXCC entities, which include:

Alaska, Argentina, Asiatic Russia, Australia, Austria, Belgium, Brazil, Canada, China, Costa Rica, Cuba, Curacao, Czech Republic, Egypt, England, European Russia, Fed. Rep. of Germany, France, French Polynesia, Gabon, Greece, Grenada, Hawaii, Indonesia, Ireland, Italy, Jamaica, Japan, Latvia, Mexico, Netherlands, New Caledonia, New Zealand, Poland, Puerto Rico, Republic of Korea, Romania, Scotland, South Africa, Spain, Sweden, Taiwan, Ukraine, United States, Uruguay, Venezuela, Wales, West Malaysia

This broke down to hearing signals from 520 unique calls:

2E0ZRQ, 4A1TD, 6B3YOE, 6Y5IC, 7L2MDI, 7N4HQN, 8J9VLP, 9M2TPT, AA0DW, AA7OK, AB1NJ, AB1PF, AB6OR, AB7JK, AC0MW, AC7SG, AC8XI, AD0AR, AE3T, AE5OL, AE5ZD, AE7CD, AE7U, AF5AT, AF5FH, AF5KY, AF6JO, AG0A, AG8M, AH6OY, AH6RR, AI6RE, AK4AT, AK4BB, AL7ID, BD2CO, BD2MC, BD3RQ, BD7BW, BI7MCK, BU2CB, BX2ADE, BX2ADJ, CO2BG, CO8RS, CX4NF, DD3KF, DF9JL, DG0RG, DG1LHM, DG3OAF, DJ1FQ, DK3EG, DL3NOC, DL4FBW, DL8ZBA, EA1BYC, EA1JM, EA3HJ, EA4DKJ, EA7CHS, EA7GDC, EA7IU, EB3FDI, EI1DG, F1ABL, F1FZH, F4BAL, F4BKT, F4CLN, F4EEX, F4GOH, F5JMH, F5RHE, F6HHO, FK8HG, FO5QJ, G1OXB, G3KLV, G3VIR, G4HXC, G7JWR, GW0TKX, HL2KV, HL3IB, HL5QO, IK2TDM, IK4UOA, IK5FKF, IN3NHZ, IZ0IWD, IZ0MIO, IZ3XEF, J35X, JA0EKI, JA0FOX, JA0HNN, JA1AZR, JA1BZJ, JA1DEQ, JA1FIK, JA1FMN, JA1FVS, JA1GFB, JA1NUX, JA1VDJ, JA1WDZ, JA1WGR, JA1XBX, JA2JNT, JA2VZ, JA2ZS, JA3BQB, JA3CG, JA3EGE, JA3FQO, JA3SJG, JA4CXX, JA5AZO, JA5DVK, JA5TX, JA6ATL, JA6CRP, JA6EIM, JA7FYU, JA7IGN, JA7MJ, JA8CQM, JA8FTB, JA8IZP, JA8NIS, JE1HRC, JE1TRF, JE2PMC, JE6JFL, JF1CSE, JF1JTQ, JF1KUR, JF1PTX, JF2IWL, JG1GFU, JG1ITH, JG1USO, JG1XUZ, JH1ICJ, JH1KYA, JH1MKT, JH1QKG, JH1WCL, JH3GCN, JH3IEG, JH3IMR, JH3OWW, JH3XYP, JH7GNC, JJ5IZX, JJ7RMS, JK1XUI, JL1DLQ, JL1OVC, JM1ESG, JO1PYV, JO3IEE, JO3TAP, JP1GVC, JQ2HVN, JR1AUK, JR1BVP, JR3UIC, JS2KHM, K0GDI, K0KC, K0PT, K0RAR, K0TAZ, K0TPP, K0WIU, K1BJF, K1JT, K2AFY, K2B, K2CDP, K2KYH, K2NCC, K3GEV, K3HR, K3NAW, K3YP, K4AFR, K4BOI, K4ED, K4MJ, K4OP, K4QJC, K4RVJ, K5DE, K5WPN, K5WW, K6EU, K6HOM, K6LE, K6RWM, K6SID, K7HRT, K7JBQ, K7KKY, K7ZL, K8FER, K8JMB, K8WHA, K9AAN, K9GVM, K9IBM, K9OHI, KA1GMN, KA1WPM, KA3LOC, KA9CCH, KA9SWE, KB0MDQ, KB1RVT, KB1TJC, KB2BAF, KB3IYQ, KB5EZ, KB6DAY, KB7JWD, KB7N, KB7RUQ, KB8DID, KB9GSY, KB9PRF, KC0VPL, KC0ZDV, KC2FZN, KC2RDC, KC2SJ, KC2WTG, KC8GCR, KC9ON, KC9REX, KC9UNL, KC9WNZ, KD0AGX, KD0PMW, KD0QYN, KD2CFH, KD2JC, KD4K, KD4NUL, KD5R, KD5ZAT, KD6HQ, KD6PJE, KD7H, KD7PCE, KD8HSV, KD8OVN, KD8RDH, KE4TG, KE9JF, KF2H, KF2T, KF4RWA, KF5GST, KF5REP, KF5SLN, KF6LYF, KF7EMI, KF7JGF, KF7LF, KF7PG, KF7PKL, KF7QPK, KF7RTU, KF7ZZ, KG2MD, KG5RJ, KG6EYC, KG7HQ, KH6FT, KI0J, KI4MI, KI5PM, KI6CJE, KI6DY, KI6VJY, KI7PY, KI7RM, KJ2U, KJ6CC, KJ6PCC, KJ6RKZ, KJ6WIA, KK4DSD, KK4DTT, KK8G, KL7GRF, KL7QW, KN8J, KR4RO, KS4S, KY7S, KZ8K, LU2DO, LU6PCK, LU8DIO, LU8EX, MM0LGS, N0XZ, N1CPU, N1GJ, N1MGO, N2ADV, N2LQ, N2MGT, N3BNA, N3KV, N3MVX, N3XX, N4ABN, N4CE, N4CWS, N4LXB, N4ST, N4TQ, N4UHZ, N4ZQ, N4ZSA, N5IC, N5PT, N5RGV, N5YHM, N6BX, N6GFK, N6NG, N6OL, N7NSO, N8HS, N8KSG, N9DUG, N9GUE, N9OJC, ND4Q, NI0B, NJ1H, NN1B, NN6XX, NO2T, NQ3TDV, NS2B, NS6E, NS7RS, NT4F, NU6O, NW5P, NZ8V, OE1DXA, OE3DXA, OK1FIM, OK1UFC, OK2BGB, ON3LA, ON4QX, ON8BZ, PA1BR, PC5E, PD1JH, PE1AUV, PJ2MI, PP5ZAP, PY2RN, PY2VM, RA0JBL, RA0UF, RD3DM, RK6A, RN0CF, SM0MEM, SP7IIT, SQ3LLJ, SV0LR, TI3VLM, TR8CA, UA0CKP, UA0LOQ, UA3DTK, UA6ARR, US5CCO, US5UFF, UU9JQ, VA3DYD, VA3ECJ, VA3LLZ, VA3MJR, VA6JB, VA7AQD, VE3RYI, VE4KZ, VE4TV, VE4XC, VE6BY, VE6VS, VE7HBS, VE7NH, VE9JMG, VK2ELF, VK2MUS, VK2ND, VK2QQ, VK3DHI, VK3FM, VK3MQ, VK3TCT, VK4AFU, VK4BDJ, VK4CMV, VK4KEE, VK4NGW, VK4SSB/2, VK4WDM, VK4WTN, VK5DG, VK5EI, VK5KGP, VK5NG, VK6DU, VK7SM, VK7TR, VK7XX, VK8NSB, W0GTS, W0TUP, W1CAM, W1HFB, W1YIF, W2PFA, W3ACO, W3BI, W3SFG, W4ED, W4EG, W4JSI, W4PGK, W4UAT, W4WWJ, W4XK, W5ISP, W5JLF, W5KY, W5OXM, W5TTE, W5VU, W6EAW, W6IR, W6KY, W6OA, W6TZI, W7CRK, W7DGZ, W7LYS, W7PI, W7VP, W8FDV, W8XLR, W9MJ, W9MO, WA0AM, WA0JCE, WA0RKQ, WA2JSG, WA2LTH, WA4CQG, WA4DMV, WA4MIT, WA5TVO, WA7AG, WA7JS, WA7SCH, WA8EFK, WB0BLV, WB2GJD, WB3LHD, WB4CIW, WB4OSS, WB6OWZ, WB6URD, WB9DAN, WB9OWN, WC0D, WC7V, WD4OIN, WE1RDO, WF1G, WH6EBS, WN0Y, WN6K, WO4R, WP4JCF, WR1Z, WS0L, WU7B, WX7MB, XE1H, YB0LWA, YB8EXL, YB8VM, YC8DFR, YL2NX, YO9APK, YV5FJ, YV6BFE, YY5LAY, ZL1COP, ZL2CVW, ZL3ACU, ZL3TRR, ZL4AD, ZL4SA, ZS6WN

The most distant call I’ve heard was ZS6WN, which is a distance of very nearly 17000 kilometers. The best DX QSO I’ve had in that time was VK7TR in Tasmania, which was a distance of about 12680 kilometers.

In ham radio, we have used the term “alligator” to refer to anyone who has a large signal, but is deaf to people who respond (the idea being that alligators have small ears, but big mouths). I seem to have the opposite problem: I can hear many signals that I cannot work regularly. Most US stations seem to be reachable by me with around 10 watts of power (modulo the vagaries of conditions) but I can’t seem to hit many of the DX stations I can hear with 25 watts. It would appear that I have the opposite problem: the size of my ears are outpacing my voice. What does that make me, a floppy eared bunny?

RTLSDR decoding of ADS-B signals…

June 26, 2013 | Amateur Radio, Radio Controlled Airplanes, Software | By: Mark VandeWettering

A few days ago, I wrote about the EZCAP EZTV645 dongle that I got which could be used with RTLSDR software to implement asoftware defined radio that only cost $20. I also had ordered a NooElec radio (similar, but with the R820T tuner that most people seem to favor) as well as an MCX-SMA adapter pigtail so I could use it with my mag mount dual band hamradio antenna that I have.

Today, for kicks, I drug it outside, hooked it up, and then started playing with it. Unlike my earlier tests, I could see some traces of a signal around the 1090Mhz ADS-B frequency, so I download ADBS# from here and fired it up. It immediately began detecting packets, so I went ahead and downloaded ADSBSCOPE from here, configured it to accept local data from the ADBS# server, and voila! It worked! Here are a couple of screen caps from a few minutes of sitting around outside at lunch:

adbs

adbs2

Ironically, I didn’t see a huge difference in difference between using my mag mount antenna and the cheap antenna that comes with the dongle, but neither are optimized for the 1090Mhz frequency either, so perhaps that’s not any kind of meaningful test. I think I am going to try to build a stacked colinear antenna that is, and we’ll then do some range testing. But at least close to the OAK airport, I can definitely get some good signals.

More later.

Lesson learned… Check your coax!

June 25, 2013 | Amateur Radio, WSPR | By: Mark VandeWettering

Okay, I knew that my radio was acting deaf, and I thought I’d know what was wrong. I use a low doublet antenna made from speaker wire, and it has been outside, weathering the elements for quite some time. Sure enough, when I went outside, I saw that one of the connections feeding my balun looked a bit iffy. I stripped it back a bit, rehooked it up, and figured that was it. But when I went back inside, no dice.

I then whipped out my trusty MFJ antenna analyzer. A quick probe from the inside connection indicated nothing dramatically wrong, by itself the SWR on 30m would be something like 2.5, well within what my tuner should pull. Then, I realized I hadn’t checked the piece of coax that I used to bridge the gap to my transceiver. Bingo! SWR over 8 across the entire frequency band. Not good! But easy to replace. I had a shorter length, and with a little rearrangement, I was back on the air.

And, in a previous day where I had only 15 spots of three stations all day, I had lots of reports this time. Here are my overnight WSPR spots.

Timestamp Call MHz SNR Drift Grid Pwr Reporter RGrid km az
 2013-06-25 07:14   K6HX   10.140195   -22   0   CM87ux   10   VK7TW   QE37pc   12791   234 
 2013-06-25 08:18   K6HX   10.140204   -20   -1   CM87ux   10   VK2AWD   QF56ng   11966   241 
 2013-06-25 07:02   VK4ZBV   10.140171   -23   0   QG62ml   0.2   K6HX   CM87ux   11417   54 
 2013-06-25 09:38   K6HX   10.140192   -22   0   CM87ux   10   JA2GRC   PM74uu   8613   305 
 2013-06-25 09:30   JA2GRC   10.140235   -24   0   PM74uu   5   K6HX   CM87ux   8613   52 
 2013-06-24 14:36   JQ2WDO   10.140282   -18   0   PM95gi   5   K6HX   CM87ux   8374   54 
 2013-06-25 04:18   K6HX   10.140163   -14   -1   CM87ux   10   K3GEN   FM19ke   3887   74 
 2013-06-25 04:26   K3GEN   10.140157   -3   0   FM19ke   5   K6HX   CM87ux   3887   283 
 2013-06-25 04:22   VE3NFK   10.140184   -12   1   FN14tk   1   K6HX   CM87ux   3856   276 
 2013-06-25 06:04   NA4U   10.140147   -5   0   FM03ac   5   K6HX   CM87ux   3835   290 
 2013-06-25 05:36   K6HX   10.140197   -11   -1   CM87ux   10   NA4U   FM03ac   3835   85 
 2013-06-25 04:14   W3HH   10.140289   -15   1   EL89vb   1   K6HX   CM87ux   3814   296 
 2013-06-25 04:18   K6HX   10.140158   -14   -1   CM87ux   10   W3HH   EL89vb   3814   93 
 2013-06-25 04:14   WD4LHT   10.140234   -19   1   EL89tp   1   K6HX   CM87ux   3772   295 
 2013-06-25 04:18   K6HX   10.140193   -16   -1   CM87ux   10   WD4LHT   EL89tp   3772   92 
 2013-06-25 04:18   K6HX   10.140164   -12   -1   CM87ux   10   K1VBM   EM74xh   3434   85 
 2013-06-25 06:44   K4EH   10.140190   -20   0   EM73sk   5   K6HX   CM87ux   3429   289 
 2013-06-24 15:12   K6HX   10.140256   -25   0   CM87ux   10   AJ8S   EM89bt   3305   74 
 2013-06-25 04:32   K8CT   10.140125   -10   0   EN83ce   2   K6HX   CM87ux   3273   273 
 2013-06-25 06:02   N4WXB   10.140204   -14   0   EM64   0.1   K6HX   CM87ux   3167   287 
 2013-06-25 04:28   K9AN   10.140282   -9   0   EN50wc   5   K6HX   CM87ux   2942   277 
 2013-06-25 04:12   KG0DP   10.140197   -15   1   EN42da   2   K6HX   CM87ux   2629   270 
 2013-06-25 04:18   K6HX   10.140163   -16   -1   CM87ux   10   KG0DP   EN42da   2629   70 
 2013-06-25 07:06   KT5TK/A   10.140196   -24   0   EL29fr   5   K6HX   CM87ux   2624   298 
 2013-06-25 04:30   KC5MO   10.140245   +1   0   EM10bf   1   K6HX   CM87ux   2399   298 
 2013-06-25 05:36   K6HX   10.140199   -15   0   CM87ux   10   VE6PDQ/1   DO33fl   1849   18 
 2013-06-25 06:12   VE6PDQ/1   10.140143   -4   1   DO33fl   5   K6HX   CM87ux   1849   205 
 2013-06-25 04:18   K6HX   10.140187   -21   -1   CM87ux   10   AC0XR   DM79nx   1519   76 
 2013-06-24 15:12   K6HX   10.140263   -17   0   CM87ux   10   W5OLF   DM78hb   1480   84 
 2013-06-25 04:36   K6HX   10.140160   +2   -1   CM87ux   10   W1TX   CN88ln   1178   357 
 2013-06-25 04:28   W1TX   10.140205   -11   0   CN88ln   0.5   K6HX   CM87ux   1178   177 
 2013-06-25 06:54   K6HX   10.140202   -16   0   CM87ux   10   KF7O   DN06tb   955   19 
 2013-06-24 15:22   K6HX   10.140262   -21   0   CM87ux   10   K7UEB   DN06tb   955   19 
 2013-06-24 15:12   K6HX   10.140243   -27   0   CM87ux   10   K7TSV/30   CN85   836   356 
 2013-06-24 14:44   NM7J   10.140195   -11   -1   DM26   1   K6HX   CM87ux   663   287 
 2013-06-25 06:22   NG6K   10.140241   -5   0   DM13el   5   K6HX   CM87ux   654   321 
 2013-06-25 04:14   KC6KGE   10.140264   -20   1   DM05gd   2   K6HX   CM87ux   404   322 
 2013-06-25 04:16   N7SCQ   10.140117   -18   0   CM98ck   1   K6HX   CM87ux   67   221 
 2013-06-25 04:18   K6HX   10.140159   -28   -1   CM87ux   10   N7SCQ/R   CM98ck   67   40 

Or, presented graphically:

Screen Shot 2013-06-25 at 7.47.23 AM

Glad to see that debugged. I think over the next week I’m going to restart my aborted attempt to work all states via the JT-65 mode, at last count I had 42 states. I also think that antenna upgrades are in order: my doublet is simply too low and ridiculous to continue. I also want to do a receive only antenna, and get a dedicated QRSS grabber back online pretty soon. Stay tuned, and hope to work some of you on the air.

I seem to be a bit deaf to WSPR…

June 24, 2013 | Amateur Radio | By: Mark VandeWettering

For the first time in a couple of years, I got all my equipment back online in the WSPR mode. I used to run WSPR primarilly with my little Yaesu FT-817, but this time, I chose to go ahead and use my ICOM IC-735, which isn’t a really all that great at WSPR-ing: it is, after all a rig capable of a full 100W output, and even on its lowest power setting should beam out 10W of power. I’ve also suspected that in comparison to the receiver in the FT-817, it’s a bit deaf: it simply can’t hear weak signals.

Last night I left it simply listening on the 30m band. In previous attempts at WSPR, I could expect to hear signals from a couple of dozen different stations. In the last four hours, I’ve gotten two: NM7J in New Mexico and JQ2WDO in Japan. I think it’s a receiver/antenna issue, since I’m not seeing signals in the waterfall which aren’t being decoded: I’m simply not hearing them.

I’m going to move my monitor up to 20m for the day, and see how that works. But I think some antenna testing and maybe trying my trust FT-817 in its place would be a good way to proceed.

More on the ESD protection diodes for the EZTV 645, and a couple of reception tests…

June 23, 2013 | Amateur Radio | By: Mark VandeWettering

Lots of people have said that RTL-SDR dongles that they have been receiving don’t have ESD protection diodes on the antenna inputs, which makes them susceptible to damage, particularly when you hook larger, gain antennas to them. I had read many notes about the EZTV645 that I bought which indicated didn’t have the BAV99 diodes. I took it for granted that mine wouldn’t. But today, I decided to lever it open (it’s really easy, just stick a thumbnail underneath and pop it open). Here’s what mine looked like inside:

IMG_3993

The little protection diode is there, right below the antenna connector. Cool.

I did some other testing with the standard antenna, since I didn’t have the appropriate adapter to really try it with anything else. It picks up fairly strong signals, like this recording I made of the nearby NOAA weather radio station on 162.425Mhz:

NOAA Weather on 162.425

I did a few tests. I unscrewed the tiny antenna from its base, and.. the signal was about the same. That suggests to me that the feedline is probably just about as good an antenna as the “antenna” proper. I pondered for a moment, and then attached an 18″ piece of wire to the base of the antenna mount. This should be about 1/4 wave at 162Mhz. The signal was about six db stronger, with fewer drop outs. Next project: to build some real antennas. High on my list are antennas for the 2M hand band, the 1090Mhz ADS-B aircraft telemetry band, and the 137MHz satellite transmissions. Stay tuned.

A taste of Field Day audio…

June 23, 2013 | Amateur Radio, WSPR | By: Mark VandeWettering

I haven’t been doing much work on ham radio lately. In fact, I haven’t even had my IC-735 hooked up since before Thanksgiving. But today, I decided to try to dust off the old equipment and see if I could get it powered up. After much digging around for all the right cabling, I got it mostly together, and started tuning around.

I’m not a contester, and in fact have never really worked Field Day: I prefer a more leisurely approach to ham radio. But I do like tuning around. I started out by testing my rig out with 10w of output power on JT65 on 20m. It took me a bit of work to get it sorted, but finally I started showing up on the PSK Reporter map, indicating that at least my signal was radiating. I didn’t have much luck getting anyone to call back though: it was already after dark, and propagation seemed to be waning. So, I went down to 30m and tried chirping out some WSPR. While doing that, I noticed a WSPR signal, and fired up ARGO to capture this nice grab of K5CO:

argo0001

But 30m was fading for me too, and I wasn’t entirely happy with my setup. So, I decided just to tune around listening to SSB signals on 40m. Down around 7.271Mhz, I caught KH6RS working a bit of a mini-pileup from Hawaii. I turned on Audacity and recorded a bit of the audio, which demonstrates the kind of reception I get with my current, quite limited antennas. Still, if you guys didn’t get a chance to tune around today, it might be vaguely comforting. 🙂

KH6RS on 40m from Maui…
Hope you all had a fun field day.

More on the ezcap ezTV645 dongle…

June 21, 2013 | Amateur Radio | By: Mark VandeWettering

Just a brief note: this website has some pretty extensive pictures of the inside and outside of the same model of RTLSDR dongle I bought. It also shows that it does not have the ESD protection diodes in place, so it’s possible you could fry the tuner input by having a static discharge directly hit the input on the tuner chip. I’m pondering trying to get some BAV99s and install one anyway, but I also noted that many others are instead recommending getting this model from NooElec instead. They advertise that they use the R820T tuner, and have the ESD antenna protection in place. I do wish they used SMA connectors instead of MCX, but adapters are fairly cheap. I ordered one just to do some comparison testing.

I’ll let you know when it arrives.