Wednesday, March 31, 2010

What's the Frequency, Kenneth?

The developers are heads down taking care of the stuff the beta team has provided as feedback and they are tackling the hard stuff first, so there were not too many updates that came out of the software factory yesterday and today other than the ability to key the radio using the FlexWire v2.0 port and some features that would be applicable to transverter use.
With a little time in-between the software feature/functionality testing, I decided to do some frequency stability tests of the FLEX-1500. It should be very good because it uses the same XO as the FLEX-3000.

I set up a test scenario where I used WWV as the frequency reference (yeah, I know, it is not the most stable reference due to atmospheric perturbation of the RF) and used the Frequency Analysis mode in Fldigi v3.20.0b8 to plot variations from a center frequency. In this mode the Fldigi decoder is merely a very narrow band AFC tracking filter. The filter bandwidth is set to 2 Hz and the tracking time constants to about 5 seconds. This reads variations in the frequency and logs them to a CSV file for further analysis.

Below is a graph of the frequency error for 32,000 data points that represents a little less than 4.5 hours of data collection.
(Click on image to enlarge)

What I have observed is that the frequency variation is approximately +/- 0.6 Hz @ 10 MHz over a long sample time (hour). That is a total variation of 0. 12 ppm. Not to bad for a $650 radio. How much is this the ionosphere induced Doppler effect and what is real error? Don't know. I'll let you know when I get my Rb atomic frequency reference.

But what is good is that the frequency drift is minimal when the ambient temperature is fairly constant. A more interesting test would be to observe the drift as a function of temperature during transmit. Maybe that will be the next science project once I can dig up a thermocouple.

Monday, March 29, 2010

I can hear clearly now, the warble is gone...

More big strides made today on the software development front for the FLEX-1500. The Frequency calibration routines, Spur Reduction and the ability to fine tune the frequency of the radio by manually tweaking the DDS Clock Offset is now working.

My FLEX-1500 was off by about 15 Hz, which generates a noticeable warble in the receive audio when you listen to WWV in DSP mode. Now the warble is gone after running the frequency calibration.

I should note that these changes do not have anything to do with frequency stability, just the accuracy of being on frequency when compared to a reference frequency, like WWV. I should be receiving a Rb frequency standard in the next week and I plan to use it to calibrate and check frequency drift.

Sunday, March 28, 2010

If one is good, two are much better

It has been an interesting day testing the FLEX-1500.

This afternoon I went on a PSK spree and announced I was QRV on the FlexRadio reflectors. Propagation wasn't that grand, but there was a nice opening into Texas from NC. Below were the QSOs I made in about an hour of CQing
  • KJ7HQ, Olin
  • WB2TQE, Howard
  • K5KDN, BobT - Running a FLEX-5000 (a FlexRadio software developer)
  • W9OL, Bill - Running a FLEX-5000 (aka Firebrick - A 2009 Flexie award winner)
  • KD5TFD, Bill - Running a SDR-1000 (one of the original SDR experimenters and HPSDR guru)
  • WI5C, Ron
I received very good reports on signal quality, which is what I was most concerned about. Looks like this is going to make a nice digital QRP radio.

Once that was out of the way, I embarked on a mission. I got to thinking. There is no technical reason why you can not run a FLEX-1500 and a FLEX-x000 (Firewire based SDR) on the same PC. PowerSDR 1.19.3 (aka PB-PAL) has the facility to tell PowerSDR what directory is used for storing dynamic data, such as the database, EEPROM backups, etc... So if each instance has it's own dedicated database configured specifically for the radio hardware, it should work.

After a bit of trial and error and learning how to use an undocumented feature (developers never document their code very well), I was able to get a FLEX-3000 and FLEX-1500 running on the same PC at the same time. This was a big deal, but I was not satisfied. Oh no, I have to get dual SDRs running with dual digimode programs at the same time.

