October 2008

Experiments with wireless headsets and HF

The other day I commented on my recent purchase of a new headset, and my intention to use it on air. The following are some very rough notes on how to set it all up.

There a couple of things I’ve discovered… one being, if you’re not careful with muting the microphone, it’ll generate a DC offset back to the computer… which with Qtel, is mistaken for a signal, so it’ll transmit a carrier indefinitely.  I submitted a hack around that issue, which is now included in the latest SVN release of svxlink… but needless to say, it caused some embarrasment earlier this week.

The other reason why I bought it… was for use with the HF station.  This set gives me the freedom to walk around the house which simply is not possible with a HF rig as big as the TS-120S attached to a full-size G5RV.  The solution?  Use JACK to patch the audio from the onboard sound card, through to the headset, and vice versa… using the VOX function on the HF set to key it up.  Another bonus is the ability to use tools such as FreqTweak for realtime DSP filtering.

Physical wiring: You’ve got a number of options here.  Usually to interface the radio to the computer, one hooks the “Mic” port to an output port on the sound card, and the “Phones” port to the Line-In on the sound card.

In my case, I had a TAD (Telephony Answering Device) port spare — this port normally hooks to a modem.  Since all I need is a mono input/output… I decided to hook to this port instead.  I found the ferrite beads were needed on each end of the cable… without these, I got lots of RF feedback when I tried to transmit.

Audio Routing within the system… well for basic functionality, everything can be achieved using qjackctl and jackd… however, I wanted the ability to use DSP filtering in both directions.  There is a catch however.  jackd will only talk to one sound card input, and one sound card output at a time.

Now… you can muck around with ALSA’s pcm_multi and pcm_route plugins to make a virtual multi-channel sound card.  But there’s a little known option that is a lot easier.  Enable the netjack USE flag and install jack-audio-connection-kit.  This will install two utilities alongside JACK, alsa_in and alsa_out. Also install qjackctl and freqtweak if you have not done so already.

Fire up qjackctl and adjust the properties to suit your setup.  Choose one of the sound cards as your primary device… the other will be hooked up using the alsa_in/alsa_out tools.  In my case, I have the settings shown in the screenshot below.  The exact settings to use will be dependant on your hardware.  In this case, I chose to use the headset as the primary device, specifying plughw:Headset and hw:Headset as the input and output devices.

Once you have that configured… start the JACK sound server. Now open up a couple of terminal windows and type the following… each line in a different window:
$ alsa_in -D hw:YourOtherSoundInterface
$ alsa_out -D hw:YourOtherSoundInterface

In my case, they were named AudioPCI. Go back to qjackctl and bring up the connections. You should see the alsa_in and alsa_out ports as well as the system ports corresponding to your two sound cards. Fire up freqtweak, set it up for two-channel filtering… then set up your connections as shown:

If it’s not clear… the audio feeds should be:

  • alsa_in:capture -> freqtweak:in_1
  • freqtweak:out_1-> system:playback_1 + system:playback_2
  • system:capture -> freqtweak:in_2
  • freqtweak:out_2 -> alsa_out:playback_1

As for keying up the transceiver.  The Kenwood TS-120S features VOX built in, but you’ll find that as you speak, the audio sent to the transceiver gets fed back to the headset — delayed, which throws one’s speech processes.  The workaround here, is to use the mixer mute features to keep the audio going one direction at a time.

Most headsets have two volume up/down buttons… I found it was convenient to bind one of these in KDE to execute the following command:
amixer -q -D hw:AudioPCI sset 'Master Mono' toggle ; amixer -q -D hw:AudioPCI sset 'Capture' toggle

This effectively switches between transmit and receive. Press the button once, you’re transmitting, press again, you’re receiving. Simple. For transceivers that lack a VOX feature… you can also add commands for rig control software that will turn the PTT on and off for you. Alternatively, one can capture the KeyPress/KeyUp using XGrabKey, and thus it behaves like a regular PTT.

This is left as an exercise for the reader — I found the xhkeys source code a help for figuring this out… combining this with hamlib and alsa-lib should allow a decent and usable interface when away from the rig itself.

Food for thought

The attacks on the US that occurred 11th September, 2001, killed 3000 people, injured about 7000, cost and less than a billion dollars.  Maybe a little more when welfare payments and rebuilding is factored in.  The US following the attacks was still going strong.

The mismanagement that has lead to the current economic crisis will likely cost trillions of dollars, and has achieved what no terrorist organisation has managed to do thus far — cripple economies.

Nicely done fellas… but you can save the encore… we’re in enough of a mess already.

Wireless headset

Today I splurged on a new toy.  Previously, I had been frustrated by the complete lack of wireless headsets (bi-directional, not headphones which are listen-only), even to the point of wanting to homebrew one.  On the advice of a number of people, I also gave Bluetooth a try — unsuccessfully I might add.

