[hpsdr] Multiple Mercury Firmware and Software - K5SO

Joe Martin K5SO k5so at valornet.com
Wed Jan 25 10:37:25 PST 2012


All, 

For the past several months I have been examining issues associated with heavy loading of the Mercury FPGA, as is necessary if we make a single firmware version that is compatible with all variants of our various PC programs.  The current official version of Mercury firmware, Mercury v3.1,  loads the FPGA to about 98% of the available logic elements. 

While Mercury v3.1 seems to perform adequately when used with most PCs the FPGA loading is quite heavy and leaves no room for additional features to be added without significantly degrading the performance of Mercury.  Additional loading results in the production of sporadic "spikes" and seemingly random extraneous signals being produced in the receive spectrum as well as random timing mis-steps that cause momentary glitches in operation.  

This fact has caused me to conclude that for high-performance applications of HPSDR we should strive to keep the loading within the Mercury FPGA as light as possible.  This is true in particular for applications that require precision phasing of multiple coherent signals such as diversity, beam steering, and direction finding.

Therefore, I have put together a complete set of firmware and software for multiple Mercury board operations that loads the Mercury FPGAs to only 32% of the available logic resources, implementing only a single receiver in each Mercury board.  The firmware changes for Mercury required that I modify the communications protocol slightly between Metis/Ozy/Magister and the PC from the official HPSDR communications protocol and also required a modification of the Metis/Ozy/Magister broadcast stream to the Atlas bus itself.   Thus a complete new set of firmware (for Metis, Ozy/Magister, Mercury, and Penelope/PennyLane) is necessary when running my new multiple Mercury programs for diversity, beam steering, and (soon) direction finding.  

As best I have been able to determine, this new "special purpose" firmware set is nevertheless compatible with all of the existing versions of PC programs for HPSDR, with the caveat that only one receiver is implemented on each Mercury receiver board.  Thus, if you run a multiple receiver PC program the multiple receivers will reside on multiple Mercury boards instead of on a single Mercury board.  In particular, if you have only one Mercury board on the Atlas bus only one receiver will be functional in your program.  For programs that allow N receivers you should use N Mercury boards with this set of firmware, up to a maximum number of 4 receivers/Mercury boards.  

As usual, the firmware, software, and supporting files for multiple Mercury operations are available for download from 

http://www.k5so.com/HPSDR_downloads.html

Included on the download pages are the following:

Windows Software (executable and source code):
   PowerSDR v2.2.3_dual_Mercury  (K5SO 25JAN2012)
   PowerSDR v2.2.3_triple_Mercury (K5SO 4DEC2011)

Firmware (executable and source code):
     Firmware Update Package 4DEC2011 containing:
          Mercury v7.0
          Metis v1.7 (suggested)
          Ozy v2.2    (suggested)
          Penelope v1.6 (suggested)

Additional supporting files:
     USBBlaster-Binaries Folder
     Communications Protocol document (suggested)

Please keep in mind that the above-listed software, firmware, and documents are NOT the official firmware, software, or documentation set HPSDR project in general.  The official HPSDR code is located on the SVN repository, as always.  The above is a set of code specially prepared  to enhance multiple, coherent Mercury operations, even though the set should work fine with single Mercury board setups too.   Use the above firmware files as a complete set, as individual firmware components are NOT compatible with firmware versions not in this list.  

73,  Joe K5SO













More information about the Hpsdr mailing list