For those who are not versed in this, it requires additional digital audio paths from PowerSDR to the digimode sound card program. So I created two additional VAC cables for the second instance of PowerSDR running the FLEX-3000. You have to be able to control this beast, so an additional virtual com port was defined for CAT control.

A low and behold, it WORKS! This is what it looks like on a wide screen monitor. I put everything on one monitor to prove it was not two separate computers.

(click to enlarge)

The FLEX-1500 running @ 48 KHz is in the top right hand side of the monitor and the FLEX-3000 running @ 96 KHz is in the bottom left hand corner. Both are decoding PSK-31 QSOs on different frequencies.

Fldigi is connected to the FLEX-1500 and it is below the FLEX-1500 PowerSDR console.

MixW is connected to the FLEX-3000 and is above the FLEX-3000 PowerSDR console.

Methinks this is way cool.

The Firmware Dance is a "Happy" Dance

I was testing out the FLEX-1500 preamp and noticed something very wrong. When the preamp was enabled, the noise floor and the signal strength rose by 30 dBm. For anyone who has used a FlexRadio Systems SDR knows that this is the exact opposite behavior that is expected. The function of the preamp is to lower the noise floor so that weak signal are not washed out by the noise while the signals' strength does not increase (the S-meter should show no change in the signal strength).

An e-mail relating this observation sent to the hardware gurus on Saturday afternoon was soon answered. "Oh yeah, you don't have the latest firmware and that is needed for the RX level calibration to work". In short order I received the firmware update from Austin, after a round of e-mail clients eating zip files with executables inside them. I un-zipped the new firmware and installer and ran the update. The firmware installation was breeze. It took less than 2 minutes for the whole unpacking, burning and resetting the hardware. BTW, you have to manually power cycle the FLEX-1500 after a firmware update - no big deal.

I ran the RX level calibration and all was well again. The preamp now behaves as it should.

So the "firmware dance" was easy to learn and in the end was a "happy dance" at that.

Sometimes you do dumb things...

Other times you do really stupid things.

Last night I did a really stupid thing.

I was cleaning up the work/test bench and placed the FLEX-1500 and the Astron RS-4A power supply on top of a Shuttle xPC computer getting ready for today's testing. This is a computer I had working with the FLEX-1500 earlier in the day, but the SDR and the p/s were on the bench, not on top of the computer.

So, just before going to bed I fired up the FLEX-1500 so that I could leave it burning in over night in receive mode while I slept. Within 1 second of firing up PowerSDR I received a dreaded Blue Screen of Death (BSoD). Oh no. It can't be. The FLEX-1500 can not be responsible for generating BSoDs. This would be worse than HORRIBLE! Reboot. BSoD. Reboot again. BSoD. I start to panic until I realized something. I had done something REALLY stupid. I mean REALLY STUPID.

I had placed the Astron RS-4A power supply on top of the computer. It is not a switcher, but a linear power supply. They have transformers. Transformers put off strong magnetic fields. RAM chips in strong magnetic fields go bonkers. Scrambled RAM = BSoD. DUH!

I relocated the RS-4A to a place far, far away from the PC and all is well. I did do an extensive checkdisk to make sure the hard drive was not affected too and it wasn't. All is well.

WARNING: When you are tired, stop operating heavy machinery and do not rearrange the shack.

Saturday, March 27, 2010

In the beginning...


It has been a really busy day at the FlexRadio Hardware Beta Test Lab: South-East. I thought that I might share some updates and interesting observations related to my first impressions of the FLEX-1500, as I don't get to see the hardware as it is developed and tested in the lab at HQ (Austin) before I get it to play with it and break it.

First off the FLEX-1500 arrived Friday AM bright and early via UPS.


It is a small little thing. Definitely a "Baby Flex". Very light too. My Astron RS-4A power supply weighs a lot more than it does.

After ripping open the package like a crazed child on Christmas morning to see what was inside, I was happy to find a FLEX-1500 (s/n 10-10-0009), an unterminated power cable and a USB A-B cable.

