<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-13992472</id><updated>2011-11-27T19:44:55.665-05:00</updated><category term='QS1T'/><category term='QS1R'/><category term='Updates'/><category term='SDR'/><category term='SDR LO'/><category term='SDR K2'/><category term='SDR GUI'/><title type='text'>Software Radio Laboratory LLC Blog</title><subtitle type='html'>Here I will post information about the current status of SRL-LLC projects and other general SDR information.  SRL-LLC website: www.srl-llc.com</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>66</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13992472.post-7226235069518935637</id><published>2011-09-02T09:00:00.002-05:00</published><updated>2011-09-02T09:00:47.442-05:00</updated><title type='text'></title><content type='html'>September 2, 2011&lt;br /&gt;&lt;br /&gt;News section has been added to the &lt;a href="http://qs1r.wikispaces.com/News"&gt;QS1R Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-7226235069518935637?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/7226235069518935637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=7226235069518935637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/7226235069518935637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/7226235069518935637'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2011/09/september-2-2011-news-section-has-been.html' title=''/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-708762732248577714</id><published>2011-08-10T07:05:00.002-05:00</published><updated>2011-08-10T07:06:33.090-05:00</updated><title type='text'>Updates</title><content type='html'>For updates and latest information on the QS1R Receiver please visit the QS1R Wiki at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://qs1r.wikispaces.com/"&gt;http://qs1r.wikispaces.com/&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-708762732248577714?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/708762732248577714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=708762732248577714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/708762732248577714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/708762732248577714'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2011/08/updates.html' title='Updates'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-4762766947755524218</id><published>2010-07-05T08:19:00.000-05:00</published><updated>2010-07-05T08:20:27.710-05:00</updated><title type='text'>QS1R Update</title><content type='html'>&lt;span style="font-family:Verdana;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="text-decoration: underline;"&gt;07-05-2010&lt;br /&gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;      &lt;span style="text-decoration: underline;"&gt;QS1R STATUS:&lt;/span&gt;&lt;br /&gt;     &lt;br /&gt;QS1R Receivers are now shipping immediately upon ordering.  The next version of software called SDRMAXIV is under development.  The QS1T and RFFE1 designs are being integrated into the SDRMAXIV software.  Development has started on a transciever board which includes an integrated DSP.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-4762766947755524218?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/4762766947755524218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=4762766947755524218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/4762766947755524218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/4762766947755524218'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2010/07/qs1r-update.html' title='QS1R Update'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-6597009893918438274</id><published>2009-12-21T17:36:00.001-05:00</published><updated>2009-12-21T17:40:40.851-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDR GUI'/><title type='text'>SDR GUIs</title><content type='html'>WPF = a natural for Software Defined Radio GUIs&lt;br /&gt;&lt;br /&gt;(stay tuned for further information)&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-6597009893918438274?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/6597009893918438274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=6597009893918438274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/6597009893918438274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/6597009893918438274'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2009/12/sdr-guis.html' title='SDR GUIs'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-3275710204769249459</id><published>2009-11-21T14:31:00.002-05:00</published><updated>2009-11-21T14:34:16.383-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Updates'/><title type='text'>QS1R Status</title><content type='html'>QS1R Receivers are now shipping within 7-10 business days after order.   The current revision of QS1R is RevD.  The future QS1T Transmitter board and RFFE1 front end board are both still at the pre-production stage.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-3275710204769249459?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/3275710204769249459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=3275710204769249459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/3275710204769249459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/3275710204769249459'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2009/11/qs1r-status.html' title='QS1R Status'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-4729745369366655045</id><published>2009-05-05T09:19:00.004-05:00</published><updated>2009-05-05T09:27:18.052-05:00</updated><title type='text'>Future projects, HPSDR, etc...</title><content type='html'>&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;New QS Transceiver Projects:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;http: com="" qs1r_latest="" documents="" pdf=""&gt;&lt;a href="http://www.philcovington.com/qs1r_latest/Documents/QS_TRX_04_23_2009.pdf"&gt;http://www.philcovington.com/qs1r_latest/Documents/QS_TRX_04_23_2009.pdf&lt;/a&gt;&lt;br /&gt;&lt;http: com="" qs1r_latest="" documents="" pdf=""&gt;&lt;br /&gt;&lt;http: com="" qs1r_latest="" documents="" pdf=""&gt;&lt;a href="http://www.philcovington.com/qs1r_latest/Documents/QS_Minimal_SARX.pdf"&gt;http://www.philcovington.com/qs1r_latest/Documents/QS_Minimal_SARX.pdf&lt;/a&gt;&lt;br /&gt;&lt;http: com="" qs1r_latest="" documents="" pdf=""&gt;&lt;br /&gt;&lt;http: com="" qs1r_latest="" documents="" pdf=""&gt;&lt;a href="http://www.philcovington.com/qs1r_latest/Documents/QS_Antenna_Board.pdf"&gt;http://www.philcovington.com/qs1r_latest/Documents/QS_Antenna_Board.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.philcovington.com/qs1r_latest/Documents/QS_Bus_Board.pdf"&gt;http://www.philcovington.com/qs1r_latest/Documents/QS_Bus_Board.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.philcovington.com/qs1r_latest/Documents/QS_Display_Board.pdf"&gt;http://www.philcovington.com/qs1r_latest/Documents/QS_Display_Board.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;HPSDR:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I am sad to say that I can no longer participate or support the HPSDR project.  Please see&lt;a href="http://hpsdr.org/why.html"&gt; &lt;/a&gt;&lt;http: org="" html=""&gt;&lt;a href="http://hpsdr.org/why.html"&gt; this &lt;/a&gt;for an explanation as to why this is.&lt;/http:&gt;&lt;/http:&gt;&lt;/http:&gt;&lt;/http:&gt;&lt;/http:&gt;&lt;/http:&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-4729745369366655045?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/4729745369366655045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=4729745369366655045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/4729745369366655045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/4729745369366655045'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2009/05/future-projects-hpsdr-etc.html' title='Future projects, HPSDR, etc...'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-632057136649605402</id><published>2009-02-03T09:25:00.018-05:00</published><updated>2009-02-03T11:21:49.346-05:00</updated><title type='text'>RFFE1 Why you may (or may not) need it</title><content type='html'>RFFE stands for "Radio Frequency Front End" and the "1" stands for the first version (0-62.5 MHz coverage). &lt;br /&gt;&lt;br /&gt;When I was designing the QS1R board, I had to decide whether to include bandpass filtering and RF amplification on the board.  In fact the initial prototypes "RevA" included RF amplification on the QS1R board.  Unlike another DDC based direct sampling receiver "Perseus", QS1R was designed to be more than a SW receiver.  In addition to a SW receiver, QS1R was meant to facilitate experimentation in the RF spectrum up to at least 300 MHz.  I finally settled on a 55 MHz low pass filter (which can be bypassed) and no active components in front of the ADC on QS1R.   Any active devices, bandpass filters, or attenuation would be added by a separate board such as the RFFE1.&lt;br /&gt;&lt;br /&gt;The antenna that I use for my QS1R is a center fed, non-resonant dipole at 50 feet.  The total wire length is about 240 feet with only about 100 feet of that running horizontally.  It is fed with 450 ohm ladder line connected in the house to a 4:1 balun.  The last 10 feet of feed line is coax to the QS1R from the balun.  I do not use a tuner with this antenna for receiving.   In my neighborhood, all of the utilities are under ground so the noise level is typical or maybe a bit less than the noise level of a suburban area.  With this antenna and the QS1R, I find that band noise is always greater than the QS1R's noise floor until about 21 MHz.  I arbitrarily have assumed (possibly incorrectly) that my antenna installation is average.  Any amplification in front of the QS1R's ADC (below 21 MHz) is only a detriment in this case.  The QS1R typically overloads at +9 to +10 dBm so amplification would degrade the strong signal handling capability of the receiver.  The largest signal level that I have observed at my location has been about 0 dBm in the 0 - 62.5 MHz region.  Contrary to what some may believe in the above case for the QS1R, bandpass filtering will improve nothing and, because BPFs typically have some loss, degrade the sensitivity slightly.  As long as the atmospheric or band noise is greater than the noise floor and the signals levels in the 0 - 62.5 MHz region is below +9 dBm, bandpass filtering and/or amplification does not gain anything.&lt;br /&gt;&lt;br /&gt;By providing RF front end add-on boards such as the RFFE1, a front end (if even desired) can be tailored to the specific application of QS1R and will not impose a significant cost increase to the QS1R board for those who do not need the RFFE(1) boards.  The QS1R is capable of under sampling up to ~ 500 MHz, so it will be possible to design RFFE(x) boards that will allow coverage up to ~ 500 MHz.  For example, RFFE2 would provide low noise amplification, bandpass filtering, and attenuation of the range of 125 to 187.5 MHz ( including 2 meter ham band coverage).  There is some interest by individuals in FM band Dxing which could be provided by a RFFE(x) board.&lt;br /&gt;&lt;br /&gt;The RFFE1 board is designed to fit within the existing QS1R Aluminum enclosure by replacing the front and rear end plates with new end plates (supplied with RFFE1).  RFFE1 has switchable attenuation, two stages of switchable low noise amplification, and switchable filtering.  It is controlled via the QS1R's I2C bus and derives its DC power from QS1R.  The RF amplifiers provide up to 26 dB of gain (noise figure ~ 2 dB).  With the attenuation switched in, the QS1R can handle signal levels up to +29 to +30 dBm without overload of the ADC.  Each RF amplifier provides ~ 13 dB gain.  With both amplifiers switched in and attenuation switched off, the QS1R can handle signal levels up to -17 dBm (or -4 dBm with one RF amp switched in) without overloading the ADC.  The QS1R's IP3 is &gt; +50 dBm so the RF amplification was designed to not degrade the IP3 excessively.  With the amplifiers switched in, the IP3 is ~ +32 to + 33 dBm.  Contrary to what some have speculated elsewhere, the RFFE1 does not use the LTC6400-20 ADC driver that HPSDR Mercury uses for a preamp.  In HPSDR Mercury, the 20 dB amplification provided by the LTC6400-20 is always present - the preamp is bypassed by switching 20 dB of attenuation in front of the LTC6400 ADC driver providing a net gain of 0 dB.  In the RFFE1, the two RF amplifiers are individually switchable in and out of line and have their own impedance matching and filtering networks for enhanced performance.&lt;br /&gt;&lt;br /&gt;With any amplification in front of the QS1R's ADC and without filtering, the whole 0 - 62.5 MHz region is amplified equally - so any signal within this range could possibly overload the ADC if its signal strength amplified by the gain of the RF amp exceeds +9 to +10 dBm.  This is where band pass filtering is an advantage.  It is not easy to design the filtering so that adequate attenuation is provided out of band as well as not degrading the IP3 performance of the receiver.  Luckily we are not dealing with an analog radio, so the assumptions about exactly what is needed in a conventional receiver does not necessarily apply to direct sampling receivers such as the QS1R. I spent a very large amount of time in experimentation and testing to come up with a filtering system for RFFE1 that does not degrade IP3 performance.  I was surprised in what I found and eventually decided on, but that is a subject for a future blog entry ;-).   I did a lot of modeling of various filter networks to determine the RF current in each inductor given the physical and electrical characteristics of each type of inductor.  This helped me chose the best filter arrangement and inductor type for the RFFE1 without degrading IP3 as much as other competing receiver's bandpass filters degrade IP3.&lt;br /&gt;&lt;br /&gt;So who needs a RFFE1?  Here are my guesses:&lt;br /&gt;&lt;br /&gt;1. Anyone who wants to use QS1R above ~ 18 MHz with an average antenna system.  This includes 10 and 6 meters.&lt;br /&gt;&lt;br /&gt;2. If your antenna is less efficient and you have determined that the noise floor of QS1R is above the band noise at some point below 18 MHz.  An easy way to determine this is by disconnecting your antenna while watching the noise floor or s-meter in SDRMAX(II/III).  If the noise floor increases by at least 6 dB when you reconnect your antenna then you have adequate sensitivity at that frequency.&lt;br /&gt;&lt;br /&gt;3. If your antenna does not provide a 25 - 75 ohm impedance to QS1R.  Antennas that deviate far from 50 ohms will manifest as severely reduced sensitivity with QS1R.  In my case with my non-resonant 450 ohm ladder line fed dipole, a 4:1 balun is all that is required for me to have adequate sensitivity up to about 21 MHz.&lt;br /&gt;&lt;br /&gt;4. Signal strengths in your location in the 0 - 62.5 MHz range exceeds +9 dBm at the antenna input to the QS1R receiver.  In this case the switchable filtering and/or attenuation provided by RFFE1 will eliminate the overload.  QS1R and SDRMAXII provides the nice capability of viewing 50 MHz of spectrum at once - it is easy to see the maximum signal levels your are receiving in that range.&lt;br /&gt;&lt;br /&gt;5. RFFE1 has two switchable antenna inputs as well as additional static/surge protection.  RFFE1 also provides a connector for external receiver mute input, two protected general purpose IO lines, as well as an external connection to the QS1R I2C bus for external relay control and/or switching.  While these options are not necessary for the functioning of QS1R, they are nice to have in some cases.&lt;br /&gt;&lt;br /&gt;Who does not need a RFFE1?&lt;br /&gt;&lt;br /&gt;1. If your operation is below ~18 MHz and your antenna system is adequate (see 2 and 3 above) and you have no overload problems (you don't see your "clip" LED on the front of QS1R illuminating) then you won't gain much with RFFE1. This generally includes using QS1R with transverters and for an IF receiver with other receivers/transceivers.&lt;br /&gt;&lt;br /&gt;Exact performance numbers for RFFE1 will be posted in the near future as well as pricing.  Hint: The price of QS1R and RFFE1 together will not exceed the price of competing direct sampling receivers!&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-632057136649605402?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/632057136649605402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=632057136649605402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/632057136649605402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/632057136649605402'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2009/02/rffe1-why-you-may-or-may-not-need-it.html' title='RFFE1 Why you may (or may not) need it'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-4675856750679914498</id><published>2008-07-16T05:59:00.001-05:00</published><updated>2008-07-16T06:02:44.904-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QS1R'/><category scheme='http://www.blogger.com/atom/ns#' term='SDR'/><title type='text'>SDR Discussion</title><content type='html'>Please subscribe to the QS1R yahoo group at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.yahoo.com/group/qs1r/"&gt;http://groups.yahoo.com/group/qs1r/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;for the latest news and discussion on SDR topics and the QS1R.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;Phil N8VB&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-4675856750679914498?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/4675856750679914498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=4675856750679914498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/4675856750679914498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/4675856750679914498'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2008/07/sdr-discussion.html' title='SDR Discussion'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-6637451509504342928</id><published>2008-01-30T08:57:00.000-05:00</published><updated>2008-01-30T09:02:59.848-05:00</updated><title type='text'>Production QS1R RevC Pictures</title><content type='html'>&lt;span style="color: rgb(153, 0, 0);"&gt;QS1R Webpage is up:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;a href="http://www.philcovington.com/QuickSilver/"&gt;http://www.philcovington.com/QuickSilver/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Orders for the first group of QS1Rs from assembly will be taken very soon.  Please keep checking the website.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;See the latest news at:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;a href="http://groups.yahoo.com/group/qs1r/"&gt;http://groups.yahoo.com/group/qs1r/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is a picture of a production QS1R RevC board:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/qs1r_revc_front_800_600.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://www.philcovington.com/SDR/PICS/qs1r_revc_front_800_600.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/qs1r_revc_back_800_600.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://www.philcovington.com/SDR/PICS/qs1r_revc_back_800_600.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-6637451509504342928?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/6637451509504342928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=6637451509504342928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/6637451509504342928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/6637451509504342928'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2008/01/production-qs1r-revc-pictures.html' title='Production QS1R RevC Pictures'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-3818877432816041374</id><published>2007-12-31T19:23:00.002-05:00</published><updated>2007-12-31T19:25:31.637-05:00</updated><title type='text'>QS1R Rev B Picture and new Yahoo group</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_7QZOYF2VU5U/R3mIJRhN7RI/AAAAAAAAACc/5phj_ooQUNA/s1600-h/PICT1761r.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_7QZOYF2VU5U/R3mIJRhN7RI/AAAAAAAAACc/5phj_ooQUNA/s400/PICT1761r.jpg" alt="" id="BLOGGER_PHOTO_ID_5150297341777800466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.yahoo.com/group/qs1r/"&gt;http://groups.yahoo.com/group/qs1r/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-3818877432816041374?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/3818877432816041374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=3818877432816041374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/3818877432816041374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/3818877432816041374'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2007/12/qs1r-rev-b-picture-and-new-yahoo-group.html' title='QS1R Rev B Picture and new Yahoo group'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_7QZOYF2VU5U/R3mIJRhN7RI/AAAAAAAAACc/5phj_ooQUNA/s72-c/PICT1761r.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-3920626516004367877</id><published>2007-10-30T15:55:00.000-05:00</published><updated>2007-10-30T15:56:01.286-05:00</updated><title type='text'>QS1R REVB Picture</title><content type='html'>&lt;a href="http://www.philcovington.com/SDR/PICS/qs1rt_revb.jpg"&gt;http://www.philcovington.com/SDR/PICS/qs1rt_revb.jpg&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-3920626516004367877?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/3920626516004367877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=3920626516004367877' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/3920626516004367877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/3920626516004367877'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2007/10/qs1r-revb-picture.html' title='QS1R REVB Picture'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-7058846120473293634</id><published>2007-10-30T10:45:00.000-05:00</published><updated>2007-10-30T10:46:56.695-05:00</updated><title type='text'>History of HPSDR Mercury and Quick Silver</title><content type='html'>&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt;"&gt;History of HPSDR Mercury and Quick Silver&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="line-height: normal;"&gt;Philip Covington, N8VB&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;Early HPSDR and XYLO&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;In 2005 I started a High Performance SDR (HPSDR) project which was to consist of a motherboard carrying a FPGA/USB 2.0 interface and power supply with the provision for plug in modules through 40 pin headers.&lt;span style=""&gt;  &lt;/span&gt;I had planned a narrow band high dynamic range module based on a QSD/DDS/PCM4202 audio ADC and a wide bandwidth module based on a high speed 16 bit ADC: &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.philcovington.com/SDR/PICS/HPSDR_FPGA_USB_Board_top1_800600.jpg"&gt;http://www.philcovington.com/SDR/PICS/HPSDR_FPGA_USB_Board_top1_800600.jpg&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.philcovington.com/SDR/PICS/HPSDR_FPGA_USB_Board_top4.jpg"&gt;http://www.philcovington.com/SDR/PICS/HPSDR_FPGA_USB_Board_top4.jpg&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I soon selected the LTC2208 ADC from Linear Technology.&lt;span style=""&gt;  &lt;/span&gt;A representative from Linear Technology came across my blog (&lt;a href="http://pcovington.blogspot.com/"&gt;http://pcovington.blogspot.com/&lt;/a&gt; ) and offered evaluation boards and samples to support the project.&lt;span style=""&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;At about the same time my HPSDR project came about, Phil Harman, VK6APH and Bill Tracey, KD5TFD were interested developing a sound card replacement to be used with the SDR-1000 and had started developing with a FPGA development board (XYLO) that had a high speed USB 2.0 interface.&lt;span style=""&gt;  &lt;/span&gt;They formed the XYLO SDR group to support this.&lt;span style=""&gt;  &lt;/span&gt;In March 2006, Phil Harman proposed that we merge my HPSDR project and XYLO SDR group into a common project since our goals were similar.&lt;span style=""&gt;  &lt;/span&gt;By the middle of March 2006 an announcement was made that the groups would merge and the HPSDR.org website was set up.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;HPSDR ATLAS and OZY&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;One of the first tasks was to define a backplane since various backplanes, such as passive PCI, were being proposed.&lt;span style=""&gt;   &lt;/span&gt;I volunteered for the task which became the ATLAS backplane:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.philcovington.com/HPSDR/ATLAS/REVA/atlas_1_REVA_BW.pdf"&gt;http://www.philcovington.com/HPSDR/ATLAS/REVA/atlas_1_REVA_BW.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.philcovington.com/HPSDR/ATLAS/ALPHA/Atlas_assy.pdf"&gt;http://www.philcovington.com/HPSDR/ATLAS/ALPHA/Atlas_assy.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;We had an early volunteer to design an ATLAS plug-in FPGA/USB board to replace the XYLO board, but unfortunately the volunteer was not able to follow through with the task.&lt;span style=""&gt;   &lt;/span&gt;I agreed to do the design for this board which became the HPSDR OZY board and to provide for the possibility of controlling a SDR-1000 through the OZY’s IO ports that simulate a PC parallel port:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.philcovington.com/SDR/OZYREVA.jpg"&gt;http://www.philcovington.com/SDR/OZYREVA.jpg&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;Early HPSDR Mercury&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Soon after the OZY design was done I began to pursue Mercury.&lt;span style=""&gt;  &lt;/span&gt;I initially used the Linear Technology supplied evaluation board for the LTC2208.&lt;span style=""&gt;  &lt;/span&gt;In May of 2006 I became very busy with a work project so I asked Phil Harman if he would like me to send him one of my LTC2208 evaluation boards to play with.&lt;span style=""&gt;  &lt;/span&gt;I also sent Phil a Crystek low phase noise crystal oscillator that I had chosen as a candidate for driving the encode clock of the LTC2208 ADC.&lt;span style=""&gt;  &lt;/span&gt;In the link below you can see the Mercury breadboard connected to the OZY.&lt;span style=""&gt;  &lt;/span&gt;The LTC2208 evaluation board can be seen plugged in vertically to the breadboard with the RG 174/U cable running to the top of it:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://hpsdr.org/wiki/index.php?title=Image:OZY_MERC_TEST.JPG"&gt;http://hpsdr.org/wiki/index.php?title=Image:OZY_MERC_TEST.JPG&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;Quick Silver Version 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;In late 2006 I decided to design a board that I called Quick Silver (related to Mercury) which would become the initial prototype for HPSDR Mercury:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.philcovington.com/SDR/PICS/QS1R_proto.JPG"&gt;http://www.philcovington.com/SDR/PICS/QS1R_proto.JPG&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.philcovington.com/SDR/QS1RA_12012006.pdf"&gt;http://www.philcovington.com/SDR/QS1RA_12012006.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The initial thought about the design of HPSDR Mercury was that it would use either an Analog Devices AD6636 or AD6620 Digital Receive Signal Processor chip.&lt;span style=""&gt;  &lt;/span&gt;The ADC6636 was only available in BGA packaging so I chose to use two AD6620 DDCs on the Quick Silver (also called QS1R REV AB).&lt;span style=""&gt;   &lt;/span&gt;I wanted to investigate whether the AD6620/6636 was suitable for use with the LTC2208 in a HF receiver and also to test the choice of low noise Crystek oscillator encode circuitry which would be critical in determining the LTC2208 ADC’s performance.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;It quickly became clear that the AD6620/6636 devices were not suitable from a dynamic range perspective for use in the HPSDR Mercury.&lt;span style=""&gt;   &lt;/span&gt;About 90% of the DDC functionality was moved from the AD6620 into the Cyclone II FPGA on the QS1R REV AB prototype.&lt;span style=""&gt;  &lt;/span&gt;There was not enough room in the FPGA to implement a useful final FIR compensating filter to correct for the passband droop of the CIC filters used in the FPGA implemented DDC.&lt;span style=""&gt;  &lt;/span&gt;I then investigated using two external FIR filter chips made by a company called QuickFilter Technologies:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.quickfiltertech.com/files/QF1D512%20SavFIRe%20Datasheet.pdf"&gt;http://www.quickfiltertech.com/files/QF1D512%20SavFIRe%20Datasheet.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Two of these chips were soon grafted on the QS1R board in place of the AD6620 parts for testing.&lt;span style=""&gt;   &lt;/span&gt;These chips worked very well but I was concerned about their availability.&lt;span style=""&gt;  &lt;/span&gt;I made a decision at that point to “bite the bullet” and wrote a one-tap-per-clock FIR filter in Verilog to move all of the DDC functionality into the FPGA.&lt;span style=""&gt;  &lt;/span&gt;I was easily able to fit two 256 tap FIR filters into the remaining space in the Cyclone II FPGA which eliminated the need for the external QuickFilter FIR chips.&lt;span style=""&gt;  &lt;/span&gt;During this time Altera also announced the availability of the Cyclone III FPGA in a QFP240 package with enough logical elements and hardware multipliers to be very interesting to SDR work – this also prompted me to develop the one-tap-per-clock FIR filter in Verilog since space would no longer be a concern with this FPGA.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The QS1R REV AB prototype allowed me to also test a Hittite HMC472 0-31.5 dB attenuator, a Sirenza SBF-4089/5089 RF Amp, Phil Harman’s 1.5 MHz BPF stage, and a 30/60 MHz LPF stage that is planned to be used in the HPSDR Mercury design.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The Quick Silver was the testing grounds for ideas that will be used in HPDSR Mercury.&lt;span style=""&gt;   &lt;/span&gt;Without experience gained from the QS1R REV AB prototype,&lt;span style=""&gt;  &lt;/span&gt;we would have probably ended up with multiple alpha releases of the Mercury as we found these problems later.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;Quick Silver QS1RT VERB&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;During the development and testing of the QS1R REV AB prototype, the Altera Cyclone III FPGA became available in a QFP240 package with enough logical elements to do some interesting SDR work.&lt;span style=""&gt;  &lt;/span&gt;I wanted to investigate using a PCI or PCIe connection to the PC to allow much wider bandwidths to be processed than the USB 2.0 interface would allow.&lt;span style=""&gt;  &lt;/span&gt;This is how QS1RT VERB came about.&lt;span style=""&gt;  &lt;/span&gt;The VERB contains both the LTC2208 ADC and a TxDAC with a fiber optic or copper connection to a PCI/PCIe board in a PC.&lt;span style=""&gt;  &lt;/span&gt;The high speed serial interface between the QS1RT and the PCI/PCIe card in the PC is made by a TI TLK2711 Serializer/Deserializer chip that transfers at 2.5 GbPS:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.philcovington.com/SDR/PICS/QS1RT_VERB_MED.JPG"&gt;http://www.philcovington.com/SDR/PICS/QS1RT_VERB_MED.JPG&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;As of October 2007, I am in the process of testing the PCI end of the interface.&lt;span style=""&gt;  &lt;/span&gt;This board uses some expensive components and is only really meant to be a demonstration of a high speed interface and for experimentation.&lt;span style=""&gt;   &lt;/span&gt;I want to investigate the ultimate achievable bandwidth to the PC from the VERB and also configuration of the FPGA over the high speed fiber optic link.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;Quick Silver QS1R REVB&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Taking what I learned from QS1R REV AB prototype and QS1RT VERB, I set about designing a third (and hopefully final!) iteration of the Quick Silver board in October 2007.&lt;span style=""&gt;  &lt;/span&gt;In previous boards, the RF section of the PCB was routed by hand and the digital sections were done by an auto router.&lt;span style=""&gt;  &lt;/span&gt;In QS1R REVB, all routing was done by hand to optimize trace lengths and minimize vias in the digital sections of the circuit.&lt;span style=""&gt;   &lt;/span&gt;The board was simplified with applications such as a HF receiver, VNA, spectrum analyzer, and digital oscilloscope in mind:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.philcovington.com/SDR/qs1r_10112007.pdf"&gt;http://www.philcovington.com/SDR/qs1r_10112007.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.philcovington.com/SDR/qs1r_revb_sch.pdf"&gt;http://www.philcovington.com/SDR/qs1r_revb_sch.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Included on the board is a 192 kSPS Stereo DAC for audio output.&lt;span style=""&gt;  &lt;/span&gt;There are provisions to allow an expansion BPF/RF AMP/Attenuator board, an on-board 55 MHz LPF, a direct ADC input connector that bypasses the LPF, an I2C control bus, etc…&lt;span style=""&gt;  &lt;/span&gt;See the schematic above for details.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The QS1R REV B PCB is completed, assembled, and now undergoing testing as of October 30, 2007.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-7058846120473293634?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/7058846120473293634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=7058846120473293634' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/7058846120473293634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/7058846120473293634'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2007/10/history-of-hpsdr-mercury-and-quick.html' title='History of HPSDR Mercury and Quick Silver'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-4026954300450066112</id><published>2007-08-15T08:00:00.001-05:00</published><updated>2007-08-15T08:03:42.864-05:00</updated><title type='text'>QS1RT Soldered</title><content type='html'>&lt;span style="color: rgb(204, 0, 0);"&gt;QS1RT VERB Soldered:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/QS1RT_VERB_LARGE.JPG"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://www.philcovington.com/SDR/PICS/QS1RT_VERB_SM.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.philcovington.com/SDR/PICS/QS1RT_VERB_LARGE.JPG"&gt;&lt;span style="font-size:85%;"&gt;(Click on picture above for a larger version)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-4026954300450066112?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/4026954300450066112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=4026954300450066112' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/4026954300450066112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/4026954300450066112'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2007/08/qs1rt-soldered.html' title='QS1RT Soldered'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-1480021921354378388</id><published>2007-07-20T18:33:00.001-05:00</published><updated>2007-07-20T18:37:14.541-05:00</updated><title type='text'>QS1RT VERB Bare PCB</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/QS1RT_A.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://www.philcovington.com/SDR/PICS/QS1RT_800.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Click on picture above to see larger version)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;Boards were received 07-20-2004&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-1480021921354378388?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/1480021921354378388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=1480021921354378388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/1480021921354378388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/1480021921354378388'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2007/07/qs1rt-verb-bare-pcb.html' title='QS1RT VERB Bare PCB'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-5231320899935806116</id><published>2007-07-12T08:31:00.002-05:00</published><updated>2007-07-12T09:28:37.112-05:00</updated><title type='text'>QS1RT VERB PCB</title><content type='html'>&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;QS1RT VERB (VErsatile Radio Board) Project:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/QS1RTVERB.gif"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://www.philcovington.com/SDR/PICS/QS1RTVERBsm.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;        &lt;span style="font-size:85%;"&gt;        (Click on picture above for a larger version)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;ADC:         &lt;a href="http://www.linear.com/pc/productDetail.jsp?navId=H0,C1,C1155,C1001,C1150,P13693"&gt;Linear Technology LTC2208&lt;/a&gt;&lt;br /&gt;DAC:         &lt;a href="http://www.analog.com/en/prod/0,,AD9744,00.html"&gt;Analog Devices AD9744&lt;/a&gt;&lt;br /&gt;CODEC:    &lt;a href="http://focus.ti.com/lit/ds/symlink/tlv320aic23b.pdf"&gt;TI TLV320AIC23B&lt;/a&gt;&lt;br /&gt;FPGA:      Altera EP3C25-QFP240 Cyclone III&lt;br /&gt;CPLD:      Altera EMP240-QFP100 MAX II&lt;br /&gt;USB:            &lt;a href="http://download.cypress.com.edgesuite.net/design_resources/datasheets/contents/cy7c68013a_8.pdf"&gt;Cypress CY7C68013A  FX2&lt;/a&gt;&lt;br /&gt;SERDES:  &lt;a href="http://focus.ti.com/lit/ds/symlink/tlk2701.pdf"&gt;TI TLK2701&lt;/a&gt;&lt;br /&gt;EEPROM: Microchip 24C128&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Internal encode clock is 125 MHz.&lt;/li&gt;&lt;li&gt;Board interface is through:&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;ol&gt;&lt;li&gt;USB 2.0 or,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Optic Fiber SFP Module at 2.5 Gbps or,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Copper Cat6 cable at 2.5 Gbps.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;TI CODEC provides 48/96kHz audio in and audio out&lt;/li&gt;&lt;li&gt;FPGA can be programmed via USB or Fiber/Copper interface in Fast Parallel Programming mode (byte wide transfers per clock cycle).&lt;/li&gt;&lt;li&gt;JTAG interface for FPGA and CPLD&lt;/li&gt;&lt;li&gt;Connectors:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;ADC IN&lt;/li&gt;&lt;li&gt;DAC OUT&lt;/li&gt;&lt;li&gt;EXT ENCODE IN&lt;/li&gt;&lt;li&gt;MIC IN&lt;/li&gt;&lt;li&gt;L&amp;R AMPLIFIED AUDIO OUT&lt;/li&gt;&lt;li&gt;L&amp;amp;R LINE IN&lt;/li&gt;&lt;li&gt;L&amp;R LINE OUT&lt;/li&gt;&lt;li&gt;DC POWER IN&lt;/li&gt;&lt;li&gt;JTAG&lt;/li&gt;&lt;li&gt;USB 2.0&lt;/li&gt;&lt;li&gt;RJ45 (2.5 Gbps serial over copper)&lt;/li&gt;&lt;li&gt;SFP (2.5 Gbps serial over fiber)&lt;/li&gt;&lt;li&gt;TTL Level Serial from FX2&lt;/li&gt;&lt;li&gt;SPI and I2C to RF external RF board&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Status:&lt;/span&gt; Prototype boards are scheduled to arrive from PCB manufacturer on July 19th.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;RF Front End/BPF Board:&lt;/span&gt;&lt;br /&gt;An external RF board will determine the frequency range and will allow home-brew RF front ends.  The QS1RT VERB provides an SPI and I2C bus for controlling the RF front end board.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;2.5 Gbps Serial Link:&lt;/span&gt;&lt;br /&gt;The other end of the 2.5 Gbps interface will be a PCI and PCI Express board for the PC.  This interface board will have a matching TI TLK2701 SERDES, a CYCLONE II EP3C25, a TI CODEC, and a PLX PCI or PCIe-to-local bus interface chip.  The two boards can be connected by Cat6 copper or optical fiber through the SFP module interface.&lt;br /&gt;&lt;br /&gt;The USB 2.0 interface allows the use of the QS1RT VERB with PC laptops or if the copper/fiber interface is not desired.&lt;br /&gt;&lt;br /&gt;The ADC IN and DAC OUT ports are transformer coupled using &lt;a href="http://www.minicircuits.com/pdfs/T1-6T-KK81.pdf"&gt;Minicircuits T1-6T&lt;/a&gt; transformers which gives 15 kHz to 300 MHz coverage.  The external RF front end board will determine the actual frequency coverage of the system.&lt;br /&gt;&lt;br /&gt;I am having good luck with &lt;a href="http://www.picolight.com/UserFiles/PDF/05001369%20R2.pdf"&gt;Picolight SFP&lt;/a&gt; modules for the fiber interface which cost about $50 each.  I have successfully tested the optical interface though 100 meters of fiber.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-5231320899935806116?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/5231320899935806116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=5231320899935806116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/5231320899935806116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/5231320899935806116'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2007/07/qs1rt-verb-pcb.html' title='QS1RT VERB PCB'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-8287623105298715103</id><published>2007-06-27T09:21:00.002-05:00</published><updated>2007-06-27T09:39:30.261-05:00</updated><title type='text'>QS1RT Prototype 06272007</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;QS1RT:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Please click on the image to see a larger version.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/qs1rt_06272007.gif"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://www.philcovington.com/SDR/PICS/qs1rt_06272007_sm.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-8287623105298715103?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/8287623105298715103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=8287623105298715103' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/8287623105298715103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/8287623105298715103'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2007/06/qs1rt-prototype-06272007.html' title='QS1RT Prototype 06272007'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-2703173197422188284</id><published>2007-06-19T08:16:00.000-05:00</published><updated>2007-06-19T08:32:52.311-05:00</updated><title type='text'>TI PCM4222 ADC Now Available</title><content type='html'>&lt;span style="color: rgb(153, 0, 0);"&gt;PCM4222:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;TI's 24 bit, 216 kHz, 2 channel ADC is now available. 122 dB dynamic range is claimed. The part comes in a 48 pin TQFP package. It is available from Digi-Key in single quantities at $22.42 each.&lt;br /&gt;&lt;br /&gt;Here is the link: &lt;a href="http://focus.ti.com/docs/prod/folders/print/pcm4222.html"&gt;PCM4222&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a FFT plot of the PCM4222 at 192 kHz with no input:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_7QZOYF2VU5U/RnfZREMhNbI/AAAAAAAAAA8/MJlr7sGgppw/s1600-h/ScreenShot001.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_7QZOYF2VU5U/RnfZREMhNbI/AAAAAAAAAA8/MJlr7sGgppw/s400/ScreenShot001.gif" alt="" id="BLOGGER_PHOTO_ID_5077765992090777010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The rise in amplitude at about 65 kHz is a concern, but for SDR use a bandwidth of 130 kHz would still be useful. &lt;br /&gt;&lt;br /&gt;The &lt;a href="http://focus.ti.com/lit/ds/symlink/pcm4222.pdf"&gt;PCM4222&lt;/a&gt; is definitely easier to get in single quantities for experimenters than the AKM &lt;a href="http://www.asahi-kasei.co.jp/akm/en/product/ak5394a/ak5394a.html"&gt;AK5394&lt;/a&gt; is, but the AKM chip is still probably the winner.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-2703173197422188284?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/2703173197422188284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=2703173197422188284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/2703173197422188284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/2703173197422188284'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2007/06/ti-pcm4222-adc-now-available.html' title='TI PCM4222 ADC Now Available'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_7QZOYF2VU5U/RnfZREMhNbI/AAAAAAAAAA8/MJlr7sGgppw/s72-c/ScreenShot001.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-2374411833319645104</id><published>2007-02-28T16:44:00.000-05:00</published><updated>2007-02-28T16:53:16.593-05:00</updated><title type='text'>Quickfilter QF1D512</title><content type='html'>&lt;span style="color: rgb(153, 0, 0);"&gt;QF1D512&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is a link to useful FIR engine chip:&lt;br /&gt;&lt;br /&gt;&lt;http: com="" html="" content_id="45"&gt;http://www.quickfiltertech.com/html/qfilter_page.php?content_id=45&lt;br /&gt;&lt;br /&gt;They offer a DIP version for experimentation:&lt;br /&gt;&lt;br /&gt;&lt;http: com="" html="" content_id="59"&gt;http://www.quickfiltertech.com/html/qfilter_page.php?content_id=59&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mouser.com/"&gt;Mouser&lt;/a&gt; stocks the parts.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;QS1R:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The current status is that I am working on integrating the QF1D512 part into the QS1R receiver prototype.    I have no new projected availability for QS1R.  In fact it appears that interest may be somewhat limited - enough so that it would not be worthwhile to offer assembled units.  In that case the design files will be posted from anyone who wants to build a board.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/http:&gt;&lt;/http:&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-2374411833319645104?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/2374411833319645104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=2374411833319645104' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/2374411833319645104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/2374411833319645104'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2007/02/quickfilter-qf1d512.html' title='Quickfilter QF1D512'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-7884210898004424547</id><published>2007-01-03T10:38:00.000-05:00</published><updated>2007-02-28T16:44:09.733-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QS1T'/><category scheme='http://www.blogger.com/atom/ns#' term='QS1R'/><category scheme='http://www.blogger.com/atom/ns#' term='SDR'/><title type='text'>QS1R Block Diagrams &amp; Software news</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;QS1R Diagrams Posted:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.philcovington.com/SDR/QS1R_arch.pdf"&gt;Architecture &lt;/a&gt;- &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;PDF diagram of QS1R overall architecture&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.philcovington.com/SDR/QS1R_RF.pdf"&gt;RF Front End&lt;/a&gt; - &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;PDF diagram of QS1R RF Front End&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;Supporting Software:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;QS1R/QS1T supporting software will be an open source application called QSRunner.  It will support both Windows and Linux.  In addition to supporting QS1R/QS1T, QSRunner will also support the SoftRock and HPSDR JANUS-OZY/MERCURY projects.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;table style="padding: 5px; background-color: rgb(255, 255, 255);" border="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-7884210898004424547?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/7884210898004424547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=7884210898004424547' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/7884210898004424547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/7884210898004424547'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2007/01/qs1r-block-diagrams.html' title='QS1R Block Diagrams &amp; Software news'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-1565788500511430503</id><published>2006-12-31T17:30:00.000-05:00</published><updated>2006-12-31T22:58:46.603-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDR'/><title type='text'>QuickSilver QS1R Software Defined Receiver Prototype</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;QS1R Software Defined Receiver:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_7QZOYF2VU5U/RZg6pOQjIsI/AAAAAAAAAAM/nlDmuGrvX4g/s1600-h/QS1R_proto.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_7QZOYF2VU5U/RZg6pOQjIsI/AAAAAAAAAAM/nlDmuGrvX4g/s400/QS1R_proto.JPG" alt="" id="BLOGGER_PHOTO_ID_5014822664953602754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/QS1R_proto.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://www.philcovington.com/SDR/PICS/QS1R_proto.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;(Click on picture above for larger version.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;Features:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;16 bit 130 MSPS ADC&lt;br /&gt;HPF, LPF, RF AMP Switchable Front End&lt;br /&gt;0-31.5 dB Attenuator in 0.5 dB steps&lt;br /&gt;Cyclone II FPGA&lt;br /&gt;Two AD6620 DDC co-processors&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;USB 2.0 480 Mbps High Speed Interface to PC&lt;br /&gt;0.1 to 33 MHz coverage (0.1 to 65 MHz extended)&lt;br /&gt;RX bandwidths from 33 MHz to 1kHz&lt;br /&gt;Two independent RX channels anywhere in 0.1 to 33 MHz&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;6.00" X 4.00" board size&lt;br /&gt;Single +12V 1A supply&lt;br /&gt;Open Source Software and Hardware&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;Availability:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Projected late January to mid-February 2007&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-1565788500511430503?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/1565788500511430503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=1565788500511430503' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/1565788500511430503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/1565788500511430503'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/12/qucksilver-qs1r-software-defined.html' title='QuickSilver QS1R Software Defined Receiver Prototype'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_7QZOYF2VU5U/RZg6pOQjIsI/AAAAAAAAAAM/nlDmuGrvX4g/s72-c/QS1R_proto.JPG' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-3277769473498125864</id><published>2006-12-16T12:39:00.000-05:00</published><updated>2006-12-16T12:49:36.469-05:00</updated><title type='text'>vSound Update</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;vSound Status&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I have been able to get a prototype of the vSound driver to work on Windows Vista beta.  I am now waiting until the official release of Vista to continue development on a driver that will work on both XP and Vista.  As it looks now, vSound will support Vista and XP only.  There will be no support for W2K, NT4, or Win9X/ME operating systems.  My main concern is trying to make sure that the vSound driver is compatible with both XP and Vista so I don't have to maintain two different versions based on operating system.&lt;br /&gt;&lt;br /&gt;There are a lot of changes being made to driver development under Windows and I have been waiting until it stabilizes a little bit more before releasing a beta driver.  My best estimate for availability of vSound beta is early next year after Vista systems hit the streets.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;New QuickSilver QS1R Group&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;Support and discussion group for the new QuickSilver QS1R SDR:&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;To sign up go &lt;a href="http://groups-beta.google.com/group/quicksilver-sdr-support"&gt;Here&lt;/a&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-3277769473498125864?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/3277769473498125864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=3277769473498125864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/3277769473498125864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/3277769473498125864'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/12/vsound-update.html' title='vSound Update'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-3763993420375839777</id><published>2006-12-12T11:27:00.000-05:00</published><updated>2006-12-12T11:50:59.212-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDR'/><title type='text'>Some Interesting Links for Decemeber...</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(153, 0, 0);font-size:130%;" &gt;Links&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.digitalfilter.com/products/dsplinks/endsplinks.html"&gt;DSPLINKS&lt;/a&gt; - great for learning DSP interactively&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/project/showfiles.php?group_id=90337"&gt;QUCS&lt;/a&gt;- circuit simulator for Linux and Windows&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ltspice.linear.com/software/swcadiii.exe"&gt;LTC SWCAD &lt;/a&gt;- circuit simulator for Windows&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.research.ibm.com/cell/"&gt;Cell Processor &lt;/a&gt;- the processor that power the PS3&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.scilab.org/"&gt;SciLab&lt;/a&gt;- open source numerical computation&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maxima.sourceforge.net/index.shtml"&gt;Maxima &lt;/a&gt;- open source computer algebra system&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gnu.org/software/octave/"&gt;Octave&lt;/a&gt; - open source GNU numerical computation&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mono-project.com/Main_Page"&gt;Mono&lt;/a&gt; - open source .NET&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);font-size:130%;" &gt;Coming Soon!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;QuickSilver QS1R SDR Receiver/Scope/Spectrum Analyzer Board&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Based on Linear Technology LTC2208 130 MSPS 16 bit ADC&lt;/li&gt;&lt;li&gt;Cyclone II EP2C8 FPGA for DDC processor&lt;br /&gt;&lt;/li&gt;&lt;li&gt;High Speed USB 2.0 Connectivity&lt;/li&gt;&lt;li&gt;Two DDC Co-processors&lt;/li&gt;&lt;li&gt;External Clocking capability&lt;/li&gt;&lt;li&gt;6.00" x 4.00" (15.24 x 10.16 cm) board size&lt;/li&gt;&lt;li&gt;0.1-65 MHz&lt;/li&gt;&lt;li&gt;Open Source Software&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.research.ibm.com/cell/"&gt; &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-3763993420375839777?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/3763993420375839777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=3763993420375839777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/3763993420375839777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/3763993420375839777'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/12/some-interesting-links-for-decemeber.html' title='Some Interesting Links for Decemeber...'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-7660145750877802821</id><published>2006-10-25T08:19:00.000-05:00</published><updated>2006-10-25T08:31:13.824-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDR K2'/><title type='text'>A SDR based on some K2 design ideas</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/536/1708/1600/K2LikeSDR.gif"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/536/1708/400/K2LikeSDR.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is a diagram of a SDR that uses ideas from the K2 RF front end and PLL synthesizer:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.philcovington.com/HPSDR/TEMP_STUFF/K2LikeSDR.pdf"&gt;K2LikeSDR.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It would use the K2's RF front end.  I would substitute the TUF-1 mixer of the K2 with a switching mixer based on a FST3125 bus switch.  The QSD would be at a fixed IF of 5 MHz.  The LO for the QSD would be derived from a fixed 20 MHz oscillator divided by 4 to generate the quadrature signals needed to driver the QSD switches.  The K2's PLL would be modified by eliminating the variable reference oscillator (resulting in the PLL tuning in 5 kHz steps) and substituting one of the LMX National PLLs for the MC145170 PLL used in the K2 design.  The K2's VCO design is good, but I would also eliminate the VCO AGC circuit of the K2.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-7660145750877802821?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/7660145750877802821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=7660145750877802821' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/7660145750877802821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/7660145750877802821'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/10/sdr-based-on-some-k2-design-ideas.html' title='A SDR based on some K2 design ideas'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-1649142664231403239</id><published>2006-10-24T14:42:00.000-05:00</published><updated>2006-10-24T18:06:40.441-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDR LO'/><title type='text'>SDR LO Ideas</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;SDR LO Ideas:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There has been a lot of discussion of using DDS or PLLs for the LO generation for HPSDR and SoftRock like receivers.  In the current SoftRock series the LO is generated by a crystal oscillator.  The downsides of the above approaches are:&lt;br /&gt;&lt;br /&gt;1. DDS: spurs and cost of a decent low jitter/low noise clock source.  Some of the &lt;a href="http://www.analog.com/en/subCat/0,2879,770%255F843%255F0%255F%255F0%255F,00.html"&gt;400 and 500 MHz DDS chips&lt;/a&gt; are on the expensive side.&lt;br /&gt;&lt;br /&gt;2. PLL: phase noise.  A scheme using a microwave VCO/PLL and dividing it down into the HF range has been discussed.  The latest feeling is that the phase noise reduction even after dividing down is not enough to provide a high performance system.  A dual PLL loop approach has been proposed to improve phase noise performance but it is likely to be expensive.  There are also PLL/DDS approaches of varying complexity.&lt;br /&gt;&lt;br /&gt;3. Xtal: limited frequency agility, you are limited to tuning within the passband of your computer sound card.&lt;br /&gt;&lt;br /&gt;There is a forth method that might work for lower cost SDR circuits like the SoftRock.  It involves the method used for many years in which a VFO is mixed with a crystal oscillator.  It is not hard to make a pretty stable and low noise VFO.  The output of the VFO/Xtal oscillator could be fed into a microprocessor (&lt;a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=2124&amp;amp;amp;amp;param=en022613&amp;amp;page=wwwFullSpeedUSB"&gt;like Microchip &lt;span style="font-family:Arial;"&gt;&lt;b&gt;PIC18F2455/2550/4455/4550 series&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;) or a FPGA/CPLD.  The microprocessor or FPGA/CPLD would count the frequency of the VFO/Xtal oscillator and feed the frequency information to the PC for display in one of the SDR programs like PowerSDR or Rocky.  This way you would have an indication of your true operating frequency as well as a real tuning knob that is coupled to the VFO (like a real radio!).&lt;br /&gt;&lt;br /&gt;Since there is already a microprocessor or FPGA/CPLD involved in measuring the LO frequency and transmitting that information to the PC, VFO stabilization (&lt;a href="http://www.hanssummers.com/radio/huffpuff/index.htm"&gt;like Huff-n-Puff techniques&lt;/a&gt;) could be also done in the microprocessor or FPGA/CPLD to tame drift in the VFO.  This scheme would also work well for the real sampler with &lt;a href="http://www.analog.com/en/prod/0%2C2877%2CAD7760%2C00.html"&gt;AD7760&lt;/a&gt; I describe in the &lt;a href="http://pcovington.blogspot.com/2006/10/possible-qsdisd-switches-adc-ideamisc.html"&gt;previous blog&lt;/a&gt; or when the ADC is integrated on the QSD board when eliminating the sound card.  The frequency information would be transmitted to the PC over USB like the audio stream.&lt;br /&gt;&lt;br /&gt;In the case where you would want to use the PC sound card but transmit the frequency of the VFO/Xtal oscillator to the PC, provisions could be made in the USB PIC (or you could use a &lt;a href="http://www.ftdichip.com/"&gt;FTDI chip&lt;/a&gt;) to control the bandpass filters also.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-1649142664231403239?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/1649142664231403239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=1649142664231403239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/1649142664231403239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/1649142664231403239'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/10/sdr-lo-ideas.html' title='SDR LO Ideas'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-116109402688668006</id><published>2006-10-17T09:00:00.000-05:00</published><updated>2006-10-25T18:11:10.552-05:00</updated><title type='text'>Possible QSD/ISD Switches/ ADC Idea/Misc</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/536/1708/1600/AD7760SDR.gif"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/536/1708/400/AD7760SDR.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;QSD/ISD Switches:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is a link the PDF data sheets of analog switches that can be investigated for use in QSD/ISD circuits:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.philcovington.com/HPSDR/QSD_SWITCH/"&gt;http://www.philcovington.com/HPSDR/QSD_SWITCH/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;Interesting ADC:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Here is a link to an interesting ADC by Analog Devices:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.analog.com/UploadedFiles/Data_Sheets/AD7760.pdf"&gt;http://www.analog.com/UploadedFiles/Data_Sheets/AD7760.pdf&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;It is a 24 bit, 2.5 MSPS ADC.  Here is the circuit idea:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.philcovington.com/HPSDR/TEMP_STUFF/AD7760QSD.pdf"&gt;http://www.philcovington.com/HPSDR/TEMP_STUFF/AD7760QSD.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It uses 1/2 of a QSD (not quadrature sampled) to mix the frequency band of interest down to zero Hz with a bandwidth of something like 250 kHz.   The IF would be offset to something like 125 kHz.  The ADC samples the 1/2QSD output and results in a real data stream.  A FPGA or CPLD mixes the real data stream with a complex NCO to generate a quadrature data stream which is sent over USB to the PC where the remaining processing is done.  The advantage is a 1 X LO and no I/Q balance problems.  One disadvantage is that your sampling rate should be 4 times the desired bandwidth.  For narrow band applications this should be no problem because the AD7760 will sample up to 2.5MSPS.  A 500 MSPS rate into the PC should allow a bandwidth of almost +/- 125 kHz from the LO frequency.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;Nice SDR Enclosure?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ken N9VV sent me a link to a cool PC case:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.origenae.com/product_x15e.htm"&gt;http://www.origenae.com/product_x15e.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-116109402688668006?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/116109402688668006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=116109402688668006' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/116109402688668006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/116109402688668006'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/10/possible-qsdisd-switches-adc-ideamisc.html' title='Possible QSD/ISD Switches/ ADC Idea/Misc'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-115171326494820185</id><published>2006-06-30T19:13:00.000-05:00</published><updated>2006-10-17T10:45:15.691-05:00</updated><title type='text'>vSound Progress &amp; HPSDR OZY</title><content type='html'>&lt;span style="color: rgb(204, 0, 0);"&gt;vSOUND&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I thought I'd better post an update to my progress on the vSound virtual sound card driver.  I have been looking at the WDF stuff from Microsoft and how it could be supported in the upcoming Vista.  There are some considerable issues in writing sound drivers that will work in Vista with the Digital Rights Management (DRM) crap.  I am hoping to write the driver so it will work in W2K, XP, and Vista.&lt;br /&gt;&lt;br /&gt;I would very much like for the driver to work like jack does in Linux.  Some things are not possible in Windows, but I think I can get close to jack's functionality.&lt;br /&gt;&lt;br /&gt;I hope to have something together to test in a month or so.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;HPSDR OZY&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I posted a photo of a almost complete OZY board on the HPSDR &lt;a href="http://hpsdr.org/wiki/index.php?title=HpsdrWiki:Community_Portal"&gt;Wiki&lt;/a&gt;.  Testing is going well.  See updated info at &lt;a href="http://hpsdr.org"&gt;hpsdr.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;73 de Phil N8VB&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-115171326494820185?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/115171326494820185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=115171326494820185' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/115171326494820185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/115171326494820185'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/06/vsound-progress-hpsdr-ozy.html' title='vSound Progress &amp; HPSDR OZY'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-114994961270064835</id><published>2006-06-10T09:24:00.000-05:00</published><updated>2006-10-17T10:45:15.629-05:00</updated><title type='text'>HPSDR Mentioned in ARRL Article</title><content type='html'>&lt;a href="http://www.arrl.org/news/features/2006/06/09/1/?nc=1"&gt;http://www.arrl.org/news/features/2006/06/09/1/?nc=1 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The other news is that HPSDR has joined forces with TAPR to provide bare boards and parts:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tapr.org/kits_atlas.html?PHPSESSID=0e5e57933bb81af7e79b13ca6708d075"&gt;http://www.tapr.org/kits_atlas.html?PHPSESSID=0e5e57933bb81af7e79b13ca6708d075&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-114994961270064835?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/114994961270064835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=114994961270064835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/114994961270064835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/114994961270064835'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/06/hpsdr-mentioned-in-arrl-article.html' title='HPSDR Mentioned in ARRL Article'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-114736374887909232</id><published>2006-05-11T11:03:00.000-05:00</published><updated>2006-10-17T10:45:15.569-05:00</updated><title type='text'>Small Update</title><content type='html'>The HPSDR project is progressing nicely.  We have a design for the ATLAS backplane that has passed the alpha stage.  The JANUS board is close to alpha.  The OZY board's schematic has been posted for review and comment.&lt;br /&gt;&lt;br /&gt;ATLAS orders are close to 200 boards now.&lt;br /&gt;&lt;br /&gt;If you have no idea what I am talking about check out:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hpsdr.org"&gt;hpsdr.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also join the HPSDR mail reflector which is quite active.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hamsdr.com"&gt;www.hamsdr.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;is another site you should check out if you are interested in Software Defined Radio.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-114736374887909232?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/114736374887909232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=114736374887909232' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/114736374887909232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/114736374887909232'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/05/small-update.html' title='Small Update'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-114140621111546693</id><published>2006-03-03T12:10:00.000-05:00</published><updated>2006-10-17T10:45:15.506-05:00</updated><title type='text'>HPSDR and XYLO SDR group combine</title><content type='html'>&lt;span style="color: rgb(204, 0, 0);"&gt;HPSDR PROJECT:&lt;/span&gt;&lt;br /&gt;We have combined the HPSDR and XYLO SDR groups into one project with common goals.  There is a new domain and website for the project:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hpsdr.org"&gt;http://hpsdr.org &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The XYLO SDR mailing list has now become the HPSDR mailing list.  To join the list go to:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hpsdr.org/reflector.html"&gt;http://hpsdr.org/reflector.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;ATLAS BUS:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre style="font-family: verdana;" wrap=""&gt;&lt;span style="font-size:85%;"&gt;This is the first attempt at defining the physical layout of the Atlas bus.&lt;br /&gt;&lt;br /&gt;The board ended up being 5.500" x 3.940", six slots, and 4 layers with&lt;br /&gt;the following stackup:&lt;br /&gt;&lt;br /&gt;1. Ground Plane (top component side)&lt;br /&gt;2. YBUS&lt;br /&gt;3. Power Plane (+12,-12, +5, -5, +3.3)&lt;br /&gt;4. XBUS (bottom side)&lt;br /&gt;&lt;br /&gt;Details are in the following document:&lt;br /&gt;&lt;br /&gt;&lt;a class="moz-txt-link-rfc2396E" href="http://www.philcovington.com/HPSDR/ATLAS/Atlas_doc.pdf"&gt;http://www.philcovington.com/HPSDR/ATLAS/Atlas_doc.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After reading the document there are some other pdfs (such as the&lt;br /&gt;schematic) in this folder:&lt;br /&gt;&lt;br /&gt;&lt;a class="moz-txt-link-rfc2396E" href="http://www.philcovington.com/HPSDR/ATLAS/"&gt;http://www.philcovington.com/HPSDR/ATLAS/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For those interested, I'd appreciate if you'd please take a look at&lt;br /&gt;the documents and make questions/comments.&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-114140621111546693?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/114140621111546693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=114140621111546693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/114140621111546693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/114140621111546693'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/03/hpsdr-and-xylo-sdr-group-combine.html' title='HPSDR and XYLO SDR group combine'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-114053359534891288</id><published>2006-02-21T09:49:00.000-05:00</published><updated>2006-10-17T10:45:15.438-05:00</updated><title type='text'>HPSDR Progress Report - 02-21-2006</title><content type='html'>LTC2208 Mercury Board:&lt;br /&gt;The HPSDR project is now broken down into various sub-projects.  The most important is the Mercury board which contains the LTC2208 130 MSPS ADC.  The Mercury board will also contain a FPGA to do the DDC (Digital Down Conversion) function.  There will probably be an option to install a Cypress FX2 USB2 microcontroller to make the board stand alone for certain applications.  Otherwise the FPGA will connect to the Atlas bus.  If you are not sure what Atlas is then see the Xylo list archives.&lt;br /&gt;&lt;br /&gt;I have a few LTC 2208 evaluation boards coming from Linear Technology.  They should arrive this week.  I want to compare the LVDS board to the CMOS board to see if there are any advantages of using the LVDS mode for the 1-70 MHz range.&lt;br /&gt;&lt;br /&gt;Initially I think I will program the on board FPGA so that the 130 MSPS from the LTC2208 are downsampled to &lt;= 250 kSPS.  The 250kSPS then can be processed in the same way that we process the data from the soundcard.  PowerSDR can then be modified to be used with the Mercury board.&lt;br /&gt;&lt;br /&gt;DttSP#:&lt;br /&gt;After reviewing the roadmap that Flex Radio has published for the future version of PowerSDR I have decided that it does not appear to meet my needs for the HPSDR project.  I am starting work on a library based on DttSP called DttSP# (DttSPSharpened).  It will be a C# wrapper around DttSP where the creation of radio objects are handled by C# and the low level functions are delegated to DttSP.   There will probably be an alternate constructor for each object that will implement the equivalent DttSP function in C# so performance can be compared.  DttSP# will be target Mono on both Linux and Windows.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-114053359534891288?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/114053359534891288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=114053359534891288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/114053359534891288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/114053359534891288'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/02/hpsdr-progress-report-02-21-2006.html' title='HPSDR Progress Report - 02-21-2006'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-113897637328572142</id><published>2006-02-03T09:12:00.000-05:00</published><updated>2006-10-17T10:45:15.378-05:00</updated><title type='text'>Linear Technology LTC2208</title><content type='html'>I have settled on the Linear Technology LTC2208 16 bit, 130 MSPS ADC for the HPSDR project.  The LTC2208 has some unique features that put it ahead of offerings from Analog Devices. &lt;br /&gt;&lt;br /&gt;Here is the datasheet:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1155,C1001,C1150,P13693,D9659"&gt;http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1155,C1001,C1150,P13693,D9659&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;of particular interest is the PGA, randomizer and dithering features.&lt;br /&gt;&lt;br /&gt;We completed our move into our new home last weekend.  We are getting settled in and soon I will start on the Mercury board - which is based on the LTC2208.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-113897637328572142?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/113897637328572142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=113897637328572142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113897637328572142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113897637328572142'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2006/02/linear-technology-ltc2208.html' title='Linear Technology LTC2208'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-113468057893478606</id><published>2005-12-15T15:34:00.000-05:00</published><updated>2006-10-17T10:45:15.320-05:00</updated><title type='text'>New Job</title><content type='html'>&lt;p style="color: rgb(255, 0, 0);" class="MsoNormal"&gt;New Job:&lt;/p&gt;&lt;p class="MsoNormal"&gt;I start a new position with the &lt;st1:place&gt;&lt;st1:placename&gt;Ohio&lt;/st1:placename&gt;  &lt;st1:placetype&gt;State&lt;/st1:placetype&gt; &lt;st1:placetype&gt;University&lt;/st1:placetype&gt;&lt;/st1:place&gt; Department of Astronomy in the Imaging Sciences Laboratory on Monday December the 19th.  This marks the end of my 5 year stint as a factory automation consultant.  I learned a lot in those five years, but I am glad to be moving to something new, interesting, and challenging.&lt;br /&gt;&lt;br /&gt;Before going out on my own as a consultant, I worked as an Electrical Engineer with a Department of Defense contractor in the 1980s and early 90s.  The company was Piqua Engineering, Inc. - I worked there for 10 years.  After &lt;st1:state&gt;&lt;st1:place&gt;PEI&lt;/st1:place&gt;&lt;/st1:state&gt; a few former &lt;st1:state&gt;&lt;st1:place&gt;&lt;/st1:place&gt;&lt;/st1:state&gt;employees and I started a company called Technitron Labs, Inc.  TL's main product was specialized instrumentation for paper mills, municipal waste and drinking water treatment plants, and industrial water treatment plants.  TL was sold after a few years (along with my designs); I moved on to doing Controls Engineering at a company called Zed Industries, Inc.  Zed made packaging machinery and thermo-formers.  I spent 6 years at Zed bringing their equipment control systems up to modern standards before moving on to a purely software engineering job.&lt;br /&gt;&lt;br /&gt;Finally, in 2001 I started vHMI Automation, Inc.  The main product when I first started was a Visual Basic based Human Machine Interface (HMI) package that I wrote and various C++ based Programmable Logic Controller communication drivers.   I expanded into both hardware and software system consulting in factory automation and control systems.  I also did instrumentation, automated test system, and microcontroller based system design.  Because I was an independent consultant, it enabled me to live outside of the USA for a while (where I learned a lot about how other countries view the US - which is not as bad as you hear from the news).  I also realized how much we take for granted the life we have in the &lt;st1:country-region&gt;&lt;st1:place&gt;USA&lt;/st1:place&gt;&lt;/st1:country-region&gt;.  I returned to the &lt;st1:country-region&gt;&lt;st1:place&gt;US&lt;/st1:place&gt;&lt;/st1:country-region&gt; in June of 2004.&lt;br /&gt;&lt;br /&gt;I am very happy about leaving the stressful and uncertain side of consulting behind.  I am looking forward to working in OSU's Astronomy Department where they design and build extremely interesting instruments for ground-based optical and infrared astronomy.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.astronomy.ohio-state.edu/MODS/Pictures/"&gt;http://www.astronomy.ohio-state.edu/MODS/Pictures/&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-113468057893478606?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/113468057893478606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=113468057893478606' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113468057893478606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113468057893478606'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/12/new-job.html' title='New Job'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-113415968151200420</id><published>2005-12-09T15:19:00.000-05:00</published><updated>2006-10-17T10:45:15.255-05:00</updated><title type='text'>Update... HPSDR</title><content type='html'>&lt;span style="color: rgb(255, 0, 0);"&gt; HPSDR Progress:&lt;/span&gt;&lt;br /&gt;I am now able to configure the Spartan 3 FPGA over USB.  I switched from slave parallel mode to slave serial configuration loading.  This will make the FX2 firmware easy to use with Altera Cyclone FPGAs in addition the the Xilinx Spartan 3. &lt;br /&gt;&lt;br /&gt;I am in the process of getting samples of Linear Technology's LTC2208 16 bit, 135 MSPS ADC.  I still plan to develop a QSD based RX board using the TI PCM4202 as the ADC -  So there will be a high bandwidth path as well as a low bandwidth path in the HPSDR.  The LTC2208 board will probably get it's own FPGA to do DDC.  The DDC's ouput will then feed the Spartan 3 which will be responsible for performing the  second part of the DSP chain.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Verilog Projects for the Xylo Board:&lt;/span&gt;&lt;br /&gt;I set up a folder on my server that people can browse .  It will contain various verilog projects that can be tried on the Xylo board for educational purposes.&lt;br /&gt;&lt;br /&gt;http://www.philcovington.com/FPGA/&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-113415968151200420?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/113415968151200420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=113415968151200420' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113415968151200420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113415968151200420'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/12/update-hpsdr.html' title='Update... HPSDR'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-113217051678231730</id><published>2005-11-16T14:40:00.000-05:00</published><updated>2006-10-17T10:45:15.193-05:00</updated><title type='text'>Microscope for SMT</title><content type='html'>Here are a few pictures of an early Birthday present from my wife:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/BAK/bs20C1.jpg"&gt;&lt;img style="cursor: pointer; width: 640px;" src="http://www.philcovington.com/BAK/bs20C1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/BAK/bs20r.jpg"&gt;&lt;img style="cursor: pointer; width: 640px;" src="http://www.philcovington.com/BAK/bs20r.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The 10x magnification makes it perfect for soldering and inspecting smt.   I was able to hand solder the 208 pin 0.5mm pitch Xilinx Spartan 3 FPGA used on my HPSDR board in under 5 minutes which included inspecting each pin.  If you do any serious smt work at all, you may want to consider purchasing a similar microscope.  I was amazed at the difference it made in speed and comfort while working with fine pitch parts.  (Price is about $214 + shipping).&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-113217051678231730?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/113217051678231730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=113217051678231730' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113217051678231730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113217051678231730'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/11/microscope-for-smt.html' title='Microscope for SMT'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-113198283106282621</id><published>2005-11-14T10:02:00.000-05:00</published><updated>2006-10-17T10:45:15.136-05:00</updated><title type='text'>Some notes on soft real-time under Linux 2,6...</title><content type='html'>&lt;span style="color: rgb(255, 0, 0);"&gt;Linux 2.6 Kernel:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With the 2.6 kernel, a large step was taken to improve Linux's real-time capabilities.  The improvements are a result of two major changes in the kernel (as well as many minor changes):&lt;br /&gt;&lt;br /&gt;1. &lt;span style="color: rgb(0, 153, 0);"&gt;Kernel preemption.&lt;/span&gt;  Before 2.6 the scheduler was able to preempt threads running in user mode, but when the thread made a system call that caused a context switch to kernel mode there was no way for the thread to be preempted.  This situation could cause a high-priority thread that was ready to run to be blocked by a lower priority thread inside a system call.  With 2.6, the kernel can now be preempted.&lt;br /&gt;&lt;br /&gt;2. &lt;span style="color: rgb(0, 153, 0);"&gt;Constant time scheduler.&lt;/span&gt;  Prior to version 2.6, the time that it took for the scheduler to decide which  thread to run depended on how many threads that were currently running on the system.  The more threads on the system, the more time it took the scheduler to make a decision.  In version 2.6, the scheduler makes the decision in the same amount of time whether there are 1 thread or 100 threads on the system.  This makes the system more predictable.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Scheduling Priorities:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Most processes are started with the default scheduler: SCHED_NORMAL.  There are two other schedulers that can be used for real time threads:&lt;br /&gt;&lt;br /&gt;1.  &lt;span style="color: rgb(0, 153, 0);"&gt;SCHED_FIFO.&lt;/span&gt;  This is a first-in first-out scheduler.  The highest priority SCHED_FIFO thread ready to run will be scheduled.  Once the thread starts running it will only be preempted if a higher priority real time thread becomes runnable or if the thread yields the processor.&lt;br /&gt;&lt;br /&gt;2. &lt;span style="color: rgb(0, 153, 0);"&gt;SCHED_RR.&lt;/span&gt;  This is a round-robbin scheduler.  Unlike SCHED_FIFO, the SCHED_RR scheduler does not allow a thread to run indefinitely unless it is preempted by a higher priority thread.  If there are multiple threads of the same priority and they are runnable, the scheduler will alow each thread to run for a specific time before it is preempted (quantum).&lt;br /&gt;&lt;br /&gt;To start a process with one of the real time schedulers you have to use the system call sched_setscheduler(pid_t pid, int policy, const struct sched_param *p).  Once a thread is running under a real time scheduler you can adjust its priority with a call to sched_setparam().&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Linux 2.6 Kernel Timers:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;nanosleep():  In Linux 2.6 the kernel only checks on timers once every "jiffie" which defaults to 1ms (it was 10ms before 2.6).  Even though you can specify times with nanosecond resolution in the call to nanosleep() don't expect that kind of time resolution.  nanosleep() is good for a minimum of 2ms - meaning the timer will finish within 2ms of the programmed interval.&lt;br /&gt;&lt;br /&gt;If more accurate timing is needed, /dev/rtc can be used.  If you do a read() of /dev/rtc it will block until the rtc timer tick is hit.  You can program the rtc's tick rate from 2 Hz to 8192 Hz.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Locking memory:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To keep the memory allocated for a process from being swapped out to disk, you can lock all or part of its memory in RAM using the mlock() call.  You can unlock the memory by calling munlock().  If you want to lock the entire memory of a process, a call to mlockall(int flags) will lock the entire address space of a process into RAM.   The flags are MCL_CURRENT and MCL_FUTURE.  MCL_CURRENT will lock the current memory allocated to the process into RAM.  MCL_FUTURE will lock any future allocation of memory by the process into physical RAM.  You will usually want to or MCL_CURRENT and MCL_FUTURE together.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-113198283106282621?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/113198283106282621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=113198283106282621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113198283106282621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113198283106282621'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/11/some-notes-on-soft-real-time-under.html' title='Some notes on soft real-time under Linux 2,6...'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-113146348900706454</id><published>2005-11-08T10:15:00.000-05:00</published><updated>2006-10-17T10:45:15.076-05:00</updated><title type='text'>Schematic and PCB software update</title><content type='html'>Recently I came across the open source Kicad project.   I had evaluated DipTrace which is inexpensive but it is not open source.   I then worked with the open source gEDA tools which were ok. &lt;br /&gt;&lt;br /&gt;Kicad looks very promising: &lt;a href="http://www.lis.inpg.fr/realise_au_lis/kicad/"&gt;http://www.lis.inpg.fr/realise_au_lis/kicad/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is cross platform and uses wxWindows.   It is much more polished than the gEDA tools.  The file formats are all well documented which make adding symbols very easy using a python script.  Kicad's source code build process stinks but fortunately there are binaries available.  When I get a chance I will look into creating a Visual Studio project for Kicad so it can be built more easily on Windows.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-113146348900706454?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/113146348900706454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=113146348900706454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113146348900706454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113146348900706454'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/11/schematic-and-pcb-software-update.html' title='Schematic and PCB software update'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-113053798055383828</id><published>2005-10-28T17:16:00.000-05:00</published><updated>2006-10-17T10:45:15.014-05:00</updated><title type='text'>Modified QSD Circuit</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/files/circ1_sm.gif"&gt;&lt;img style="cursor: pointer; width: 640px;" src="http://www.philcovington.com/SDR/files/circ1_sm.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;R1 represents the signal source impedance, in this case 200 ohms. If R2 is 4 x 200 ohms = 800 ohms the conversion loss is the same as a single switch with signal integrating capacitor driven by a 25% duty cycle clock. If the clock's duty cycle is increased to 50% the circuit shows some conversion gain. One side of the switch is now effectively grounded (virtual gound of the opamp). The next thing would be to investigate increasing the source impedance that each switch sees.&lt;br /&gt;&lt;br /&gt;Below is a two switch model with LT1115 op amps:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/files/circ2_sm.gif"&gt;&lt;img style="cursor: pointer; width: 640px;" src="http://www.philcovington.com/SDR/files/circ2_sm.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-113053798055383828?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/113053798055383828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=113053798055383828' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113053798055383828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113053798055383828'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/10/modified-qsd-circuit.html' title='Modified QSD Circuit'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-113034927300603637</id><published>2005-10-26T12:36:00.000-05:00</published><updated>2006-10-17T10:45:14.954-05:00</updated><title type='text'>QSD Simulation</title><content type='html'>Below is a plot of a model of a two switch QSD circuit. It shows voltage gain in dB vs switch on time. The input frequency is 10.005 MHz. The sampling clock period is 100 nS (10.000 MHz).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/files/2switch_QSD_sm.gif"&gt;&lt;img style="cursor: pointer; width: 622px;" src="http://www.philcovington.com/SDR/files/2switch_QSD_sm.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is a plot of a model of a four switch QSD circuit. It also shows voltage gain in dB vs switch on time. The input frequency is 10.005 MHz. The sampling clock period is 100 nS (10.000 MHz).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/files/4switch_QSD_sm.gif"&gt;&lt;img style="cursor: pointer; width: 622px;" src="http://www.philcovington.com/SDR/files/4switch_QSD_sm.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The model that I used can be downloaded &lt;a href="http://www.philcovington.com/SDR/files/qsd_4sw.asc"&gt;here&lt;/a&gt;.  You will need Linear Technology's SWCAD program to run it.&lt;br /&gt;&lt;br /&gt;An Excel spreadsheet containing the above data can be downloaded &lt;a href="http://www.philcovington.com/SDR/files/qsd_anal.xls"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The interesting part about the above data is that the QSD seems to have the most gain when the sampling clock on time is about &lt;span style="color: rgb(204, 0, 0);"&gt;20 - 25%&lt;/span&gt; of its period. This seems to be true in all the different models (ideal and real switches) and configurations (balanced, sinngle ended) that I have tried. Phil Harmon, VK6APH, I believe has also found this to be true in his modeling.  So a 50% duty cycle clock does not seem to be beneficial.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-113034927300603637?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/113034927300603637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=113034927300603637' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113034927300603637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/113034927300603637'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/10/qsd-simulation.html' title='QSD Simulation'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112981653421111348</id><published>2005-10-20T08:53:00.000-05:00</published><updated>2006-10-17T10:45:14.896-05:00</updated><title type='text'>SharpDSP Mini Console running on Linux</title><content type='html'>&lt;span style="color: rgb(153, 0, 0);font-size:85%;" &gt;Click on the picture to see a full size version&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/files/linuxSDR.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 640px;" src="http://www.philcovington.com/SDR/files/linuxSDR.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112981653421111348?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112981653421111348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112981653421111348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112981653421111348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112981653421111348'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/10/sharpdsp-mini-console-running-on-linux.html' title='SharpDSP Mini Console running on Linux'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112973158659629859</id><published>2005-10-19T08:48:00.000-05:00</published><updated>2006-10-17T10:45:14.833-05:00</updated><title type='text'>SharpDSP Mini Console with Analog Meter</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/files/SharpDSPConsole1.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 640px;" src="http://www.philcovington.com/SDR/files/SharpDSPConsole1.gif" alt="" border="0" /&gt;&lt;/a&gt;I have added an analog meter to the SharpDSP Mini Console. I borrowed the image from meterpanel. The scale on the meter is not calibrated. You can substitute your own meter face image in place of the default image. Here are the details of the meter face image:&lt;br /&gt;&lt;br /&gt;Size: 220 x 220 pixels&lt;br /&gt;Type: png, gif, jpeg, bmp, tiff&lt;br /&gt;Origin of the image is 0,0 at top - left hand corner of the image&lt;br /&gt;&lt;br /&gt;The image file should be placed in the SharpDSPMiniConsole folder.&lt;br /&gt;&lt;br /&gt;Here is the important part of the &lt;span style="color: rgb(0, 102, 0);"&gt;softrock.config.xml&lt;/span&gt; file relating to the meter:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/files/meterxml.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 470px;" src="http://www.philcovington.com/SDR/files/meterxml.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;analogmeterneedlewidth&gt;&lt;/analogmeterneedlewidth&gt;&lt;analogmeterneedlewidth&gt;&lt;/analogmeterneedlewidth&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;AnalogMeterImageName &lt;/span&gt;is the file name of the meter face image.&lt;/li&gt; &lt;/ul&gt;    &lt;ul&gt;   &lt;li&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;AnalogMeterCorrection &lt;/span&gt;is the correction factor in dBm to apply to the analog meter reading.  It defines the zero point - here it is set for -130 dBm.&lt;/li&gt;&lt;/ul&gt;    &lt;ul&gt;   &lt;li&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;AnalogMeterNeedleLength &lt;/span&gt;defines the length in pixels of the needle&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;    &lt;li&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;AnalogMeterMinAngle &lt;/span&gt;defines the angle of the end of the needle pointer in relation to vertical (defined as needle pointing straight up - zero degrees) when the meter is at it's minimum scale reading.&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;    &lt;li&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;AnalogMeterMaxAngle &lt;/span&gt;defines the angle of the end of the needle pointer in relation to vertical (defined as needle pointing straight up - zero degrees) when the meter is at it's maximum scale reading.&lt;/li&gt; &lt;/ul&gt;     &lt;ul&gt;   &lt;li&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;AnalogNeedleOrigin &lt;/span&gt;defines the x and y coordinates (in pixels) of the meter needle origin.&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;    &lt;li&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;AnalogMeterNeedleColor &lt;/span&gt;defines the color of the needle in Argb units.&lt;/li&gt; &lt;/ul&gt;     &lt;ul&gt;   &lt;li&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;AnalogMeterNeedleWidth &lt;/span&gt;defines the width in pixels of the needle.&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;/ul&gt; To create your own meter face you need to keep the image size to 220 x 220 pixels. You will need to note where the needle origin is on your image in pixel units with 0,0 being located at the top - left hand side of the image. You will also have to set the minimum and maximum angles for the needle to define the zero and full scale positions in your image.&lt;br /&gt;&lt;br /&gt;The default vu meter face that comes with the SharpDSP Mini Console is not calibrated.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112973158659629859?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112973158659629859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112973158659629859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112973158659629859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112973158659629859'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/10/sharpdsp-mini-console-with-analog.html' title='SharpDSP Mini Console with Analog Meter'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112915096560590014</id><published>2005-10-12T15:23:00.000-05:00</published><updated>2006-10-17T10:45:14.771-05:00</updated><title type='text'>Some notes on the SharpDSP Mini Console...</title><content type='html'>&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;SharpDSP Mini Console for the SoftRock:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/files/SR40Console.gif"&gt;&lt;img style="cursor: pointer; width: 512px;" src="http://www.philcovington.com/SDR/files/SR40Console.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is available on my website at &lt;a href="http://www.philcovington.com/SDR.html"&gt;http://www.philcovington.com/SDR.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Center Frequency Calibration Procedure:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The SharpDSP Mini Console allows you to set any desired center frequency. For the standard SoftRock 40 the center frequency is 7.056 Mhz. To get an accurate frequency display you will need to calibrate this setting. Here is how I did it:&lt;br /&gt;&lt;br /&gt;I set my HP8640B signal generator to 7040 kHz. I moved the low filter slider to -2000 Hz and the high filter slider to +2000 Hz. I then selected SSB/DSB/CW from the Mode menu. I then moved the frequency tuning slider until I got zero beat on the 7040 kHz signal. This occurred around 7046 kHz on my SoftRock 40. I then clicked on the Setup-&gt;Center Freq menu. The text box showed that the software was set for a center frequency of 7056 kHz (7056000). Using the fine tuning slider I adjusted the displayed frequency (at the bottom of the screen above the frequency tuning slider) until it read 7040000 - exactly what the HP8640B was set to. When you move the fine tuning adjustment slider you will also see that it is changing the displayed center frequency in the text box above it by the amount corrected to get the display to show 7040 kHz.  I then clicked on the Done button to accept the new center frequency. The calibration is done.&lt;br /&gt;&lt;br /&gt;Here is what that screen looks like.   You can see my new calibrated center frequency setting.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/files/SR40Cal.gif"&gt;&lt;img style="cursor: pointer; width: 512px;" src="http://www.philcovington.com/SDR/files/SR40Cal.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;IQ Balance procedure (Image Rejection):&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;To calibrate the image rejection setting I left the HP8640B set to 7040 kHz. I then tuned up with the frequency slider until I could hear the image. This occurs at 7072 kHz if your center frequency is 7056 kHz (7056 - 7040 = 16, so 7056 + 16 = 7072). I then clicked on the Levels-&gt;Correction menu. I adjusted first the IQ Gain Correction slider for a decrease in the image signal. I then adjusted the IQ Phase Correction slider for a decrease. I went back and forth between the two sliders until I nulled the signal as low as possible. I then clicked Done to exit this screen:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/files/SR40IQ.gif"&gt;&lt;img style="cursor: pointer; width: 512px;" src="http://www.philcovington.com/SDR/files/SR40IQ.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Meter Level Calibration Procedure:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To set the meter level I adjusted the HP8640B to -70 dbm on 7040 kHz. I then clicked on the Levels-&gt;Correction menu again. You will see that the s-meter is still visible on this form. This is to aide in calibration. To adjust the s-meter to read -70 dbm I just moved the Signal Level Correction slider until the s-meter read -70 dbm. I then clicked Done.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Hint:&lt;/span&gt; &lt;span style="font-style: italic; color: rgb(204, 0, 0);"&gt;You can move the sliders in very small steps by making sure the slider has the focus and then using the left and right arrows on the keyboard. You can also move in slightly larger steps by left clicking to the right or left of the slider.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112915096560590014?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112915096560590014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112915096560590014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112915096560590014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112915096560590014'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/10/some-notes-on-sharpdsp-mini-console.html' title='Some notes on the SharpDSP Mini Console...'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112861769501305520</id><published>2005-10-06T11:53:00.000-05:00</published><updated>2006-10-17T10:45:14.705-05:00</updated><title type='text'>Additional info on the HPSDR project...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/HPSDR_FPGA_USB_Board_top4.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://www.philcovington.com/SDR/PICS/HPSDR_FPGA_USB_Board_top4.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;Hi all,&lt;br /&gt;&lt;br /&gt;This is a response to a few questions that someone posted on my blog&lt;br /&gt;page requesting more info about the project. I have copied it here&lt;br /&gt;since it kind of gives a quick outline of where I am going:&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------&lt;br /&gt;I saw your comment on my blog page. Thanks for the link.&lt;br /&gt;&lt;br /&gt;I am using libusb-win32 which is a port of the open source libusb&lt;br /&gt;project for Linux. My intention is to use the libusb API since it is&lt;br /&gt;the same on Windows as it is on Linux. On Windows is consists of a&lt;br /&gt;device driver and a interface DLL. They have an inf file generator&lt;br /&gt;that will create an .inf file for your device. I am having very good&lt;br /&gt;luck with libusb.&lt;br /&gt;&lt;br /&gt;I have written a C#.NET library to interface to the libusb-win32 DLL.&lt;br /&gt;It works under the Mono framework in both Windows (using the&lt;br /&gt;libusb-win32 driver and DLL) and Linux (using the libusb shared&lt;br /&gt;library). It is pretty cool to be able to write software and have it&lt;br /&gt;work without recompiling on both Win and Linux platforms.&lt;br /&gt;&lt;br /&gt;For the compiler I want to use the open source SDCC compiler. It&lt;br /&gt;assumes a standard 8051 type device so it does not directly support&lt;br /&gt;the additional features of the FX2. Basically I have to create custom&lt;br /&gt;interrupt vector and usb descriptor tables in assembly modules and&lt;br /&gt;link them with the main c firmware. Luckily the SDCC linker allows&lt;br /&gt;you to define where in memory particular user defined segments are&lt;br /&gt;based so it turned out to be relatively easy one I pieced together all&lt;br /&gt;the bits of information from various sources on the internet.&lt;br /&gt;&lt;br /&gt;The only problem that I am having now is that I cannot get the&lt;br /&gt;SUDPTR's (that you use to send the usb configuration descriptors) to&lt;br /&gt;work. I load them with the correct address but invalid data is&lt;br /&gt;returned. I think that there is a problem with the xdata&lt;br /&gt;initialization in SDCC's startup code because it assumes a standard&lt;br /&gt;8051. I am working on a replacement .startup8051.asm for the FX2 to&lt;br /&gt;correct the deficiencies. The device will not re-enumerate correctly&lt;br /&gt;because of the SUDPTR problem. [Edit: As of 10-05-2005 this problem&lt;br /&gt;has been resolved and the board re-enumerates correctly - N8VB]&lt;br /&gt;&lt;br /&gt;Once I get the re-enumeration fixed, I need to complete the firmware&lt;br /&gt;to support uploading the FPGA's configuration data.&lt;br /&gt;&lt;br /&gt;I apologize for not responding to your earlier comment on my blog&lt;br /&gt;about having a block diagram for the FPGA_USB board. I just saw your&lt;br /&gt;message today - I guess I missed it. I've been busy in every spare&lt;br /&gt;moment writing support code and firmware for the FPGA_USB board that I&lt;br /&gt;have not released much info on it. Basically the FPGA_USB board is a&lt;br /&gt;high speed I/O system. It has an I2C bus, an SPI bus, and about 64&lt;br /&gt;lines of bit addressable I/O. It has six 40 pin header receptacles on&lt;br /&gt;the board to allow interfacing. The I2C and SPI buses are common to&lt;br /&gt;five of the six headers. The remaining pins on the first five headers&lt;br /&gt;also contain power and GP I/O lines that can be configured either for&lt;br /&gt;CS or ENs for the SPI bus or as general purpose bit addressable I/O.&lt;br /&gt;The first and third headers also have individual I2S sound buses to&lt;br /&gt;allow connection to the audio A/Ds and D/As. If the I2S buses are not&lt;br /&gt;needed those lines can be reconfigured as GP I/O by the FPGA. The&lt;br /&gt;sixth header contains all bit addressable GP I/O that is not common to&lt;br /&gt;the first five headers. The plug in boards will make the project a&lt;br /&gt;SDR, test instrument, etc... For SDR use I plan on having a RX board&lt;br /&gt;(with PCM4202 A/D) in the first slot, a DDS board in the second slot,&lt;br /&gt;a TX board (with A/D - D/A) in the third slot, a BPF board in the&lt;br /&gt;fourth slot, and general purpose I/O interface board in the fifth&lt;br /&gt;slot. I want to use a mini-itx board running Linux that will&lt;br /&gt;interface via USB to the FPGA_USB board and allow you to make a stand&lt;br /&gt;alone radio. The GP I/O will be used for interface to the front panel&lt;br /&gt;encoder knobs, switches, indicators, etc... It will also support&lt;br /&gt;running in PC connected mode like the SDR-1000 with or without the&lt;br /&gt;mini-itx board. I would like to offload some of the DSP to the FPGA&lt;br /&gt;also (like the I/Q correction and NCO for starters). I am very&lt;br /&gt;interested in some of the open cores for the FPGAs that implement your&lt;br /&gt;own custom DSP processor. It would be interesting to see if all the&lt;br /&gt;DSP could be done in the FPGA or in maybe a add on FGPA based&lt;br /&gt;co-processor board.&lt;br /&gt;&lt;br /&gt;If I ever get all the above done I would then like to make a high&lt;br /&gt;speed 16 bit A/D board that would replace the TX board and allow you&lt;br /&gt;to scan a large swath of spectrum. Then the narrow bandwidth RX board&lt;br /&gt;(using the QSD and audio A/D) would tune into interesting signals. I&lt;br /&gt;have a sample of a 16 bit 80MSPS A/D from Analog Devices that I will&lt;br /&gt;use. The same board could also be the basis for a high speed DSO or&lt;br /&gt;logic analyzer project.&lt;br /&gt;&lt;br /&gt;The inspiration for the FPGA_USB board was to have an expandable high&lt;br /&gt;speed I/O platform to build other projects on. In addition to the FX2&lt;br /&gt;and Spartan 3 FPGA there is a 128 K static ram for the FX2, a 64 K&lt;br /&gt;EEPROM, a Cypress I2C programmable clock generator chip with 6 clock&lt;br /&gt;outputs, and regulators (3.3V, 2.5V, and 1.2V). The board requires 5V&lt;br /&gt;for the logic and +/- 12 VDC for supporting the add on boards. The&lt;br /&gt;+/- 12 V supplies are routed directly to the six headers.&lt;br /&gt;&lt;br /&gt;Anyway, it is all a lot of fun!&lt;br /&gt;&lt;br /&gt;73 de Phil N8VB&lt;/tt&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112861769501305520?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112861769501305520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112861769501305520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112861769501305520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112861769501305520'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/10/additional-info-on-hpsdr-project.html' title='Additional info on the HPSDR project...'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112749029329981073</id><published>2005-09-23T10:39:00.000-05:00</published><updated>2006-10-17T10:45:14.641-05:00</updated><title type='text'>Soldering...</title><content type='html'>&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Here is the soldering station that I use (older Weller EC2001):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/wellerec2001.JPG"&gt;&lt;img style="cursor: pointer; width: 200px;" src="http://www.philcovington.com/SDR/PICS/wellerec2001.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;And the tip:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/tip.JPG"&gt;&lt;img style="cursor: pointer; width: 200px;" src="http://www.philcovington.com/SDR/PICS/tip.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;A  Hakko 936 is the backup:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.kiesub.com/hakko936.htm"&gt;&lt;br /&gt;http://www.kiesub.com/hakko936.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(thanks to Ken N9VV for the link)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Boards and design files:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I do plan on offering boards from bare to fully assembled for this project. All of the design files will be available for those who wish to make their own boards. This is both a open hardware and software project. It will support both Windows 2k/XP and Linux.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Some Test Code for the FX2 using SDCC:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(68, 68, 255);font-size:85%;" &gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;a href="http://www.philcovington.com/SDR/files/flash2.html"&gt;http://www.philcovington.com/SDR/files/flash2.html&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112749029329981073?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112749029329981073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112749029329981073' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112749029329981073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112749029329981073'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/09/soldering.html' title='Soldering...'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112735533491279474</id><published>2005-09-21T21:09:00.000-05:00</published><updated>2006-10-17T10:45:14.574-05:00</updated><title type='text'>It Runs...</title><content type='html'>I was able to download the initial firmware into the FX2 microcontroller on the FPGA_USB board today and run a test program. I then recompiled the program with the open source &lt;a href="http://sdcc.sourceforge.net/"&gt;SDCC&lt;/a&gt; and got it to run (the initial code was compiled with the Keil evaluation package from Cypress' site).   After testing the FX2 a little further I will solder the FPGA onto the board and start developing the code for it.  So far there have been no major problems...&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112735533491279474?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112735533491279474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112735533491279474' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112735533491279474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112735533491279474'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/09/it-runs.html' title='It Runs...'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112722712814266177</id><published>2005-09-20T09:20:00.000-05:00</published><updated>2006-10-17T10:45:14.503-05:00</updated><title type='text'>HPSDR_FPGA_USB Board Update</title><content type='html'>Here is a picture of the FPGA_USB board after soldering most of the components:&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/HPSDR_FPGA_USB_Board_top4.jpg"&gt;&lt;img style="cursor: pointer; width: 200px;" src="http://www.philcovington.com/SDR/PICS/HPSDR_FPGA_USB_Board_top4.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.philcovington.com/SDR/PICS/HPSDR_FPGA_USB_Board_top4.jpg"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;Yet to be soldered is the FPGA, USB connector, and connection headers.&lt;br /&gt;&lt;br /&gt;I soldered all of the components by hand. Soldering the 128 pin 0.5mm pitch Cypress FX2 microcontroller was much easier than I thought it would be. I need a little more magnification than the Bausch and Lomb 3.5x eye loupe has. I also have a Luxo magnifying fluorescent light that I use when soldering the other components. I am thinking about getting a 7x Bausch and Lomb loupe that clips onto glasses for soldering the 0.5mm pitch stuff. There is a seller on Ebay that sells stereo microscopes on a boom arm for about $260 that would be nice.&lt;br /&gt;&lt;br /&gt;Basically I spread a lot of flux on the pads for the FX2 chip, tacked down the pins in the corners to keep the chip in place, and then proceeded to solder the pins using a drag technique with a conical tip on the Weller EC2001 soldering station. I then inspected each pin by lightly pushing sideways with a fine pointed tool to check for any pins that where not soldered down. I found 4 out of 128 and a light touch up with the soldering iron fixed those.&lt;br /&gt;&lt;br /&gt;The other components were a piece of cake using the magnified swing-arm fluorescent light. I used 0.015" SN63PB37 Kester solder, SP-44 Kester Paste Flux, and a Weller ETU 0.01" x 0.4mm flat tip on the soldering station.&lt;br /&gt;&lt;br /&gt;Next I will solder on the USB connector, apply power, connect to the PC, and see if the FX2 enumerates.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112722712814266177?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112722712814266177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112722712814266177' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112722712814266177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112722712814266177'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/09/hpsdrfpgausb-board-update.html' title='HPSDR_FPGA_USB Board Update'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112672934906592986</id><published>2005-09-14T15:08:00.000-05:00</published><updated>2006-10-17T10:45:14.431-05:00</updated><title type='text'>The HPSDR FPGA_USB Boards Have Arrived</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;HPSDR FPGA_USB Boards:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The HPSDR FPGA_USB boards showed up today. I sent the design files off last week to PCBExpress and UPS delivered them today. They are 4 layer boards with silk screen and solder mask.&lt;br /&gt;&lt;br /&gt;You can see some pics here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.philcovington.com/SDR/hpsdr_fpga_usb_board.html"&gt;http://www.philcovington.com/SDR/hpsdr_fpga_usb_board.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.philcovington.com/SDR/PICS/HPSDR_FPGA_USB_Board_top1_800600.jpg"&gt;&lt;img style="cursor: pointer; width: 200px;" src="http://www.philcovington.com/SDR/PICS/HPSDR_FPGA_USB_Board_top1_800600.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next I get to have fun soldering the 0.5mm pitch ICs...&lt;br /&gt;&lt;br /&gt;Last time I reported that there was a long back order for the XILINX FPGA. Instead of 3-4 weeks as quoted I received my order in about 2 weeks. So I do have all of the components in hand.&lt;br /&gt;&lt;br /&gt;I have had many emails from people asking me for more details on the FPGA_USB board. I plan to put up much more information on my website soon. Right now I need to concentrate on getting the prototype boards build up and debugged.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Real time Linux:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I decided to build a &lt;a href="http://www.linuxfromscratch.org/"&gt;Linux From Scratch&lt;/a&gt; (LFS6.1) distro to patch with the latest from &lt;a href="http://www.rtai.org/"&gt;RTAI&lt;/a&gt; which is fusion-0.9.    RTAI Fusion uses the &lt;a href="http://home.gna.org/adeos/"&gt;ADEOS nanokernel&lt;/a&gt;. I got it done just before the boards arrived. It was a great learning experience. For LFS6.1 you basically use a host linux system (or the LFS Live CD) to build your system from source. You control exactly what software is installed and where. Next I customized it by adding &lt;a href="http://www.directfb.org/index.php?path=Main"&gt;Direct Framebuffer support&lt;/a&gt;&lt;br /&gt;and &lt;a href="http://www.mono-project.com/Main_Page"&gt;Mono 1.1.9&lt;/a&gt;. This will be the stand-alone DSP processor running on a mini-itx motherboard which will boot from a flash drive. It will run a new version of SharpDSP under the Mono JIT written in, of course, C#.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;AD9958:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I received a couple of samples of the Analog Devices AD9958 this week. It will be interesting to test them versus the AD9951/54 parts.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Stay tuned&lt;/span&gt;...&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112672934906592986?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112672934906592986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112672934906592986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112672934906592986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112672934906592986'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/09/hpsdr-fpgausb-boards-have-arrived.html' title='The HPSDR FPGA_USB Boards Have Arrived'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112550897907199856</id><published>2005-08-31T12:01:00.000-05:00</published><updated>2006-10-17T10:45:14.356-05:00</updated><title type='text'>Short Update</title><content type='html'>&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;HPSDR_FPGA_USB MainBoard:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I now have almost 100% of the parts for the board and have verified my PCB layout with the QFP208 pattern used by the Xilinx XC3S400 FPGA.  I will immediately send the board design files out to be made.  It is a 4 layer board measuring 5"x6" with top side silk screen and top/bottom solder mask.  All components are on the top side.  The most difficult SMT components are the FPGA (QFP208, 0.5mm pitch) and the Cypress FX2 chip (QFP128, 0.5mm pitch).  Resistors are all 0805 size and caps are 0805 and 1210 sizes. &lt;br /&gt;&lt;br /&gt;The only part that I do not have is the Xilinx XC3S400 FPGA.  It is on backorder for 3-4 weeks (or so they claim).  It seems that there are just no Spartan 3 chips available right now.   What is the problem Xilinx???&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Mono:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have been doing a little work with using mono on Windows and Linux.  I was able to compile SharpDSP using SharpDevelop targeting the mono runtime and mcs compiler.  I compiled SharpDSP into a library (dll) then copied it over to the Linux machine.   I compiled a test C# program that uses the Managed.Windows.Forms in mono 1.1.8.3 to test the SharpDSP library.   Both the test program and the dll worked perfectly under both Windows and Linux *without* having to recompile either file that was compiled under SharpDevelop on Windows.  This means that I should be able to create a dedicated SoftRock 40 console that will run on both Windows and Linux using SharpDevelop for development (or alternately, MonoDevelop under Linux).  The Windows version will continue to use PortAudio.  The Linux version will use Jack.&lt;br /&gt;&lt;br /&gt;http://www.mono-project.com/Main_Page&lt;br /&gt;http://www.mono-project.com/WinForms&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112550897907199856?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112550897907199856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112550897907199856' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112550897907199856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112550897907199856'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/08/short-update.html' title='Short Update'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112498313617935853</id><published>2005-08-25T10:05:00.000-05:00</published><updated>2006-10-17T10:45:14.287-05:00</updated><title type='text'>FPGA_USB Board, DipTrace, and Mono</title><content type='html'>&lt;span style="color: rgb(255, 0, 0);"&gt;FPGA_USB Board and DipTrace:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have been using a program called DipTrace to do the schematics and board layout for the FPGA_USB board. After completing my first PCB layout with DipTrace I am very impressed with this program. Questions to the developers are answered very quickly. It has a very intuitive user interface and small learning curve. I had to create a few patterns for smt components that were not in the supplied libraries - the pattern editor is very easy to use. I highly recommend this software if you are looking for a powerful, yet low cost schematic entry/PCB design program. You can download a 30 day evaluation at http://www.diptrace.com&lt;br /&gt;&lt;br /&gt;The FPGA_USB board design is now complete. I have ordered the parts for the prototype boards and will soon send the design files to the board house to have the PCBs made. I will post more details about the project soon.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Mono:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have been doing a little work with Mono (http://www.mono-project.com) on both Windows and Linux. It is very impressive to be able to write a C# program with a GTK# GUI and have it run in Windows and Linux without having to recompile. I am considering recompiling SharpDSP to use Mono and then evaluating the performance of SharpDSP running in Linux. I am using Mono 1.1.8.3 with Suse 9.3&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112498313617935853?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112498313617935853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112498313617935853' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112498313617935853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112498313617935853'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/08/fpgausb-board-diptrace-and-mono.html' title='FPGA_USB Board, DipTrace, and Mono'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112351814691475878</id><published>2005-08-08T11:11:00.000-05:00</published><updated>2006-10-17T10:45:14.227-05:00</updated><title type='text'>Just an update</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;SharpDevelop:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There is a new build of SharpDevelop available at:&lt;br /&gt;&lt;br /&gt;http://www.icsharpcode.net/OpenSource/SD/&lt;br /&gt;&lt;br /&gt;Not a lot of changes - just bugfixes...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;DipTrace:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Check out this new low cost Schematic Editor/PCB Layout program at:&lt;br /&gt;&lt;br /&gt;http://www.diptrace.com&lt;br /&gt;&lt;br /&gt;I have tried Eagle, PCBExpress, and others... DipTrace has then all beat in ease of use. You can dowload a fully functional 30 day trial from the website. Or there is a freeware version also. The developers are very responsive to suggestions for features/improvements. I highly recommend this software.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;SoftRock40:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I received the SoftRock40 with PCM2900 CODEC from Tony Parks this weekend. I will start on modifying the SharpDSP enabled console to make a specific release for the SoftRock40. I will also correct the sample offset bug in the PCM2900 CODEC.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 204, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;FPGA/USB Board:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 204, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I am in the process of laying out the PCB. I am using DipTrace for the Schematic entry and PCB layout. This will become a open source hardware/firmware SDR project. Stay tuned to my website for more info...&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 204, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112351814691475878?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112351814691475878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112351814691475878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112351814691475878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112351814691475878'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/08/just-update.html' title='Just an update'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112249567791650000</id><published>2005-07-27T15:18:00.000-05:00</published><updated>2006-10-17T10:45:14.160-05:00</updated><title type='text'>SDR mini-itx project update</title><content type='html'>&lt;p class="MsoNormal"&gt;Here is an update on my mini-itx/SDR project:&lt;br /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;I have been working out the details of the A/D – D/A board.&lt;span style=""&gt;  &lt;/span&gt;I have decided to use the TI PCM4202 (24 bit, 192 kHz, stereo) for the RX A/D.&lt;span style=""&gt;  &lt;/span&gt;For the TX A/D and RX/TX D/A I am going to use the TI TLV320AIC23B CODEC (24 bits, 8-98 kHz, stereo, with integrated mic amp and headphone driver). &lt;span style=""&gt;  &lt;/span&gt;The PCM4204 will be dedicated to RX only.&lt;span style=""&gt;  &lt;/span&gt;The TLV320AIC23B will handle the microphone input for TX as well as the IQ output for TX and the audio output for RX (in the stand alone configuration).&lt;br /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Both chips have digital audio interfaces (I2S, left, right justified, etc…) so I have the problem of getting that data into the PC via USB2.0.&lt;span style=""&gt;  &lt;/span&gt;I looked at the Cypress EZ-USB FX2 CY7C68013 microcontroller for this but it cannot handle the transfer on its own.&lt;span style=""&gt;  &lt;/span&gt;I decided to use a Xilinx FPGA in addition to the EZ USB FX2 for the I2S to parallel conversion (inspired by the USRP and SSRP projects of GnuRadio). &lt;span style=""&gt; &lt;/span&gt;The EZ USB FX2 will operate in slave FIFO mode to get the data/to from USB2.0. &lt;span style=""&gt; &lt;/span&gt;It seems a shame to waste all the I/O available with the FPGA so there will be general purpose parallel I/O, I2C, and SPI bus capability for future expansion*.&lt;span style=""&gt;  &lt;/span&gt;In addition, since I already have the SPI/Microwire bus, I want to provide the ability to interface  two AD9954 DDS chips to the FPGA.&lt;span style=""&gt;  &lt;/span&gt;The AD9954 has a few dedicated I/O pins for synchronization between multiple chips as well as built in comparators that make it easy to generate a quadrature IQ clock up to 160 Mhz.&lt;span style=""&gt;  &lt;/span&gt;The AD9954 has a 14 bit D/A so there should be less spurs.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;The interface to the PCM4202 requires the digital audio interface lines (LRCK, BCK, DATA) and 3 sample rate select lines.&lt;span style=""&gt;  &lt;/span&gt;The TLV320AIC23B requires the digital audio interface lines (LRCK, BCK, DIN, DOUT) and 3 wire SPI lines (for control) + /CS.&lt;span style=""&gt;  &lt;/span&gt;The AD9954 requires 3 wire SPI lines for control and a /CS line.&lt;span style=""&gt;  &lt;/span&gt;The SPI bus lines will be shared between the TLV320AIC23B and the two AD9954 DDS chips requiring 3 /CS lines, one for each chip.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;Part of the parallel I/O will interface to the parallel connector on the SDR-1000 and the rest will be available for user defined I/O.&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;I will post more on my website as I make progress.&lt;span style=""&gt;  &lt;/span&gt;Any input, suggestions, and criticisms are welcome.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;Phil&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;*future expansion = high speed ( &gt;=50MSPS) 14 bit A/D&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112249567791650000?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112249567791650000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112249567791650000' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112249567791650000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112249567791650000'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/sdr-mini-itx-project-update.html' title='SDR mini-itx project update'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112205195864059856</id><published>2005-07-22T12:00:00.000-05:00</published><updated>2006-10-17T10:45:14.088-05:00</updated><title type='text'>Are you a computer simulation?</title><content type='html'>&lt;p class="MsoNormal"&gt;Someone emailed me about my webpage at: http://www.philcovington.com/comp.html to ask if I really believed we are living in a computer simulation.  He was referring to the paper by Bostrom titled "Are You Living In A Computer Simulation? ".  No, I do not believe we are living in a computer simulation.  It is an interesting paper though.  &lt;br /&gt;&lt;br /&gt;I think that Ed Fredkin's Digital Philosophy (http://www.digitalphilosophy.org) is probably closer to what underlies reality.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112205195864059856?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112205195864059856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112205195864059856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112205195864059856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112205195864059856'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/are-you-computer-simulation.html' title='Are you a computer simulation?'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112178418677220574</id><published>2005-07-19T09:37:00.000-05:00</published><updated>2006-10-17T10:45:13.548-05:00</updated><title type='text'>SoftRock 40 &amp; Reorganized website</title><content type='html'>&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;SoftRock 40&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I got Tony Park's SoftRock 40 playing today with Bill KD5TFD's modified PowerSDR console. It is amazing what can be done with such a small board. I want to revive the SharpDSP enabled console for use with the SoftRock 40. I will strip out all of the unneeded controls and functionality in the PowerSDR console to make it specific to the SoftRock 40. This will clear up some screen real estate so I can widen the Panadapter window to show all 48 or 96 kHz of bandwidth at once in the Panadapter.&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;When the PCM2900 codec boards become available I will modify SDRAudio to correct for the sample offset problem in the PCM2900.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;Website&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I reorganized my website today.  The website notes were archived and links to the various software projects were rearranged to make it easier to find a specific item.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112178418677220574?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112178418677220574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112178418677220574' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178418677220574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178418677220574'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/softrock-40-reorganized-website.html' title='SoftRock 40 &amp; Reorganized website'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112178380371287318</id><published>2005-07-18T11:17:00.000-05:00</published><updated>2006-10-17T10:45:13.490-05:00</updated><title type='text'>New SDR Project</title><content type='html'>A few people have mentioned in the past about&lt;br /&gt;wanting to use a small motherboard like mini-itx or micro-atx to run&lt;br /&gt;PowerSDR with the SDR-1000 to make a small self-contained unit&lt;br /&gt;possibly using a small LCD panel display.  That was one of the things&lt;br /&gt;on my project list that I wanted to do also.  Now that I have started&lt;br /&gt;thinking about it again I decided to try a variant of this idea and&lt;br /&gt;have had encouraging success so far just playing around with it.&lt;br /&gt;&lt;br /&gt;I wanted to try to dedicate a mini-itx board to the DSP, CW keyer, and&lt;br /&gt;hardware control of the SDR-1000 using real-time Linux (RTAI&lt;br /&gt;&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.rtai.org/" target="_blank"&gt;http://www.rtai.org/&lt;/a&gt;).  I am trying to see how feasible it is to run&lt;br /&gt;the DSP (based on the DttSP code) and hardware control code in hard&lt;br /&gt;real time under RTAI.  The RTAI patched linux kernel with DSP and&lt;br /&gt;hardware control code loads from a compact flash card to make it a&lt;br /&gt;diskless system (I have it down to under 16 MB now).  I'd also like to&lt;br /&gt;come up with a A/D D/A add on board that will use a chip like the&lt;br /&gt;Wolfson WM8786 24 bit, 192 khz stereo A/D or TI PCM4204 A/D and a&lt;br /&gt;suitable 16 bit D/A instead of using a sound card.  There recently has&lt;br /&gt;been a new project released on SourceForge that adds real time USB&lt;br /&gt;support to RTAI (USB4RT) that I am playing with now.&lt;br /&gt;&lt;br /&gt;I would then like to use the 100baseT Ethernet on the itx board to&lt;br /&gt;communicate with PowerSDR (minus portaudio, hardware control, DSP&lt;br /&gt;code) so it handles the GUI only.  Basically the itx board becomes the&lt;br /&gt;"DSP processor" and the GUI is handled remotely on your home PC.&lt;br /&gt;There are plenty of options for the hardware interfacing since the itx&lt;br /&gt;board has parallel, serial, and USB ports (and I2C) and these ports&lt;br /&gt;can be used in hard real time mode.  This also would give the&lt;br /&gt;possibility of running the SDR without the GUI by adding a front panel&lt;br /&gt;with real knobs, switches, leds, etc… if so desired, to make a stand&lt;br /&gt;alone unit without having to have a computer attached for GUI.&lt;br /&gt;&lt;br /&gt;I am hoping this approach will eliminate the problems of trying to do&lt;br /&gt;something that is inherently real-time on non-real time operating&lt;br /&gt;systems like Windows and standard Linux.   This should eliminate the&lt;br /&gt;burps, braaaps, and buzzes in the DSP as well as give extremely low&lt;br /&gt;latency to hardware interrupt I/O.&lt;br /&gt;&lt;br /&gt;I will report on my progress periodically.  With the current&lt;br /&gt;improvements in 1.4.1 as well as the improvements to come, there may&lt;br /&gt;be little need for this kind of dedicated hardware but I still would&lt;br /&gt;like to have a stand alone unit that does not have to be connected to&lt;br /&gt;the PC.    I am also interested in any comments, suggestions, or&lt;br /&gt;criticisms of this idea.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112178380371287318?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112178380371287318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112178380371287318' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178380371287318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178380371287318'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/new-sdr-project.html' title='New SDR Project'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112178542243420947</id><published>2005-07-17T10:02:00.000-05:00</published><updated>2006-10-17T10:45:14.018-05:00</updated><title type='text'>vCOM on BerliOS Developer</title><content type='html'>The vCOM driver project is now hosted at:&lt;br /&gt;&lt;br /&gt;http://developer.berlios.de/projects/n8vbvcomdriver/&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112178542243420947?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112178542243420947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112178542243420947' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178542243420947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178542243420947'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/vcom-on-berlios-developer.html' title='vCOM on BerliOS Developer'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112178361513289555</id><published>2005-07-16T07:25:00.000-05:00</published><updated>2006-10-17T10:45:13.431-05:00</updated><title type='text'>Update on Screen Capture Software</title><content type='html'>It turns out Microsoft offers a free download called Windows Media Encoder that will do screen recording.  I have tried it and so far it looks good.  It is not as jerky as CamStudio and creates smaller file sizes.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112178361513289555?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112178361513289555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112178361513289555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178361513289555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178361513289555'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/update-on-screen-capture-software.html' title='Update on Screen Capture Software'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112110492054090194</id><published>2005-07-11T12:50:00.000-05:00</published><updated>2006-10-17T10:45:13.372-05:00</updated><title type='text'>Screen Capture Software</title><content type='html'>I have been trying out various screen capture software that I hope can be used for software demonstations and tutorials.  The first I looked at is Camtasia (http://www.techsmith.com).  It is nice for creating software tutorials.  Next I looked at Macromedia's Captivate (http://www.macromedia.com/software/robodemo/).  It has a lot of avantages and I think I prefer it over Camtasia.  Unfortunately it costs about twice what Camtasia costs, but I think it is worth it.   I will post a test demo using Captivate to see how it plays with users.  It saves files in Shockwave format.&lt;br /&gt;&lt;br /&gt;I will probably do the software tutorials inside a VMWare Workstation 5 instance.  My screen resolution is 1280x1040 so I need to do the demos within a smaller screen area... probably 1024x768 since this is the smallest common size on laptops as well as most desktops.  I can also undo changes easily using VMWare's snapshot and cloning features.  VMWare Workstation 5 also has a movie recorder mode where you can capture whatever is going on and save it as an AVI file.  Unfortunately, I don't see any option to record audio narration in sync with whatever is happening on the screen.  If it worked this way I would probably use it to create the software tutorials.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112110492054090194?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112110492054090194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112110492054090194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112110492054090194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112110492054090194'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/screen-capture-software.html' title='Screen Capture Software'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112178462019224746</id><published>2005-07-09T09:49:00.000-05:00</published><updated>2006-10-17T10:45:13.609-05:00</updated><title type='text'>vCOM Build 226 released</title><content type='html'>&lt;a href="http://www.philcovington.com/SDR/N8VB_VCOMDriverBuild226.zip"&gt;Build 226 &lt;/a&gt;of the vCOM virtual serial port driver is released.&lt;br /&gt;  &lt;br /&gt; As I said in an earlier note, I had two reports from two different users that the vCOM driver would cause intermittent system freezes.  One one system it happened only a few times and on the other system it happened very often.  The system that had frequent system hangs was a hyper-threaded box.  There can be only a few causes of system freezes and deadlock is the most likely in multiprocessor and hyperthread systems.  I had a race condition caused by excessive use of spinlocks resulting in a deadlock.  The probablity of the deaklock happening is much higher in a multiprocessor/hyperthreaded system.  This is corrected in build 226.&lt;br /&gt;  &lt;br /&gt;   &lt;span style="text-decoration: underline; font-weight: bold;"&gt;Important:&lt;/span&gt;  You will need to edit the N8VBvCOM.inf file to match your current inf file before updating the driver.  Once you have the inf edited you can run the update.bat file to update the driver.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112178462019224746?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112178462019224746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112178462019224746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178462019224746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178462019224746'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/vcom-build-226-released.html' title='vCOM Build 226 released'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112178472131636867</id><published>2005-07-07T15:33:00.000-05:00</published><updated>2006-10-17T10:45:13.668-05:00</updated><title type='text'>vCOM Build 224 released</title><content type='html'>&lt;a href="http://www.philcovington.com/SDR/N8VB_VCOMDriverBuild224.zip"&gt;Build 224 &lt;/a&gt;of the vCOM virtual serial port driver is released.&lt;br /&gt;  &lt;br /&gt; There were two reports by two different people that vCOM build 222 would hand their system.  Not BSOD, but just freeze.  I have adjusted the thread priorities in build 224 out of the real-time range where they were set in build 222.  I think that perodically the threads priority would be boosted above the GUI's thread priority causing a deadlock.&lt;br /&gt;  &lt;br /&gt;   &lt;span style="text-decoration: underline; font-weight: bold;"&gt;Important:&lt;/span&gt;  You will need to edit the N8VBvCOM.inf file to match your current inf file before updating the driver.  Once you have the inf edited you can run the update.bat file to update the driver.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112178472131636867?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112178472131636867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112178472131636867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178472131636867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178472131636867'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/vcom-build-224-released.html' title='vCOM Build 224 released'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112076775114447289</id><published>2005-07-07T14:29:00.000-05:00</published><updated>2006-10-17T10:45:13.315-05:00</updated><title type='text'>vSOUND progress - vCOM info</title><content type='html'>I overcame a major hurdle today in the development of the vSOUND virtual sound card driver. If you are familiar with WDM Audio drivers you know that the portcls.sys driver exposes functions for creating, registering, and managing WDM Audio drivers. Unfortunately for our application the PcXXX functions hide much of the internal workings of the audio driver. For our vSOUND virtual sound card driver we need to be able to send customs IOCTLs to read and write data to the driver's buffers that represent the virtual A/D input and D/A output of the sound card.&lt;br /&gt;&lt;br /&gt;In the typical sound driver you will see something like this:&lt;style type="text/css"&gt;r /&gt;.csharpcode&lt;br /&gt;{&lt;br /&gt; font-size: 10pt;&lt;br /&gt; color: black;&lt;br /&gt; font-family: Courier New , Courier, Monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0px; }&lt;br /&gt;.rem { color: #008000; }&lt;br /&gt;.kwrd { color: #0000ff; }&lt;br /&gt;.str { color: #006080; }&lt;br /&gt;.op { color: #0000c0; }&lt;br /&gt;.preproc { color: #cc6633; }&lt;br /&gt;.asp { background-color: #ffff00; }&lt;br /&gt;.html { color: #800000; }&lt;br /&gt;.attr { color: #ff0000; }&lt;br /&gt;.alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0px;&lt;br /&gt;}&lt;br /&gt;.lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;extern&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="str"  style="font-size:100%;"&gt;"C"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; NTSTATUS&lt;br /&gt;DriverEntry&lt;br /&gt;(&lt;br /&gt;IN  PDRIVER_OBJECT          DriverObject,&lt;br /&gt;IN  PUNICODE_STRING         RegistryPathName&lt;br /&gt;)&lt;br /&gt;{&lt;br /&gt;NTSTATUS                    ntStatus;&lt;br /&gt;&lt;br /&gt;ntStatus =&lt;br /&gt;PcInitializeAdapterDriver&lt;br /&gt;(&lt;br /&gt;DriverObject,&lt;br /&gt;RegistryPathName,&lt;br /&gt;AddDevice&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ntStatus;&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;The call to PcInitializeAdapterDriver()  causes PortCls.sys to load pointers&lt;br /&gt;to handlers for the certain IRPs like IRP_MJ_CREATE, IRP_MJ_DEVICE_CONTROL, etc… into the driver object. Without access to these handlers we cannot get at the buffers we need for our virtual driver. The question is - how do we intercept these handlers?&lt;br /&gt;&lt;br /&gt;It turns out that PortCls provides a function call PcDispatchIrp() that we can use if we can get access to the handlers we need. To get access to the handlers we can override the pointers to the handlers that the call to PcInitializeAdapterDriver() installed:&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode&lt;br /&gt;{&lt;br /&gt; font-size: 10pt;&lt;br /&gt; color: black;&lt;br /&gt; font-family: Courier New , Courier, Monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0px; }&lt;br /&gt;.rem { color: #008000; }&lt;br /&gt;.kwrd { color: #0000ff; }&lt;br /&gt;.str { color: #006080; }&lt;br /&gt;.op { color: #0000c0; }&lt;br /&gt;.preproc { color: #cc6633; }&lt;br /&gt;.asp { background-color: #ffff00; }&lt;br /&gt;.html { color: #800000; }&lt;br /&gt;.attr { color: #ff0000; }&lt;br /&gt;.alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0px;&lt;br /&gt;}&lt;br /&gt;.lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;extern&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="str"  style="font-size:100%;"&gt;"C"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; NTSTATUS&lt;br /&gt;DriverEntry&lt;br /&gt;(&lt;br /&gt;IN  PDRIVER_OBJECT          DriverObject,&lt;br /&gt;IN  PUNICODE_STRING         RegistryPathName&lt;br /&gt;)&lt;br /&gt;{&lt;br /&gt;NTSTATUS                    ntStatus;&lt;br /&gt;&lt;br /&gt;ntStatus =&lt;br /&gt;PcInitializeAdapterDriver&lt;br /&gt;(&lt;br /&gt;DriverObject,&lt;br /&gt;RegistryPathName,&lt;br /&gt;AddDevice&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;if&lt;/span&gt;&lt;span style="font-size:100%;"&gt; (NT_SUCCESS(ntStatus))&lt;br /&gt;{&lt;br /&gt;DriverObject-&gt;&lt;br /&gt;MajorFunction[IRP_MJ_DEVICE_CONTROL] = MSVASDeviceControl;&lt;br /&gt;DriverObject-&gt;&lt;br /&gt;MajorFunction[IRP_MJ_CREATE] = MSVADCreateDevice;&lt;br /&gt;DriverObject-&gt;&lt;br /&gt;MajorFunction[IRP_MJ_CLOSE] = MSVADCloseDevice;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ntStatus;&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;span style="font-family:Verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;In the code above we have installed our own handlers for the IOCTLs we are interested in. When our handler is called we can examine the IRP to determine whether the IRP is something we want to handle or pass along to the PortCls driver. We can do this by calling PcDispatchIrp() if we are not interested in the particular IRP.&lt;br /&gt;&lt;br /&gt;That is all fine and dandy until you realize that you need to somehow call CreateFile() and DeviceIOControl() on the driver. We need a name that we can call in the CreateFile() function.&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;csharpcode&lt;br /&gt;{&lt;br /&gt; font-size: 10pt;&lt;br /&gt; color: black;&lt;br /&gt; font-family: Courier New , Courier, Monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0px; }&lt;br /&gt;.rem { color: #008000; }&lt;br /&gt;.kwrd { color: #0000ff; }&lt;br /&gt;.str { color: #006080; }&lt;br /&gt;.op { color: #0000c0; }&lt;br /&gt;.preproc { color: #cc6633; }&lt;br /&gt;.asp { background-color: #ffff00; }&lt;br /&gt;.html { color: #800000; }&lt;br /&gt;.attr { color: #ff0000; }&lt;br /&gt;.alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0px;&lt;br /&gt;}&lt;br /&gt;.lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;The MSVAD's AddDevice() looked like this:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;extern&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="str"  style="font-size:100%;"&gt;"C"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; NTSTATUS&lt;br /&gt;AddDevice&lt;br /&gt;(&lt;br /&gt;IN  PDRIVER_OBJECT          DriverObject,&lt;br /&gt;IN  PDEVICE_OBJECT          PhysicalDeviceObject&lt;br /&gt;)&lt;br /&gt;{&lt;br /&gt;NTSTATUS ntStatus;&lt;br /&gt;&lt;br /&gt;ntStatus =&lt;br /&gt;PcAddAdapterDevice&lt;br /&gt;(&lt;br /&gt;    DriverObject,&lt;br /&gt;    PhysicalDeviceObject,&lt;br /&gt;    PCPFNSTARTDEVICE(StartDevice),&lt;br /&gt;    MAX_MINIPORTS,&lt;br /&gt;    0&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ntStatus;&lt;br /&gt;} &lt;/span&gt;&lt;/pre&gt;The call to PcAddAdapterDevice() creates the device object, initializes the device context, and attaches the device object to the device stack. What we need to do is to create an additional FDO (Functional Device Object). If we create our own FDO we can create a symbolic link to it so Win32 user mode applications can open it and send IOCTLs to it.&lt;br /&gt;&lt;br /&gt;Here is the solution:&lt;style type="text/css"&gt;code&lt;br /&gt;{&lt;br /&gt; font-size: 10pt;&lt;br /&gt; color: black;&lt;br /&gt; font-family: Courier New , Courier, Monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0px; }&lt;br /&gt;.rem { color: #008000; }&lt;br /&gt;.kwrd { color: #0000ff; }&lt;br /&gt;.str { color: #006080; }&lt;br /&gt;.op { color: #0000c0; }&lt;br /&gt;.preproc { color: #cc6633; }&lt;br /&gt;.asp { background-color: #ffff00; }&lt;br /&gt;.html { color: #800000; }&lt;br /&gt;.attr { color: #ff0000; }&lt;br /&gt;.alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0px;&lt;br /&gt;}&lt;br /&gt;.lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;extern&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="str"  style="font-size:100%;"&gt;"C"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; NTSTATUS&lt;br /&gt;AddDevice&lt;br /&gt;(&lt;br /&gt;IN  PDRIVER_OBJECT          DriverObject,&lt;br /&gt;IN  PDEVICE_OBJECT          PhysicalDeviceObject&lt;br /&gt;)&lt;br /&gt;{&lt;br /&gt;NTSTATUS ntStatus;&lt;br /&gt;PDEVICE_OBJECT deviceObject;&lt;br /&gt;WCHAR NameBuffer[] = L&lt;/span&gt;&lt;span class="str"  style="font-size:100%;"&gt;"\\Device\\vSOUND"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;;&lt;br /&gt;WCHAR DOSNameBuffer[] = L&lt;/span&gt;&lt;span class="str"  style="font-size:100%;"&gt;"\\DosDevices\\vSOUND"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;;&lt;br /&gt;UNICODE_STRING uniNameString, uniDOSString;&lt;br /&gt;PVSOUND_DEVICE_EXTENSION      pDeviceExtension;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ntStatus =&lt;br /&gt; PcAddAdapterDevice&lt;br /&gt; (&lt;br /&gt;     DriverObject,&lt;br /&gt;     PhysicalDeviceObject,&lt;br /&gt;     PCPFNSTARTDEVICE(StartDevice),&lt;br /&gt;     MAX_MINIPORTS,&lt;br /&gt;     0&lt;br /&gt; );&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;if&lt;/span&gt;&lt;span style="font-size:100%;"&gt; (!NT_SUCCESS(ntStatus))&lt;br /&gt;     &lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ntStatus;&lt;br /&gt;&lt;br /&gt;KdPrint((&lt;/span&gt;&lt;span class="str"  style="font-size:100%;"&gt;"Success from PcAddAdapterDevice"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;));&lt;br /&gt;&lt;br /&gt;RtlInitUnicodeString(&amp;uniNameString, NameBuffer);&lt;br /&gt;RtlInitUnicodeString(&amp;uniDOSString, DOSNameBuffer);&lt;br /&gt;&lt;br /&gt;ntStatus = IoCreateDevice(DriverObject,&lt;br /&gt;                     &lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;sizeof&lt;/span&gt;&lt;span style="font-size:100%;"&gt;(VSOUND_DEVICE_EXTENSION),&lt;br /&gt;                     &amp;uniNameString,&lt;br /&gt;                     FILE_DEVICE_UNKNOWN,&lt;br /&gt;                     0,&lt;br /&gt;                     FALSE,&lt;br /&gt;                     &amp;amp;amp;amp;amp;amp;amp;amp;amp;deviceObject);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;if&lt;/span&gt;&lt;span style="font-size:100%;"&gt;(!NT_SUCCESS(ntStatus))&lt;br /&gt;     &lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ntStatus;&lt;br /&gt;&lt;br /&gt;KdPrint((&lt;/span&gt;&lt;span class="str"  style="font-size:100%;"&gt;"Success from IoCreateDevice"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;));&lt;br /&gt;&lt;br /&gt;pDeviceExtension =&lt;br /&gt;     PVSOUND_DEVICE_EXTENSION)deviceObject-&amp;gt;DeviceExtension;&lt;br /&gt;pDeviceExtension-&amp;id = 0x5000;&lt;br /&gt;&lt;br /&gt;ntStatus = IoCreateSymbolicLink (&amp;uniDOSString, &amp;amp;uniNameString);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;if&lt;/span&gt;&lt;span style="font-size:100%;"&gt; (!NT_SUCCESS(ntStatus))  &lt;/span&gt;&lt;span class="rem"  style="font-size:100%;"&gt;//try to delete the symbolic link first&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;{&lt;br /&gt; KdPrint((&lt;/span&gt;&lt;span class="str"  style="font-size:100%;"&gt;"Failed IoCreateSymbolicLink... trying to delete it..."&lt;/span&gt;&lt;span style="font-size:100%;"&gt;));&lt;br /&gt; IoDeleteSymbolicLink(&amp;uniDOSString);&lt;br /&gt; ntStatus = IoCreateSymbolicLink(&amp;uniDOSString, &amp;amp;uniNameString);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;if&lt;/span&gt;&lt;span style="font-size:100%;"&gt; (!NT_SUCCESS(ntStatus))&lt;br /&gt; {&lt;br /&gt;    KdPrint((&lt;/span&gt;&lt;span class="str"  style="font-size:100%;"&gt;"Failed IoCreateSymbolicLink"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;));&lt;br /&gt; &lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;   return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ntStatus;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;KdPrint((&lt;/span&gt;&lt;span class="str"  style="font-size:100%;"&gt;"Success from IoCreateSymbolicLink"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;));&lt;br /&gt;&lt;br /&gt;deviceObject-&amp;Flags &amp;amp;amp;amp;amp;amp;amp;amp;= ~DO_DEVICE_INITIALIZING;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"  style="font-size:100%;"&gt;return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ntStatus;&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;Like in a normal device driver, we create an additional functional device object using IoCreateDevice(). We then create a symbolic link to this FDO using IoCreateSymbolicLink(). If all goes well we can open a handle to the vSOUND driver by calling CreateFile("\\\\.\\vSOUND", ...). And this works... We can now intercept the IOCTLs being sent to the vSOUND driver which means we can define our own custom IOCTL codes to access the buffers we need to get the sound data in and out of the driver!&lt;br /&gt;&lt;br /&gt;Unfortunately, because we are trying to do something very out of the ordinary none of this is documented in the DDK so it took a while to figure it out. But it is a major problem that we have overcome on the way to a workable virtual sound card driver for use with PowerSDR. Now someone who has experience in writing device drivers might wonder why I didn't use the WDM prefered method of registering a Device Interface instead of creating a new FDO with a NT sytle name - That is the approach I took initially and it did not work. Upon searching the web and newsgroups it seems that others have tried this approach and were not successful. The answer to why probably lies somewhere in ks.sys or PortCls.sys that we do not have the source code to.&lt;br /&gt;&lt;br /&gt;vCOM:&lt;br /&gt;&lt;br /&gt;There will be a new build of vCOM available soon. Two users have reported that they have gotten total system freezes while using the driver.  They did not get BSODs - just a total system hang up.  According to Windows Internals, Forth Edition by Mark E. Russinovich and David A. Solomon there are three things that can cause the system to hang or become unresponsive:&lt;br /&gt;&lt;br /&gt;1. A device driver does not return from an ISR.&lt;br /&gt;&lt;br /&gt;Since we are not servicing ISRs in the vCOM driver this is not the problem.&lt;br /&gt;&lt;br /&gt;2. A high priority realtime thread prempts the windowing system driver's input threads.&lt;br /&gt;&lt;br /&gt;3. A deadlock occurs in kernel mode.&lt;br /&gt;&lt;br /&gt;I think that #2 is the culprit. In trying to squeeze maximum performance out of the driver I set the thread priorities to the real-time range in the vCOM driver. Obviously this is not a good idea. I will adjust the thread priorities to normal and release a new build. I am 95% sure this is the problem causing the hang on some systems. The threads only rarely run since I implemented the Fast read and Fast write functions in the vCOM driver for build 222. Occasionally these threads will run when data is not immediately available. This would explain the intermittency of the problem.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112076775114447289?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112076775114447289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112076775114447289' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112076775114447289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112076775114447289'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/vsound-progress-vcom-info.html' title='vSOUND progress - vCOM info'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112058192735993310</id><published>2005-07-05T11:36:00.000-05:00</published><updated>2006-10-17T10:45:13.256-05:00</updated><title type='text'></title><content type='html'>Ken, N9VV reported an error in PowerSDR 1.3.13 where opening a serial port after it had already been opened and then closed would cause an exception. The serial port will remain unavailable until PowerSDR is exited and then restarted.&lt;br /&gt;&lt;br /&gt;Using PortMon, I immediately saw the error: I was trying to close the handle to the com port without first cancelling a WaitCommEvent(). The file handle to the com port would only be closed when PowerSDR exited.&lt;br /&gt;&lt;br /&gt;The correction to the source code was pretty easy:&lt;br /&gt;&lt;br /&gt;In SerialStream.cs line 1383, function FreeHandle needs to be changed to:&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode&lt;br /&gt;{&lt;br /&gt; font-size: 10pt;&lt;br /&gt; color: black;&lt;br /&gt; font-family: Courier New , Courier, Monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0px; }&lt;br /&gt;.rem { color: #008000; }&lt;br /&gt;.kwrd { color: #0000ff; }&lt;br /&gt;.str { color: #006080; }&lt;br /&gt;.op { color: #0000c0; }&lt;br /&gt;.preproc { color: #cc6633; }&lt;br /&gt;.asp { background-color: #ffff00; }&lt;br /&gt;.html { color: #800000; }&lt;br /&gt;.attr { color: #ff0000; }&lt;br /&gt;.alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0px;&lt;br /&gt;}&lt;br /&gt;.lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;internal&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FreeHandle(IntPtr handle)&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (_ownsHandle)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="rem"&gt;//Important! Must cancel all events before closing file!!!&lt;/span&gt;&lt;br /&gt;        Win32API_Serial.SetCommMask(handle, 0);&lt;br /&gt;        &lt;span class="rem"&gt;//Now we can close the file handle&lt;/span&gt;&lt;br /&gt;        Win32API_Serial.CloseHandle(handle);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Calling SetCommMask() with a mask of 0 cancells the current WaitCommEvent() allowing the com port to be closed and correcting the problem.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112058192735993310?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112058192735993310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112058192735993310' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112058192735993310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112058192735993310'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/ken-n9vv-reported-error-in-powersdr-1.html' title=''/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112058126052047303</id><published>2005-07-04T11:30:00.000-05:00</published><updated>2006-10-17T10:45:13.163-05:00</updated><title type='text'>My new blog</title><content type='html'>This is the first entry in my blog. I realized that I was basically blogging on my webpage in the Notes section. This caused people to have to search through all the notes for important installation and configuration information about the software. So, now all comments about what I am working on will be posted here and removed from the webpage. Check here for the current status of the vCOM driver, vSound driver, and any other PowerSDR code updates.&lt;br /&gt;&lt;br /&gt;Currently I am working on a fix for a problem in the PowerSDR CAT serial code that causes an exception as reported by Ken, N9VV.&lt;br /&gt;&lt;br /&gt;Also, I am working on the vSound virtual sound card driver.  I will use choice #2 for the implementation as described on my webpage.  This will avoid having to use PortAudio in PowerSDR to talk to the virtual sound card.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112058126052047303?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112058126052047303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112058126052047303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112058126052047303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112058126052047303'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/07/my-new-blog.html' title='My new blog'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112178481579204812</id><published>2005-06-30T14:37:00.000-05:00</published><updated>2006-10-17T10:45:13.722-05:00</updated><title type='text'>vSound Ideas</title><content type='html'>I started to take a look at creating a virtual sound card driver for use with PowerSDR.  Here are two ways that I thought about doing it:&lt;br /&gt;  &lt;br /&gt;   &lt;img alt="vsc1" src="http://www.philcovington.com/SDR/vsc1.gif" style="width: 614px; height: 711px;" /&gt;&lt;br /&gt;  &lt;br /&gt; In the above figure we create two virtual sound card instances.  They are virtually hooked together as depicted above.  The advantage is that they appear to each application as a sound card so MME and DS can be used in both programs.&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;   &lt;img alt="vsc3" src="http://www.philcovington.com/SDR/vsc3.gif" style="width: 625px; height: 727px;" /&gt;&lt;br /&gt; In the above diagram, the driver creates one virtual sound card device and the third party program talks to it as normal using MME or DS.&lt;br /&gt;  &lt;br /&gt; PowerSDR talks to the driver using normal file read/write IO and custom IOCTL commands instead of through PortAudio's MME or DS.&lt;br /&gt;  &lt;br /&gt; Which one is preferred? Comments:  &lt;a href="mailto:phil@philcovington.com?subject=web%20page"&gt;Email Me&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112178481579204812?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112178481579204812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112178481579204812' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178481579204812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178481579204812'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/06/vsound-ideas.html' title='vSound Ideas'/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112178490839646635</id><published>2005-06-29T18:37:00.000-05:00</published><updated>2006-10-17T10:45:13.775-05:00</updated><title type='text'></title><content type='html'>I have a preliminary serial to TCP bridge app.   Here are some screenshots:&lt;br /&gt;&lt;br /&gt;(click on the image for a full size version)&lt;br /&gt;&lt;br /&gt;  &lt;a href="http://www.philcovington.com/SDR/06292005_big.gif"&gt;&lt;img alt="smallsamp" src="http://www.philcovington.com/SDR/06292005_sm.gif" style="border: 2px solid ; width: 640px; height: 512px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the image above PowerSDR's TCP Listener is enabled to listen for connections on port 4444 as in the notes for June 28, 2005 below.&lt;br /&gt;&lt;br /&gt;I have two pairs of vCOM ports enabled:  The first pair is COM4 and COM5,  the second pair is COM6 and COM7.&lt;br /&gt;&lt;br /&gt;The Serial To TCP Bridge app connects the virtual com ports to TCP.  The app connects to PowerSDR as a client on port 4444.&lt;br /&gt;&lt;br /&gt;In the screenshot above HRD is set to connect to COM5. MixW is set to connect to COM7. In the Serial To TCP Bridge app above, COM4 and COM6 are set to bridge to TCP port 4444. Refer to the screenshot below:&lt;br /&gt;&lt;br /&gt;  &lt;img alt="bridge" src="http://www.philcovington.com/SDR/bridge.gif" style="width: 416px; height: 256px;" /&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style="color: rgb(255, 0, 0);"&gt;IP Address&lt;/span&gt; is the address of the computer where PowerSDR is running.  It can be an IP address or a machine name (or "localhost").&lt;br /&gt;&lt;br /&gt;The &lt;span style="color: rgb(255, 0, 0);"&gt;TCP Port Number&lt;/span&gt; must be the port that the PowerSDR TCP Server is listening to for connections (here 4444).&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(255, 0, 0);"&gt;COM Port 1&lt;/span&gt; is the virtual com port that you want to bridge to TCP in the first pair of ports you have installed.   The &lt;span style="color: rgb(255, 0, 0);"&gt;Enable&lt;/span&gt; check box enables COM Port 1.&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(255, 0, 0);"&gt;COM Port 2&lt;/span&gt; is the virtual com port that you want to also bridge to TCP in the second pair of ports you have installed. If you have only one pair of ports installed then you should not enable the COM Port 2 selection. The &lt;span style="color: rgb(255, 0, 0);"&gt;Enable&lt;/span&gt; check box enables COM Port 2.&lt;br /&gt;&lt;br /&gt;The &lt;span style="color: rgb(255, 255, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Monitor&lt;/span&gt; &lt;/span&gt;check boxes determine whether commands can be sent from the virtual com port to the PowerSDR TCP Server or not. If checked, the virtual com port only receives from the TCP Server. Any commands sent to the com port in Monitor mode are not transmitted to the PowerSDR TCP Server. If unchecked the communication is both ways - any commands sent to that virtual port will be sent to the TCP Server. Using Monitor mode another radio can be slaved to PowerSDR.&lt;br /&gt;&lt;br /&gt;The &lt;span style="color: rgb(255, 255, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Connect&lt;/span&gt; &lt;/span&gt;button will attempt to connect to the PowerSDR TCP Server with the selected settings. The progress will be reported in the status window. If a successful connect is made the Serial To TCP Bridge form with minimize, otherwise it will report the error.&lt;br /&gt;&lt;br /&gt;The &lt;span style="color: rgb(255, 255, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Disconnect&lt;/span&gt; &lt;/span&gt;button will disconnect from the PowerSDR TCP Server.  It also closes the Serial To TCP Bridge application.&lt;br /&gt;&lt;br /&gt;Here is the &lt;a href="http://www.philcovington.com/SDR/PowerSDR1.3.12TCPCAT_Experimental.zip"&gt;source code diffs and the binaries&lt;/a&gt; (based on 1.3.12) to play with.  You will have to copy the PowerSDR.exe binary over an existing installed PowerSDR 1.3.12.&lt;br /&gt;&lt;br /&gt;Note that the N8VB Serial To TCP Bridge application has to be running on the same computer that HRD, MixW, etc... is running. With just the TCP CAT enabled in PowerSDR you do not have to have the virtual com ports installed on the PowerSDR machine (unless you are running all applications on the same computer).&lt;br /&gt;&lt;br /&gt;Here is a diagram of how it is set up:&lt;br /&gt;&lt;br /&gt;  &lt;img alt="how it works" src="http://www.philcovington.com/SDR/howitworks.gif" style="width: 627px; height: 965px;" /&gt;&lt;br /&gt;&lt;br /&gt;If you have only one pair of vCOM ports enabled then COM6 and COM7 above would not exist.&lt;br /&gt;&lt;br /&gt;We can get more &lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;sophisticated    &lt;/span&gt;in the monitoring setting by possibly filtering commands on the monitored port. It could be set up so that only query commands such as FA; or FB; can be transmitted to the PowerSDR TCP Server from the monitored port. Any set commands would be filtered out and not sent. We will have to explore these possibilites based on what users want to do with all of it.&lt;br /&gt;&lt;br /&gt;Also, to use the bridge with a read hardware port we would need to put settings for the com ports on the bridge form. Right now it is hard coded in the software for 9600, 8, n, 1&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112178490839646635?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112178490839646635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112178490839646635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178490839646635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178490839646635'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/06/i-have-preliminary-serial-to-tcp.html' title=''/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112178494598824504</id><published>2005-06-28T21:55:00.000-05:00</published><updated>2006-10-17T10:45:13.832-05:00</updated><title type='text'></title><content type='html'>I have added preliminary support for TCP in an experimental version of PowerSDR1.3.12.  Here are a few screenshots:&lt;br /&gt;  &lt;br /&gt; (click on the image for a full size version)&lt;br /&gt;  &lt;br /&gt;   &lt;a href="http://www.philcovington.com/SDR/tcp_big.gif"&gt;&lt;img alt="small" src="http://www.philcovington.com/SDR/tcp_sm.gif" style="border: 2px solid ; width: 626px; height: 466px;" /&gt;&lt;/a&gt;&lt;br /&gt;  &lt;br /&gt; The windows titled "TestClient" is just a fast app I wrote to test the CSocketClient and CSocketServer classes that I wrote.  I am using it to send and receive to/from PowerSDR.  The four windows represent four different simultaneous connections to PowerSDR.&lt;br /&gt;  &lt;br /&gt; I added a few items to the setup form:&lt;br /&gt;  &lt;br /&gt;   &lt;img alt="setup" src="http://www.philcovington.com/SDR/cat_setup.gif" style="width: 624px; height: 391px;" /&gt;&lt;br /&gt;  &lt;br /&gt; You can enable either CAT via Serial or TCP or both.  For TCP you can set the maximun connections allowed and which port number the TCP server listens to for connections from clients. &lt;br /&gt;  &lt;br /&gt; I used an umodified PowerSDR 1.3.12 as a base so the new serial port code is not in it.  This was just for testing purposes though.   As Bill, KD5TFD brought up in an email conversation, we will probably have to serialize access to the PowerSDR CAT and a good place might be in the command parser.&lt;br /&gt;  &lt;br /&gt; The TCP stuff will probably not be integrated into the console until after 1.4.0 is out.&lt;br /&gt;  &lt;br /&gt; Here is a view of the two new files (3 classes CSocketClient, CSocketServer, TCPListener) added to make it work:&lt;br /&gt;  &lt;br /&gt;   &lt;img alt="new" src="http://www.philcovington.com/SDR/newclasses.gif" style="width: 371px; height: 432px;" /&gt;&lt;br /&gt;  &lt;br /&gt; SocketUtilites.cs contains the asynchronous CSocketServer and CSocketClient classes.&lt;br /&gt;  &lt;br /&gt; TCPListener basically has the same function as SIOListener. &lt;br /&gt;  &lt;br /&gt; The next step is to create a TCP Client to Serial bridge what will allow you to connect to a virtual com port and send/rx data to/from the TCP server in PowerSDR.&lt;br /&gt;  &lt;br /&gt; COMMENT:  I must say that Bob, K5KDN and Bill, KD5TFD have made it very easy to extend the CAT support based on their excellent code.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112178494598824504?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112178494598824504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112178494598824504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178494598824504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178494598824504'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/06/i-have-added-preliminary-support-for.html' title=''/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112178497748814484</id><published>2005-06-24T09:56:00.000-05:00</published><updated>2006-10-17T10:45:13.893-05:00</updated><title type='text'></title><content type='html'>I wanted to add some additional fixed filter buttons to PowerSDR as well as two sliders for setting the filter low and filter high for the variable filters.  PowerSDR is running out of room for all these "enhancements" so I added a tabbed control to the filter selection section of the screen to try to get some more room.  See below:&lt;br /&gt;  &lt;br /&gt;   &lt;img alt="one" src="http://www.philcovington.com/SDR/psdr_ex2.gif" style="width: 774px; height: 583px;" /&gt;&lt;br /&gt;  &lt;br /&gt;   &lt;img alt="two" src="http://www.philcovington.com/SDR/psdr_ex1.gif" style="width: 774px; height: 583px;" /&gt;&lt;br /&gt;  &lt;br /&gt; When you select either one of the Var buttons on the Fixed Tab it automatically takes you to the Variable tab.&lt;br /&gt;  &lt;br /&gt; Oh, the above console has not been calibrated with my signal generator yet...&lt;br /&gt;  &lt;br /&gt; Can we gain some more room by putting some of the other controls on tabs?   Comments, suggestions, hate mail: &lt;a href="mailto:phil@philcovington.com?subject=web%20page"&gt;Email Me&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112178497748814484?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112178497748814484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112178497748814484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178497748814484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178497748814484'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/06/i-wanted-to-add-some-additional-fixed.html' title=''/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13992472.post-112178501261501269</id><published>2005-06-22T17:56:00.000-05:00</published><updated>2006-10-17T10:45:13.950-05:00</updated><title type='text'></title><content type='html'>&lt;a href="http://www.philcovington.com/SDR/N8VB_VCOMDriverBuild222.zip"&gt;Build 222&lt;/a&gt; of the vCOM virtual serial port driver is released.&lt;br /&gt;&lt;br /&gt;  &lt;span style="text-decoration: underline; color: rgb(255, 102, 0); font-weight: bold;"&gt;New Features:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Build 222 will now allow you to create up to 10 virtual com port pairs.    Each pair acts like a virtual null modem cable.&lt;br /&gt;&lt;br /&gt;By default, the inf file that comes with the download will create 1 pair (COM4 and COM5) by default. To change there settings you have to edit the inf file as follows:&lt;br /&gt;&lt;br /&gt;Look for the section titled "Localizable Strings"&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------------------------------&lt;br /&gt;  &lt;small style="color: rgb(0, 0, 0);"&gt;&lt;small&gt;;  *******Localizable Strings*******&lt;br /&gt;N8VB= "N8VB vCOM"&lt;br /&gt;Desc_x860= "N8VB vCOM MultiportSerialdrivers"&lt;br /&gt;N8VBvCOMDesc= "N8VB vCOM Virtual Serial Port Driver"&lt;br /&gt;&lt;br /&gt;;NOTE: Edit the following to change com port number and amount of paired ports&lt;br /&gt;&lt;br /&gt;;Number Of Pairs&lt;br /&gt;;************&lt;br /&gt;PAIRS=0x01&lt;br /&gt;;PAIRS=0x02&lt;br /&gt;;PAIRS=0x03&lt;br /&gt;;PAIRS=0x04&lt;br /&gt;;PAIRS=0x05&lt;br /&gt;;PAIRS=0x06&lt;br /&gt;;PAIRS=0x07&lt;br /&gt;;PAIRS=0x08&lt;br /&gt;;PAIRS=0x09&lt;br /&gt;;PAIRS=0x0A&lt;br /&gt;;NOTE:  MAX is 10 pairs&lt;br /&gt;&lt;br /&gt;;Pair 1&lt;br /&gt;;************&lt;br /&gt;PORT1="COM4"&lt;br /&gt;PORT2="COM5"&lt;br /&gt;&lt;br /&gt;;Pair 2&lt;br /&gt;;************&lt;br /&gt;PORT3="COM6"&lt;br /&gt;PORT4="COM7"&lt;br /&gt;&lt;br /&gt;;Pair 3&lt;br /&gt;;************&lt;br /&gt;PORT5="COM8"&lt;br /&gt;PORT6="COM9"&lt;br /&gt;&lt;br /&gt;;Pair 4&lt;br /&gt;;************&lt;br /&gt;PORT7="COM10"&lt;br /&gt;PORT8="COM11"&lt;br /&gt;&lt;br /&gt;;Pair 5&lt;br /&gt;;************&lt;br /&gt;PORT9="COM12"&lt;br /&gt;PORT10="COM13"&lt;br /&gt;&lt;br /&gt;;Pair 6&lt;br /&gt;;************&lt;br /&gt;PORT11="COM14"&lt;br /&gt;PORT12="COM15"&lt;br /&gt;&lt;br /&gt;;Pair 7&lt;br /&gt;;************&lt;br /&gt;PORT13="COM16"&lt;br /&gt;PORT14="COM17"&lt;br /&gt;&lt;br /&gt;;Pair 8&lt;br /&gt;;************&lt;br /&gt;PORT15="COM18"&lt;br /&gt;PORT16="COM19"&lt;br /&gt;&lt;br /&gt;;Pair 9&lt;br /&gt;;************&lt;br /&gt;PORT17="COM20"&lt;br /&gt;PORT18="COM21"&lt;br /&gt;&lt;br /&gt;;Pair 10&lt;br /&gt;;************&lt;br /&gt;PORT19="COM22"&lt;br /&gt;PORT20="COM23"&lt;/small&gt;&lt;/small&gt;&lt;br /&gt;-------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;To change how many port pairs the driver creates you must uncomment one of the settings in the &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;"&lt;/span&gt;&lt;small style="font-weight: bold; color: rgb(255, 0, 0);"&gt;&lt;small&gt;;Number Of Pairs"  &lt;/small&gt;&lt;/small&gt;table above. By default it is PAIRS=0x01. To create two pairs you need to comment out PAIRS=0x01 by putting a semicolon in front of that line (;PAIRS=0x01) and then uncomment PAIRS=0x02 by deleting the semicolon in front of that entry.&lt;br /&gt;&lt;br /&gt;To change what port numbers are used for each pair you must edit the Pair(n) tables where n is 1 through 10. You must not use com port numbers that are created by a real hardware com port or driver installlation will fail.&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(255, 102, 0); text-decoration: underline; font-weight: bold;"&gt;Bug Fixes:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is worthwhile to upgrade to build 222 even if you do not intend to use more than one pair of virtual com ports. I found a few bugs in the DeleteDevice section of the driver that caused problems with creating symbolic links if the driver was previously installed and them removed. The symbolic links were not being deleted correctly. This could either cause BSODs or failure of the driver to reinstall. Since I had to completely rwrite the AddDevice and DeleteDevice functions within the driver I corrected the bugs and now deletion of the symbolic links appears to work correctly.&lt;br /&gt;&lt;br /&gt;See the installation procedure below for updating to build 222. Once this installation procedure is done and build 222 is on your system you should be able to uninstall, make changes to the inf file and then reinstall the driver without having to reboot the system. Also, future builds will be able to be installed without rebooting (hopefully ;-)).&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; text-decoration: underline; color: rgb(255, 102, 0);"&gt;Installing Build 222:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To upgrade to build 222 for an earlier build:&lt;br /&gt;&lt;br /&gt;1. Go to Control Panel-&gt;System-&gt;Hardware-&gt;Device Manager and uninstall the current vCOM driver. It will be under Multi-port Serial Adapters in Device Manager.&lt;br /&gt;&lt;br /&gt;2. Open Start-&gt;Run-&gt;RegEdit. In RegEdit navigate to HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM. If you see any entries named \Device\vComDrvx where x = 0...n, right click on these entries and select delete. This will delete any symbolic links that were supposed to be deleted when build 114 or earlier was uninstalled.&lt;br /&gt;&lt;br /&gt;3.  REBOOT your computer.  This is important!  Do not try to install build 222 until after you have rebooted your computer.&lt;br /&gt;&lt;br /&gt;4.  Go to Control Panel-&gt;System-&gt;Hardware-&gt;Device Manager and verify that the vCOM driver has not been loaded.&lt;br /&gt;&lt;br /&gt;5.   Edit the N8VB_vCOM.inf file as described above to select your virtual com ports and number of pairs.&lt;br /&gt;&lt;br /&gt;6. Navigate to the N8VB_vCOMBuild222 folder and run install.bat (make sure you have admin privileges!). Some users have reported that just double clicking on install.bat in a Windows Explorer window does not work for them. It appears to be releated to Windows XP Home Edition. They have reported success by first opening a console window and running install.bat from there.&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; text-decoration: underline; color: rgb(255, 102, 0);"&gt;HRD NOTES:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To use PowerSDR with Ham Radio Deluxe you should select TS-50S for the radio type. The current CAT command support in PowerSDR does not implement all of the TS-2000 commands so HRD will update very slowly if you set it for TS-2000. Eventually HRD will support the SDR-1000, but right now selecting TS-50S works ok.&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; text-decoration: underline; color: rgb(255, 102, 0);"&gt;OTHER NOTES:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Eventually the vCOM driver will have a proper installation program that will make it easier to configure all of the settings.&lt;div class="blogger-post-footer"&gt;Software Defined Radio, Ham Radio, Electronics, USB, FPGA&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13992472-112178501261501269?l=pcovington.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pcovington.blogspot.com/feeds/112178501261501269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13992472&amp;postID=112178501261501269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178501261501269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13992472/posts/default/112178501261501269'/><link rel='alternate' type='text/html' href='http://pcovington.blogspot.com/2005/06/build-222-of-vcom-virtual-serial-port.html' title=''/><author><name>Phil Covington</name><uri>http://www.blogger.com/profile/14124688876731658917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