Well it seems the people at Logitech have seen the need for a wireless headset for computing applications (link no longer valid).  This is the first such headset I’ve seen on the market.  It uses the 2.4GHz ISM band, using some digital mode — no idea what modulation method is used.  Apparently it’s uncompressed too, which beats A2DP.  It breaks up if you move more than 10m away (line-of-sight), which is to be expected.

Linux talks to it straight out of the box.  The dongle emulates a USB audio device, which of course is supported by the snd-usb-audio driver in ALSA.  It looks as if Logitech has taken their other headsets, and separated the ADC/DAC from the USB logic, inserting the radio link in-between… so as far as the host is concirned, it’s just a wired USB headset.

It’s not quite the holy grail I’m after… a purely analogue version would be really nice since that’d be much easier to interface with my mobile phone and radios… but this is a very nice comprimise and isn’t that expensive

I’m now happily chatting on EchoLink (on node 95092) and enjoying not being tethered to a computer. 😀

For those with a similar need, it’s definitely worth a look. 🙂

Both Lemote Fulong systems upgraded to 1GB

Hi All,

My P4 laptop died recently, which is a pain as I now have to look at replacing it in the near future… however, this has meant I now have 2GB of DDR400 SODIMMS that can be used in the Lemote systems.

There was a catch however.  The PROM had to be flashed on one of the units so it would initialise the RAM properly, otherwise the kernel would b0rk.  With this done, both units now recognise the 1GB sticks of RAM installed.

At present, both systems are available for developer use.

How to upgrade the PROM on the Fulong.

For the reference of others who may wish to perform this upgrade on their Lemote equipment.  This is the procedure.

  1. Download pmon_v1.1.zip from this page and unpack it.
  2. Copy the pmon.bin file located inside, to your /boot partition (or somewhere else accessible to the PROM)
  3. Reboot, and hit ESC/DEL repeatedly to break into the PMON prompt.
  4. Type set, and write down any critical settings such as al and karg
  5. At the PMON prompt, enter the following command (adjust:path as appropriate)
    load -r -f bfc00000 /dev/fs/ext2@wd0/pmon.bin
  6. Restore the settings you wrote down using set arg value.
  7. Type reboot to reset the system.

If at step 5, the load fails, DO NOT REBOOT OR POWER OFF! Hit the up-arrow on your keyboard, double check the command, then press ENTER to execute it again.

I’d like to thank the members of the Lemote Forum community who provided the necessary infromation.

Improving signals on 80m

I’ve had a 40m inverted-V dipole set up along the side of our house for as long as I’ve had the HF set.  Prior to getting the ATU, I was restricted to 40m and 15m which are the resonant frequency bands.

Once I acquired an ATU, I found I was able to tune up 80m… albeit with some limitations in signal radiation.

The 40m dipole consisted of two 10m lengths of speaker wire running from the antenna mast on the house, running down to two plastic tent pegs hammered into the ground.  I suppose the wire was no steeper than about 40 degrees from the horizontal.  This worked okay, but it had some annoying nulls, a notable one towards Ipswich… I tried a purely horizontal configuration, but found the nulls to be even worse.

The proper dimensions for a G5RV, is about 16m each leg, and about 8m of balanced feeder to form a “matching section”.  Well, I couldn’t do much about the length of the matching section, but I figured I might as well try extending the legs of the antenna a bit — nothing ventured nothing gained.  I added the extra 6m to each leg, moved the legs out as far apart as I can.  I tried tuning it up that afternoon, and things seemed to be okay… so I left the set on 3.600MHz LSB and switched it off ready for the AWNOI net.

On calling in, I asked about my signal strength after explaining the changes made.  Well, apparently my signal was a vast improvement on last week’s signal.  A S8~S9 signal (with the transceiver momentarily cutting back power) is now a S9+20dB to many stations.

I haven’t tried other bands yet… but this is a promising start. 🙂

Update: Tried tuning it up on the other bands… the results:

Band__Test_Frequency__Power__SWR__Notes______________________________________________
80m   3.599MHz        50W    2.5  High SWR is expected for a non-resonant antenna.
40m   7.074MHz        50W    1.2
20m   14.165MHz       50W    1.9  Heard a station at 14.170MHz just as I was going
                                  to tune up, which is promising also.
15m   21.190MHz       15W    1.9  This set does not like these bands (15m & 10m)!
10m   28.450MHz       25W    1.6  Might need to consider using the CB whip for these.
_____________________________________________________________________________________

Ridiculous Laws

Here’s some humourous food for thought.  Those of you in front of a Linux/Unix system, install fortune-mod and have a squiz at /usr/share/fortune/law — or just view this file that I have compiled.  Looking around, I found some more from elsewhere.

After you’ve stopped laughing… a query… How many of these laws are actually true?  I’m curious to know.

One theory that was proposed to me, is that there may not be a law as such prohibiting some act mentioned, but that someone was charged whilst doing an act mentioned in that document.  (e.g. shooting off a policeman’s tie… shoot anywhere near a policeman, and I’ll bet you’ll get busted!)

So, a query… how many of these are urban myth, and how many are actual laws?  And what law enforcement agency would have the audacity to enforce them?