The first order of business is amps and volts. I terminated the power cable with a pair of 15 amp Anderson PowerPole connectors. All of my Vdc distribution blocks are Anderson PowerPoles. It makes it easy to connect and disconnect different devices that way. That took about 5 minutes to install the connectors of which 4 of those minutes were spent looking for the crimper.

Now we have "juice".

The first order of business was to perform the "How many USB controllers can you plug this thing into and it show up in the Windows Device Manager" test. The FLEX-1500 appears to Windows and a USB HID audio device and uses the standard USB audio drivers that comes as a default driver with Windows, so there is nothing to install as far as a hardware driver is concerned. This is NICE. So I tested a XP laptop and Desktop, two different Win7 x64 machines and one ATOM 330 running XP. For the most part, we had no problems with this test. One controller on a AMD machine running Win7 x64 is having some issues and we are investigating that. It could be the low-level USB hub driver that is the issue.

Now on to the good stuff. Firing up PowerSDR and making this Baby Flex sing.

Before I get into this in detail, I need to note that the hardware integration into PowerSDR v1.19.3 (aka PB-PAL) is not 100% complete, so there are things that don't work yet and parameters you have to set manually. It can be a bit cumbersome and you really have to pay attention to what is going on. This requires taking lots of notes and lots of feedback to the hardware and software development teams.

I fired up the FLEX-1500 using an existing PowerSDR database I was using for a FLEX-5000. Obviously it could not find the F5K hardware, so I had to go into demo mode, reset the DB for a FLEX-1500 and restart. All this fumbling around took about 10 minutes to figure this out and to get the radio operational in receive mode. YIPPEE! I am hearing and seeing signal on the Panadapter. NICE.

First thing I check was to see if the RX was on frequency with WWV. It was not. I was a few KHz off. So a quick phone call to the gurus in Austin revealed that Eric had taken the day off to move into a new home! I will not go into the gory details only to say that my FLEX-1500 arrived 20 minutes before the "How to use your beta FLEX-1500" e-mail was sent and by that time I was in SDR nirvana and never saw it arrive. My problem resolution was in the e-mail DOH!

Now I am back on frequency, only 13 Hz low. Should I run a frequency calibration? No. That feature isn't in the code yet. 13 Hz is close enough.

Time for a QSO. I decided on a digital mode QSO due to the low power, so I configured VAC and Fldigi and was decoding PSK in a matter of minutes. So far so good.

I checked out TX using a dummy load and got that working. The PA gain settings are not yet stored in the EEPROM, so you have to manually set the drive gain for each band. I listened and visually observed my transmitted PSK signals on a FLEX-3000 and all looked good. It is time for a CQ.

I called Austin and we set up a PSK31 SKED. At 1931 UTC on 26-3-2010, the first FLEX-1500 to FLEX-1500 QSO was logged with K5FRS in Austin TX. A distance of about 1100 miles. The signal reports were 539 each way. Having a HOT receiver allows you to hear in the noise.

After the "fun" was over, it was time to start doing a more critical analysis of what was working, what wasn't working and what was acting strange. I'm not going to go into the details of all that, because it really doesn't matter since those things will be addressed in short order and it is a closed beta test. No need to air dirty laundry when wash day is close at hand. I will say the issues are very minimal and software related (as they should be).

I had to take some time out to go see one of my neighbor's daughter in her school play and then watch my beloved Vols whip the Ohio State University in B-ball. Between the Vols winning and playing with the FLEX-1500, it was a very good day.

By the end of the night, I was making several PSK-31 QSOs. The last one was a nice little rag chew with AD5QE who was operating a Ten-Tec.

The plan for tomorrow is to get the FLEX-1500 working on 5 different computers that all have different processor types and operating systems. More digital mode QSOs and hopefully a new distance record for the FLEX-1500. It will be a busy day.