Perseus tools and hints

Perseus tools and hints

How to fix problems with Perseus and USB3 ports

BIOS settings:

  • USB3 XHCI  = Off
  • USB Legacy = On

If you have not an BIOS that allows this setting, then add a USB 2 Interface for your PC.

Virtual COM ports

  • com0co
  • N8VB
  • VSPE

VAC Settings for Perseus

It is essential that you read the VAC help file. Decoding with the demo VAC software is NOT possible! Whenever possible, connect the Perseus directly to your application! This is available from go2MONITOR/go2DECODE

  • SR: 22050 .. 192000
  • BPS: 8 .. 24
  • NC: 1 .. 2
  • Max inst: 20
  • ms/int: 10
  • Stream fmt: Cable format.
  • Connected source: Line
  • Clock corr: 100.000% (or correct the sampling error of your sound card)
  • The Perseus receiver delivers a SR of 31250 Hz.


  • Dream decodes I/Q 0IF. Start dream with the following command line paramters: C:\Program files\Dream\dream.exe -c 5
  • Start of the help window: Dream.exe -h

Perseuse WAV Format

The RIFF defines that, apart from the mandatory three chunks in the header of a WAV file, an application can insert application-defined chunks.
The Perseus software uses an 'rcvr' application-defined chunk.

It contains:

  • the sampling rate
  • the center frequency
  • and other useful data

Perseus can only play back files with this 'rcvr' chunk in the header.

go2MONITOR can playback Perseus wav files.

Perseus metadata is contained in a special chunk just before the 'data' chunk. It is named 'rcvr' and has the following data structure (longs are 32 bit, time_t is 32 bits)

typedef struct {
char chunkID[4]; // ="rcvr"
long chunkSize; // chunk len - 8
long nCenterFrequencyHz; // center freq in Hz
long nSamplingRateIdx; // 0=125k, 1=250k, 2=500k, 1 M
time_t timeStart; // UTC rec time init
unsigned short wAttenId; // 0=0dB, 1=10dB, 2=20dB, 3=30dB
char bAdcPresel; // 0=Presel Off, 1=Presel On
char bAdcPreamp; // 0=ADC Preamp Off, 1=ADC Preamp ON
char bAdcDither; // 0=ADC Dither Off, 1=ADC Dither ON
char bSpare; // for future use (default = 0)
char rsrvd[16]; // for future use (default = 000..0)
} RcvrChunk;

The samples are in 24 bits little indian format (Q follows I, least significant byte first). I3 and Q3 seem to take only two different values: 0xff and 0x00. I3 and Q3 are the most significant bytes of the IQ samples.

Files recorded with 2MS/s have 16-bit samples


  • Windows 7 and Vista likes to store files in user accounts instead of the expected program directory. Use right mouse click (run as administrator) to start Perseus.
  • if you use a USB socket for the first time, the drivers must be new installed.


Info's found on the internet.

  • Be sure the Perseus is warmed up for an hour or two in normal receiver mode to give the Perseus time to settle down.
  • Perform a calibration on the Perseus receiver. I go to a time signal like WWV in the 125KHZ bandwidth mode, AM, so it is centered and click the 'Zoom' button to magnify the signal. Click 'center' button so that 'Cal' is light. Then precisely click on the exact center of WWV (there is a little spike there) and when sure it is right, I click 'Cal' to finish reciever calibration.
  • Now start regedit32 and go to HKEY_CURRENT_USER - Software and find the Microtelecom entries with Perseus and Perseussvr keys under it. Under the V4.0a and V1.0a subkeys you will find the entry 'AdcSamplingRate' which needs to have the same hex number values in both places.
  • Since you set your calibration on a fully warmed up Perseus, you can hightlight the V4.0a key and double-click on the 'AdcSamplingRate' entry and a box will come up with the number value highlighted. Do a 'Control-C' to copy the highlighted number to the clipboard.
  • Click on the V1.0a key and double-click on it's 'AdcSamplingRate' entry to bring up the hex value that the server has stored. Do a 'Control-V' to the highlighted entry and it will change to the same hex value as in the V4.0a reciever entry.
  • You can click back and forth between the V4.0a and V1.0a keys to insure that both 'AdcSamplingRate' entries have the same values after saving with an 'OK'. Now the server has the same calibration values as the radio client.
  • The following is optional but would be of interest to most.... You CAN directly check your Perseus as though it were remote, to see what it looks like and to validate that your calibration is correct for the server.

Here are the steps if you are curious or like the alternate way of calibration:

  • Assuming your Perseus and server already work and you know the IP address of your server machine and the password you used for full remote client access to your radio...
  • Run the server application as normal.
  • Start your Perseus radio/client (same machine as server). Click the 'Net' button to start the blank window.
  • Click the 'Addr' button. Enter YOUR OWN IP address (remember both your server AND client are running on this same PC) and also the password you entered when setting up full server access for remote clients. (Entering your password allows you to calibrate the server here, if you like)
  • You should start operating now as a 'remote' on your own PC. You should see the startup text in the server log indicating it is you. Now you can go look at WWV in 125KHZ AM mode again and use 'Zoom' to look at the signal. No need to change anything if the above method was done correctly. However, you could change the server calibration here if you didn't like fooling around in the Registry. Basically, you would be calibrating the radio first (as show in the beginning)as a client radio and then again here from a server perspective. You might not have exactly the same hex values because of drift since the first calibration, but it would be good enough. Try one or both methods. They are easier than it looks here. The 'server' calibrate method in this section is probably safer to do than the Registry method for those who are not technical or are fumble fingers. Now everyone can be precisely calibrated.

Last update on 2018-05-12 by Rolf Haenggi.

Go back