<?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-6737713102444501259</id><updated>2012-03-03T21:16:40.125-08:00</updated><category term='hot air rework'/><category term='Bus Pirate'/><category term='Bogen'/><category term='UI'/><category term='RCA100A'/><category term='Wee Willy'/><category term='Display'/><category term='ISS'/><category term='Atmel'/><category term='Low Pass Filter'/><category term='I2C'/><category term='Gadget Gangster'/><category term='AVR Studio'/><category term='San Juan'/><category term='Microscope'/><category term='NAvion'/><category term='audio'/><category term='Object Exchange'/><category term='Aviation'/><category term='Stability'/><category term='Adafruit'/><category term='NCO'/><category term='Zork1'/><category term='D700'/><category term='Homebrew'/><category term='Mark Vandewettering'/><category term='Propeller'/><category term='Packet Radio'/><category term='Iambic'/><category term='FPU'/><category term='TXPercent'/><category term='Opera'/><category term='FM Receiver'/><category term='DAC'/><category term='G3RJV'/><category term='Arrow'/><category term='Flying'/><category term='G4FRE'/><category term='FeldHell'/><category term='Antenna'/><category term='Voltage Divider'/><category term='Touch Panel'/><category term='Avidyne'/><category term='Hitachi 44780'/><category term='uM-FPU64'/><category term='Alinco'/><category term='Keyer'/><category term='Ugly'/><category term='Hellschreiber'/><category term='usbTinyISP'/><category term='Arduine'/><category term='signal tracing'/><category term='AVR'/><category term='Shelton'/><category term='TX percent'/><category term='Transmitter'/><category term='JTAGICE'/><category term='WSPR'/><category term='High Voltage Programming'/><category term='Drift'/><category term='SW-3'/><category term='Cessna'/><category term='TQFP'/><category term='C400'/><category term='UI Code'/><category term='Olympic Mountains'/><category term='DDS-60'/><category term='Kenwood'/><category term='Brainwagon'/><category term='QRSS'/><category term='Shield'/><category term='LCD'/><category term='8080 emulator'/><category term='GNU'/><category term='Columbia 400'/><category term='Beacon'/><category term='2N7000'/><category term='DS1307'/><category term='MCP4725'/><category term='Sudden'/><category term='AD5330'/><category term='APRS'/><category term='Arduino'/><category term='Manhattan'/><category term='MIT License'/><category term='Rotary Encoder'/><category term='transformer'/><category term='AZ-EL'/><category term='Data Logger'/><category term='SMT'/><category term='soldering'/><category term='Micromega'/><category term='WinAVR'/><category term='National'/><category term='CP/M'/><category term='LM386'/><category term='Power Amp'/><category term='Receiver'/><category term='NE602'/><category term='Chip'/><category term='ArisSat1'/><category term='T725'/><category term='Power Supply'/><category term='CW'/><category term='RTC'/><category term='L-17B'/><category term='TNC2'/><category term='Friday Harbor'/><category term='RDA5807SS'/><category term='MightyOhm'/><category term='Power Monitor'/><category term='WSPR encoder'/><title type='text'>KO7M - Ham Radio Blog</title><subtitle type='html'>The ramblings of one home-brew electronics, software engineer and pilot.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>77</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4252693529491743371</id><published>2012-03-03T17:11:00.001-08:00</published><updated>2012-03-03T21:16:40.133-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Iambic'/><category scheme='http://www.blogger.com/atom/ns#' term='Transmitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Keyer'/><title type='text'>Update to Propeller keyer/transmitter</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;After getting some much needed feedback on my &lt;a href="http://ko7m.blogspot.com/2012/02/propeller-iambic-keyer-or-transmitter.html"&gt;keyer&lt;/a&gt; implementation, I have done several revisions to the keyer software, shortly to be posted on &lt;a href="https://github.com/ko7m/Keyer"&gt;gitHub&lt;/a&gt;.&amp;nbsp; Here is the current revision history list.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; Revision History&lt;br /&gt;&amp;nbsp; ----------------&lt;br /&gt;&amp;nbsp; Rev 1.1 - Thanks to Eldon, WA0UWH for pointing out a logic flaw in my&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;sendData method&lt;br /&gt;&amp;nbsp; Rev 1.2 - Updated to make into a proper object.&amp;nbsp; Implemented get/put methods.&lt;br /&gt;&amp;nbsp; Rev 1.3 - Implemented Iambic A and Iambic B modes and one element memory.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Made Iambic B mode default&lt;br /&gt;&amp;nbsp; Rev 1.4 - Added bug mode (dits are automatic, dahs are not)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Added straight key mode (dit key input keys transmitter manually)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Added initPins(dit, dah, key, rf) to allow setting of pin assignments.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Defaults to 0, 1, 2, 27&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Added public method swapPaddles to allow switching dit and dah paddles&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I think the keyer is in pretty good shape now.&amp;nbsp; I welcome any feedback on version 1.4 from anyone that may find it useful.&amp;nbsp; Reminder that with the addition&amp;nbsp;of proper low pass filters, this code functions as a full fledged CW transmitter for ham radio usage.&amp;nbsp; Power output is approximately 5-7 mW putting it squarely in the &lt;a href="http://en.wikipedia.org/wiki/QRP_operation"&gt;QRP&lt;/a&gt; category.&amp;nbsp; See my previous blog post for a simple &lt;a href="http://ko7m.blogspot.com/2012/02/power-amp-results.html"&gt;amplifier&lt;/a&gt; to raise the output power sufficiently for beacon or CW operation.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4252693529491743371?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4252693529491743371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/03/update-to-keyertransmitter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4252693529491743371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4252693529491743371'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/03/update-to-keyertransmitter.html' title='Update to Propeller keyer/transmitter'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-5388698931749337275</id><published>2012-03-03T17:00:00.000-08:00</published><updated>2012-03-03T17:12:17.756-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microscope'/><category scheme='http://www.blogger.com/atom/ns#' term='signal tracing'/><category scheme='http://www.blogger.com/atom/ns#' term='hot air rework'/><category scheme='http://www.blogger.com/atom/ns#' term='soldering'/><title type='text'>Working on the lab/shack today</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Still trying to reclaim my shack from the clutches of ever expanding clutter.&amp;nbsp; Managed to get the corner of one work table cleaned off and the microscope, hot air rework and soldering stations up and running.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/--s5bTbHsTIA/T1K92L_nYXI/AAAAAAAAAUg/3_sYbpKpj0o/s1600/WP_000176.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://1.bp.blogspot.com/--s5bTbHsTIA/T1K92L_nYXI/AAAAAAAAAUg/3_sYbpKpj0o/s400/WP_000176.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I keep the LCR metre and signal tracer close at hand.&amp;nbsp; Nice to have one place to do close work again.&amp;nbsp; I cannot stress sufficiently my opinion that purchasing whatever equipment you need in order to be able to clearly see what you are doing is critical to your ability to enjoy electronics and ham radio hobbies.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-5388698931749337275?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/5388698931749337275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/03/working-on-labshack-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5388698931749337275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5388698931749337275'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/03/working-on-labshack-today.html' title='Working on the lab/shack today'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/--s5bTbHsTIA/T1K92L_nYXI/AAAAAAAAAUg/3_sYbpKpj0o/s72-c/WP_000176.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-5982914194691994524</id><published>2012-02-28T19:26:00.001-08:00</published><updated>2012-02-28T19:51:15.378-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sudden'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Receiver'/><category scheme='http://www.blogger.com/atom/ns#' term='G3RJV'/><category scheme='http://www.blogger.com/atom/ns#' term='NE602'/><category scheme='http://www.blogger.com/atom/ns#' term='LM386'/><title type='text'>Propeller Receiver</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;In a &lt;a href="http://ko7m.blogspot.com/2012/02/propeller-iambic-keyer-or-transmitter.html"&gt;previous blog posting&lt;/a&gt; I have demonstrated an extremely simple transmitter / keyer implementation on the propeller platform.&amp;nbsp; The next logical step was to build a receiver to go with it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;What I have implemented is a very simple direct conversion receiver based on the &lt;a href="http://www.nxp.com/documents/data_sheet/SA602A.pdf"&gt;NE602&lt;/a&gt; Gilbert Cell mixer and a &lt;a href="http://www.ti.com/lit/ds/symlink/lm386.pdf"&gt;LM386 &lt;/a&gt;audio amplifier.&amp;nbsp; The circuit is based on the famous&amp;nbsp;sudden receiver design from the &lt;a href="http://www.g3rjv.org.uk/"&gt;Rev George Dobbs G3RJV&lt;/a&gt; many years ago and looks something like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-7tloa9zHDG8/T02VaEBjNsI/AAAAAAAAAUI/oW_QKd4U7GI/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="316" src="http://2.bp.blogspot.com/-7tloa9zHDG8/T02VaEBjNsI/AAAAAAAAAUI/oW_QKd4U7GI/s400/Capture.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;My implementation removes all the tuned circuit stuff from pins 6 and 7 of the NE612 (NE602 in my circuit) and injects the RF generated by the propeller via a blocking capacitor directly into pin 6 to set the receive frequency.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Here is a photograph of the lash-up with the receiver built manhattan-style on a little 5x7 cm PCB scrap.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-CgKsMvWaD7s/T02XGGJHJTI/AAAAAAAAAUQ/OHzfeTchMpM/s1600/WP_000169.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://3.bp.blogspot.com/-CgKsMvWaD7s/T02XGGJHJTI/AAAAAAAAAUQ/OHzfeTchMpM/s400/WP_000169.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Right now I am sitting here listening to a 75 metre net running on 3.98 MHz LSB (The Oregon Emergency Net).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Ve_q2tododA/T02X0SfD0JI/AAAAAAAAAUY/Pv2oq7D_5L0/s1600/WP_000171.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://1.bp.blogspot.com/-Ve_q2tododA/T02X0SfD0JI/AAAAAAAAAUY/Pv2oq7D_5L0/s400/WP_000171.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Obviously, I have a lot of work to do on user interface code...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Now as you might well imagine, there are a number of problems with playing at RF frequencies with bits of wire lashing all the bits and pieces together stuck into protoboards.&amp;nbsp; For example, I had to move the RF pin as far from the encoder pins as I could in order to not confuse the encoder code.&amp;nbsp; The frequency kept changing on its own until I turned off the RF.&amp;nbsp; There is a fair amount of "hash" in the receiver audio being generated by the LCD controller chip.&amp;nbsp; But as far as a proof-of-concept impelementation, I could not be happier.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;With this success, I plan to put together a complete&amp;nbsp;(simple)&amp;nbsp;all-band transceiver using a propeller as the controller as well as RF generation component for both the transmitter oscillator as well as the local oscillator for the receiver.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-5982914194691994524?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/5982914194691994524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/propeller-receiver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5982914194691994524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5982914194691994524'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/propeller-receiver.html' title='Propeller Receiver'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-7tloa9zHDG8/T02VaEBjNsI/AAAAAAAAAUI/oW_QKd4U7GI/s72-c/Capture.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4757885279026033617</id><published>2012-02-27T23:30:00.000-08:00</published><updated>2012-02-27T23:31:51.328-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Rotary Encoder'/><category scheme='http://www.blogger.com/atom/ns#' term='I2C'/><title type='text'>Rotary Encoders on Propeller</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;This evening, I have been playing with &lt;a href="http://wa0uwh.blogspot.com/"&gt;Eldon's&lt;/a&gt; code to handle rotary encoders.&amp;nbsp; Works nicely as long as the encoder inputs to the propeller have pull-up resistors and a capacitor to ground to make a little integrator.&amp;nbsp; Helps with debouncing the encoder output.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So far the LCD driver is working nicely for both I2C displays and parallel displays.&amp;nbsp; Eldon seems to have switched over to using mine.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I will next work up some code to use the encoder for frequency selection.&amp;nbsp; Everyone else is well beyond this point, but I have focused mostly on the WSPR encoder solution whilst everyone has been continuing on with UI and other concerns.&amp;nbsp; I will catch up here soon...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4757885279026033617?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4757885279026033617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/rotary-encoders-on-propeller.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4757885279026033617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4757885279026033617'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/rotary-encoders-on-propeller.html' title='Rotary Encoders on Propeller'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-3115617303436529379</id><published>2012-02-26T23:55:00.002-08:00</published><updated>2012-02-26T23:55:58.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='Hitachi 44780'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><title type='text'>Propeller LCD and RTC work (cont.)</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;In a &lt;a href="http://ko7m.blogspot.com/2012/02/propeller-lcd-and-rtc-work.html"&gt;previous post&lt;/a&gt;, I mentioned that I was working on an I2C LCD driver.&amp;nbsp; I have decided to support both I2C and parallel interfaces to common LCD displays that utilize the popular &lt;a href="http://www.adafruit.com/datasheets/HD44780.pdf"&gt;Hitachi HD44780&lt;/a&gt; controller chip.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;This work is largely completed at this point although there is some clean-up work to be done.&amp;nbsp; One of the dilemmas I face is the question of how to implement cursor positioning.&amp;nbsp; It is simple enough to envision an API that sets the cursor to some row/column pair, but should those rows and columns be zero-based or one-based values?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I have worked forever on systems wherein all such values are zero based.&amp;nbsp; There does appear to be however some precident for using one-based values.&amp;nbsp; For the moment, I have implemented two APIs, one that is zero-based and the other one-based.&amp;nbsp; Perhaps that is an acceptable, albeit confusing solution.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I welcome any thoughts anyone might have on the topic.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-3115617303436529379?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/3115617303436529379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/propeller-lcd-and-rtc-work-cont.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3115617303436529379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3115617303436529379'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/propeller-lcd-and-rtc-work-cont.html' title='Propeller LCD and RTC work (cont.)'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-3636024214639910280</id><published>2012-02-25T11:58:00.001-08:00</published><updated>2012-02-25T11:59:27.312-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><title type='text'>Propeller Beacon on the air on 30 metres</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I am waging war on the amount of clutter in my shack this weekend.&amp;nbsp; It has gotten to where I could hardly get in the place.&amp;nbsp; I have put the propeller beacon up on 30 metres on WSPR, QRSS and Opera.&amp;nbsp; It runs on a 10 minute cycle, WSPR first, QRSS then Opera and then it waits for the end of the 10 minute cycle and repeats.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Let me know if you "hear" it on the air.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-3636024214639910280?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/3636024214639910280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/propeller-beacon-on-air-on-30-metres.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3636024214639910280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3636024214639910280'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/propeller-beacon-on-air-on-30-metres.html' title='Propeller Beacon on the air on 30 metres'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4362344339745193112</id><published>2012-02-23T00:35:00.000-08:00</published><updated>2012-02-23T00:36:39.108-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Low Pass Filter'/><category scheme='http://www.blogger.com/atom/ns#' term='DS1307'/><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='RTC'/><category scheme='http://www.blogger.com/atom/ns#' term='I2C'/><title type='text'>Propeller LCD and RTC work</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Sorry for no updates for a while as I have been ill unfortunately.&amp;nbsp; Starting to feel better now however so I am back playing around with propeller.&amp;nbsp; I have a DS1307 real-time clock module (RTC) and the I2C LCD module from my Arduino beacon project that I have been wanting to get working.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The RTC was a complete no-brainer, it just works.&amp;nbsp; I plan to use it to allow atonomous operation of my beacons that need accurate time information such as WSPR.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The LCD however was a bit of a problem as I am not happy with the display drivers that are out there and have not found an acceptable I2C implementation for any display that I care for.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, I ported the driver I was using for Arduino to spin and have it working now at least at a macro level.&amp;nbsp; I have not tested the functionality fully yet.&amp;nbsp; I am quite pleased with the initial performance.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-yQFefZj78uk/T0X1vdregsI/AAAAAAAAAUA/FSeuJ8YNo4U/s1600/WP_000160.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://2.bp.blogspot.com/-yQFefZj78uk/T0X1vdregsI/AAAAAAAAAUA/FSeuJ8YNo4U/s400/WP_000160.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The plan is to make a rather comprehensive driver that will work with either I2C or parallel mode, though I only will be using I2C.&amp;nbsp; Above you can see it driving my 20 character by 4 line display.&amp;nbsp; The I2C bit is implemented in the driver via bit-banging.&amp;nbsp; This allows the driver to be independent of any other I2C library.&amp;nbsp; The SDA and SCL pins can be specified with the default to share the I2C pins with the EEPROM.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;On other fronts I am putting together a low pass filter module that uses six relay selectable low pass filters for the HF Bands 160 - 10 metres.&amp;nbsp; 10 bands are covered with 6 filters.&amp;nbsp;&amp;nbsp;Attenuation in the stop band should exceed -40dB.&amp;nbsp; I anticipate using an 8 bit I2C I/O expander, six bits of which will be used select the appropriate filter for the following bands: 160, 80, 60/40, 30/20, 17/15, 12/10 metres.&amp;nbsp; I anticipate using the remaining bits for transmit/receive switching and antenna auto-tuner control.&amp;nbsp; More to come on this.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4362344339745193112?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4362344339745193112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/propeller-lcd-and-rtc-work.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4362344339745193112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4362344339745193112'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/propeller-lcd-and-rtc-work.html' title='Propeller LCD and RTC work'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-yQFefZj78uk/T0X1vdregsI/AAAAAAAAAUA/FSeuJ8YNo4U/s72-c/WP_000160.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4092418947958001626</id><published>2012-02-18T12:58:00.000-08:00</published><updated>2012-02-23T00:41:25.432-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Iambic'/><category scheme='http://www.blogger.com/atom/ns#' term='CW'/><category scheme='http://www.blogger.com/atom/ns#' term='Transmitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Keyer'/><title type='text'>Keyer / Transmitter bugs found by Eldon, WA0UWH</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;In my &lt;a href="http://ko7m.blogspot.com/2012/02/propeller-iambic-keyer-or-transmitter.html"&gt;previous post&lt;/a&gt; about my &lt;a href="http://ko7m.blogspot.com/2012/02/propeller-iambic-keyer-or-transmitter.html"&gt;Propeller keyer / transmitter&lt;/a&gt;, my friend &lt;a href="http://wa0uwh.blogspot.com/"&gt;Eldon&lt;/a&gt; has been kind enough to point out a logic error that I had in my sendData code.&amp;nbsp; The effect of the bug would be felt if you attempted to change the pin numbers that the dit and dah paddles were connected to.&amp;nbsp; Nice catch Eldon!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I have updated the code to fix this error.&amp;nbsp; At the same time, at &lt;a href="http://wa0uwh.blogspot.com/"&gt;Eldon's&lt;/a&gt; suggestion, I have also updated the code to make it more of a spin object.&amp;nbsp; I have added start and stop methods that allow it to run on a separate cog.&amp;nbsp; I have also made most of the keyer parameters externally readable and writeable by adding get and put methods for each.&amp;nbsp; For example the frequency can be read or written with getFreq/putFreq.&amp;nbsp; Have a look at the &lt;a href="https://github.com/ko7m/Keyer"&gt;code&lt;/a&gt; for the entire list of get/put functions.&amp;nbsp; I also renamed the file from keyer.spin to ko7mKeyer.spin in order to try and avoid naming conflicts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;a href="http://wa0uwh.blogspot.com/"&gt;Eldon&lt;/a&gt; has implemented a UI in front of this code using a propeller USB prototype board.&amp;nbsp; Here is his implementation.&amp;nbsp; Pretty nice, I think.&amp;nbsp; He can change the frequency and keyer speed through his rotary encoders and display everything on an LCD.&amp;nbsp; Nice little transmitter, &lt;a href="http://wa0uwh.blogspot.com/"&gt;Eldon&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-x8Kg5QLFF4c/Tz_95UMvGNI/AAAAAAAAAT4/rZd48sTk5VA/s1600/IMAG0535.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="238" src="http://2.bp.blogspot.com/-x8Kg5QLFF4c/Tz_95UMvGNI/AAAAAAAAAT4/rZd48sTk5VA/s400/IMAG0535.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4092418947958001626?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4092418947958001626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/keyer-transmitter-bugs-found-by-eldon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4092418947958001626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4092418947958001626'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/keyer-transmitter-bugs-found-by-eldon.html' title='Keyer / Transmitter bugs found by Eldon, WA0UWH'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-x8Kg5QLFF4c/Tz_95UMvGNI/AAAAAAAAAT4/rZd48sTk5VA/s72-c/IMAG0535.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7846741633225353366</id><published>2012-02-15T21:29:00.000-08:00</published><updated>2012-02-23T00:41:56.150-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RDA5807SS'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='FM Receiver'/><title type='text'>FM Receiver with Propeller</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Today I received by the evening post a package containing a little break-out board containing an &lt;a href="http://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;frm=1&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CCQQFjAA&amp;amp;url=http%3A%2F%2Fwww.rf-link.net%2Fdownloadsfront.do%3Fmethod%3Dpicker%26flag%3Dall%26id%3D8d2d5403-eca5-4967-ac14-31b924102771%26fileId%3Dd557a0cf-5358-4d25-9d2c-56d7e8247ed4&amp;amp;ei=g5I8T828JarX0QHYiqjbBw&amp;amp;usg=AFQjCNEt96SM-Kuwmho-bgx6l1JwU1fPew&amp;amp;sig2=UHXu6hm3qe7IfjHCTbRa7A"&gt;RDA5807SS&lt;/a&gt; FM receiver chip.&amp;nbsp; This is a very cute little module that implements a complete FM sterero receiver.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-SNXrvpAJ1xo/TzyTICz0U9I/AAAAAAAAATc/z-sQZbg2QqE/s1600/WP_000156.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://4.bp.blogspot.com/-SNXrvpAJ1xo/TzyTICz0U9I/AAAAAAAAATc/z-sQZbg2QqE/s400/WP_000156.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The device sports a standard 3.5mm stereo audio jack on the top.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-CI1h9a8-G7c/TzyTVBgs55I/AAAAAAAAATk/hYkorG0ZJWw/s1600/WP_000157.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://3.bp.blogspot.com/-CI1h9a8-G7c/TzyTVBgs55I/AAAAAAAAATk/hYkorG0ZJWw/s400/WP_000157.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Hookup is completely trivial with only I2C SDA/SCL pins, VDD/VSS power connections.&amp;nbsp; Four wires and you are done.&amp;nbsp; Could not be simpler, no soldering involved unless you want to.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/--VFA-iO9oPU/TzyTtrWD9kI/AAAAAAAAATs/pw3Mjlyq4Xo/s1600/WP_000158.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://1.bp.blogspot.com/--VFA-iO9oPU/TzyTtrWD9kI/AAAAAAAAATs/pw3Mjlyq4Xo/s400/WP_000158.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Fun little project, if you want immedicate success, give it a go!&amp;nbsp; I leave it playing in the background whilst I work on other programming projects.&amp;nbsp; The product information page at the Parallax site is &lt;a href="http://www.parallax.com/StoreSearchResults/tabid/768/txtSearch/27984/List/0/SortField/4/ProductID/749/Default.aspx"&gt;here&lt;/a&gt; where you can find all the documentation as well.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7846741633225353366?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7846741633225353366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/fm-receiver-with-propeller.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7846741633225353366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7846741633225353366'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/fm-receiver-with-propeller.html' title='FM Receiver with Propeller'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-SNXrvpAJ1xo/TzyTICz0U9I/AAAAAAAAATc/z-sQZbg2QqE/s72-c/WP_000156.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-5746303831411356164</id><published>2012-02-15T08:05:00.000-08:00</published><updated>2012-02-23T00:42:22.546-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Iambic'/><category scheme='http://www.blogger.com/atom/ns#' term='CW'/><category scheme='http://www.blogger.com/atom/ns#' term='Transmitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Keyer'/><title type='text'>Iambic Keyer / Transmitter update</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have posted a simple update to the &lt;a href="http://ko7m.blogspot.com/2012/02/propeller-iambic-keyer-or-transmitter.html"&gt;keyer / transmitter project&lt;/a&gt; on &lt;a href="https://github.com/ko7m/Keyer"&gt;Github&lt;/a&gt;.&amp;nbsp; The change allows you to specify which sideband you wish to use for the transmitter offset.&amp;nbsp; You specify the frequency the receiver will use and how much you want to offset your transmit frequency.&amp;nbsp; The idea is to be able to hear your own transmitter in the receiver as a sidetone.&amp;nbsp; By default I use 600 Hz offset from the receiver frequency.&amp;nbsp; When I drop down below 30 metres, I typically use lower sideband (LSB) and offset 600 Hz below the receiver frequency and on 30 metres or above, I offset 600 Hz above.&amp;nbsp; This can now be changed by setting the sideband value to LSB or USB as appropriate.&amp;nbsp; Previously to achieve the same effect, you would have had to change the toneOffset value to +600 or -600 as appropriate.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-5746303831411356164?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/5746303831411356164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/iambic-keyer-transmitter-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5746303831411356164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5746303831411356164'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/iambic-keyer-transmitter-update.html' title='Iambic Keyer / Transmitter update'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-9146067385140382743</id><published>2012-02-12T01:39:00.000-08:00</published><updated>2012-02-23T00:42:51.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Iambic'/><category scheme='http://www.blogger.com/atom/ns#' term='Transmitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Keyer'/><title type='text'>Propeller Iambic Keyer or Transmitter</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have put together a simple keyer or CW transmitter using the Parallax Propeller board.&amp;nbsp; This is sample code that you may find useful for your own experimentation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;To use as a keyer, set Frequency to zero and attach a keyer circuit to the pin defined by keyPin.&amp;nbsp; I suggest using a 2N7000 or VN10 to drive most modern commercial CW transmitters.&amp;nbsp; Something like this should be adequate.&amp;nbsp; The code supports active high or active low keying.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-9LPJ1onXqSg/Tzg7G-rDSXI/AAAAAAAAATU/ar101enFIHU/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="http://1.bp.blogspot.com/-9LPJ1onXqSg/Tzg7G-rDSXI/AAAAAAAAATU/ar101enFIHU/s400/Capture.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;A speaker can be used on RFPin in this mode to allow hearing a&amp;nbsp;sidetone if desired.&amp;nbsp;&amp;nbsp;By default a&amp;nbsp;600 Hz tone should be heard.&amp;nbsp; A two paddle key is attached between ditPin/dahPin and ground.&amp;nbsp; I use P0, P1 for the paddle, P2 for the keyer output and P27 for RF/Speaker output.&amp;nbsp; Please change to suit your needs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;To use as a transmitter, set Frequency to the transmit frequency.&amp;nbsp; A 600 Hz offset is used by default to allow the transmitter to be heard in the receiver as sidetone.&amp;nbsp; Change the toneFreq constant if you wish to have a different offset.&amp;nbsp; Change ErrorOffset to correct for any transmit frequency error your propeller may experience.&amp;nbsp; This tuning to set the ErrorOffset value should only need be done once by zero beating a frequency standard such as WWV.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;A low pass filter for the transmit frequency should be connected to RFPin in order to clean up the square wave output sufficiently to meet regulations about signal purity.&amp;nbsp; I recommend a minimul of a 5 pole filter as described in earlier posts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Currently only Iambic Mode A is supported.&amp;nbsp; Future versions will include the ability to set the keyer parameters such as keying speed, character speed, frequency and RF pin assignments as well&amp;nbsp;as changing Iambic modes&amp;nbsp;via the paddles.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Here is a photograph of the current lash-up with my Vibroplex paddles hooked to P0 and P1.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-PFodgkROIVs/TzeKUnzOaqI/AAAAAAAAATM/y9H8wGgZBEg/s1600/WP_000155.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://3.bp.blogspot.com/-PFodgkROIVs/TzeKUnzOaqI/AAAAAAAAATM/y9H8wGgZBEg/s400/WP_000155.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The source code can be obtained from &lt;/span&gt;&lt;a href="https://github.com/ko7m/Keyer"&gt;&lt;span style="font-family: Trebuchet MS;"&gt;https://github.com/ko7m/Keyer&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Trebuchet MS;"&gt;.  As always comments and suggestions are solicited.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-9146067385140382743?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/9146067385140382743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/propeller-iambic-keyer-or-transmitter.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/9146067385140382743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/9146067385140382743'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/propeller-iambic-keyer-or-transmitter.html' title='Propeller Iambic Keyer or Transmitter'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-9LPJ1onXqSg/Tzg7G-rDSXI/AAAAAAAAATU/ar101enFIHU/s72-c/Capture.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7870524992277478308</id><published>2012-02-09T06:30:00.000-08:00</published><updated>2012-02-09T06:41:14.697-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Micromega'/><category scheme='http://www.blogger.com/atom/ns#' term='uM-FPU64'/><category scheme='http://www.blogger.com/atom/ns#' term='Chip'/><category scheme='http://www.blogger.com/atom/ns#' term='FPU'/><title type='text'>A very interesting chip</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have been poking around looking at floating point processors and have come across a very interesting chip that I have &lt;a href="http://micromegacorp.com/umfpu64.html"&gt;bookmarked&lt;/a&gt; for future investigation, the Micromega uM-FPU64.&amp;nbsp; So far I have not been able to find anyone with stock on this chip other than the earlier V3.1 32 bit version.&amp;nbsp; For USD25.00 in single unit quantities, this is quite the &lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;bargain.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-wPHUFkFX0Wg/TzPa3JYdLkI/AAAAAAAAATA/j7QmwnxUFik/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="283" src="http://2.bp.blogspot.com/-wPHUFkFX0Wg/TzPa3JYdLkI/AAAAAAAAATA/j7QmwnxUFik/s400/Capture.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Features&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;64-bit and 32-bit Floating Point&lt;/dt&gt;&lt;dd&gt;A comprehensive set of 64-bit and 32-bit floating point operations are provided.&lt;br /&gt;See the uM-FPU64 datasheet for details.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;64-bit and 32-bit Integer&lt;/dt&gt;&lt;dd&gt;A comprehensive set of 64-bit and 32-bit integer operations are provided.&lt;br /&gt;See the uM-FPU64 datasheet for details.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;User-defined Functions&lt;/dt&gt;&lt;dd&gt;User-defined functions can be stored in Flash memory. Flash functions are programmed through the SERIN/SEROUT pins using the uM-FPU64 IDE. A high level language is supported, including control statements and conditional execution.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Matrix Operations&lt;/dt&gt;&lt;dd&gt;A matrix can be defined as any set of sequential registers. The MOP instruction provides scalar operations, element-wise operations, matrix multiply, inverse, determinant, count, sum, average, min, max, copy and set operations.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;FFT Instruction&lt;/dt&gt;&lt;dd&gt;Provides support for Fast Fourier Transforms. Used as a single instruction for data sets that fit in the available registers, or as a multi-pass instruction for working with larger data sets.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Serial Input / Output&lt;/dt&gt;&lt;dd&gt;When not required for debugging, the SERIN and SEROUT pins can be used for serial I/O. A second asynchronous serial port, with hardware flow control, is also available as a local device using the DEVIO instruction.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;NMEA Sentence Parsing&lt;/dt&gt;&lt;dd&gt;The serial input can be set to scan for valid NMEA sentences with optional checksum.  Multiple sentences can be buffered for further processing.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;String Handling&lt;/dt&gt;&lt;dd&gt;String instructions are provided to insert and append substrings,  search for fields and substrings, convert from floating point or long integer to a substring,  or convert from a substring to floating point or long integer. For example, the string instructions could be used to parse a GPS NMEA sentence, or format multiple numbers in an output string.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Table Lookup Instructions&lt;/dt&gt;&lt;dd&gt;Instructions are provided to load 32-bit values from a table or find the index of a floating point or long integer table entry that matches a specified condition.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;MAC Instructions&lt;/dt&gt;&lt;dd&gt;Instructions are provided to support multiply and accumulate and multiply and subtract operations.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;A/D Conversion&lt;/dt&gt;&lt;dd&gt;Multiple 12-bit A/D channels are provided (six on 28-pin device, nine on 44-pin device). The A/D conversion can be triggered manually, through an external input, or from a built-in timer. The A/D values can be read as raw values or automatically scaled to a floating point value. Data rates of up to 10,000 samples per second are supported.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Real-Time Clock&lt;/dt&gt;&lt;dd&gt;A built-in real-time clock is provided, for scheduling events or creating date/time stamps.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Timers&lt;/dt&gt;&lt;dd&gt;Timers can be used to trigger the A/D conversion, or to track elapsed time. A microsecond and second timer are provided.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;External Input&lt;/dt&gt;&lt;dd&gt;An external input can be used to trigger an A/D conversion, or to count external events.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Foreground/Background Processing&lt;/dt&gt;&lt;dd&gt;Event driven foreground/background processing can be used to provide independent monitoring of local peripherals. The microcontroller communicates with the foreground, while background processes can be used to monitor local device activity. &lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Local Device Support&lt;/dt&gt;&lt;dd&gt;Local peripheral device support includes: RAM, 1-Wire, I2C, SPI, UART, counter, servo controller, LCD, and VDrive2 devices. The uM-FPU64 can act as a complete subsystem controller for GPS, sensor networks, robotic subsystems, IMUs, and other applications. Local devices are assigned to digital I/O pins at run-time, and controlled with the DEVIO instruction.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Low Power Modes&lt;/dt&gt;&lt;dd&gt;When the uM-FPU64 chip is not busy it automatically enters a power saving mode. It can also be configured to enter a sleep mode which turns the device off while preserving register contents. In sleep mode the uM-FPU64 chip consumes negligible power. &lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Firmware Upgrades&lt;/dt&gt;&lt;dd&gt;When updates become available, the uM-FPU64 firmware can be upgraded in the field using the uM-FPU64 IDE software.&lt;/dd&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7870524992277478308?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7870524992277478308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/very-interesting-chip.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7870524992277478308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7870524992277478308'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/very-interesting-chip.html' title='A very interesting chip'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-wPHUFkFX0Wg/TzPa3JYdLkI/AAAAAAAAATA/j7QmwnxUFik/s72-c/Capture.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-994608157809892767</id><published>2012-02-07T11:48:00.000-08:00</published><updated>2012-02-08T19:37:00.628-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='WSPR encoder'/><category scheme='http://www.blogger.com/atom/ns#' term='MIT License'/><title type='text'>WSPR Encoder - Version 1</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Updated this posting 8 Feb 2012&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have decided not to release my WSPR encoder for Propeller on the Object Exchange at the Parallax web site and instead I created a Github project repository for it.&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I am releasing it free of charge under the same MIT License that is used at the Object Exchange however.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;You can obtain the files at &lt;a href="https://github.com/ko7m/WSPR"&gt;https://github.com/ko7m/WSPR&lt;/a&gt;.&amp;nbsp; Looking at this web page, you will see the following:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dOlvd0SKVec/TzM-SxhkR7I/AAAAAAAAASw/feppf0BYQUQ/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-dOlvd0SKVec/TzM-SxhkR7I/AAAAAAAAASw/feppf0BYQUQ/s400/Capture.PNG" width="350" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;By clicking on any of the files you can examine them or you can get it all in one go by clicking on "ZIP" near the top and it will bundle up a zip archive&amp;nbsp; and push it down to you.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;As always, I welcome feedback or questions.&amp;nbsp; I hope you find it useful.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-994608157809892767?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/994608157809892767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/wspr-encoder-version-1.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/994608157809892767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/994608157809892767'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/wspr-encoder-version-1.html' title='WSPR Encoder - Version 1'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-dOlvd0SKVec/TzM-SxhkR7I/AAAAAAAAASw/feppf0BYQUQ/s72-c/Capture.PNG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7309822208096077598</id><published>2012-02-06T12:46:00.000-08:00</published><updated>2012-02-06T12:46:17.615-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='L-17B'/><category scheme='http://www.blogger.com/atom/ns#' term='Olympic Mountains'/><category scheme='http://www.blogger.com/atom/ns#' term='Shelton'/><category scheme='http://www.blogger.com/atom/ns#' term='Flying'/><category scheme='http://www.blogger.com/atom/ns#' term='NAvion'/><title type='text'>Another flying diversion</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Last week was a total bust for me mostly due to being sick all week.&amp;nbsp; I think I get to blame my grandson for the cold I caught and the associated sinus infection.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Saturday however was one of those p&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;henomenal clear sky, million-mile visibility days with low wind speeds.&amp;nbsp; I decided that if I had to hire someone to fly me, I was going to take to the skies.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Fortunately, a good buddy of mine has a 1948 NAvion L-17-B and had a shout out to anyone wanting to ride along.&amp;nbsp; Sold!&amp;nbsp; My poor little super cub will have to stay in the hanger a little longer until my head is more clear I am afraid.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-GIspi5czut0/TzA27XaYoUI/AAAAAAAAARo/3YIN_COTG8o/s1600/N77BH.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="235" src="http://4.bp.blogspot.com/-GIspi5czut0/TzA27XaYoUI/AAAAAAAAARo/3YIN_COTG8o/s400/N77BH.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;We left our home field (Harvey Field -&amp;nbsp; S43) in Snohomish, WA and flew to the Olympic Penninsula and cruised the length of Hood Canal stopping for lunch at Shelton (KSHN) at the cafe in the parachute jump centre.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/--q4oNm_NAPU/TzA4Qs47IKI/AAAAAAAAARw/yHGadw5yupY/s1600/OlympicLoop.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="285" src="http://1.bp.blogspot.com/--q4oNm_NAPU/TzA4Qs47IKI/AAAAAAAAARw/yHGadw5yupY/s400/OlympicLoop.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Hood canal runs against the east side of the Olympic Mountains, which I think are particularly beautiful.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-z97-QmCyzVE/TzA4mwF3Z8I/AAAAAAAAAR4/H725Qslp6qY/s1600/WP_000117+(2).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/-z97-QmCyzVE/TzA4mwF3Z8I/AAAAAAAAAR4/H725Qslp6qY/s400/WP_000117+(2).jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-xHxif08EsaY/TzA4zQXrJtI/AAAAAAAAASA/hFzSH1AZmHA/s1600/WP_000118+(2).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://1.bp.blogspot.com/-xHxif08EsaY/TzA4zQXrJtI/AAAAAAAAASA/hFzSH1AZmHA/s400/WP_000118+(2).jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;After a nice lunch, we decided to head on out to the Pacific Ocean coast and head north.&amp;nbsp; We flew the length of the Washington coast from about Pacific Beach all the way to Neah Bay.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-HTn0qMincWU/TzA5LqZQF4I/AAAAAAAAASI/eXUqrqqHwv0/s1600/WP_000124+(2).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/-HTn0qMincWU/TzA5LqZQF4I/AAAAAAAAASI/eXUqrqqHwv0/s400/WP_000124+(2).jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The wind was a bit brisk onshore as evidenced by the breakers on the shallow beach.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-TqOX1vTPaLM/TzA5e0YXB1I/AAAAAAAAASQ/ADisb65Ai3g/s1600/WP_000130+(2).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://1.bp.blogspot.com/-TqOX1vTPaLM/TzA5e0YXB1I/AAAAAAAAASQ/ADisb65Ai3g/s400/WP_000130+(2).jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;We had to circle a few islands off the coast.&amp;nbsp; Pretty rugged coastline with very few options for an emergency landing.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-UKRrwXR2vg0/TzA50ro0otI/AAAAAAAAASY/d21aILmlQ3I/s1600/WP_000136+(2).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/-UKRrwXR2vg0/TzA50ro0otI/AAAAAAAAASY/d21aILmlQ3I/s400/WP_000136+(2).jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Here we are rounding the bend around Tatoosh Island off Cape Flattery.&amp;nbsp; This is the most north-western point of the United States.&amp;nbsp; I am actually surprised that any of these pictures turned out because as we made this turn, we were just getting slammed around by the wind.&amp;nbsp; Thousands of miles of Pacific Ocean winds from Canada and the Washington coast converging and trying to stuff through the Straits of Juan de Fuca.&amp;nbsp; We picked up a lot of ground speed as we turned east down the Straits.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Er45wv7p0qU/TzA7EAndEQI/AAAAAAAAASg/f4HnA4Ma7To/s1600/WP_000138+(2).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/-Er45wv7p0qU/TzA7EAndEQI/AAAAAAAAASg/f4HnA4Ma7To/s400/WP_000138+(2).jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Looking back south down the Pacific Coast.&amp;nbsp; Sun is dropping towards the horizon.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-kX6nK3bgnyg/TzA7SodJIXI/AAAAAAAAASo/XpH44q46Ejk/s1600/WP_000145+(2).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/-kX6nK3bgnyg/TzA7SodJIXI/AAAAAAAAASo/XpH44q46Ejk/s400/WP_000145+(2).jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Crossing Puget Sound from the West, Mt. Rainier in the distance about 10 miles from Harvey Field.&amp;nbsp; On days like this, there is no finer place to fly than the Pacific Northwest.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;If you would like to see all of my pictures of the trip, here is a &lt;a href="https://skydrive.live.com/redir.aspx?cid=5c9f142eb73fd641&amp;amp;resid=5C9F142EB73FD641!2706&amp;amp;parid=5C9F142EB73FD641!1502&amp;amp;authkey=!ACv04B2OeaNCoSQ"&gt;link&lt;/a&gt;.&amp;nbsp; About three hours of flying and endless beauty.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7309822208096077598?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7309822208096077598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/another-flying-diversion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7309822208096077598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7309822208096077598'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/another-flying-diversion.html' title='Another flying diversion'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-GIspi5czut0/TzA27XaYoUI/AAAAAAAAARo/3YIN_COTG8o/s72-c/N77BH.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-6889854960295201570</id><published>2012-02-06T09:49:00.000-08:00</published><updated>2012-02-06T14:11:55.147-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Object Exchange'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='WSPR encoder'/><title type='text'>WSPR Encoder for Propeller - Update</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have decided to implement the main interface to the WSPR encoder such that you just pass in a single string containing the WSPR message you desire to encode.&amp;nbsp; The object will return a pointer to a byte array containing the symbol set for that message.&amp;nbsp; So the calling sequence will look like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;OBJ&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp; WSPR : "ko7mWSPREncode"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;VAR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp; LONG Symbols&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;Symbols := WSPR.encodeWSPR(string("KO7M CN87 27"))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I think this will be the most intuitive and least error prone.&amp;nbsp; The returned value will point to an array of 162 bytes containing the symbol set.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;VAR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; BYTE ich&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;repeat ich from 0 to 161&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; sendSymbol(BYTE[Symbols][ich])&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;You can reference each byte with byte[Symbols][&amp;lt;index&amp;gt;] or you can treat the entire thing as a single string.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; sendSymbols(Symbols)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Things may change again, but I think this is the direction I am going.&amp;nbsp; I plan to publish the final encoder in the &lt;a href="http://obex.parallax.com/"&gt;Propeller Object Exchange&lt;/a&gt; at the Parallax site.&amp;nbsp; I am investigating this opportunity now.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-6889854960295201570?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/6889854960295201570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/wspr-encoder-for-propeller-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6889854960295201570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6889854960295201570'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/wspr-encoder-for-propeller-update.html' title='WSPR Encoder for Propeller - Update'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-5286245179965107350</id><published>2012-02-04T23:36:00.000-08:00</published><updated>2012-02-04T23:40:18.634-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='WSPR encoder'/><title type='text'>Learned something new about Spin</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I did a little study related to my &lt;a href="http://ko7m.blogspot.com/2012/02/wspr-encoder-for-propeller-beacon_04.html"&gt;previous post&lt;/a&gt; where I was befuddled about parameter passing in Spin for the Propeller.&amp;nbsp; To review...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Passing parameters to a method looks like this&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;VAR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; BYTE a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; WORD b&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; LONG c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;foo(a, b, c)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;On the receiving end, we declare foo like this&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB foo(x, y, z)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;This is confusing to me when compared to other languages.&amp;nbsp; On the calling end, I can declare the size of the data.&amp;nbsp; I am passing a byte, word and long to foo.&amp;nbsp; On the receiving end, x, y and z are all longs.&amp;nbsp; Furthermore, if you declare any local variables, they are longs too.&amp;nbsp; For example:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB FOO(x, y, z) | i, j, k&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, when you pass a parameter, regardless of the size of the data, it is first converted to a long and the called method will receive it as a long.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;However, you can also pass an address as a parameter.&amp;nbsp; Remember, my example was passing my callsign, locator, power and the symbol table to my encodeWSPR method.&amp;nbsp; This example is working:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;VAR&lt;br /&gt;  &amp;nbsp; BYTE sym[162]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;OBJ&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;   &amp;nbsp; WSPR : "ko7mWSPREncode"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;WSPR.encodeWSPR(string("KO7M  "), string("CN87"), 27, @sym)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;While this version yielded different results:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;DAT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;  &amp;nbsp; mycall BYTE "KO7M  ", 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;myloc  BYTE "CN87", 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt; &amp;nbsp; mypwr  BYTE 27&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;WSPR.encodeWSPR(@mycall, @myloc, @mypwr, @sym)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;The issue here is that I am trying to make this same method handle two different format parameters.&amp;nbsp; Namely, the third parameter is the WSPR power setting.&amp;nbsp; In the first example, I am passing the value 27 in the parameter list.&amp;nbsp; This gets converted to a long and assigned to the third parameter in the call to encodeWSPR.&amp;nbsp; It then needs to be treated as a long value in the method.&amp;nbsp; In the second example, I am passing the address of a byte containing the power value.&amp;nbsp; The address gets converted to a long and assigned to the third parameter.&amp;nbsp; In the method, I have to then treat it as the address&amp;nbsp;of a byte rather than as a long value.&amp;nbsp; For example:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;encodeWSPR(call, loc, power, sym) | pwr&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;pwr := BYTE[power]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, the reason my encodeWSPR was returning different results is that I was using the power parameter in different ways while the method was expecting to receive a long containing the value, not the address of it.&amp;nbsp; Bonehead...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, I have to decide which way it is going to be as it cannot be both in the same method.&amp;nbsp; I can provide other methods that allow either kind of parameter to be passed or separate methods to set each parameter even.&amp;nbsp; My inclination is to pass the power by value rather than by reference.&amp;nbsp; Any preferences?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-5286245179965107350?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/5286245179965107350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/learned-something-new-about-spin.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5286245179965107350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5286245179965107350'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/learned-something-new-about-spin.html' title='Learned something new about Spin'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-3504252477006518534</id><published>2012-02-04T00:35:00.000-08:00</published><updated>2012-02-04T00:40:07.790-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='WSPR encoder'/><title type='text'>WSPR Encoder for Propeller Beacon Update</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Well, after a bit of hair tearing, I have managed to get my WSPR encoder running on the propeller platform.&amp;nbsp; I am doing some cleanup of the code and will post it as soon as I have completed the changes.&amp;nbsp; I implemented it as a separate object, so to use it you would do something like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;VAR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE sym[162] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;OBJ&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; WSPR : "ko7mWSPREncode"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;This declares a byte array to hold the encoded WSPR symbol set and includes the WSPR encoder in your code.&amp;nbsp; You would then call this WSPR object to encode your call, locator and power setting and provide the address of the sym BYTE array so it can fill it up with your message.&amp;nbsp; Typically this would be done in your initialization code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;WSPR.encodeWSPR(string("KO7M&amp;nbsp; "), string("CN87"), 27, @sym)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Then in you would in your main loop send each symbol returned.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB Main | iSym&lt;br /&gt;&amp;nbsp; doInitialize&lt;br /&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat iSym from 0 to 161&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendSymbol(sym[iSym]) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; noTone&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sync := nextSync&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat while SecondCnt // Sync&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(100)&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Pretty simple and it works quite well.&amp;nbsp; I have a couple of caveats that are important in the current implementation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Only standard WSPR messages are supported currently.&amp;nbsp; No six digit locators or calls with prefixes or suffixes such as KO7M/5 or JA2/KO7M.&amp;nbsp; I have more work to do to support these special message formats.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Call signs must be exactly 6 characters and the third character must be a numeric.&amp;nbsp; This is according to Joe Taylor's specifications.&amp;nbsp; The point of this is that my routine does not do any error checking to be sure you passed in the call sign with the numeric aligned in the third character and that it is padded with spaces to make it exactly 6 characters.&amp;nbsp; You will need to attend to this in the parameter you pass to encodeWSPR or the results will not be predictable.&amp;nbsp; For example, my call is passed as KO7M&amp;lt;space&amp;gt;&amp;lt;space&amp;gt;.&amp;nbsp; If you had a call&amp;nbsp;like one of the special even calls of "K7S", it would need to be passed in as &amp;lt;space&amp;gt;K7S&amp;lt;space&amp;gt;&amp;lt;space&amp;gt;.&amp;nbsp; I may attend to this in future versions if I get inspired to do the work.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I also ran into a caveat that I cannot yet explain.&amp;nbsp; I am looking for insights into why this is happening.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;If I pass the parameters like so:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;DAT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; mycall BYTE "KO7M&amp;nbsp; ", 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp; myloc&amp;nbsp; BYTE "CN87", 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp; mypwr&amp;nbsp; BYTE 27&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;WSPR.encodeWSPR(@mycall, @myloc, @mypwr, @sym)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif; font-size: small;"&gt;The results are not encoded correctly.&amp;nbsp; Changing to use the "string("...") format rather than&amp;nbsp;BYTE data block constants with exactly the same data&amp;nbsp;shown above works correctly.&amp;nbsp; So, you will have to stick to this format until I figure out why there is any difference.&amp;nbsp; Any thoughts on this from any of you propeller hackers out there&amp;nbsp;appreciated.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-3504252477006518534?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/3504252477006518534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/wspr-encoder-for-propeller-beacon_04.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3504252477006518534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3504252477006518534'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/wspr-encoder-for-propeller-beacon_04.html' title='WSPR Encoder for Propeller Beacon Update'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-1810076893678545301</id><published>2012-02-03T11:36:00.000-08:00</published><updated>2012-02-03T11:39:36.366-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='WSPR encoder'/><category scheme='http://www.blogger.com/atom/ns#' term='G4FRE'/><title type='text'>WSPR Encoder for Propeller Beacon</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;In my &lt;a href="http://ko7m.blogspot.com/2012/02/wspr-encoder-thinking-out-loud.html"&gt;previous post&lt;/a&gt;, I was thinking out loud about my WSPR encoder for the propeller-based beacon project.&amp;nbsp; &lt;a href="http://www.g4fre.com/"&gt;Dave, G4FRE&lt;/a&gt; posted a couple of comments, one of which was quite useful entitled &lt;a href="http://g4jnt.com/Coding/WSPR_Coding_Process.pdf"&gt;WSPR Coding Process&lt;/a&gt;&amp;nbsp;and was instrumental in enabling me to fix my WSPR encoder implementation.&amp;nbsp; I was in fact encoding the locator incorrectly.&amp;nbsp; This document gives the following information for locators:&lt;/span&gt;&lt;span style="font-family: Times-Roman;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times-Roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times-Roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times-Roman;"&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Locator&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Designating the four locator characters as [Loc 1] to [Loc 4], the first two can each take on the 18 &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;values ‘A’ to ‘R’ only so are allocated numbers from 0 – 17. The second pair can take only the &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;values 0 – 9.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Another integer M is formed from:&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;M&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;1 = (179 - 10 * [Loc 1] - [Loc 3] ) * 180 + 10 * [Loc 2] + [Loc 4]&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Which gives a range of values from ‘AA00’ = 32220 to ‘RR99’ = 179, which comfortably fit into a &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;15 bit representation (2^&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;15 = 32768), leaving spare codes for further enhancements.&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The useful bit here was the information that AA00 = 32220 and RR99 = 179.&amp;nbsp; The algorithm above is not quite correct however.&amp;nbsp; The corrected form should be:&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&amp;nbsp;&lt;/div&gt;&lt;div align="LEFT"&gt;&amp;nbsp;&lt;/div&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;M1 = (179 - 10 * ([Loc 1]-10) - [Loc 3] ) * 180 + 10 * ([Loc 2]-10) + [Loc 4]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;This appears to give me the correct results for these end cases, so assuming that useful bit is accurate, I should be good to go.&amp;nbsp; I will be testing against the WSPR application and posting the final code bits for those interested very soon.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-1810076893678545301?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/1810076893678545301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/wspr-encoder-for-propeller-beacon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1810076893678545301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1810076893678545301'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/wspr-encoder-for-propeller-beacon.html' title='WSPR Encoder for Propeller Beacon'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-1939278596162681394</id><published>2012-02-02T23:54:00.000-08:00</published><updated>2012-02-03T00:14:15.350-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='WSPR encoder'/><title type='text'>WSPR Encoder - "Thinking Out Loud"</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have been pondering why my WSPR encoder routine could be giving me incorrect results.&amp;nbsp; When I encode my message "KO7M CN87 27" and let the WSPR 2.11 application decode it, I get the following:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;lt;...&amp;gt; KO7M 27&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;In reading the specification, I see the following:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Special Message Formats &lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Normal WSPR messages consist of a callsign, 4-digit grid locator, and power level in dBm. These messages are always preferred when appropriate. However, compound callsigns (i.e., callsigns with add-on prefix or suffix) cannot fit into the 28 bits allocated in a standard message. Similarly, 6-digit locators cannot fit into 15 bits. Messages using these components are therefore sent using a two-transmission sequence. For example, if the callsign is PJ4/K1ABC, the 6-digit grid locator is FK52UD, and the power level 37 dBm, the following messages will be sent in alternating transmissions: &lt;/span&gt;&lt;br /&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PJ4/K1ABC 37 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;lt;PJ4/K1ABC&amp;gt; FK52UD 37 &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;If you have special need to use a 6-digit locator with a normal callsign, check the box &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Force transmission of 6-digit locator&lt;/b&gt;. If the callsign is K1ABC, the 6-digit grid locator FN42AX, and the power level 37 dBm, the following messages will then be sent in alternating transmissions: &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;K1ABC FN42 37 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;lt;K1ABC&amp;gt; FN42AX 37 &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Callsigns enclosed in angle brackets are actually sent as 15-bit hash codes. If such a code is received by another station before the full callsign has been received, it will be displayed as &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;lt;...&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;on the decoded text line. Once the full callsign has been received, the decoder will thereafter recognize the hash code and fill in the blanks. Two very different callsigns might have the same hash code, but the 15-bit hash-code length ensures that in practice such collisions will be rare. &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Arial; font-size: small;"&gt;&lt;span style="font-family: Arial,Arial; font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Please note that messages with compound callsigns or 6-digit locators will not be properly decoded by WSPR versions earlier than 2.0. Further details on message formats can be found in Appendix B, and in the WSPR source code.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Hmmm...&amp;nbsp; So, if I am reading this correctly, in a normal format message, I am supposed to encode the message as follows:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;28 bits encodes a normal 6 character callsign&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;15 bits encodes a 4 character locator&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;7 bits encodes the power in dBm.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The special message format from the description above encodes in two messages, the content depends on the format of the data being encoded and whether or not the "Force transmissions of 6-digit locator" checkbox is&amp;nbsp; set to "checked".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;strong&gt;Case 1:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;strong&gt;Callsign with slash character in it&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;In this case, the normal (up to) 6 character callsign is augmented with a slash character (front or back) and up to 3 additional characters.&amp;nbsp; For example WA0FOO/7, JA2/KJ7ABC, etc.&amp;nbsp; The 28 bit callsign field and the 15 bit locator are large enough to contain this data while the power is sent in its own normal 7 bit field.&amp;nbsp; Here is my hypothesis:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;When encoding WSPR messages, a the callsign field is required to have no more than 6 characters and is required to have a numeric in the third character position.&amp;nbsp; If the callsign does not match these specifications, spaces are added as neeed.&amp;nbsp; For example, "K7XX" is encoded as "&amp;lt;space&amp;gt;K7XX&amp;lt;space&amp;gt;".&amp;nbsp; This I have previously proven before the special formats where encorporated into WSPR.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;When encoding a special format callsign, I believe that the "/" character and up to three additional characters must be encoded in the 15 bit locator field while the normal callsign is encoded in the callsign field padded with spaces as necessary.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The power level goes in the normal 7 bit field.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The first message contains the special callsign and power level only.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The second message packs up to 6 digits of a locator, space padded as needed into the normal 28 bit callsign field.&amp;nbsp; A 15 bit hash of the callsign is computed and sent in the 15 bit locator field.&amp;nbsp; The power is sent normally in its 7 bit field.&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: Trebuchet MS;"&gt;This case should allow for adorned callsigns as well as six character locators to be sent in two messages max.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;strong&gt;Unanswered Questions&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Can the application can detect when decoding whether the callsign adornment belongs on the left or right side of the call?&amp;nbsp; For example: JA2/WA0AAA vs. WA0AAA/JA2.&amp;nbsp; I think this could be stored in the encoding of the "/" character.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;What is the precise encoding of the "/" character?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Precisely how to calculate the 15 bit hash of the callsign?&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Case 2:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Normal unadorned callsign (no slash) and 6 character locator&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;In this case the first message is a normal message with the extra 2 characters of the locator truncated as indicated in the documentation reference above.&amp;nbsp; My hypothesis about the remainder of the message is:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;The six digit locator is encoded into the 28 bit callsign field.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The 15 bit hash is computed of the callsign and sent in the locator 15 bit field.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The 7 bit power field contains the power level in dBm.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;My code to encode the WSPR message doesn't know anything about special formats (yet) but is generating a symbol set that is decoding as if it was the second message a two message set, very much as would be found in case 2 above.&amp;nbsp; Joe Taylor's spec says that any callsign enclosed in &amp;lt;...&amp;gt; characters is sent as a 15 bit hash.&amp;nbsp; This points to the locator being incorrectly encoded.&amp;nbsp; The message I am sending is being decoded as:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;lt;...&amp;gt; KO7M 27&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;This tells me that my call sign and power are both being encoded correctly because WSPR can decode them.&amp;nbsp; Since the encoding between the callsign and the locator fields is a different algorithm, the callsign must be encoded correctly and placed in the correct 28 bit callsign field of the WSPR message.&amp;nbsp; What appears to be wrong is the locator encoding.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The results would match case 1 above, if WSPR thought the locator field was a 15 bit hash, not a locator&amp;nbsp;and that it has not yet received the first message of the two message set.&amp;nbsp; WSPR would then display precisely what I am seeing.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, this little exercise has served to narrow my focus to the encoding of the locator field.&amp;nbsp; I must have some sort of logic error in this part of the code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;More to follow.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-1939278596162681394?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/1939278596162681394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/wspr-encoder-thinking-out-loud.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1939278596162681394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1939278596162681394'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/wspr-encoder-thinking-out-loud.html' title='WSPR Encoder - &quot;Thinking Out Loud&quot;'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-8026291862177301661</id><published>2012-02-02T19:37:00.000-08:00</published><updated>2012-02-02T19:37:12.253-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Power Amp'/><title type='text'>Much better WSPR map</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;After letting the new power amplifier run on the Propeller WSPR beacon today, I see a much more lively WSPR map:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Lzr4kKkvGtE/TytV_NiJSZI/AAAAAAAAARg/8c7Agnb_uck/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="126" src="http://3.bp.blogspot.com/-Lzr4kKkvGtE/TytV_NiJSZI/AAAAAAAAARg/8c7Agnb_uck/s400/Capture.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I expect as the sun as set here that activity will wane during the evening ours, but I plan to let it run overnight to see how we get on.&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-8026291862177301661?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/8026291862177301661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/much-better-wspr-map.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8026291862177301661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8026291862177301661'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/much-better-wspr-map.html' title='Much better WSPR map'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Lzr4kKkvGtE/TytV_NiJSZI/AAAAAAAAARg/8c7Agnb_uck/s72-c/Capture.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-3201946967256806327</id><published>2012-02-02T12:23:00.000-08:00</published><updated>2012-02-04T00:43:56.913-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='2N7000'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Power Amp'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><title type='text'>Propeller WSPR Beacon Power Amp Results</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;This morning I finished up my beacon power amp by putting in the low pass filter.&amp;nbsp; I had a bit of a struggle with that however, as I had no capacitors that would work for the 5 pole filter in hand.&amp;nbsp; I ended up with some rather significant changes in values in my substituted capacitors.&amp;nbsp; The filter modeling still showed that I would barely meet a 40 dB supression of the harmonics, so some additional work is needed here before I can call this complete.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The final breadboard looks like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-f0EQCSjCqBU/TyrtRNJQJmI/AAAAAAAAAQw/ot-MbiDb9ok/s1600/WP_000110.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://2.bp.blogspot.com/-f0EQCSjCqBU/TyrtRNJQJmI/AAAAAAAAAQw/ot-MbiDb9ok/s400/WP_000110.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The Propeller Beacon with it's outboard low pass filter is putting in a nice clean signal to the input.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-EEfHgSi-onE/Tyrt2OAw3lI/AAAAAAAAAQ4/mAtZX87TqJM/s1600/WP_000098.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://1.bp.blogspot.com/-EEfHgSi-onE/Tyrt2OAw3lI/AAAAAAAAAQ4/mAtZX87TqJM/s400/WP_000098.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Checking the output with the spectrum analyzer, I can see that the harmonics are 40 dB down or better (but just barely).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-L2bV7lYKeMk/TyruMET--OI/AAAAAAAAARA/DAiiu0a1pF4/s1600/WP_000104.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://4.bp.blogspot.com/-L2bV7lYKeMk/TyruMET--OI/AAAAAAAAARA/DAiiu0a1pF4/s400/WP_000104.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, hooking this up to the matched antenna and measuring the power output, I got found that I was putting out a solid 2 watts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-RiVG98xFycQ/TyruqYPBz5I/AAAAAAAAARI/Qhebkd6T0Zk/s1600/WP_000105.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://3.bp.blogspot.com/-RiVG98xFycQ/TyruqYPBz5I/AAAAAAAAARI/Qhebkd6T0Zk/s400/WP_000105.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;This is pushing things quite a bit and the transistor finals were getting quite warm.&amp;nbsp; I backed off the bias on the driver until the power dropped to about 500-600 mW.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-WRaRGH-gLgs/TyrvICyWv3I/AAAAAAAAARQ/m5SbEaQlXZA/s1600/WP_000107.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://2.bp.blogspot.com/-WRaRGH-gLgs/TyrvICyWv3I/AAAAAAAAARQ/m5SbEaQlXZA/s400/WP_000107.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;It seems happy at this level and the entire amplifier draws about 160 mA at this setting at 12 V.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, we let a WSPR transmission happen on the next even minute and were immediately rewarded:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-69-kwjeQP1A/TyrvyxzoXNI/AAAAAAAAARY/xDVnAmmOxmY/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="268" src="http://4.bp.blogspot.com/-69-kwjeQP1A/TyrvyxzoXNI/AAAAAAAAARY/xDVnAmmOxmY/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, I am quite pleased with the initial results.&amp;nbsp; I have (subsequently) changed my power setting reported to correctly reflect my new power level.&amp;nbsp; More work to be done to clean up the harmonic supression to have some more margin.&amp;nbsp; I am seeing some fluctuation in SWR that appears to be related to the effects of harmonics, so more work to do, but for now we are on the air at around 27 dBm.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-3201946967256806327?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/3201946967256806327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/power-amp-results.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3201946967256806327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3201946967256806327'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/power-amp-results.html' title='Propeller WSPR Beacon Power Amp Results'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-f0EQCSjCqBU/TyrtRNJQJmI/AAAAAAAAAQw/ot-MbiDb9ok/s72-c/WP_000110.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-8814810013755300492</id><published>2012-02-01T21:26:00.000-08:00</published><updated>2012-02-02T08:49:51.239-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='2N7000'/><category scheme='http://www.blogger.com/atom/ns#' term='Power Amp'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><title type='text'>Update on Power Amplifier</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Um...&amp;nbsp; Ok...&amp;nbsp; I lied...&amp;nbsp; It is just plain ugly construction...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-DAmmCHcsapc/TyoeQ41Bz7I/AAAAAAAAAQY/u2f_O9In_DM/s1600/WP_000094.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://1.bp.blogspot.com/-DAmmCHcsapc/TyoeQ41Bz7I/AAAAAAAAAQY/u2f_O9In_DM/s400/WP_000094.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;But, hey...&amp;nbsp; We are trying to prove a concept, right?&amp;nbsp; :)&amp;nbsp; Well, time to see if I can let the magic smoke out of it...&amp;nbsp; I have not built the output 5 pole filter yet, there will be time for that once things check out a bit.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I hooked up the 12V current limited supply and with the current limit just above the minimum current shutoff, slowly turned up the voltage to 12 VDC and there was no current draw.&amp;nbsp; So far so good.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Next I hooked up a dummy load, scope to the output and my beacon on the input.&amp;nbsp; Here is the lashup:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-OfCBNRrZ6mU/Tyok5edQdWI/AAAAAAAAAQg/Bwk7Vxl-nFo/s1600/WP_000095.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-OfCBNRrZ6mU/Tyok5edQdWI/AAAAAAAAAQg/Bwk7Vxl-nFo/s400/WP_000095.jpg" width="298" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I had set the bias pot all the way down.&amp;nbsp; With the beacon supplying about 1.2 V of signal to the input, I slowly adjusted the bias until the finals kicked in.&amp;nbsp; There is a noticeable threshold effect from the unbiased output stage, but it kicked in at about 2.1 VDC of bias.&amp;nbsp; I ran it up&amp;nbsp;to around&amp;nbsp;2.8 VDC&amp;nbsp;and the current limiter kicked in (remember it is set to turn off at a very low current value.&amp;nbsp; For the moment I have bias set a 2.75 VDC and am seeing this on the output.&amp;nbsp; Remember there are no low pass filters yet in place and the bias is just rough set.&amp;nbsp; Pretty ratty looking, rather terrible really but about 5.5 V P-P into 50 ohms.&amp;nbsp; There is no skipping a low pass filter on this device.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-sexIvF9KKx0/Tyol1pC3TaI/AAAAAAAAAQo/w-TEL4e2mRI/s1600/WP_000097.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://4.bp.blogspot.com/-sexIvF9KKx0/Tyol1pC3TaI/AAAAAAAAAQo/w-TEL4e2mRI/s400/WP_000097.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;This is would represent about 75 mW, given the unfiltered output.&amp;nbsp; There is quite a bit of energy going to&amp;nbsp; harmonics with this waveform and we really have not explored the bias setting or allowed the entire amp to consume more than about&amp;nbsp;6 mA, so the finals are not even getting slightly warm yet.&amp;nbsp; More testing to come.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, it's time to build a low pass filter and do some more adjustments and performance tuning.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Note to self:&amp;nbsp; &lt;a href="http://www.gorillatough.com/"&gt;Gorilla glue&lt;/a&gt; sucks...&amp;nbsp; Don't use it for breadboarding circuits...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-8814810013755300492?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/8814810013755300492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/update-on-power-amplifier.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8814810013755300492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8814810013755300492'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/update-on-power-amplifier.html' title='Update on Power Amplifier'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-DAmmCHcsapc/TyoeQ41Bz7I/AAAAAAAAAQY/u2f_O9In_DM/s72-c/WP_000094.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-1036372653330868630</id><published>2012-02-01T18:51:00.000-08:00</published><updated>2012-02-01T23:25:31.335-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='2N7000'/><category scheme='http://www.blogger.com/atom/ns#' term='Wee Willy'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Manhattan'/><category scheme='http://www.blogger.com/atom/ns#' term='Power Amp'/><category scheme='http://www.blogger.com/atom/ns#' term='Ugly'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><title type='text'>More power for Propeller Beacon</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;While I have enjoyed the few WSPR spots I have received:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-CQToPj1XluU/Tyn3p0n4RAI/AAAAAAAAAQA/mZH413-I5d8/s1600/Capture2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="71" src="http://2.bp.blogspot.com/-CQToPj1XluU/Tyn3p0n4RAI/AAAAAAAAAQA/mZH413-I5d8/s400/Capture2.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have received no QRSS or Opera spots at all.&amp;nbsp; There are times when I think (wishfully) that I see my 5 mW QRSS trace on remote grabbers, I have not been able to definatively say that I see my signal.&amp;nbsp; So, I think it is time to bring the power level up to a more respectable 10-20 dBm.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I have been scouting around for some interesting designs that I might actually have parts for.&amp;nbsp; I have a boatload of 2N7000 devices, so my focus has been in this area.&amp;nbsp; After some searching I have decided to try out the following design taken from the &lt;a href="http://www.qrp.pops.net/willy.asp"&gt;Wee Willy&lt;/a&gt; DSB rig described over on the "&lt;a href="http://www.qrp.pops.net/"&gt;popcorn&lt;/a&gt;" site.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-iJuf5d1cNEY/Tyn4jTaxGXI/AAAAAAAAAQI/xbxQNcm74Q0/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181" src="http://3.bp.blogspot.com/-iJuf5d1cNEY/Tyn4jTaxGXI/AAAAAAAAAQI/xbxQNcm74Q0/s400/Capture.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Don't know how well this is going to work out, but you never know until you try it, so off I go.&amp;nbsp; I am going to build this dead-bug style with a little Manhatten style thrown in for good measure.&amp;nbsp; I even went out and picked up a fresh super-glue tube.&amp;nbsp; Unfortunately, I got it home only to discover that it is a solid mass.&amp;nbsp; Rats...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, I had to resort to Gorilla glue, unfortunately.&amp;nbsp; It will elongate my building time a bit as it takes a while to dry.&amp;nbsp; But we are building again after a long &lt;a href="http://en.wikipedia.org/wiki/Hiatus"&gt;hiatus&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-7aO4zidVKaM/Tyn50zdckiI/AAAAAAAAAQQ/GcYESXiToF0/s1600/WP_000093.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://2.bp.blogspot.com/-7aO4zidVKaM/Tyn50zdckiI/AAAAAAAAAQQ/GcYESXiToF0/s400/WP_000093.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, I will post the build progress and performance results as I go.&amp;nbsp; Should be fun!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-1036372653330868630?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/1036372653330868630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/02/more-power-for-propeller-beacon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1036372653330868630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1036372653330868630'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/02/more-power-for-propeller-beacon.html' title='More power for Propeller Beacon'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-CQToPj1XluU/Tyn3p0n4RAI/AAAAAAAAAQA/mZH413-I5d8/s72-c/Capture2.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-2039461339871853580</id><published>2012-01-31T19:19:00.000-08:00</published><updated>2012-01-31T19:21:50.575-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><title type='text'>Propeller Beacon Update</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have taken the baseline beacons that I have created for QRSS, WSPR and Opera and put them together into a single beacon.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;WSPR is on a 10 minute cycle (TX Percent = 20%).&amp;nbsp; QRSS follows and just sends my call sign.&amp;nbsp; Opera then follows and the remainder of the 10 minute cycle is idle.&amp;nbsp; WSPR goes first because it has the even minute starting time requirement.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I have created each of the beacons as separate objects that the main beacon code can instantiate and call.&amp;nbsp; The main beacon code looks like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;CON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; _CLKMODE = XTAL1 + PLL16X&lt;br /&gt;&amp;nbsp; _XINFREQ = 5_000_000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; WMin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 381&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'WAITCNT-expression-overhead Minimum&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;OBJ&lt;br /&gt;&amp;nbsp; WSPR&amp;nbsp; : "ko7mBeaconWSPR"&lt;br /&gt;&amp;nbsp; QRSS&amp;nbsp; : "ko7mBeaconQRSS"&lt;br /&gt;&amp;nbsp; Opera : "ko7mBeaconOpera"&lt;br /&gt;&amp;nbsp; Clock : "ko7mClock" &lt;br /&gt;&amp;nbsp; Freq&amp;nbsp; : "Synth"&lt;br /&gt;&amp;nbsp; &lt;br /&gt;VAR&lt;br /&gt;&amp;nbsp; LONG Sync&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB Main&lt;br /&gt;&amp;nbsp; doInitialize&lt;br /&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WSPR.doBeacon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' 2 minutes (110.6 seconds) for WSPR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(10000)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Delay 10 seconds before doing QRSS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; QRSS.doBeacon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' QRSS is about 3 minutes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(10000)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Delay 10 seconds before doing Opera&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Opera.doBeacon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Opera is about 3 minutes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat while Clock.getSeconds // Sync&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(100)&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB doInitialize&lt;br /&gt;&amp;nbsp; Sync := 10 * 60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Beacons cycle every 10 minutes&lt;br /&gt;&amp;nbsp; Clock.Start&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB delay(Duration)&lt;br /&gt;&amp;nbsp; waitcnt(((clkfreq / 1_000 * Duration - 3932) #&amp;gt; WMin) + cnt)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The beacon is up and running as of now.&amp;nbsp; I would love to have any reports if anyone is able to spot any of my three beacons.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-2039461339871853580?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/2039461339871853580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/propeller-beacon-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/2039461339871853580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/2039461339871853580'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/propeller-beacon-update.html' title='Propeller Beacon Update'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4519218046789051365</id><published>2012-01-31T08:46:00.000-08:00</published><updated>2012-01-31T13:57:52.403-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='TX percent'/><title type='text'>Randomizing WSPR TX Percent - revisited</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;After 12 hours or so of experiencing my recent changes to how often my WSPR beacon transmits, I have decided that I am not happy with the results.&amp;nbsp; As mentioned in my &lt;a href="http://ko7m.blogspot.com/2012/01/randomizing-wspr-txpercent.html"&gt;previous posting&lt;/a&gt; my recent changes have redefined TX Percent to mean the maximum amount of time that the beacon will wait between transmissions.&amp;nbsp; This is not quite right because as you can see it results in an aweful lot of transmissions when the intent is to transmit "about every 10 minutes" when TX Percent is set to 20%.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ofeABg-XIxU/TygURAZTxQI/AAAAAAAAAP4/WPxNFHzo6rA/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="205" src="http://1.bp.blogspot.com/-ofeABg-XIxU/TygURAZTxQI/AAAAAAAAAP4/WPxNFHzo6rA/s400/Capture.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I think clearly that the intent from Joe Taylor's WSPR documentation is that we actually transmit approximately every 10 minutes in this case, but that we randomly choose which 2 minute window in that 10 minutes to transmit.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, to implement this, I need a couple of time values.&amp;nbsp; The transmission time calculated from TX Percent and a randomly chosen two minute interval in that timeframe.&amp;nbsp; The nextSync calculation will need changing to first wait for the randomly chosen period to arrive, transmit the symbol stream and then a wait for the remainder of the time calculated by TX Percent.&amp;nbsp; The modified code looks like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB nextSync : s&lt;br /&gt;&amp;nbsp; s := ROUND(1.0 / TXPercent * 2.0)&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Calculate when next occurs in minutes&lt;br /&gt;&amp;nbsp; case interval&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Random:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s := (||?Rnd // s)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Randomize the result &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interval := Calculated&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Next time&amp;nbsp;use the calculated value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Calculated:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s -= (Sync / 60)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Wait the remainder of calculated time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interval := Random&lt;br /&gt;&amp;nbsp; s += (s // 2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Send on a 2 minute boundary&lt;br /&gt;&amp;nbsp; s *= 60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Convert minutes to seconds&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;The overall effect of this is going to be to randomize the first transmission start time whilst the second will always land on the calculated TX Percent time slot.&amp;nbsp; So, every other transmission will be exacly 10 minutes aligned at TX Percent of 20%.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I am not certain this is exactly what I want either, but I will give it a go and see how I like the new effect.&amp;nbsp; If it does not suit me, I will go with choosing a random slot in the 10 minute window, then waiting until the end of the 10 minute window and choosing a new random slot in the next 10 minute window.&amp;nbsp; The potential negative on that solution is that we could wait up to 20 minutes if the random generator chose the first 2 minute slot and then chose the last 2 minute slot in the next 10 minute window.&amp;nbsp; Sort of the opposite problem I currently have.&amp;nbsp; Anyone have any thoughts on this?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;After much ado about nothing, I have settled on the following implementation (as much as anything is ever "settled"):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB nextSync : s&lt;br /&gt;&amp;nbsp; s := ROUND(1.0 / TXPercent * 2.0)&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Calculate when next occurs in minutes&lt;br /&gt;&amp;nbsp; if interval++ &amp;amp; 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; s := (||?Rnd // s) + 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Randomize the result &lt;br /&gt;&amp;nbsp; s += (s // 2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Aalways send on a 2 minute boundary&lt;br /&gt;&amp;nbsp; s *= 60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Convert minutes to seconds&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The effect is clear enough.&amp;nbsp; I randomize every other transmission.&amp;nbsp; Simple enough and not being such a hog of WSPR bandwidth.&amp;nbsp; The interval variable is a BYTE value that gets incremented every time we calculate the next transmission&amp;nbsp;time.&amp;nbsp; The least significant bit determines if we use a&amp;nbsp; random or calculated next transmission time.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&amp;lt;Insert 3/4 of a day delay here&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, I have reverted back to a mode where I transmit every N minutes based on TX Percent calculation only.&amp;nbsp; I decided I really didn't like having the randomizing in there and have commented it out.&amp;nbsp; There is sufficient randomness of folks using the same TX Percent value starting at different 2 minute timeslots and then carrying on at a consistent period for my liking.&amp;nbsp; If I find I am syncing with another station that I want to copy, I can delay my start by a time slot and solve the problem that way.&amp;nbsp; Bit of a wasted exercise, but so be it.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4519218046789051365?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4519218046789051365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/randomizing-wspr-tx-percent-revisited.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4519218046789051365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4519218046789051365'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/randomizing-wspr-tx-percent-revisited.html' title='Randomizing WSPR TX Percent - revisited'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ofeABg-XIxU/TygURAZTxQI/AAAAAAAAAP4/WPxNFHzo6rA/s72-c/Capture.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7585271959798652597</id><published>2012-01-31T00:46:00.000-08:00</published><updated>2012-01-31T01:50:23.440-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microscope'/><category scheme='http://www.blogger.com/atom/ns#' term='SMT'/><category scheme='http://www.blogger.com/atom/ns#' term='TQFP'/><category scheme='http://www.blogger.com/atom/ns#' term='Homebrew'/><title type='text'>Microscope for the bench</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have fought long and hard, mostly with my own pride and have finally admitted to myself that my eyesight is not what it once was.&amp;nbsp; The first indication of&amp;nbsp;that came with my&amp;nbsp;driver's license&amp;nbsp;and airman's&amp;nbsp;medical that reads&amp;nbsp;"Must have corrective lenses available for near vision" on the back.&amp;nbsp; Oh sigh...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Trying to work with &lt;a href="http://en.wikipedia.org/wiki/Surface-mount_technology"&gt;SMT electronics&lt;/a&gt; has been mostly an exercise in frustration simply because I cannot sufficiently see what I am doing.&amp;nbsp; So, I recently aquired a binocular&amp;nbsp;microscope for the bench.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-_-V7Umxd8Ko/TyeovJTGfZI/AAAAAAAAAPo/ge-HqzbvZbo/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://1.bp.blogspot.com/-_-V7Umxd8Ko/TyeovJTGfZI/AAAAAAAAAPo/ge-HqzbvZbo/s400/Capture.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Man, what a difference this makes!&amp;nbsp; I can now actually see what I am doing even whilst soldering TQFP or other dense, fine pitch&amp;nbsp;SMT components.&amp;nbsp; Even with corrective lenses, I have trouble with anything smaller than 1206 SMT components.&amp;nbsp; Since most of my components are 0805, this is a problem.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-YS0dHl_dkFA/TyepxwkjrYI/AAAAAAAAAPw/Nveu166sSIw/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-YS0dHl_dkFA/TyepxwkjrYI/AAAAAAAAAPw/Nveu166sSIw/s1600/Capture.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;This is such a simple solution.&amp;nbsp; It actually has made homebrew electronics pleasurable for me again.&amp;nbsp; If you are struggling as I have with changes in vision as I have grown "wiser" (older) don't waste another minute pondering the purchase.&amp;nbsp; Invest the money in such a device and see what you are doing, or at least what you have been missing!&amp;nbsp; They are not cheap, but believe me, they are worth every penny you spend and will repay itself many times over.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7585271959798652597?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7585271959798652597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/microscope-for-bench.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7585271959798652597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7585271959798652597'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/microscope-for-bench.html' title='Microscope for the bench'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-_-V7Umxd8Ko/TyeovJTGfZI/AAAAAAAAAPo/ge-HqzbvZbo/s72-c/Capture.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-6386827740854352979</id><published>2012-01-31T00:17:00.000-08:00</published><updated>2012-01-31T08:13:43.850-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='TXPercent'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><title type='text'>Randomizing WSPR TX Percent</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;My propeller WSPR beacon so far has implemented TX Percent as a constant.&amp;nbsp; For example if you set TXPercent to 20% (0.20) then it will transmit every 10 minutes.&amp;nbsp; Joe Taylor's &lt;a href="http://physics.princeton.edu/pulsar/K1JT/WSPR_2.0_User.pdf"&gt;WSPR specification&lt;/a&gt; states that in reality, it should transmit randomly within that interval in order to minimize collisions with other stations transmitting with the same TX Percent value.&amp;nbsp; So rather than transmitting exactly every 10 minutes with this TX Percent value, I have implemented a routine to pick a random 2 minute period up to the value specified by TX Percent.&amp;nbsp; So, TX Percent now effectively specifies the maximum amount of time to wait between transmissions.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I created a variable to hold the current random number and initialized it with a constant.&amp;nbsp; The value of the constant is not important.&amp;nbsp; Pick your birthday or whatever.&amp;nbsp; It becomes the starting seed for the random number generator.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;VAR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG Rnd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;PUB doInitialize&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp; Rnd&amp;nbsp; := 22041956&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Initialize random number seed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I then created a new procedure to calculate how long to wait before the next transmission based on TX Percent.&amp;nbsp; TX Percent is declared as a constant.&amp;nbsp; For me it is set to 20%&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;CON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; TXPercent&amp;nbsp;=&amp;nbsp;&amp;nbsp;0.20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Transmit 20% of the time or about every 10 minutes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;PUB nextSync : s&lt;br /&gt;&amp;nbsp; s := ROUND(1.0 / TXPercent * 2.0)&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Calculate when next xmit occurs in minutes&lt;br /&gt;&amp;nbsp; s := (||?Rnd // s)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Randomize the result&lt;br /&gt;&amp;nbsp; s += (s // 2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Send on a 2 minute boundary&lt;br /&gt;&amp;nbsp; s *= 60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Convert minutes to seconds&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&lt;span style="font-family: Trebuchet MS; font-size: small;"&gt;Right.&amp;nbsp; Now, in the main loop, we calculate how long to wait with each go by calling nextSync and setting the new value of Sync to the returned value.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB Main&lt;br /&gt;&amp;nbsp; doInitialize&lt;br /&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Send symbol set for KO7M CN87 7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendCode(@mySyms)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; noTone&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sync := nextSync&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat while SecondCnt // Sync&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(100)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif; font-size: small;"&gt;This seems to do the job nicely.&amp;nbsp; While it is not always the case that you may want to have the transmission start time randomized, this brings the beacon code closer to that of the WSPR 2.x specification.&amp;nbsp; If you wish to have constant transmission periods, just change the Sync := nextSync line to set Sync to a constant number of seconds between transmissions.&amp;nbsp; Remember to make sure this equates to an even number of minutes between transmissions.&lt;br /&gt;&lt;br /&gt;As you can see, my transmissions are now being nicely randomized up to 10 minutes.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-UE5E_Pix2HE/TyeiwdVhPRI/AAAAAAAAAPg/EC2VjwbS2Uo/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="326" src="http://2.bp.blogspot.com/-UE5E_Pix2HE/TyeiwdVhPRI/AAAAAAAAAPg/EC2VjwbS2Uo/s400/Capture.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS; font-size: small;"&gt;For those interested, here is the&amp;nbsp;entire updated&amp;nbsp;beacon code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CON&lt;br /&gt;&amp;nbsp; _CLKMODE = XTAL1 + PLL16X&lt;br /&gt;&amp;nbsp; _XINFREQ = 5_000_000&lt;br /&gt;&amp;nbsp; WMin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 381&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'WAITCNT-expression-overhead Minimum&lt;br /&gt;&amp;nbsp; RFPin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 27&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' I use pin 27 for RF output&lt;br /&gt;&lt;br /&gt;&amp;nbsp; ' WSPR standard frequencies&lt;br /&gt;&lt;br /&gt;&amp;nbsp; ' Shown are the dial frequencies plus 1500 hz to put in the middle of&lt;br /&gt;&amp;nbsp;&amp;nbsp;'&amp;nbsp;the 200 hz WSPR band&lt;br /&gt;&amp;nbsp; WSPR500KHz&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 502_400 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; ' 500 KHz&lt;br /&gt;&amp;nbsp; WSPR160M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; 1_836_600 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; ' 160 metres&lt;br /&gt;&amp;nbsp; WSPR80M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; 3_592_600 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp; 80 metres&lt;br /&gt;&amp;nbsp; WSPR60M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; 5_287_200 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp; 60 metres&lt;br /&gt;&amp;nbsp; WSPR40M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; 7_038_600 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp; 40 metres&lt;br /&gt;&amp;nbsp; WSPR30M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 10_138_700 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp; 30 metres&lt;br /&gt;&amp;nbsp; WSPR20M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 14_095_600 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp; 20 metres&lt;br /&gt;&amp;nbsp; WSPR17M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 18_104_600 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp; 17 metres&lt;br /&gt;&amp;nbsp; WSPR15M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 21_094_600 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp; 15 metres&lt;br /&gt;&amp;nbsp; WSPR12M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 24_924_600 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp; 12 metres&lt;br /&gt;&amp;nbsp; WSPR10M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 28_124_600 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp; 10 metres&lt;br /&gt;&amp;nbsp; WSPR6M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 50_293_000 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp; 6 metres&lt;br /&gt;&amp;nbsp; WSPR4M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 70_028_600 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp; 4 metres&lt;br /&gt;&amp;nbsp; WSPR2M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 144_489_000 + 1_500&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp; 2 metres&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; Frequency&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WSPR30M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Set to 30 metres&lt;br /&gt;&amp;nbsp; ErrorOffset&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Specific to my propeller board - change this&lt;br /&gt;&amp;nbsp; symbolLength =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 683&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' 8192 / 12000 * 1000 = milliseconds&lt;br /&gt;&amp;nbsp; TXPercent&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Transmit 20% or about every 10 minutes&lt;br /&gt;&lt;br /&gt;OBJ&lt;br /&gt;&amp;nbsp; Freq : "Synth"&lt;br /&gt;&amp;nbsp; 'WSPR : "ko7mWSPREncode"&lt;br /&gt;&amp;nbsp; 'T&amp;nbsp;&amp;nbsp;&amp;nbsp; : "PSM_tv_text"&lt;br /&gt;&amp;nbsp; &lt;br /&gt;VAR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG SecondCnt, Stack[16]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG Sync&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG Rnd&lt;br /&gt;&lt;br /&gt;DAT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Symbol set for KO7M CN87 7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mySyms BYTE "33020202322033300230030333100222201023012020023033"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BYTE "22132320011212000112303210300300303300031212302010"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BYTE "22021203023312132013030201132002230302330002020310"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BYTE "303320231002", 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;PUB Main&lt;br /&gt;&amp;nbsp; doInitialize&lt;br /&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Send symbol set for KO7M CN87 7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendCode(@mySyms)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; noTone&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sync := nextSync&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat while SecondCnt // Sync&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(100)&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;PUB doInitialize&lt;br /&gt;&amp;nbsp; Rnd&amp;nbsp; := 22041956&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Initialize random seed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; cognew(Clock, @Stack)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Start the clock COG&lt;br /&gt;&amp;nbsp; &lt;br /&gt;PUB sendCode(stringptr)&lt;br /&gt;&amp;nbsp; if TXPercent &amp;gt; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' If&amp;nbsp;zero, not transmitting&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat strsize(stringptr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendSymbol(byte[stringptr++])&lt;br /&gt;&lt;br /&gt;PUB sendSymbol(char)&lt;br /&gt;&amp;nbsp; case char&lt;br /&gt;&amp;nbsp;&amp;nbsp; "0", 0:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(-3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp; "1", 1:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(-1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp; "2", 2:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp; "3", 3:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(SymbolLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;PUB sendTone(tone)&lt;br /&gt;&amp;nbsp; Freq.Synth("A",RFPin, Frequency + tone + ErrorOffset)&lt;br /&gt;&lt;br /&gt;PUB noTone&lt;br /&gt;&amp;nbsp; Freq.Synth("A",RFPin, 0)&lt;br /&gt;&lt;br /&gt;PUB delay(Duration)&lt;br /&gt;&amp;nbsp; waitcnt(((clkfreq / 1_000 * Duration - 3932) #&amp;gt; WMin) + cnt)&lt;br /&gt;&lt;br /&gt;PUB Clock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Runs In its own COG&lt;br /&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(1000)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Update second counter every 1000 ms&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SecondCnt++&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Should be good for 2^32 seconds or about 136 years&lt;br /&gt;&lt;br /&gt;PUB nextSync : s&lt;br /&gt;&amp;nbsp; s := ROUND(1.0 / TXPercent * 2.0)&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Calculate when next TX occurs in minutes&lt;br /&gt;&amp;nbsp; s := (||?Rnd // s)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Randomize the result&lt;br /&gt;&amp;nbsp; s += (s // 2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Always send on a 2 minute boundary&lt;br /&gt;&amp;nbsp; s *= 60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Convert minutes to seconds&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-6386827740854352979?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/6386827740854352979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/randomizing-wspr-txpercent.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6386827740854352979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6386827740854352979'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/randomizing-wspr-txpercent.html' title='Randomizing WSPR TX Percent'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-UE5E_Pix2HE/TyeiwdVhPRI/AAAAAAAAAPg/EC2VjwbS2Uo/s72-c/Capture.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-8669451316271888265</id><published>2012-01-30T18:20:00.000-08:00</published><updated>2012-01-30T19:00:26.818-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><title type='text'>First WSPR spot on Propeller Board - barefoot</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Well, I got my first WSPR spot on my propeller beacon today from VE6PDQ.&amp;nbsp; It seems there is someone listening out there to my little peanut-whistle signal, blowing down all the competition with a thundering 5 mW (7 dBm) signal...&amp;nbsp; :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-DS0SeTQRrUk/TydORYoqD5I/AAAAAAAAAPA/b0hL_BFaV0Q/s1600/FirstReception.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="146" src="http://4.bp.blogspot.com/-DS0SeTQRrUk/TydORYoqD5I/AAAAAAAAAPA/b0hL_BFaV0Q/s400/FirstReception.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Whoo hoo!&amp;nbsp; I was just about to give up hope of making any contacts on this low power level.&amp;nbsp; That works out to about 199,000 km (123,652 miles) per watt if my fuzzy head is doing the math correctly.&amp;nbsp; Yippee!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-KqoFgaQ-Q-0/TydRKcWouNI/AAAAAAAAAPI/q2TCRRJiCNc/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-KqoFgaQ-Q-0/TydRKcWouNI/AAAAAAAAAPI/q2TCRRJiCNc/s400/Capture.PNG" width="365" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I barely had time to post this and I got a second spot from W5OLF at 1720 km.&amp;nbsp; Seems that things are picking up for me.&amp;nbsp; Very cool...&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Nq3cGyrYLVY/TydXoa5OUUI/AAAAAAAAAPY/_Rljv0SfBR4/s1600/SecondReception.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="115" src="http://3.bp.blogspot.com/-Nq3cGyrYLVY/TydXoa5OUUI/AAAAAAAAAPY/_Rljv0SfBR4/s400/SecondReception.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;This works out to about 344,000 km (213,751 miles) per watt.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-WIiW0acMKGs/TydXT4ePavI/AAAAAAAAAPQ/7jFNvv8nAjo/s1600/secondSpot.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="260" src="http://1.bp.blogspot.com/-WIiW0acMKGs/TydXT4ePavI/AAAAAAAAAPQ/7jFNvv8nAjo/s400/secondSpot.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-8669451316271888265?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/8669451316271888265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/first-wspr-spot-on-propeller-board.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8669451316271888265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8669451316271888265'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/first-wspr-spot-on-propeller-board.html' title='First WSPR spot on Propeller Board - barefoot'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-DS0SeTQRrUk/TydORYoqD5I/AAAAAAAAAPA/b0hL_BFaV0Q/s72-c/FirstReception.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-6931164352627960907</id><published>2012-01-28T01:14:00.000-08:00</published><updated>2012-01-28T01:19:56.103-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Columbia 400'/><category scheme='http://www.blogger.com/atom/ns#' term='Cessna'/><category scheme='http://www.blogger.com/atom/ns#' term='Avidyne'/><category scheme='http://www.blogger.com/atom/ns#' term='C400'/><category scheme='http://www.blogger.com/atom/ns#' term='San Juan'/><category scheme='http://www.blogger.com/atom/ns#' term='Friday Harbor'/><category scheme='http://www.blogger.com/atom/ns#' term='Aviation'/><title type='text'>Flying diversion</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Flew up to Friday Harbor on San Juan Island yesterday in a Columbia 400, otherwise known as a Cessna 400 Corvalis.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="mw-headline" id="Specifications_.28Cessna_400.29"&gt;Specifications (Cessna 400)&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 90%; margin: 0px; padding: 0.2em;"&gt;&lt;i&gt;Data from&lt;/i&gt; Columbia 400 Pilot's Operating Handbook&lt;/div&gt;&lt;big&gt;&lt;b&gt;General characteristics&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Crew:&lt;/b&gt; 1 pilot&lt;/li&gt;&lt;li&gt;&lt;b&gt;Capacity:&lt;/b&gt; 3 passengers&lt;/li&gt;&lt;li&gt;&lt;b&gt;Length:&lt;/b&gt; 25 ft 2 in (7.67 m)&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.blogger.com/wiki/Wingspan" title="Wingspan"&gt;Wingspan&lt;/a&gt;:&lt;/b&gt; 36 ft 1 in (11.0 m)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Height:&lt;/b&gt; 9 ft 0 in (2.74 m)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Wing area:&lt;/b&gt; 141 ft² (13.1 m²)&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.blogger.com/wiki/Manufacturer%27s_Weight_Empty" title="Manufacturer's Weight Empty"&gt;Empty weight&lt;/a&gt;:&lt;/b&gt; 2,500 lb (1,134 kg)&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.blogger.com/wiki/Maximum_Takeoff_Weight" title="Maximum Takeoff Weight"&gt;Max. takeoff weight&lt;/a&gt;:&lt;/b&gt; 3,600 lb (1,500 kg)&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.blogger.com/wiki/Aircraft_engine" title="Aircraft engine"&gt;Powerplant&lt;/a&gt;:&lt;/b&gt; 1 × &lt;a href="http://www.blogger.com/wiki/Continental_IO-550" title="Continental IO-550"&gt;Teledyne Continental TSIO-550-C&lt;/a&gt; &lt;a class="mw-redirect" href="http://www.blogger.com/wiki/Flat-6" title="Flat-6"&gt;flat-6 engine&lt;/a&gt;, 310 hp (230 kW)&lt;/li&gt;&lt;/ul&gt;&lt;big&gt;&lt;b&gt;Performance&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.blogger.com/wiki/V_speeds#Vno" title="V speeds"&gt;Maximum speed&lt;/a&gt;:&lt;/b&gt; 235 knots (270 mph, 435 km/h) &lt;a href="http://www.blogger.com/wiki/Calibrated_airspeed" title="Calibrated airspeed"&gt;calibrated airspeed&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.blogger.com/wiki/V_speeds#Vc" title="V speeds"&gt;Cruise speed&lt;/a&gt;:&lt;/b&gt; 235 knots (270 mph, 435 km/h) &lt;a href="http://www.blogger.com/wiki/True_airspeed" title="True airspeed"&gt;true airspeed&lt;/a&gt; at 25,000 ft (7,600 m)&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.blogger.com/wiki/Range_(aircraft)" title="Range (aircraft)"&gt;Range&lt;/a&gt;:&lt;/b&gt; 1,107 nm (1,274 mi, 2,038 km)&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.blogger.com/wiki/Ceiling_(aircraft)" title="Ceiling (aircraft)"&gt;Service ceiling&lt;/a&gt;:&lt;/b&gt; 25,000 ft (7,600 m)&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.blogger.com/wiki/Rate_of_climb" title="Rate of climb"&gt;Rate of climb&lt;/a&gt;:&lt;/b&gt; 1,500 ft/min (7.6 m/s) or greater, below 16,000 ft (4,875 m)&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.blogger.com/wiki/Wing_loading" title="Wing loading"&gt;Wing loading&lt;/a&gt;:&lt;/b&gt; 25.5 lb/ft² (125 kg/m²)&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.blogger.com/wiki/Power-to-weight_ratio" title="Power-to-weight ratio"&gt;Power/mass&lt;/a&gt;:&lt;/b&gt; 0.091 hp/lb (150 W/kg)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Very fast airplane.&amp;nbsp; We cruised at 185 knots up and back.&amp;nbsp; Compared to flying my Super Cub, moving the stick is like trying to bend a steel rod.&amp;nbsp; I guess if you are going to move that fast you are going to have a lot of wing loading and the stick was very stiff.&amp;nbsp; I now understand why these guys fly with the autopilot engaged most of the time.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;We landed at something above my normal cruise speed in the cub with a stiff crosswind and used every inch of the 3400 foot runway.&amp;nbsp; I am used to landing at Friday Harbor and making the first turnoff.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jBVKTX6jL28/TyO5z5y0GsI/AAAAAAAAAOU/pqK_STaw14I/s1600/WP_000083.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://4.bp.blogspot.com/-jBVKTX6jL28/TyO5z5y0GsI/AAAAAAAAAOU/pqK_STaw14I/s400/WP_000083.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Boeing field off the right wing whilst crossing over SeaTac International airport, climbing out of 4000 for 6000 feet.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Nkq6-ARbVVg/TyO6IxAen4I/AAAAAAAAAOc/WmVrBWi-C4I/s1600/WP_000084.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://4.bp.blogspot.com/-Nkq6-ARbVVg/TyO6IxAen4I/AAAAAAAAAOc/WmVrBWi-C4I/s400/WP_000084.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Northbound crossing Puget Sound, punching through clouds as we go.&amp;nbsp; Outside temperature was&amp;nbsp; minus 13C and we were picking up some frost on the leading edges of the wings in the cloud tops.&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ijG03ULWvgY/TyO6uGmJsRI/AAAAAAAAAOs/FqPUJRf-Z9Y/s1600/WP_000085.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://2.bp.blogspot.com/-ijG03ULWvgY/TyO6uGmJsRI/AAAAAAAAAOs/FqPUJRf-Z9Y/s400/WP_000085.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Heading north, east of Puget Sound, north of Bremerton.&amp;nbsp; Asked for 8000 feet to get above the cloud tops, but as you can see the clouds ahead are still above us.&amp;nbsp; Didn't want to go much higher as we will just have to drop down through them again soon to land.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-BJBlJaZvfDQ/TyO7L7WgXKI/AAAAAAAAAO0/mGLK1iuHitM/s1600/WP_000086.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://1.bp.blogspot.com/-BJBlJaZvfDQ/TyO7L7WgXKI/AAAAAAAAAO0/mGLK1iuHitM/s400/WP_000086.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;This is the Avidyne glass panel setup in the C400.&amp;nbsp; Two Garmin GPS units, S-Tec autopilot and all the bells and whistles you can possibly want.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;It was a fast trip and I enjoyed it greatly.&amp;nbsp; I am certainly glad I was not alone as cruising at 185 knots rather than my normal 85 knots, things happen a whole lot quicker that I am used to.&amp;nbsp; If you want to get someplace in a hurry, the C400 is a good way to go.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-6931164352627960907?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/6931164352627960907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/flying-diversion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6931164352627960907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6931164352627960907'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/flying-diversion.html' title='Flying diversion'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-jBVKTX6jL28/TyO5z5y0GsI/AAAAAAAAAOU/pqK_STaw14I/s72-c/WP_000083.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-8213435068156773144</id><published>2012-01-27T13:39:00.000-08:00</published><updated>2012-01-27T13:45:41.674-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='Touch Panel'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Display'/><title type='text'>New Propeller Toys</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have obtained a &lt;a href="http://www.gadgetgangster.com/find-a-project/56?projectnum=209"&gt;touch panel LCD display&lt;/a&gt; for my Propeller board.&amp;nbsp; I am using a modification of the TV object to display text output for debugging purposes.&amp;nbsp; It is nice to have this peripheral display to make debugging easier.&amp;nbsp; Here is some debug output from my work on a routine to encode WSPR messages:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-KMYznZ7QBUw/TyMTRLPjc5I/AAAAAAAAAOA/OPpdbYAc2Ic/s1600/WP_000090.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://1.bp.blogspot.com/-KMYznZ7QBUw/TyMTRLPjc5I/AAAAAAAAAOA/OPpdbYAc2Ic/s400/WP_000090.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Nice little display.&amp;nbsp; It is a 320x240, 2.4" Colour LCD with touch screen.&amp;nbsp; It mounts to a prototyping board and leaves 15 IO available when connected in 8 bit mode.&amp;nbsp; It can display true-colour, 24 bit images and has a controllable backlight.&amp;nbsp; It also sports a full size SD card slot that can be used for offline storage.&amp;nbsp; Here is an example of the graphics display.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-hLS7vOnU17Q/TyMVVWC64JI/AAAAAAAAAOI/EYg3gkU7sGw/s1600/WP_000091.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://3.bp.blogspot.com/-hLS7vOnU17Q/TyMVVWC64JI/AAAAAAAAAOI/EYg3gkU7sGw/s400/WP_000091.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I think this will prove to be quite useful in my projects.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-8213435068156773144?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/8213435068156773144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/new-propeller-toys.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8213435068156773144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8213435068156773144'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/new-propeller-toys.html' title='New Propeller Toys'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-KMYznZ7QBUw/TyMTRLPjc5I/AAAAAAAAAOA/OPpdbYAc2Ic/s72-c/WP_000090.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-1247799511267377713</id><published>2012-01-25T21:42:00.000-08:00</published><updated>2012-01-26T07:42:54.061-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hellschreiber'/><category scheme='http://www.blogger.com/atom/ns#' term='Brainwagon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Mark Vandewettering'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><title type='text'>7x14 Hellschreiber Glyphs</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I noticed that Mark Vandewettering, K6HX&amp;nbsp;over at &lt;a href="http://brainwagon.org/"&gt;brainwagon.org&lt;/a&gt; recently posted an &lt;a href="http://brainwagon.org/2012/01/11/hellduino-sending-hellschreiber-from-an-arduino/"&gt;arduino Hellschreiber&amp;nbsp;&lt;/a&gt;bit of code and decided to adapt his 7x14 set of glyphs to QRSS on the Propeller processor.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The result is not displeasing, but is a bit more bandwidth that I would feel comfortable taking up of a QRSS band that is only 100 Hz wide in the first place.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-pC2s6tlM-WY/TyDl9u-x-2I/AAAAAAAAANw/B2hI-B5FCms/s1600/7x14Font.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="67" src="http://3.bp.blogspot.com/-pC2s6tlM-WY/TyDl9u-x-2I/AAAAAAAAANw/B2hI-B5FCms/s400/7x14Font.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;This is with 2 Hz spacing between column dots.&amp;nbsp; I reduced this to 1 Hz and got the following results:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-bZAsbfO8IVQ/TyDnHy9kh3I/AAAAAAAAAN4/vnB7X0hYskg/s1600/7x14+Font2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="63" src="http://3.bp.blogspot.com/-bZAsbfO8IVQ/TyDnHy9kh3I/AAAAAAAAAN4/vnB7X0hYskg/s400/7x14+Font2.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Ok, so this is a little more bandwidth friendly, but I would need to play with the inter-column and inter-character spacing a bit to be happy with it.&amp;nbsp; I am not totally sold on the set of glyphs yet, but the enlarged characters allow for more interesting glyphs to be created than with my original 5x7 set.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-1247799511267377713?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/1247799511267377713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/7x14-hellscreiber-glyphs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1247799511267377713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1247799511267377713'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/7x14-hellscreiber-glyphs.html' title='7x14 Hellschreiber Glyphs'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-pC2s6tlM-WY/TyDl9u-x-2I/AAAAAAAAANw/B2hI-B5FCms/s72-c/7x14Font.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-8736981012675825285</id><published>2012-01-24T10:30:00.000-08:00</published><updated>2012-01-24T10:30:00.066-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gadget Gangster'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='Power Monitor'/><title type='text'>Propeller Beacon Power Consumption</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I decided to take a look at power consumption during RF generation on the Propeller device.&amp;nbsp; I have a power monitoring device that logs current usage over time.&amp;nbsp; What I wanted to see was the power consumption that was attributable to RF generation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The test setup is a &lt;a href="http://gadgetgangster.com/"&gt;Gadget Gangster&lt;/a&gt; board powered by my &lt;a href="http://www.msoon.com/LabEquipment/PowerMonitor/"&gt;power monitor&lt;/a&gt; at 4.55 volts.&amp;nbsp; This is a somewhat low voltage, but is the highest voltage that it will generate.&amp;nbsp; This of course may affect my testing results, but the data is interesting nevertheless.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Since I am measuring current usage on a running processor, it is fun to look at the effect of code changes on power usage, but that is a side topic for another time.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Baseline, I wanted to see what current consumption is when the processor(s) are waiting in a delay loop with RF generation off.&amp;nbsp; This appears to be on the order of 20.8 mA while continuous RF generation on a single frequency appears to consume about 23.6 mA.&amp;nbsp; The script who's power consumption is graphed below loops turning the RF on and off every 5 seconds.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hYSaQBeM2ug/Tx7163V17oI/AAAAAAAAANc/BxzXQSKHU4U/s1600/Baseline.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://4.bp.blogspot.com/-hYSaQBeM2ug/Tx7163V17oI/AAAAAAAAANc/BxzXQSKHU4U/s400/Baseline.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Now, I replace the script with a CW beacon sending at about 15 WPM my call sign and locator (KO7M CN87).&amp;nbsp; The power consumption graph looks very much like a QRSS Argo display.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ohCkPdAiBsE/Tx72tA4SeeI/AAAAAAAAANk/Je9mmNI1F1k/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="http://4.bp.blogspot.com/-ohCkPdAiBsE/Tx72tA4SeeI/AAAAAAAAANk/Je9mmNI1F1k/s400/Capture.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;As you can see, my call sign is clearly visible.&amp;nbsp; This script baselines at about 22.5 mA with RF off and 25.2 mA with RF on or about 3-4 mA attributable to RF generation.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-8736981012675825285?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/8736981012675825285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/propeller-beacon-power-consumption.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8736981012675825285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8736981012675825285'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/propeller-beacon-power-consumption.html' title='Propeller Beacon Power Consumption'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-hYSaQBeM2ug/Tx7163V17oI/AAAAAAAAANc/BxzXQSKHU4U/s72-c/Baseline.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-8382697019874591855</id><published>2012-01-23T19:02:00.000-08:00</published><updated>2012-01-23T19:03:12.900-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><title type='text'>WSPR Spots</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Well, my experience in running 7 dBm WSPR beacons thus far according to &lt;a href="http://wsprnet.org/"&gt;http://wsprnet.org&lt;/a&gt; has been far from stellar...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1 class="title"&gt;Spot Database&lt;/h1&gt;&lt;div class="tabs"&gt;&lt;/div&gt;&lt;a href="http://wsprnet.org/drupal/wsprnet/spotquery"&gt;Specify query parameters&lt;/a&gt;&lt;br /&gt;0 spots:&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Timestamp&lt;/th&gt;&lt;th&gt;Call&lt;/th&gt;&lt;th&gt;MHz&lt;/th&gt;&lt;th&gt;SNR&lt;/th&gt;&lt;th&gt;Drift&lt;/th&gt;&lt;th&gt;Grid&lt;/th&gt;&lt;th&gt;Pwr&lt;/th&gt;&lt;th&gt;Reporter&lt;/th&gt;&lt;th&gt;RGrid&lt;/th&gt;&lt;th&gt;km&lt;/th&gt;&lt;th&gt;az&lt;/th&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;em&gt;Query time: 0.001 sec&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, I think that I may move off 30 metres for this evening and have a go at one of the longer wave bands and see if I can improve the current score.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-8382697019874591855?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/8382697019874591855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/wspr-spots.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8382697019874591855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8382697019874591855'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/wspr-spots.html' title='WSPR Spots'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4264199512929041354</id><published>2012-01-23T07:05:00.000-08:00</published><updated>2012-01-23T07:11:39.658-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Drift'/><category scheme='http://www.blogger.com/atom/ns#' term='Stability'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><title type='text'>WSPR Beacon -  Frequency and Drift Data</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have been running my Propeller WSPR beacon over night and have gathered 42 data reporting points on drift and frequency as reported by WSPR 2.11 over a&amp;nbsp;7 hour period.&amp;nbsp; The beacon is transmitting every 10 minutes and idle between times.&amp;nbsp; The only temperature control is to wrap the device in foam.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The charts below are are showing the frequency reported by WSPR 2.11, which as I understand it will be the first frequency it decodes and the amout of drift from that frequency over the life of the transmission.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-k8AABHIyZDU/Tx12A2twWUI/AAAAAAAAANM/ki5jOk-WoGA/s1600/FreqOverTime.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-k8AABHIyZDU/Tx12A2twWUI/AAAAAAAAANM/ki5jOk-WoGA/s400/FreqOverTime.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&amp;nbsp;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;There are a few somewhat wild excursions initially, but then over time the initial frequency appears to drift upwards with each successive 10 minute period as the device cools.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Fr5ilxvYrmM/Tx12cNFnyhI/AAAAAAAAANU/OirjMKNO4Pw/s1600/DriftOverTime.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://4.bp.blogspot.com/-Fr5ilxvYrmM/Tx12cNFnyhI/AAAAAAAAANU/OirjMKNO4Pw/s400/DriftOverTime.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;The amount of drift once the transmission begins is in the opposite direction and after some initial jitter assumes &lt;a href="http://dictionary.reference.com/browse/asymptotic"&gt;asymptotic&lt;/a&gt; behavior at a consistent 2 hertz downward drift as the device warms up.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;While none of these figures is horrific, good engineering would indicate that for this kind of application, careful attention to thermal stability is important.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4264199512929041354?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4264199512929041354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/wspr-frequency-and-drift-initial-data.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4264199512929041354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4264199512929041354'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/wspr-frequency-and-drift-initial-data.html' title='WSPR Beacon -  Frequency and Drift Data'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-k8AABHIyZDU/Tx12A2twWUI/AAAAAAAAANM/ki5jOk-WoGA/s72-c/FreqOverTime.PNG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7557425729671539861</id><published>2012-01-22T21:09:00.000-08:00</published><updated>2012-01-23T01:08:40.263-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><title type='text'>Updated WSPR beacon</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Today I have been working on getting my Propeller WSPR beacon to obey WSPR's timing rules.&amp;nbsp; I have implemented the notion of TX Percent.&amp;nbsp; As mentioned in &lt;a href="http://ko7m.blogspot.com/2011/03/wspr-beacon-update.html"&gt;previous posts&lt;/a&gt;, I define TX Percent in this way as there is no clear definition in &lt;a href="http://physics.princeton.edu/pulsar/K1JT/WSPR_2.0_User.pdf"&gt;Joe Taylor's documentation&lt;/a&gt; on WSPR.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;CON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; TXPercent&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Transmit 20% of the time&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;VAR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;LONG SecondCnt, Stack[16], Sync&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB Init&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; Sync := ROUND(1.0 / TXPercent * 2.0) ' Calculate when next xmit occurs in minutes&lt;br /&gt;&amp;nbsp; Sync += (Sync // 2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Always send on a 2 minute boundary&lt;br /&gt;&amp;nbsp; Sync *= 60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Minutes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; SecondCnt := 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Reset the second counter to zero&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; cognew(Clock, @Stack)&amp;nbsp;' Start the clock COG&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB Clock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Runs In its own COG&lt;br /&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(1000)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Update second counter every 1000 ms&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SecondCnt++&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Should be good for 2^32 seconds or about 136 years&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif; font-size: small;"&gt;Ok, so TX percent of 20% means you will transmit every 10 minutes.&amp;nbsp; If you want to change how often you transmit, change the value of TXPercent.&amp;nbsp; I modified the code to not send when TXPercent is zero as this is listen only mode.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB sendCode(stringptr)&lt;br /&gt;&amp;nbsp; if TXPercent &amp;gt; 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat strsize(stringptr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendSymbol(byte[stringptr++])&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif; font-size: small;"&gt;The Clock procedure runs on its own&amp;nbsp;COG and just&amp;nbsp;keeps track of seconds.&amp;nbsp; The presumption is that you flip on the Propeller board at precisely the start of an even minute.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Lastly, I modified the main routine to wait for the next transmit window.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB doInitialize&lt;br /&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Send symbol set for KO7M CN87&amp;nbsp;7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendCode(string("&amp;lt;paste in your WSPR encoded message here&amp;gt;"))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; noTone&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat while SecondCnt // Sync&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(100)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have the updated code running now on 10.140.200 every 10 minutes at&amp;nbsp;about 7 dBm (5 mW).&amp;nbsp; Look for me in the spot database.&amp;nbsp; I am seeing about -3 drift typically when running on a 10 minute cycle.&amp;nbsp; I will have to experiment with better temperature control of the board to see if I can eliminate that.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;For those interested, here is the entire beacon Spin code.&amp;nbsp; I have removed my WSPR coded message.&amp;nbsp; Please see my &lt;a href="http://ko7m.blogspot.com/2012/01/wspr-on-propeller.html"&gt;previous post&lt;/a&gt; on how to create that for your call sign, &lt;a href="http://en.wikipedia.org/wiki/Maidenhead_Locator_System"&gt;grid square&lt;/a&gt; and power level in dBm.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;CON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp; _CLKMODE = XTAL1 + PLL16X&lt;br /&gt;&amp;nbsp; _XINFREQ = 5_000_000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp; WMin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 381&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'WAITCNT-expression-overhead Minimum&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp; RFPin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 27&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp; Frequency&amp;nbsp;&amp;nbsp;&amp;nbsp; = 10_140_200&lt;br /&gt;&amp;nbsp; ErrorOffset&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -431&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp; symbolLength =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 683&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' 8192 / 12000 * 1000 = milliseconds&lt;br /&gt;&amp;nbsp; TXPercent&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Transmit 20% of the time or about every 10 minutes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;OBJ&lt;br /&gt;&amp;nbsp; Freq : "Synth"&lt;br /&gt;&amp;nbsp; &lt;br /&gt;VAR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG SecondCnt, Stack[16]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG Sync&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;PUB Main&lt;br /&gt;&amp;nbsp; doInitialize&lt;br /&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Send symbol set for KO7M CN87 7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendCode(string("&amp;lt;paste your own WSPR coded message here&amp;gt;"))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; noTone&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat while SecondCnt // Sync&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(100)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;PUB doInitialize&lt;br /&gt;&amp;nbsp; Sync := ROUND(1.0 / TXPercent * 2.0) ' Calculate when next transmission occurs in minutes&lt;br /&gt;&amp;nbsp; Sync += (Sync // 2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Make sure we always send on a 2 minute boundary&lt;br /&gt;&amp;nbsp; Sync *= 60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Convert minutes to seconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; SecondCnt := 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Reset the second counter to zero&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; cognew(Clock, @Stack)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Start the clock COG&lt;br /&gt;&amp;nbsp; &lt;br /&gt;PUB sendCode(stringptr)&lt;br /&gt;&amp;nbsp; if TXPercent &amp;gt; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' TXPercent of zero indicates we are not transmitting&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat strsize(stringptr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendSymbol(byte[stringptr++])&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;PUB sendSymbol(char)&lt;br /&gt;&amp;nbsp; case char&lt;br /&gt;&amp;nbsp;&amp;nbsp; "0":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(-3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp; "1":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(-1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp; "2":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp; "3":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(SymbolLength)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;PUB sendTone(tone)&lt;br /&gt;&amp;nbsp; Freq.Synth("A",RFPin, Frequency + tone + ErrorOffset)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;PUB noTone&lt;br /&gt;&amp;nbsp; Freq.Synth("A",RFPin, 0)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;PUB delay(Duration)&lt;br /&gt;&amp;nbsp; waitcnt(((clkfreq / 1_000 * Duration - 3932) #&amp;gt; WMin) + cnt)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: xx-small;"&gt;PUB Clock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Runs In its own COG&lt;br /&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(1000)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Update second counter every 1000 ms&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SecondCnt++&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Should be good for 2^32 seconds or about 136 years&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7557425729671539861?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7557425729671539861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/updated-wspr-beacon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7557425729671539861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7557425729671539861'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/updated-wspr-beacon.html' title='Updated WSPR beacon'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-5941012400769746805</id><published>2012-01-19T12:04:00.000-08:00</published><updated>2012-01-19T12:04:09.916-08:00</updated><title type='text'>Winter Wonderland</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;We have had a bit of a winter storm hit over here and it has dumped about 8 inches of snow on the KO7M QTH.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Vr-trdQ8d5M/Txh2fBMW2vI/AAAAAAAAAM0/7J0TmUZE6Pg/s1600/WP_000079.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" nfa="true" src="http://1.bp.blogspot.com/-Vr-trdQ8d5M/Txh2fBMW2vI/AAAAAAAAAM0/7J0TmUZE6Pg/s320/WP_000079.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-NWDgRtcaoQo/Txh2hE6VSQI/AAAAAAAAAM8/Fe8TooE6l9c/s1600/WP_000080.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" nfa="true" src="http://3.bp.blogspot.com/-NWDgRtcaoQo/Txh2hE6VSQI/AAAAAAAAAM8/Fe8TooE6l9c/s320/WP_000080.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;The power went out this morning with the mains dropping to about 60 volts per side of the 220 mains.&amp;nbsp; Not good...&amp;nbsp; I pulled the main breaker and connected up my little Honda generator and am able to keep the furnace fan, refrigerator and a few lights running as well as the computer.&amp;nbsp; Right now we are having freezing rain.&amp;nbsp; The packed snow on the roads is rapidly turning to an ice rink.&amp;nbsp; Lots of fun in Seattle.&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-5941012400769746805?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/5941012400769746805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/winter-wonderland.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5941012400769746805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5941012400769746805'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/winter-wonderland.html' title='Winter Wonderland'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Vr-trdQ8d5M/Txh2fBMW2vI/AAAAAAAAAM0/7J0TmUZE6Pg/s72-c/WP_000079.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-5968325500149116681</id><published>2012-01-18T10:39:00.000-08:00</published><updated>2012-01-18T11:27:35.706-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><title type='text'>Beacon Power Output</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;My Propeller beacon is now on the air on 30 metres.&amp;nbsp; Currently running QRSS near the bottom of the band (10.140.000) sending "KO7M CN87" in 5 hz FSK.&amp;nbsp; Would love to have any reception reports.&amp;nbsp; Currently running around 7 mW into a fence-mounted vertical.&amp;nbsp; SWR is 1:1 fortunately.&amp;nbsp; :)&amp;nbsp; I will from time-to-time (on a whim) reconfigure it as I am now working on getting the WSPR beacon code to be autonomous which involves figuring out how to do the strict WSPR timing of transmissions.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Wf-PbXVKtAE/TxcRcRvxqeI/AAAAAAAAAMs/OFPDyEEWkg0/s1600/WP_000078.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-Wf-PbXVKtAE/TxcRcRvxqeI/AAAAAAAAAMs/OFPDyEEWkg0/s320/WP_000078.jpg" width="239" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-5968325500149116681?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/5968325500149116681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/beacon-power-output.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5968325500149116681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5968325500149116681'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/beacon-power-output.html' title='Beacon Power Output'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Wf-PbXVKtAE/TxcRcRvxqeI/AAAAAAAAAMs/OFPDyEEWkg0/s72-c/WP_000078.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-6868113014523473455</id><published>2012-01-18T10:23:00.000-08:00</published><updated>2012-01-18T10:24:23.917-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stability'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><title type='text'>More Propeller Frequency Stability</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;After wrapping the propeller board in foam, from a cold start, after about 30 minutes the frequency stabilized at about 30 Hz lower than the cold start value.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Gtqge_h9hVY/TxcNNcS84mI/AAAAAAAAAMc/drFV7tRVAjY/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="114" src="http://1.bp.blogspot.com/-Gtqge_h9hVY/TxcNNcS84mI/AAAAAAAAAMc/drFV7tRVAjY/s320/Capture.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;So, it appears that my chasing of this error correction value has been a bit of a boondoggle as I had not attended to the temperature stability of the device.&amp;nbsp; (Doh!)&amp;nbsp; I should be able to zero in on my ErrorOffset value and be able to let it be, or so I hope.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-6868113014523473455?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/6868113014523473455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/more-propeller-frequency-stability.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6868113014523473455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6868113014523473455'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/more-propeller-frequency-stability.html' title='More Propeller Frequency Stability'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Gtqge_h9hVY/TxcNNcS84mI/AAAAAAAAAMc/drFV7tRVAjY/s72-c/Capture.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-2118731816378628300</id><published>2012-01-17T21:18:00.000-08:00</published><updated>2012-01-22T23:47:07.570-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stability'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><title type='text'>Propeller frequency stability</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;This evening, I have been experimenting a bit with my Propeller device.&amp;nbsp; I have a small script that turns on the RF synthesizer at 10_140_000 mHz for 30 seconds, off for 10 seconds etc.&amp;nbsp; I use it for calibration of the frequency of the board in use as different Propeller boards will have different amounts of error in frequency generation.&amp;nbsp; The script looks like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;CON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; _CLKMODE = XTAL1 + PLL16X&lt;br /&gt;&amp;nbsp; _XINFREQ = 5_000_000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; CLK_FREQ = ((_CLKMODE-XTAL1)&amp;gt;&amp;gt;6)*_XINFREQ&lt;br /&gt;&amp;nbsp; MS_001 = CLK_FREQ / 1_000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; RFPin&amp;nbsp; = 27&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; TxFreq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 10_140_000&lt;br /&gt;&amp;nbsp; ErrorOffset =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -467&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; Frequency = TxFreq + ErrorOffset&lt;br /&gt;&amp;nbsp; &lt;br /&gt;VAR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;OBJ&lt;br /&gt;&amp;nbsp; Freq : "Synth"&lt;br /&gt;&amp;nbsp; &lt;br /&gt;PUB Main&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(30000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; noTone&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(10000)&lt;br /&gt;&lt;br /&gt;PUB delay(ms) | t&lt;br /&gt;&amp;nbsp; t := cnt - 1088&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' 1088 is published time for overhead&lt;br /&gt;&amp;nbsp; repeat ms&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; waitcnt(t += MS_001)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;PUB sendTone(tone)&lt;br /&gt;&amp;nbsp; Freq.Synth("A",RFPin, Frequency + tone)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;PUB noTone&lt;br /&gt;&amp;nbsp; Freq.Synth("A",RFPin, 0)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;This simple little script I find to be very useful when I need to generate a signal at some frequency.&amp;nbsp; The on/off modulation of the signal allows me to find it more easily on uncalibrated receivers.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Viewing the output from a local receiver using Argo we find this waveform.&amp;nbsp; As you can see, my board has approximately -467 Hz of error which is corrected for in this script.&amp;nbsp; Nevertheless, as the board changes temperature, it does drift a bit.&amp;nbsp; As can be seen below I have drifted a hertz or two lower since calibration of the board was last done.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-7WNBa4caWGA/TxZRmx1ycoI/AAAAAAAAALo/x41FaJcOaJE/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="103" src="http://2.bp.blogspot.com/-7WNBa4caWGA/TxZRmx1ycoI/AAAAAAAAALo/x41FaJcOaJE/s320/Capture.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&amp;nbsp; I begin to wonder however why this ErrorOffset value seems to change when using the same board, just a different application.&amp;nbsp; For example my Hellscrieber code appears to transmit about 3 Hz lower with the same ErrorOffset value.&amp;nbsp; I added a 30 second carrier at the beginning of the code to see exactly what frequency it is on before launching into the transmission of FeldHell codes.&amp;nbsp; With the transmit frequency set to 10_139_980 and the same -467 ErrorOffset value, the following is observed:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-5KT-4gefV58/TxZVEn4BMeI/AAAAAAAAALw/3HRgKe6xw9s/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-5KT-4gefV58/TxZVEn4BMeI/AAAAAAAAALw/3HRgKe6xw9s/s1600/Capture.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I am clearly 5-6 Hz low.&amp;nbsp; The frequency is also different than in the previous example, so that may be related.&amp;nbsp; I think however that it may just be the drift of the device.&amp;nbsp; Going back to the Tune application, which should be a hertz or two low at 10_140_000, we see the following:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-0NLCvSbFCNU/TxZVoWuvXsI/AAAAAAAAAL4/Es2Ly0Bv4Hc/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-0NLCvSbFCNU/TxZVoWuvXsI/AAAAAAAAAL4/Es2Ly0Bv4Hc/s1600/Capture.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Hmmm...&amp;nbsp; So it appears that I am just chasing a temperature drift of the Propeller board over time.&amp;nbsp; Adding some thermal stabilization to it would probably help.&amp;nbsp; I will wrap it up in some foam and let it run for a while and see if the frequency stabilizes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Here is a cold start image of my QRSS signal.&amp;nbsp; Out of the box, it seems that there is a significant drift:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-V23EMmv-r0g/TxcEEKWQOuI/AAAAAAAAAME/Lk4ICw91lEg/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="133" src="http://2.bp.blogspot.com/-V23EMmv-r0g/TxcEEKWQOuI/AAAAAAAAAME/Lk4ICw91lEg/s320/Capture.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;And a few minutes later we can see it has drifted over 20 Hz:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-kSw0rCQ_LL4/TxcFRX81GEI/AAAAAAAAAMU/NLi6M9VZItQ/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="74" src="http://1.bp.blogspot.com/-kSw0rCQ_LL4/TxcFRX81GEI/AAAAAAAAAMU/NLi6M9VZItQ/s320/Capture.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I will let it run and see where it stabilizes.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-2118731816378628300?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/2118731816378628300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/propeller-frequency-stability.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/2118731816378628300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/2118731816378628300'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/propeller-frequency-stability.html' title='Propeller frequency stability'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-7WNBa4caWGA/TxZRmx1ycoI/AAAAAAAAALo/x41FaJcOaJE/s72-c/Capture.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4028756358523140714</id><published>2012-01-16T22:41:00.000-08:00</published><updated>2012-01-25T21:45:44.771-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FeldHell'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Hellschreiber'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><title type='text'>Hellschreiber QRSS using Propeller</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Last evening, I shared the experience of creating a FeldHell-like QRSS beacon.&amp;nbsp; The bulk of the effort was in creating an acceptable font.&amp;nbsp; The Propeller chip has a rather nice font already in ROM but it is more suited for TV video output than for QRSS due to its 16x32 size.&amp;nbsp; I felt that this was too much bandwidth to occupy for a single signal in the QRSS band.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I created the font definition in a text editor and decided to try a 5x7 font initially.&amp;nbsp; With this format, each character is 5 bytes (one byte for each column of the font character).&amp;nbsp; For example, the letter "A" is represented thus:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XXX&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X&amp;nbsp;&amp;nbsp;&amp;nbsp;X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X&amp;nbsp;&amp;nbsp;&amp;nbsp;X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XXXXX&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;X&amp;nbsp;&amp;nbsp;&amp;nbsp;X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X&amp;nbsp;&amp;nbsp; X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X&amp;nbsp;&amp;nbsp;&amp;nbsp;X&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Each colum of the character in the 5x7 grid is encoded as a byte where the "X" character above is encoded as a set bit and the lack of an "X" is encoded as a 0.&amp;nbsp; So to create this, I defined all my characters (0..9, A..Z) as shown above in a text file.&amp;nbsp; I then imported the text file into a spreadsheet and&amp;nbsp;rotated&amp;nbsp;the rows and columns&amp;nbsp;90 degrees using the spreadsheet "Transpose" function.&amp;nbsp; This had the effect of laying all the characters down on their sides, thus:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XXXXXX&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X&amp;nbsp; X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X&amp;nbsp; X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X&amp;nbsp; X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XXXXXX&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I then exported the file back to a text file for further processing.&amp;nbsp; You have to now imagine each of the font characters lying on their sides like the example above, occupying five very long&amp;nbsp;lines of my text file.&amp;nbsp; I then globally replaced all the space characters (there is a space in each 5x7 grid anyplace there is no "X") with a "0" character and replaced the "X" characters with "1".&amp;nbsp; For the "A" character above, this resulted in:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0111111&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1001000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1001000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1001000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0111111&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I then turned this mess into a valid DAT block containing binary byte values like so:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;DAT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' FeldHell font definitions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; etc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Col5 BYTE %0111111, %xxxxxxx, ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Col4 BYTE %1001000, %xxxxxxx, ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Col3 BYTE %1001000, %xxxxxxx, ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Col2&amp;nbsp;BYTE %1001000, %xxxxxxx, ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Col1 BYTE %0111111, %xxxxxxx, ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Now I can index into this table and obtain the column data I need for each character.&amp;nbsp; So now in the main loop, I can call this procedure to process the beacon text:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB doFeldHellBeacon&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Send Feld Hell beacon text&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendFeldHellString(string("KO7M CN87xp"))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB sendFeldHellString(strMsg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat STRSIZE(strMsg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendFeldHellChar(BYTE[strMsg++])&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The code to send each character is a quick hack, so don't beat me up too much.&amp;nbsp; I am still playing around with the timing to make it look nice.&amp;nbsp; Each character of the message text is looked up in the DAT table above to obtain the byte containing each of the 5 column definitions.&amp;nbsp; The character is sent from bottom left (least significant bit of Col1) to the top of the column and then proceeding with the next column until all five columns have been sent.&amp;nbsp; I test the least significant bit of each byte of column data and send a tone if it is set and send nothing if unset.&amp;nbsp; Right shift to get the next bit and continue for all 7 bits.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB sendFeldHellChar(ch) | i, j, iCol, columnData, Time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Time := 300&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' set up column index to default to space character&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iCol := -1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "a".."z": iCol := ch - "a" + 10&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "A".."Z": iCol := ch - "A" + 10&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "0".."9": iCol := ch - "0"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if iCol &amp;lt; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(Time*12)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;' Handle the space character specially&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat i from 4 to 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' 5 columns in reverse order&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; columnData := Col5[iCol+(i*36)]&amp;nbsp; ' get the current column data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat j from 0 to 6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if columnData &amp;amp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; ' If the font bit is set, send a tone&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(j*2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; noTone&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; columnData &amp;gt;&amp;gt;= 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Right shift font data to get next bit&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(Time)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Give a little space between columns&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; noTone&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(Time*6)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Give a little more space between letters&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, that is it...&amp;nbsp; Simple, eh?&amp;nbsp; Since the font definition is&amp;nbsp; five really long lines of text, I am not going to post the entire program here.&amp;nbsp; If you would like to have a copy of it however, I will be happy to email it to you if you will drop me a comment to this post on the blog.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I will be creating "a".."z" characters in the font and some punctuation, but have no plans to create any characters beyond what would be in a typical QRSS message.&amp;nbsp; I am using Eldon's 10 minute QRSS sync algorithm for stacked grabbers.&amp;nbsp; See his article &lt;a href="http://wa0uwh.blogspot.com/2012/01/beacon-stacking-via-10-minute-sync.html"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Here is what it looks like on the air:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-IrX6LDULLbo/TxWLlVQUzII/AAAAAAAAALg/xSK9r0eG9QA/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="56" src="http://1.bp.blogspot.com/-IrX6LDULLbo/TxWLlVQUzII/AAAAAAAAALg/xSK9r0eG9QA/s320/Capture.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4028756358523140714?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4028756358523140714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/hellscrieber-qrss-using-propeller.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4028756358523140714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4028756358523140714'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/hellscrieber-qrss-using-propeller.html' title='Hellschreiber QRSS using Propeller'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-IrX6LDULLbo/TxWLlVQUzII/AAAAAAAAALg/xSK9r0eG9QA/s72-c/Capture.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-5347577804197777293</id><published>2012-01-16T02:58:00.000-08:00</published><updated>2012-01-25T21:45:21.175-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FeldHell'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Hellschreiber'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><title type='text'>More Propeller Madness</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Well, my old pal Eldon has really done it now...&amp;nbsp; So much for sleep it seems with new toys to play with...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I decided to implement FeldHell mode on my Propeller based QRSS/WSPR/Opera/CW beacon.&amp;nbsp; It was a bit fun figuring out the timing and the font, but here is a sample:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-7nuiIO4Dk40/TxQCIIKfjUI/AAAAAAAAALY/6_ajwHIRuIM/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="86" src="http://4.bp.blogspot.com/-7nuiIO4Dk40/TxQCIIKfjUI/AAAAAAAAALY/6_ajwHIRuIM/s320/Capture.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;It is a simple 5x7 font and I draw each character from the lower left to the upper right resulting in the slight forward slant of the characters.&amp;nbsp; Right now I have only defined upper case characters and numerics in the font.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I will post the complete code after I have gotten some sleep...&amp;nbsp; :)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-5347577804197777293?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/5347577804197777293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/more-propeller-madness.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5347577804197777293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5347577804197777293'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/more-propeller-madness.html' title='More Propeller Madness'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-7nuiIO4Dk40/TxQCIIKfjUI/AAAAAAAAALY/6_ajwHIRuIM/s72-c/Capture.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-159116964983399646</id><published>2012-01-15T21:40:00.000-08:00</published><updated>2012-01-15T21:41:17.120-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><title type='text'>Propeller Opera beacon up and running tonight</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Today I have built a low-pass filter for my Propeller beacon on 30 metres.&amp;nbsp; The spectrum analyzer shows the second and subsequent harmonics more than 45 db down, so I have put it on the air tonight.&amp;nbsp; I am beaconing every 15 minutes using Opera mode running only 5.6 mW currently.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Here is the current setup.&amp;nbsp; As you can see Eldon and I have shared the low pass filter design that he created with the aide of a design program.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-sEyCmSAuVZ8/TxO3qC7KlLI/AAAAAAAAALQ/kC_CQ-LZCKo/s1600/jeffsbeacon.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-sEyCmSAuVZ8/TxO3qC7KlLI/AAAAAAAAALQ/kC_CQ-LZCKo/s400/jeffsbeacon.jpg" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I am eager, but not too hopeful that this little pennywhistle signal will be picked up somewhere this evening.&amp;nbsp; We shall see.&amp;nbsp; Thanks Eldon for sharing your design and the components necessary to build the low pass filter!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-159116964983399646?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/159116964983399646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/propeller-opera-beacon-up-and-running.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/159116964983399646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/159116964983399646'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/propeller-opera-beacon-up-and-running.html' title='Propeller Opera beacon up and running tonight'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-sEyCmSAuVZ8/TxO3qC7KlLI/AAAAAAAAALQ/kC_CQ-LZCKo/s72-c/jeffsbeacon.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-5207812318489733522</id><published>2012-01-15T00:31:00.000-08:00</published><updated>2012-01-22T21:35:19.085-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><title type='text'>WSPR on the propeller</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Well, I could not help myself and started implementing a WSPR beacon on the propeller board.&amp;nbsp; For now, I am just going to impelement the transmit portion with a precompiled message and fixed delay between beacons.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I grabbed a copy of Joe Taylors &lt;a href="http://physics.princeton.edu/pulsar/K1JT/WSPRcode.exe"&gt;wsprcode.exe&lt;/a&gt; application to determine the set of channel symbols that will make up my beacon message of "KO7M CN87 20".&amp;nbsp; Here is that code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;C:\bin&amp;gt;wsprcode "KO7M CN87 20"&lt;br /&gt;Message: KO7M CN87 20&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Source-encoded message (50 bits, hex): 8B CC 46 9D 56 B5 00&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Data symbols:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 0 1 1 1 1 1 0 0 0 0 1&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Sync symbols:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 0 1 1 0 0 0 1 1 0 0 0&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Channel symbols:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 3 0 0 0 0 0 2 3 2 2 0 3 1 3 0 0 2 3 0 0 3 0 3 3 1 1 0 0 2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 2 2 0 1 2 2 3 0 1 2 2 2 2 0 0 3 2 3 1 2 0 1 1 2 1 2 0 0 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 0 1 0 0 0 0 3 1 0 3 2 3 2 1 2 3 2 0 3 0 0 3 2 3 1 0 0 0 3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 0 1 2 3 0 2 0 1 2 2 2 0 2 1 0 0 3 0 0 3 3 1 0 1 1 2 0 1 3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 3 0 2 0 1 1 1 2 0 0 0 2 3 0 3 0 0 3 1 0 2 0 0 0 2 0 3 1 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 0 3 3 2 2 2 1 1 0 0 2&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Decoded message: KO7M CN87 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ntype: 20&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I then created a propeller procedure that sends this set of channel symbols based on code stolen from Eldon for his Opera beacon:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB Main&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Send symbol set for KO7M CN87 20&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendCode(string("330000023220313002300303311002222012230122220032312011212001101000031032321232030032310003101230201222021003003310112013030201112000230300310200020310303322211002"))&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(120000)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;For the moment I am ignoring all the timing code that requires WSPR transmissions to start on an even minute boundary.&amp;nbsp; I just want to see if I can manually start this thing at the correct time and have Joe Taylor's WSPR application decode it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So as I did in my Arduino WSPR beacon, I am setting the transmit frequency to be the middle of the four symbol set.&amp;nbsp; On typical SSB transmitters a USB frequency setting for 30 metre band of 10.138.700 is used and a tone of 1500 Hz would yield a "transmit frequency" of 10.1402 at the middle of the 200 Hz WSPR band.&amp;nbsp; There is no clear definition from any WSPR documentation what is meant by this "transmit frequency", so...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;In the absence of clarity from &lt;a href="http://physics.princeton.edu/pulsar/K1JT/WSPR_2.0_User.pdf"&gt;Joe Taylor's documentation&lt;/a&gt;, I have chosen to define the transmit frequency like this:&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-EHfpsXg0NUs/TsFGp2hDqAI/AAAAAAAAAKo/Dydf-tmBcl4/s1600/WSPR.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" closure_uid_5vmct4="4" height="197" src="http://1.bp.blogspot.com/-EHfpsXg0NUs/TsFGp2hDqAI/AAAAAAAAAKo/Dydf-tmBcl4/s320/WSPR.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Each symbol is 1.4648 Hz apart and the transmit frequency is mid-way between symbols 1 and 2.  Band edge operations need to take this into account if you wish to stay within the defined WSPR frequency range with the entire 6 Hz spectrum occupied by the complete WSPR signal. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;However, my stolen code has the ability to set the frequency with a 1 Hz resolution, so I have used 2 Hz rather than 1.4648 Hz symbol separation just for grins.&amp;nbsp; Therefore, symbol offsets from the transmit frequency are as follows:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Symbol 0&amp;nbsp;&amp;nbsp;&amp;nbsp; -3 Hz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Symbol 1&amp;nbsp;&amp;nbsp;&amp;nbsp; -1 Hz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Symbol 2&amp;nbsp;&amp;nbsp;&amp;nbsp; +1 Hz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Symbol 3&amp;nbsp;&amp;nbsp;&amp;nbsp; +3 Hz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Here is the (stolen) sendCode function:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB sendCode(stringptr)&lt;br /&gt;&amp;nbsp; repeat strsize(stringptr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendSymbol(byte[stringptr++])&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;sendSymbol offsets the frequency from the transmit frequency as appropriate for the symbol being sent (the first bit of code I have actually written):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB sendSymbol(char)&lt;br /&gt;&amp;nbsp; case char&lt;br /&gt;&amp;nbsp;&amp;nbsp; "0":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(-3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; "1":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(-1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp; "2":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp; "3":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;symbolLength is 8192 / 12000 seconds or about 683 milliseconds.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;CON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; symbolLength = 683&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;sendTone and noTone do the work of setting the frequency (dutifully stolen from the work of others).&amp;nbsp; The Freq object can be found in the Parallax object library at their web page.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB sendTone(tone)&lt;br /&gt;&amp;nbsp; Freq.Synth("A",RFPin, Frequency + tone)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB noTone&lt;br /&gt;&amp;nbsp; Freq.Synth("A",RFPin, 0)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So with all this in place, I fired up Joe Taylor's WSPR application, tuned it to my propeller beacon and flipped the switch at the start of an even minute...&amp;nbsp; Here is the Argo display of the unfiltered RF on 30 metres:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-2Cn6lbviBE4/TxKK7XTTrnI/AAAAAAAAALA/JO6pkzmI-MI/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="114" src="http://3.bp.blogspot.com/-2Cn6lbviBE4/TxKK7XTTrnI/AAAAAAAAALA/JO6pkzmI-MI/s320/Capture.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Here is the WSPR application display of the reception of this signal:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-hpdiduhUog4/TxKLQ1XD6oI/AAAAAAAAALI/I39AsjaTc9Y/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="259" src="http://2.bp.blogspot.com/-hpdiduhUog4/TxKLQ1XD6oI/AAAAAAAAALI/I39AsjaTc9Y/s320/Capture.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;It seems that WSPR is robust enough for me to get cavalier about timing and non-phase continuous FSK modulation.&amp;nbsp; Nice work Joe Taylor!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, for the curious, here is the entire WSPR beacon test code thus far.&amp;nbsp; Remember it sends "KO7M CN87 20" as the message.&amp;nbsp; Use Joe's application to generate your own WSPR message string and paste it into the main procedure.&amp;nbsp; It also does not know when an even minute begins, so that must be done manually by powering on the Propeller board at the correct moment, but not bad for a quick hack...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;CON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; _CLKMODE = XTAL1 + PLL16X&lt;br /&gt;&amp;nbsp; _XINFREQ = 5_000_000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; CLK_FREQ = ((_CLKMODE-XTAL1)&amp;gt;&amp;gt;6)*_XINFREQ&lt;br /&gt;&amp;nbsp; MS_001 = CLK_FREQ / 1_000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; RFPin&amp;nbsp; = 27&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; XcvrDial&amp;nbsp;&amp;nbsp;&amp;nbsp; = 10_138_700&lt;br /&gt;&amp;nbsp; TuneOffset&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1_500&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; Frequency = XcvrDial + TuneOffset&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '10.140200 mHz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; symbolLength = 683&amp;nbsp;&amp;nbsp; ' 8192 / 12000 * 1000 = milliseconds&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;VAR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;OBJ&lt;br /&gt;&amp;nbsp; Freq : "Synth"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB Main&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Send symbol set for KO7M CN87 20&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendCode(string("330000023220313002300303311002222012230122220032312011212001101000031032321232030032310003101230201222021003003310112013030201112000230300310200020310303322211002"))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; noTone&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(120000)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB delay(ms) | t&lt;br /&gt;&amp;nbsp; t := cnt - 1088&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' 1088 is published time for overhead&lt;br /&gt;&amp;nbsp; repeat ms&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; waitcnt(t += MS_001)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB sendCode(stringptr)&lt;br /&gt;&amp;nbsp; repeat strsize(stringptr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendSymbol(byte[stringptr++])&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB sendSymbol(char)&lt;br /&gt;&amp;nbsp; case char&lt;br /&gt;&amp;nbsp;&amp;nbsp; "0":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(-3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; "1":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(-1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp; "2":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(symbolLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp; "3":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendTone(3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(SymbolLength)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB sendTone(tone)&lt;br /&gt;&amp;nbsp; Freq.Synth("A",RFPin, Frequency + tone)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;PUB noTone&lt;br /&gt;&amp;nbsp; Freq.Synth("A",RFPin, 0)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Next I should look at the Freq object implementation and see if I can get better than 1 Hz resolution on the numerically controlled oscillator.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-5207812318489733522?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/5207812318489733522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/wspr-on-propeller.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5207812318489733522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5207812318489733522'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/wspr-on-propeller.html' title='WSPR on the propeller'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-EHfpsXg0NUs/TsFGp2hDqAI/AAAAAAAAAKo/Dydf-tmBcl4/s72-c/WSPR.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-3060323484175395063</id><published>2012-01-14T10:26:00.000-08:00</published><updated>2012-01-14T13:40:54.164-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Propeller'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><title type='text'>First Opera reception</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Well, thanks to my buddy Eldon WA0UWH, I have been drug kicking and screaming into the world of Opera QRSS and the Propeller processor.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Stealing judiciously from the work of others, I have put together a beacon using the propeller processor and have Opera v1.1.0 beta up and running.&amp;nbsp; This morning I heard myself first (imagine that...) and then N7VVX down in Utah.&amp;nbsp; So, it seems another diversion is born...&amp;nbsp; Thanks Eldon...&amp;nbsp; :|&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-HmfcdaBfI4g/TxHHMrvN0SI/AAAAAAAAAK4/7Z6QcOvhTRE/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="115" src="http://4.bp.blogspot.com/-HmfcdaBfI4g/TxHHMrvN0SI/AAAAAAAAAK4/7Z6QcOvhTRE/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Before I can really put the propeller on the air, I will need to build a low pass filter for it as the output is a square wave.&amp;nbsp; The reception of my own call (KO7M) is without any antenna on the propeller board.&amp;nbsp; My idea for my low pass filter board is to have a set of switchable (via software) low pass filters on a single board that should be useful for this and my Arduino WSPR beacon.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-3060323484175395063?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/3060323484175395063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/first-opera-reception.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3060323484175395063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3060323484175395063'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/first-opera-reception.html' title='First Opera reception'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-HmfcdaBfI4g/TxHHMrvN0SI/AAAAAAAAAK4/7Z6QcOvhTRE/s72-c/Capture.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-8504509948853543510</id><published>2012-01-04T23:36:00.000-08:00</published><updated>2012-01-14T13:41:15.496-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AZ-EL'/><category scheme='http://www.blogger.com/atom/ns#' term='Antenna'/><title type='text'>Az-El mount</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Found an interesting Az-El / Pan-Tilt mount today at &lt;a href="http://www.flir.com/mcs/products/ptu-d300/rf/Documentation/index.cfm"&gt;http://www.flir.com/mcs/products/ptu-d300/rf/Documentation/index.cfm&lt;/a&gt;.&amp;nbsp; Quite the nice little unit.&amp;nbsp; I suspect they are quite proud ($$$) of it but have not been able to find any pricing information online.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-8504509948853543510?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/8504509948853543510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2012/01/az-el-mount.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8504509948853543510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8504509948853543510'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2012/01/az-el-mount.html' title='Az-El mount'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-3591418027631615378</id><published>2011-11-14T07:00:00.001-08:00</published><updated>2011-11-14T08:53:44.516-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduine'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><category scheme='http://www.blogger.com/atom/ns#' term='TX percent'/><category scheme='http://www.blogger.com/atom/ns#' term='I2C'/><title type='text'>LCD Performance and UI decisions in the beacon project</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;The beacon project is back on the front burner.&amp;nbsp; Frankly, one of the reasons that it has been stalled so long is because of the lousy UI performance.&amp;nbsp; The rotary encoder triggers an interrupt so I never lose control turns.&amp;nbsp; However, the display updates are very laggy and the amount of lag varies considerably.&amp;nbsp; I *HATE* laggy UIs and until now have not looked into why.&amp;nbsp; Frankly the I2C LiquidCrystal library was apparently a hasty adaptation of the original LCD library without regard to performance.&amp;nbsp; It was taking more than a dozen I2C commands for a single character to be updated, let alone the additional ones for cursor positioning and the like.&amp;nbsp; Bogus.&amp;nbsp; All bits are written simultaneously now and the lagginess is completely gone.&amp;nbsp; Sweet!&amp;nbsp; Many thanks to Kevin who pointed out the great work by falconfour in a comment to one of my &lt;a href="http://ko7m.blogspot.com/2011/03/i2c-lcd-performance.html"&gt;previous posts&lt;/a&gt;.&amp;nbsp; Nice to be back on track and re-energized to complete this project.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I spent a lot of time talking to my pal &lt;a href="http://wa0uwh.blogspot.com/"&gt;Eldon&lt;/a&gt; about UI decisions.&amp;nbsp; I will be making some changes to the value setting library for alpha-numeric fields to see if the new paradigm works a little cleaner for non-numeric fields.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Another concept that we kicked around was the effect of TX percent on multi-band operation for WSPR.&amp;nbsp; Since WSPR frequencies have been cleanly defined for all bands, I am considering having TX percent of 100% mean the beacon will cycle through all bands on each two minute window.&amp;nbsp; A setup UI would be created to allow enable/disable of each of the bands.&amp;nbsp; See my &lt;a href="http://ko7m.blogspot.com/2011/03/qrsswspr-band-befuddlement.html"&gt;previous post&lt;/a&gt; for a list of bands supported by this beacon (all up to and including 6 metres).&amp;nbsp; So, if you truely wanted to send 100% of the time on one band, you would have to disable all other bands as well as setting TX percent to 100%.&amp;nbsp; Otherwise, the beacon would sequence through the list of enabled bands every two minute window.&amp;nbsp; I am interested in feedback on this idea.&amp;nbsp; I think it makes sense to enable this multi-band mode only on TX percent = 100% as otherwise, i would have to completely rethink the meaning of TX percent when multiple bands are enabled.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Also regarding multi-band operation, I plan to make some concession for external low-pass filter selection based on the currently selected band or frequency.&amp;nbsp; Interested in feedback on what this might look like.&amp;nbsp; Some ideas:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Provide the frequency to an external function that takes care of the magic itself and leave the details up to the implementer.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Provide an enable bit (or a counter that is decoded by external hardware) that &lt;/span&gt;&lt;span style="font-family: Trebuchet MS;"&gt;can be used trigger external relays to select an appropriate low pass filter which is set by one of the following:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;The function described in #1 above as implemented by someone else.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Providing a set of configurable cutoff frequencies for the various external low-pass filters and automatically selecting one as appropriate based on frequency.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Define one filter per WSPR band and select based on frequency.&amp;nbsp; This is simple, but may be somewhat inappropriate as for example it makes little sense to have separate low pass filters for both 12 and 10 metres where one would suffice.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I have decided to replace my current rotary encoder with a different one from BI Technologies.&amp;nbsp; The Model EN11 rotary encoder is a nice, inexpensive (even in single unit quantities from &lt;a href="http://www.mouser.com/Search/ProductDetail.aspx?R=EN11-HSM1BF20virtualkey57700000virtualkey858-EN11-HSM1BF20"&gt;Mouser&lt;/a&gt;) item that adds a push button and detents.&amp;nbsp; My current encoder had no detents and frankly, I prefer having them.&amp;nbsp; If desired, it can be ordered with or without the switch or the detents.&amp;nbsp; I will be using the switch to change the tuning rate rather than a separate push button.&amp;nbsp; See the datasheet &lt;a href="http://www.bitechnologies.com/pdfs/en11.pdf"&gt;here&lt;/a&gt;.&amp;nbsp; Thanks to &lt;a href="http://wa0uwh.blogspot.com/"&gt;Eldon&lt;/a&gt; for providing a sample of this encoder to me to try out with the beacon project.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;a href="http://wa0uwh.blogspot.com/"&gt;Eldon&lt;/a&gt; and I also revisited the whole topic of what frequency to display on the LCD when in WSPR mode.&amp;nbsp; Most folks that use the great software by Joe Taylor are used to setting the rig display (on 30 metres for example) to 10.138700 MHz and generating tones in the 1400-1600 hz range to feed into your SSB transmitter.&amp;nbsp; The actual transmit frequency can be set by double clicking in the "waterfall" display or by typing it in to the "Tx:" frequency edit box.&amp;nbsp; One idea kicked around was to only display the WSPR band (30 metres, 20 metres, etc) and an offset from the start of the WSPR band.&amp;nbsp; The offset is only 200 hertz total.&amp;nbsp; This sort of makes sense to me, but I have an uneasyness when I don't know precisely what frequency I am transmitting on.&amp;nbsp; Joe Taylor's software shows the exact transmit frequency.&amp;nbsp; For example, if you clicked in the middle of the 30 metre band, it will show 14.140200 in the "Tx:" frequency box.&amp;nbsp; What is not clear to me is precisely what that frequency means since WSPR signals are composed of four separate tone frequencies that are separated by 1.4648 Hz.&amp;nbsp; In the absence of clarity from Joe's documentation, I have chosen to define the transmit frequency like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-EHfpsXg0NUs/TsFGp2hDqAI/AAAAAAAAAKo/Dydf-tmBcl4/s1600/WSPR.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" src="http://1.bp.blogspot.com/-EHfpsXg0NUs/TsFGp2hDqAI/AAAAAAAAAKo/Dydf-tmBcl4/s320/WSPR.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Each symbol is 1.4648 Hz apart and the displayed transmit frequency is mid-way between symbols 1 and 2.&amp;nbsp; Band edge operations need to take this into account if you wish to stay within the defined WSPR frequency range with the entire 6 Hz spectrum occupied by the complete WSPR signal.&amp;nbsp; Anyone have further thoughts or comments on this?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Anyway, it is nice to be back on track and making progress on my beacon again.&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-3591418027631615378?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/3591418027631615378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/11/lcd-performance-and-ui-decisions-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3591418027631615378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3591418027631615378'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/11/lcd-performance-and-ui-decisions-in.html' title='LCD Performance and UI decisions in the beacon project'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-EHfpsXg0NUs/TsFGp2hDqAI/AAAAAAAAAKo/Dydf-tmBcl4/s72-c/WSPR.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4319272008067064645</id><published>2011-10-30T22:59:00.000-07:00</published><updated>2011-10-30T23:29:44.311-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SW-3'/><category scheme='http://www.blogger.com/atom/ns#' term='Power Supply'/><title type='text'>I am confused...</title><content type='html'>&lt;span style="font-family: Trebuchet MS;"&gt;So, I have a transformer that has&amp;nbsp;two primary windings that can be typically be hooked up in parallel for 115 VAC operation or in series for 230 VAC operation as well as a couple of identical secondary windings.&amp;nbsp; It looks something like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-lbShZLpC2OY/Tq4ypCA9IHI/AAAAAAAAAKg/cXWACuPSaao/s1600/xfmr.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-lbShZLpC2OY/Tq4ypCA9IHI/AAAAAAAAAKg/cXWACuPSaao/s1600/xfmr.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Let's take the scenario where we hook up only one primary to the mains.&amp;nbsp; My thinking is that I can treat the second primary winding as another "secondary" and should see the mains voltage on this winding and it would therefore act like an isolation transformer as well as a step down transformer for the secondary voltages.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Where I am confused is the following scenario.&amp;nbsp; Let's say we hook the mains to 1 and 2 above and use 3 and 4 as the input voltage to a full wave bridge rectifier, filter and regulator for my B+ supply.&amp;nbsp; The B+ only needs about 100 ma current capability.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, what if the transformer is rated at 50 VA and we are drawing sufficient current from the combined secondaries to equal 48 VA including the current drawn from the second primary winding.&amp;nbsp; This is obviously less than the 50 VA rating of the transformer.&amp;nbsp; But, in this case does the manufacturer expect that the primaries will be always wired in parallel and actually used as primaries?&amp;nbsp; Do I risk drawing too much current through the single primary wired to the mains in this scenario?&amp;nbsp; Anyone have any ideas?&amp;nbsp; Is it likely that each winding can handle the maximum rated VA?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;If I understand this correctly, if the transformer is rated at 50VA, then each winding must handle the equivalent current (voltages chosed to make the math easy):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;50VA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;------ = .5 A primary current total or .25 A each winding&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;100V&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;50VA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;------ = 2 A secondary current total or 1 A each winding.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;25V&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, if I have this correct, I risk over-heating the single primary hooked to mains if I am running at close to the rated VA of the transformer unless the manufacturer over-engineered the windings wire size.&amp;nbsp; It seems I should limit the total secondary current to 1/2 the VA rating of the transformer if only a single primary is hooked to mains.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Thoughts?&amp;nbsp; Am I thinking about this correctly?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4319272008067064645?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4319272008067064645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/10/i-am-confused.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4319272008067064645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4319272008067064645'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/10/i-am-confused.html' title='I am confused...'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-lbShZLpC2OY/Tq4ypCA9IHI/AAAAAAAAAKg/cXWACuPSaao/s72-c/xfmr.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7110639664705053189</id><published>2011-10-30T20:42:00.000-07:00</published><updated>2011-10-30T20:51:57.645-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kenwood'/><category scheme='http://www.blogger.com/atom/ns#' term='APRS'/><category scheme='http://www.blogger.com/atom/ns#' term='D700'/><title type='text'>APRS rig back in the car</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;More years ago than I care to remember I picked up a Kenwood D700 rig. &amp;nbsp;Since I have recently pulled the HF rig and D-Star rig out of the car, I decided to put the Kenwood rig in for a while. &amp;nbsp;Scrounging around I found a nice 5 hz GPS that has RS-232 (DB-9) output and made up an adapter cable from DB-9 to 2.5mm stereo plug to connect the GPS to the rig. &amp;nbsp;It all seems to be working and http://aprs.fi is reporting my spots.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;One downside of the D700 is that while it is a dual band rig, once you turn on APRS you pretty much lose the 2 metre side of the rig for communications. &amp;nbsp;That's ok, since there are so many 23 cm repeaters in the area.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7110639664705053189?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7110639664705053189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/10/aprs-rig-back-in-car.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7110639664705053189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7110639664705053189'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/10/aprs-rig-back-in-car.html' title='APRS rig back in the car'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-1569939390137777599</id><published>2011-10-30T20:32:00.000-07:00</published><updated>2011-10-30T20:37:10.416-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RCA100A'/><category scheme='http://www.blogger.com/atom/ns#' term='SW-3'/><title type='text'>New speaker for the SW-3</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;I managed to find a nice little period (sort-of) speaker for the SW-3 receiver on eBay. &amp;nbsp;It is a nice little "tombstone" style cabinet with about an 8 inch speaker and impedance matching transformer. &amp;nbsp;Presents a nice high impedance to the receiver and the pin connectors exactly match the connectors on the SW-3, so it plugs right in.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-mJP6f1fFels/Tq4Upjt8eWI/AAAAAAAAAKY/lXt88A-ywZE/s1600/RCA100A.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-mJP6f1fFels/Tq4Upjt8eWI/AAAAAAAAAKY/lXt88A-ywZE/s320/RCA100A.bmp" width="261" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;The cabinet is cast metal (likely "pot metal" (zinc)) and is quite brittle, though the exterior condition is quite good for something as old as this is. &amp;nbsp;However, as is the case sometimes with eBay purchases, it was unfortunately damaged in shipment and one of the corners was broken off. &amp;nbsp;The seller did right by me and refunded 1/2 of what I paid for it and so I kept it. &amp;nbsp;Fortunately, the damage is on the back and relatively easy to hide from view.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;The speaker works admirably with the SW-3 and I enjoyed imagining what it was like in 1930 to be listening to this little rig whilst running off batteries. &amp;nbsp;There was a lot of activity on 40 metres as this was a contest weekend, so there was able listening material along with the 49 metre broadcast band.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Last evening, I changed out the frequency-determining coils in the SW-3 and tuned around the 80-75 metre band finally settling on 3885 khz where a group of AM&amp;nbsp;enthusiasts&amp;nbsp;was parked holding a&amp;nbsp;round-table&amp;nbsp;discussion on everything under the sun for hours on end.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Pretty fun.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-1569939390137777599?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/1569939390137777599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/10/new-speaker-for-sw-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1569939390137777599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1569939390137777599'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/10/new-speaker-for-sw-3.html' title='New speaker for the SW-3'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-mJP6f1fFels/Tq4Upjt8eWI/AAAAAAAAAKY/lXt88A-ywZE/s72-c/RCA100A.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4327901920688202950</id><published>2011-10-09T19:08:00.000-07:00</published><updated>2011-10-30T20:51:39.127-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SW-3'/><title type='text'>SW-3 is on the air!</title><content type='html'>&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;So, today I finally sat down to see if the SW-3 is actually functional.&amp;nbsp; The first order of business is to come up with 2.5 volts at 4 amps for powering the valve/tube filaments.&amp;nbsp; I found a Triad transformer that provides 2.5 volts at 6 amps.&amp;nbsp; I decided to try just using AC on the filaments even though it is likely to introduce some hum into the receiver.&amp;nbsp; For now, I just lashed up the filament supply with a power cord and fuse.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-a-R0LHIgyFs/TpJHGKbjYwI/AAAAAAAAAI8/8ArlGA7jrWU/s1600/FilamentPS.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://4.bp.blogspot.com/-a-R0LHIgyFs/TpJHGKbjYwI/AAAAAAAAAI8/8ArlGA7jrWU/s320/FilamentPS.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;For now, I am just clip leading the filament transformer to the power cord on the receiver.&amp;nbsp; Sure as shooting, the valves/tubes all lit up as they should.&amp;nbsp; The AC voltage drops to about 2.25 volts and is drawing just short of 4 amps.&amp;nbsp; How did these guys ever run these puppies on batteries?&amp;nbsp; Must have gone thru them like no &lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;tomorrow&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8ryIkCnAv4U/TpJIRHQmB9I/AAAAAAAAAJA/MN1D74O_Dq4/s1600/SW3Top.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://2.bp.blogspot.com/-8ryIkCnAv4U/TpJIRHQmB9I/AAAAAAAAAJA/MN1D74O_Dq4/s320/SW3Top.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-dCM6Gj4gJgA/TpJIV47uEEI/AAAAAAAAAJE/eXZkqTNDrg0/s1600/SW3ValvesLit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://3.bp.blogspot.com/-dCM6Gj4gJgA/TpJIV47uEEI/AAAAAAAAAJE/eXZkqTNDrg0/s320/SW3ValvesLit.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;So, with all the valves/tubes lit up, it is time to deal with the audio output.&amp;nbsp; Looking&amp;nbsp; at the bottom of the receiver, I see that the B+ goes directly to one side of the audio output and the other goes to the plate of the audio amplifier.&amp;nbsp; Bloody lovely...&amp;nbsp; 135 volts across the headset...&amp;nbsp; Looking at the valve/tube&amp;nbsp;data sheet it looks like the output impedance will be on the order of 20K ohms.&amp;nbsp; Obviously this 1930 receiver expects a magnetic, high impedance headset.&amp;nbsp; One of my Bogen audio transformers to the rescue.&amp;nbsp; I wired up one of them to the audio output and put a 3.5mm audio jack on the secondary to allow using a powered computer speaker.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-HNcFaiQslX4/TpJMij8_8QI/AAAAAAAAAJQ/RxMAeqGG9bw/s1600/SW3Bottom.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://4.bp.blogspot.com/-HNcFaiQslX4/TpJMij8_8QI/AAAAAAAAAJQ/RxMAeqGG9bw/s320/SW3Bottom.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;Now for the B+ supply.&amp;nbsp; I am using my Heathkit lab supply to provide 135 volts regulated.&amp;nbsp; For now, just clip leading it in place.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-LiaUWCbFp1o/TpJK1zN6emI/AAAAAAAAAJI/421nDipTqfk/s1600/SW3BPlus.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://3.bp.blogspot.com/-LiaUWCbFp1o/TpJK1zN6emI/AAAAAAAAAJI/421nDipTqfk/s320/SW3BPlus.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;So, I cranked up the high voltage supply a little at a time.&amp;nbsp; I didn't want to have any 80 year old capacitors explode if I could help it.&amp;nbsp; After an hour or so, I had the B+ up to 135 volts and no magic smoke was released into the atmosphere.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-mtIyaOw8H7s/TpJMSU3qORI/AAAAAAAAAJM/dtPQMpajLII/s1600/SW3Top.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://4.bp.blogspot.com/-mtIyaOw8H7s/TpJMSU3qORI/AAAAAAAAAJM/dtPQMpajLII/s320/SW3Top.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;So, with everything up to temperature and up to voltage, I started trying to figure out how to tune this little gem.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Oq6Z6fKcauA/TpJPm6dpqnI/AAAAAAAAAJU/tJ5eW0lCLCc/s1600/SW3Front.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://3.bp.blogspot.com/-Oq6Z6fKcauA/TpJPm6dpqnI/AAAAAAAAAJU/tJ5eW0lCLCc/s320/SW3Front.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;The main tuning dial is very smooth with no backlash and very little yellowing of the plastics and dial card.&amp;nbsp; Amazingly, the main dial also has the ability to change the turning rate from about 18 to 1 to about 4 to 1.&amp;nbsp; Those guys at National did a nice job on this rig back in 1930.&amp;nbsp; The dial left of the main dial is the antenna coupling.&amp;nbsp; It operates very smoothly to peak the signal without introducing any frequency change.&amp;nbsp; The horizontal dial below the main dial is an RF gain control.&amp;nbsp; The regeneration control is the one to the right of the main tuning dial.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;As is the case with most regens, they can be very sensitive.&amp;nbsp; While it is tempting to turn the RF gain all the way up and crank the regen control all the way up, it is counter productive and counter intuitive.&amp;nbsp; In this case, you want to peak the antenna coupling for maximum noise and then advance the regen only as far as necessary to obtain a rushing sound in the speaker.&amp;nbsp; This indicates the regenerative detector has started oscillating.&amp;nbsp; Strong signals will overload the receiver and really complicate trying to tune things in, so back off the RF gain nearly all the way and only turn it up sufficiently to be able to hear the signal you wish to hear.&amp;nbsp; With the antenna coupler peaked, you now back off the regen until just before it starts oscillating if you want to tune an AM station or just after it starts oscillating if you want to tune a CW or SSB signal.&amp;nbsp; This is the point of maximum sensitivity.&amp;nbsp; Back off the RF gain until the signal is clear and free of distortion.&amp;nbsp; I don't seem to have any AC hum issues, even though the filaments are running on AC.&amp;nbsp; Sweet!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;So, tuning around the band, it appears that the tuning coil I have covers about 5 to 9 Mhz.&amp;nbsp; I was able to hear WWV at the bottom of the dial, a couple of numbers stations, an upper sideband (USB) weather station (National Weather Service - Miami FL), CW and LSB signals on 40 metres, CBCS in Vancouver BC, etc.&amp;nbsp; Nice little receiver!&amp;nbsp; Next, I need to package up the power supply bits and audio output transformer into a tidy external package.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4327901920688202950?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4327901920688202950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/10/sw-3-is-on-air.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4327901920688202950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4327901920688202950'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/10/sw-3-is-on-air.html' title='SW-3 is on the air!'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-a-R0LHIgyFs/TpJHGKbjYwI/AAAAAAAAAI8/8ArlGA7jrWU/s72-c/FilamentPS.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-6764657748346358554</id><published>2011-09-22T22:09:00.000-07:00</published><updated>2011-10-30T20:52:35.191-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='transformer'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='T725'/><category scheme='http://www.blogger.com/atom/ns#' term='Bogen'/><title type='text'>Bogen T725 transformer</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;I have found a little gem of a transformer for my radio projects: The Bogen T725 audio transformer. &amp;nbsp;I basically gives you the ability to match 8 ohm loads to a high(er) impedance source from about 150 ohms to about 40k ohms. &amp;nbsp;Specs below courtesy of makearadio.com where you can find lots of ideas on how to use these devices. &amp;nbsp;&lt;/span&gt;&lt;a href="http://makearadio.com/misc-stuff/t-725.php"&gt;http://makearadio.com/misc-stuff/t-725.php&lt;/a&gt;&lt;br /&gt;&lt;div class="center" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;img alt="Bogen T725 Schematic" src="http://makearadio.com/misc-stuff/images/bogen-schematic.jpg" style="-webkit-box-shadow: rgb(119, 119, 119) 3px 3px 7px; border-bottom-left-radius: 10px 10px; border-bottom-right-radius: 10px 10px; border-top-left-radius: 10px 10px; border-top-right-radius: 10px 10px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;I was able to locate a number of these little dudes online (amazon.com) and picked them up for future projects. &amp;nbsp;In the table below, all values in the primary are relative to the black tap (blk).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style="padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;div&gt;&lt;br /&gt;&lt;pre style="padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small; line-height: 22px;"&gt;     Color      Resistance     Inductance       XL @ 300 hz      Rounded Value&lt;br /&gt;   White  (WH)  1424.3 ohms      24     H       45.239k  ohms      40k    ohms &lt;br /&gt;   Gray   (GRY)  886.4 ohms      12.04  H       22.694k  ohms      20k    ohms&lt;br /&gt;   Violet (VIO)  516.5 ohms       6.06  H       11.423k  ohms      10k    ohms   &lt;br /&gt;   Blue   (BLU)  260.1 ohms       3.04  H        5.730k  ohms       5k    ohms  &lt;br /&gt;   Green  (GRN)   81.8 ohms       1.565 H        2.950k  ohms       2.5k  ohms    &lt;br /&gt;   Yellow (YEL)   56   ohms         787 mH       1.483k  ohms       1.2k  ohms&lt;br /&gt;   Orange (OR)    38.2 ohms         398 mH         750.2 ohms         600 ohms&lt;br /&gt;   Red    (RED)   26   ohms         197 mH         371.3 ohms         300 ohms&lt;br /&gt;   Brown  (BRN)   18.2 ohms          98 mH         184.7 ohms         150 ohms&lt;br /&gt;&lt;br /&gt;   Pink to Pink    0.5 ohms        5.23 mH          9.86 ohms           8 ohms &lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="background-color: #fffff6; font-family: 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 22px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre style="padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;I plan to use one of these to get the B+ voltage from my National SW-3 off of the headphones and to provide an impedance match to a more typical 8 ohm speaker or headphone.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;I also found a nice transformer P-T31 at Antique Electronic Supply that does 5k to 8 ohm impedance.  These were about twice the price and no taps on the primary.&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-6764657748346358554?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/6764657748346358554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/09/bogen-t725-transformer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6764657748346358554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6764657748346358554'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/09/bogen-t725-transformer.html' title='Bogen T725 transformer'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-876453486894875726</id><published>2011-09-16T00:18:00.000-07:00</published><updated>2011-09-16T00:31:59.634-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Packet Radio'/><category scheme='http://www.blogger.com/atom/ns#' term='APRS'/><category scheme='http://www.blogger.com/atom/ns#' term='Alinco'/><category scheme='http://www.blogger.com/atom/ns#' term='TNC2'/><title type='text'>Playing around with APRS tonight</title><content type='html'>&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;I picked up my old TNC2 packet controller and dusted it off today.&amp;nbsp; After finding an old Hayes modem cable I was able to wire this dude up to my laptop.&amp;nbsp; About a million years ago, I registered a version of UIView32 which is a nice little APRS mapping package.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;Of course there were no maps of the Western Washington area available for the software, but there is a nice feature where you can drag/drop a map bitmap onto the software and then define the lat/lon details for either the upper/left, lower/right corners of the map or by clicking on two points on the map and defining the lat/lon for those points.&amp;nbsp; I took a screen shot of a google map and defined two points.&amp;nbsp; Not totally precise, but close enough for giggles.&amp;nbsp; Here is a peek of the map after it has had a little while to listen on 144.39 Mhz to the APRS traffic.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-hsCWJLDrNCI/TnL3a29ZKYI/AAAAAAAAAIw/tMJ6YOhfDF8/s1600/UIView32.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" rba="true" src="http://2.bp.blogspot.com/-hsCWJLDrNCI/TnL3a29ZKYI/AAAAAAAAAIw/tMJ6YOhfDF8/s640/UIView32.bmp" width="619" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;I have an old Alinco dual-band rig that I inherited from my dad (W7QJC) R.I.P. that I might press into service for packet radio playing around.&amp;nbsp; Gotta get the transmit portion working next.&amp;nbsp; Just need to set some jumpers to match the microphone wiring and plug it in.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-876453486894875726?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/876453486894875726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/09/playing-around-with-aprs-tonight.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/876453486894875726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/876453486894875726'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/09/playing-around-with-aprs-tonight.html' title='Playing around with APRS tonight'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-hsCWJLDrNCI/TnL3a29ZKYI/AAAAAAAAAIw/tMJ6YOhfDF8/s72-c/UIView32.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-6744854846935120065</id><published>2011-09-14T15:53:00.000-07:00</published><updated>2011-09-16T00:32:45.753-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISS'/><category scheme='http://www.blogger.com/atom/ns#' term='ArisSat1'/><category scheme='http://www.blogger.com/atom/ns#' term='Arrow'/><title type='text'>ArisSat1 heard this morning</title><content type='html'>&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;This morning I had some fun with my Arrow antenna and an old Yaesu 2 metre hand-held transceiver.&amp;nbsp; I generally track a hand-ful of Ham Radio satellites, one of which was recently launched from the International Space Station (ISS).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;This morning about 10:20 Pacific Time, we had a nearly overhead pass of the satellite giving me about 10 minutes of time to to track the bird and listen to its beacons.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;At the appropriate hour (and minute) I was the image of tin-foil-hat-geekdom standing out in my yard with a pair of headphones on listening to a handheld radio whilst pointing a very strange contraption (the Arrow Antenna) skyward.&amp;nbsp; I live on some acreage, so I don't have neighbors withing spitting distance, but nevertheless, it was a bit of a "moment" for me wondering if anyone watching would think the old man has taken leave of his senses...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;But, the sights being whatever they were, I was having fun...&amp;nbsp; I had a great copy on the bird, but didn't happen to plan ahead sufficiently to enable me to record the pass.&amp;nbsp; Even with the tall trees around, I had no problem copying the pass and sent off for my reception report giving two of the (english) passwords copied during the pass as proof of reception.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;If you have not tried to copy ArisSat1 yet, it is very easy even with a handheld receiver and a modest vertical antenna.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;The next round for me will be to try and catch some of the telemetry.&amp;nbsp; I will have to look at the satellite status page to see if the transponder is still functional, but a contact or two over the bird would be fun.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-6744854846935120065?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/6744854846935120065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/09/arissat1-heard-this-morning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6744854846935120065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6744854846935120065'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/09/arissat1-heard-this-morning.html' title='ArisSat1 heard this morning'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7056656990791888573</id><published>2011-09-13T23:53:00.000-07:00</published><updated>2011-09-16T00:33:18.539-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zork1'/><category scheme='http://www.blogger.com/atom/ns#' term='8080 emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='CP/M'/><title type='text'>And now for something completely different...</title><content type='html'>&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Reading the brainwagon.org blog, I came across today an 8080 emulator that is implemented (of all things) in JavaScript.&amp;nbsp; I can load it up in a web browser and load a working CP/M OS image and found myself soon playing Zork1.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;Cracks me up to think about&amp;nbsp;running an emulation&amp;nbsp;of&amp;nbsp;hardware&amp;nbsp;that I wrote code on for a living, running a predecessor to MSDOS operating system and playing an adventure game all written in an emulated language embedded in my web browser...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;Geeze, I am getting old...&amp;nbsp; :\&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7056656990791888573?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7056656990791888573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/09/and-now-for-something-completely.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7056656990791888573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7056656990791888573'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/09/and-now-for-something-completely.html' title='And now for something completely different...'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-932417482133227478</id><published>2011-09-13T23:45:00.000-07:00</published><updated>2011-09-16T00:33:50.542-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SW-3'/><category scheme='http://www.blogger.com/atom/ns#' term='Power Supply'/><category scheme='http://www.blogger.com/atom/ns#' term='National'/><title type='text'>Powering up the SW-3 (again)</title><content type='html'>&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;After discussing with my buddy Eldon, I have decided not to use the voltage divider approach to power the filaments.&amp;nbsp; They are all wired in parallel and the risk from one of them opening up and thereby taking out the entire set of tubes is too great, not to mention the royal pain in the tush finding a 1.15 ohm 15 watt resistor will be.&amp;nbsp; I decided to order a 2.5 volt 6 amp transformer from Mouser for $13 today and will use it to power the tubes.&amp;nbsp; The other option would have been to rewire them all in series and use a voltage divider to come up with 7.5 volts from a 12 volt source.&amp;nbsp; At least if a filament opens up we power everything down, plus the voltage divider would be easier to construct without having to locate 15 watt resistors.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;I love a few select old pieces of equipment, but powering them can be a pain in the empennage.&amp;nbsp; I have a couple sources for the B+ 135 volt supply, so we should be good to go once the transformer arrives.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;Meanwhile, I am on the lookout for an old National "doghouse" power supply for the SW-3.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-932417482133227478?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/932417482133227478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/09/powering-up-sw-3-again.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/932417482133227478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/932417482133227478'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/09/powering-up-sw-3-again.html' title='Powering up the SW-3 (again)'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-3695000772480275329</id><published>2011-09-12T22:52:00.000-07:00</published><updated>2011-09-16T00:34:22.340-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SW-3'/><category scheme='http://www.blogger.com/atom/ns#' term='Voltage Divider'/><title type='text'>Powering up the SW-3</title><content type='html'>&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;A while back, I posted a note about having found an old 1930's National SW-3 receiver.&amp;nbsp; The rig came without a power supply. &lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;I need to have 2.5 volts at about 3 amps to power the tube filaments.&amp;nbsp; I have a 6.3 volt supply at 4 amps, but need to bring this down to 2.5 volts at 3 amps.&amp;nbsp; So, I thought I would just use a voltage divider.&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;o--------------------+-----------------o&amp;nbsp; +6.3V&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.8 volts across R1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +-----------------o +2.5V&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Load = 3 amp @ 2.5 volt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;o--------------------+-----------------o 0V&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;So, how to design a simple two resistor divider?&amp;nbsp; Assuming that there is no load current:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vout = Vin * R2 / (R1+R2)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;The problem with this is that our load DOES draw current (about 3 amps) and therefore this will not work because the load can be considered another resistance in parallel with R2.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;The 10 percent rule is a standard method for selecting R1 and R2 that takes into account the load and minimizes unnecessary power losses in the divider.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;So, the first thing to do is select R2 so that I2 is 10 percent of the desired load current.&amp;nbsp; This resistance and current is called the &lt;em&gt;bleeder resistance&lt;/em&gt; and &lt;em&gt;bleeder current&lt;/em&gt;.&amp;nbsp; In this example, the bleeder current is:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&amp;nbsp; Ibleed = I2 = 0.1 * 3 A&amp;nbsp;= 0.3 A = 300 mA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Using Ohm's law to calculate the bleeder resistance:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&amp;nbsp; Rbleed = R2 = 2.5V /0.3 A = 8.3333 ohm&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Now, we need to select R1 so that the output is maintained at 2.5V.&amp;nbsp; To do this, we simply calculate the total current through the resistor and use Ohm's law:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&amp;nbsp; I1 = I2 + Iload = 0.3 A + 3 A = 3.3 A&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&amp;nbsp; R1 = (6.3 V - 2.5 V) / 3.3 A = 1.1515 ohm&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Now considering standard resistor tolerances and value, this would indicate the need for R1 = 8.1 ohm for a 5% resistor and R2 = 1.15 ohm.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;In terms of power ratings:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&amp;nbsp;&amp;nbsp; P1 = V1^2 / R1 = 3.8^2 / 1.15 =&amp;nbsp;12.55 W&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&amp;nbsp;&amp;nbsp; P2 = V2^2 / R2 = 2.5^2 / 8.1 =&amp;nbsp;0.77 W&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Did I do this right?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;I am not sure what happened, but the first time I did this exercise, I (somehow) came up with R1 = 7.5 ohm 3 watt and R2 = 5.6 ohm 5 watt...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;More coffee...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-3695000772480275329?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/3695000772480275329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/09/powering-up-sw-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3695000772480275329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3695000772480275329'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/09/powering-up-sw-3.html' title='Powering up the SW-3'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-787756184416363212</id><published>2011-08-28T15:59:00.000-07:00</published><updated>2011-08-28T15:59:43.913-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='DDS-60'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><title type='text'>Back to working on the beacon project</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I know it has been forever since I started the Arduino beacon project and while the functionality is 90% or better complete, the project has been on the shelf for a very long time.&amp;nbsp; Between family illness, work issues and the like, ham radio has taken a bit of a holiday.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Today I drug out the beacon hardware and spent some time reviewing the software.&amp;nbsp; I made sure I could still build the code and flash the device with the image.&amp;nbsp; All is well in that department.&amp;nbsp; I spent some time tidying things up a bit in the code and removing some edge case failures.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I have reduced the functionality of the software to three modes:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;1. Signal Generator - General purpose, turn the dial, set the frequency mode.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;2. WSPR beacon&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;3. QRSS beacon&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;There is also a real-time clock setting mode, but that is more of a utility.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The WSPR beacon has preprogrammed all defined WSPR frequencies from 500 kHz to 50 mHz.&amp;nbsp; A single button push will cycle through all of the WSPR frequencies and sets the beacon to the centre of the band.&amp;nbsp; From there, the rotary dial will allow adjustment down to 1 Hz.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The QRSS beacon transmits on whatever frequency is set on the dial.&amp;nbsp; The beacon continually transmits until the operating mode is changed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;There are a few things to do yet to finish off version 1 of this project.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;1. WSPR mode needs to allow adjustment of the TX percent value as well as the call sign and power level.&amp;nbsp; Currently it requires recompiling the code to change these values.&amp;nbsp; The TX percent value is not currently respected and the beacon currently transmits once and then enters IDLE mode until WSPR mode is reselected.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;2. QRSS mode needs to allow changing the QRSS message without recompiling the code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I think at this point the code could be declared V1 complete.&amp;nbsp; A few lower priority changes might be the definition of V2.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;1. The WSPR beacon should have a mode where it cycles through all 12 WSPR bands.&amp;nbsp; The challenge here of course would be to create a 12 band antenna system from 500 kHz to 50 mHz.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;2. Allowing finer control of the frequency with the rotary encoder.&amp;nbsp; Currently the resolution is 1 Hz.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;3. Automatic saving/restoring of all settable parameters in EEPROM.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I am going to try and get V1 completed by the time our QRP group meets this Wednesday.&amp;nbsp; It will be a bit of a challenge, as I need to finish the packaging of the hardware, but will give it a go.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-787756184416363212?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/787756184416363212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/08/back-to-working-on-beacon-project.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/787756184416363212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/787756184416363212'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/08/back-to-working-on-beacon-project.html' title='Back to working on the beacon project'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-1995183552972803295</id><published>2011-07-12T20:15:00.000-07:00</published><updated>2011-07-12T20:15:05.687-07:00</updated><title type='text'>New (old) lab power supply arrived</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;With my renewed interest in old-tyme radios, I have decided that I need to have a good adjustable lab bench power supply that will give me filament, B+ and C voltages appropriate for these old radios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I have located a nice Heathkit supply that has 6.3 VAC at 4 amps for filaments, adjustable 0 - 400 VDC at 100 mA and 0 - negative 100 VDC.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-UkZpwS-Dg0Q/Th0Ns0b8dYI/AAAAAAAAAGI/rNdLlEd-wFA/s1600/Heathkit+Lab+Supply.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" m$="true" src="http://4.bp.blogspot.com/-UkZpwS-Dg0Q/Th0Ns0b8dYI/AAAAAAAAAGI/rNdLlEd-wFA/s320/Heathkit+Lab+Supply.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;For my SW-3 receiver, the filament voltage is too high, so I will have to build a voltage divider to bring that down to 2.5 volts.&amp;nbsp; Just tested it out and everything is working perfectly.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-1995183552972803295?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/1995183552972803295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/07/new-old-lab-power-supply-arrived.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1995183552972803295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1995183552972803295'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/07/new-old-lab-power-supply-arrived.html' title='New (old) lab power supply arrived'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-UkZpwS-Dg0Q/Th0Ns0b8dYI/AAAAAAAAAGI/rNdLlEd-wFA/s72-c/Heathkit+Lab+Supply.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-3084013794704332203</id><published>2011-07-12T20:10:00.000-07:00</published><updated>2011-09-16T00:34:42.115-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SW-3'/><category scheme='http://www.blogger.com/atom/ns#' term='National'/><title type='text'>New receiver!</title><content type='html'>&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;After a couple years of looking, I have located a National SW-3 receiver that is in good shape.&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bUTtYuHCzIs/Th0MZk4_QSI/AAAAAAAAAGE/jaYVjbVJ1Gc/s1600/SW-3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" m$="true" src="http://1.bp.blogspot.com/-bUTtYuHCzIs/Th0MZk4_QSI/AAAAAAAAAGE/jaYVjbVJ1Gc/s320/SW-3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;It came with a couple sets of coils, a bandset coil set for 80 metres and an unknown coil set that was hand-wound by a previous owner as well as two sets of empty coil forms for my own hand-wound coils.&amp;nbsp; Subsequently, I have obtained a bandset coil set for 160 metres.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;I am now looking for a period power supply, preferably one of the National "Dog-House" power supplies.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS';"&gt;My SW-3 is one of the earlier version 2 receivers.&amp;nbsp; It has a pair of 58 valves (tubes) and a 50 valve (tube).&amp;nbsp; The filaments are 2.5 volt and the B+ is anything upwards of 350 volts though the National power supplies typically supply around 135 volts.&amp;nbsp; Meanwhile, I plan to locate a nice high voltage lab supply to be able to test this little beast out.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-3084013794704332203?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/3084013794704332203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/07/new-receiver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3084013794704332203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3084013794704332203'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/07/new-receiver.html' title='New receiver!'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-bUTtYuHCzIs/Th0MZk4_QSI/AAAAAAAAAGE/jaYVjbVJ1Gc/s72-c/SW-3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-5888945104737616926</id><published>2011-07-12T20:01:00.000-07:00</published><updated>2011-07-12T20:01:07.952-07:00</updated><title type='text'>No updates for too long...</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Wow, has it really been nearly three months since I updated this blog?&amp;nbsp; Very sorry to be away so long.&amp;nbsp; I have a couple of new short posts to get back into the blogging mindset.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-5888945104737616926?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/5888945104737616926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/07/no-updates-for-too-long.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5888945104737616926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/5888945104737616926'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/07/no-updates-for-too-long.html' title='No updates for too long...'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4507019096336125686</id><published>2011-06-07T09:59:00.000-07:00</published><updated>2011-06-07T09:59:32.520-07:00</updated><title type='text'>Sorry for no postings lately...</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;My apologies for the long time between postings.&amp;nbsp; I have been a bit preoccupied with my son's cancer treatments.&amp;nbsp; I hope to be able to return to my electronics and ham radio pursuits soon.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4507019096336125686?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4507019096336125686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/06/sorry-for-no-postings-lately.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4507019096336125686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4507019096336125686'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/06/sorry-for-no-postings-lately.html' title='Sorry for no postings lately...'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-1021553936792266371</id><published>2011-05-16T17:13:00.000-07:00</published><updated>2011-05-19T09:28:09.681-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='UI Code'/><category scheme='http://www.blogger.com/atom/ns#' term='RTC'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Why I hate writing UI code...</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Now that the Atmel CPU is back alive, I have been back working on my beacon code.&amp;nbsp; The underlying beacon code is finished for the most part.&amp;nbsp; What I have been working on is the user interface (UI) code.&amp;nbsp; Why is it that UI code is so dang hard to write and debug?&amp;nbsp; I have decided that I suck at UI design, but I have taken a first stab at it.&amp;nbsp; As is typical in many of my UI projects, it quickly degenerated into an amazing snake pit of spaghetti code, especially for the code that takes care of changing the various settings on the device.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Take for example the seemingly simple problem of setting the realtime clock to WWV.&amp;nbsp; Set the clock values for the next minute and wait for the tone.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-T0c4DjKPcHk/TdG7CSS0OAI/AAAAAAAAAF0/ga-Tn4wLaYA/s1600/83.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://2.bp.blogspot.com/-T0c4DjKPcHk/TdG7CSS0OAI/AAAAAAAAAF0/ga-Tn4wLaYA/s320/83.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;So, to set the clock, I put the device into clock set mode and display the current RTC information across the bottom line of the 4 line display.&amp;nbsp; I set the seconds value to zero and put the cursor on the hours value and start it blinking.&amp;nbsp; In the picture above, I snapped the photo when the hours value was blanked out.&amp;nbsp; Rotating the dial will change the hours value within the range of values allowed (0 - 23).&amp;nbsp; To move the the next value, a button push will cycle from Hours -&amp;gt; Min -&amp;gt; Day -&amp;gt; Month -&amp;gt; Year and back to Hours again.&amp;nbsp; Each value will start blinking once selected and changed with the dial.&amp;nbsp; Each setting value has a minimum and maximum value.&amp;nbsp; It can be an 8 bit, 16 bit or 32 bit value.&amp;nbsp; There is an option to pass in an array of text strings that are displayed rather than the numeric value as was done with the month value.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Once the value has been set, we wait for the top of the current minute and press another button to save the new value.&amp;nbsp; There is an option to abandon the set operation and return to normal operation.&amp;nbsp; The idea was to listen to WWV or some other time standard and set the clock at the top of the next minute.&amp;nbsp; I may allow setting the seconds value if I get tired of waiting.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, this ends up being a big huge state machine.&amp;nbsp; It just seems like 80% of the code in this project is related to the UI.&amp;nbsp; On an embedded processor with limited code memory, this is something to keep track of.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, I have ripped out all the spaghetti code and replaced it with my new "value setting" utility and now should be able to reuse it to do any settings for this project.&amp;nbsp; For example, space permitting I could provide a way to set the WSPR/QRSS beacon text by allowing each character to be set by the dial.&amp;nbsp; The code should now be easier to reuse and eliminate the exponential growth of UI code, at least for the settings utility.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-1021553936792266371?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/1021553936792266371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/05/why-i-hate-writing-ui-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1021553936792266371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1021553936792266371'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/05/why-i-hate-writing-ui-code.html' title='Why I hate writing UI code...'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-T0c4DjKPcHk/TdG7CSS0OAI/AAAAAAAAAF0/ga-Tn4wLaYA/s72-c/83.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7988825852226024245</id><published>2011-05-16T16:42:00.000-07:00</published><updated>2011-05-16T16:42:46.526-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Atmel'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='MightyOhm'/><category scheme='http://www.blogger.com/atom/ns#' term='High Voltage Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>High Voltage programming the ATMega328</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Having smoked my first AVR CPU, I now face the need to be able to reset the CPU fuses regardless of their current settings.&amp;nbsp; After some searching around, I decided to purchase a kit rather than roll my own.&amp;nbsp; I picked up a "HV Rescue Shield" from "MightyOhm Engineering".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;&lt;a href="http://mightyohm.com/hvrescue2"&gt;http://mightyohm.com/hvrescue2&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;A few simple minutes with the soldering iron and quite a few more minutes purusing the ATMega328 data sheet and I determined the values for the fuses that would get me back in business.&amp;nbsp; A bit after the fact, I realized I could just read the current fuses on a working CPU chip and go with them, but it was educational nevertheless.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-IdxP2uF4tdg/TdG1uwkK_UI/AAAAAAAAAFs/yrBA-PCsYaY/s1600/81.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://2.bp.blogspot.com/-IdxP2uF4tdg/TdG1uwkK_UI/AAAAAAAAAFs/yrBA-PCsYaY/s320/81.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;This little gem of an Arduino shield will handle the ATMega devices along with the ATiny2313 and 8 pin ATiny CPU chips.&amp;nbsp; It also generates the +12v programming voltage on-board eliminating the need to have an external programming voltage supply.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, back in business with my original CPU.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7988825852226024245?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7988825852226024245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/05/high-voltage-programming-atmega328.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7988825852226024245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7988825852226024245'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/05/high-voltage-programming-atmega328.html' title='High Voltage programming the ATMega328'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-IdxP2uF4tdg/TdG1uwkK_UI/AAAAAAAAAFs/yrBA-PCsYaY/s72-c/81.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7303501164099534200</id><published>2011-04-16T08:20:00.000-07:00</published><updated>2011-04-16T08:50:46.713-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Atmel'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='WinAVR'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><category scheme='http://www.blogger.com/atom/ns#' term='JTAGICE'/><title type='text'>Smoked my first ATMega328</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have been having a lot of fun upgrading my toolset for building AVR applications and hardware solutions.&amp;nbsp; I have been playing around with both the raw WinAVR toolset as well as AVR Studio from Atmel.&amp;nbsp; I also recently obtained a JTAGICE mkII from Atmel to hopefully be able to do some realtime debugging on my projects rather than having to always put serial port print statements in for debugging purposes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The ATMega328 does not have a JTAG interface but instead has a one-wire On Chip Debug interface called debugWire. I do all my programming of the chip using an ISP (In System Programming) interface.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The Atmel device implements the notion of "fuses" that are basically switches that control certain feature or modes of the device.&amp;nbsp; One of these fuses (DWEN - debug wire enable) is used to enable/disable debug wire mode.&amp;nbsp; The&amp;nbsp;debugWire pin is shared with the reset pin, so automatic reset hardware has to be disconnected for debugWire to work, which according to the Arduino Uno schematic is a non-issue.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, for debugging you start in &lt;/span&gt;&lt;span style="font-family: Trebuchet MS;"&gt;ISP mode to set the DWEN fuse. Unlike JTAG chips which have the JTAGEN fuse enabled by default the debugWire chips have DWEN disabled by default. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Once you have used ISP to switch to debugWire mode in theory you only need two of the 6 wires in the ISP header but as you need all 6 to get the chip back from debugWire to ISP mode (you can't change fuses in debugWire mode) you might as well leave all 6 connected. While in debugWire mode, the ISP mode is completely disabled.&lt;br /&gt;&lt;br /&gt;So, since Murphy is still on the payroll of course, my first debugging experience ended up putting my ATMega328 in a mode where it can no longer debug, but the ISP interface is disabled so I can do nothing with it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;One possibility is that I have messed up the system clock fuses somehow.&amp;nbsp; If that is the case, I should be able to apply an external clock to the chip and get it back.&amp;nbsp; The other option is to use high voltage programming which should be able to recover from any of these states and get the fuses back to a coherent state.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, my next project will be to build a high voltage programming setup.&amp;nbsp; Oh sigh...&amp;nbsp; Probably just as well as I need to build one of these HVSP (High Voltage Serial Programming) jigs eventually anyway...&amp;nbsp; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7303501164099534200?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7303501164099534200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/04/smoked-my-first-atmega328.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7303501164099534200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7303501164099534200'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/04/smoked-my-first-atmega328.html' title='Smoked my first ATMega328'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-1572093369918772675</id><published>2011-04-10T21:32:00.000-07:00</published><updated>2011-04-11T01:00:30.688-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='usbTinyISP'/><category scheme='http://www.blogger.com/atom/ns#' term='DDS-60'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Working with new tool chain</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;As the Arduino beacon project has progressed, I have spent some time trying to minimize the code size.&amp;nbsp; For one thing, there are a number of components that the beacon project does not need that are drug into the final image.&amp;nbsp; To do this I have moved away from the Arduino IDE for development of this project.&amp;nbsp; I am using the GNU AVR tool chain now.&amp;nbsp; I copied all the headers and code files from Arduino&amp;nbsp;install and have been modifying them to eliminate components that I do not need.&amp;nbsp; For example I don't need the serial port stuff, string classes, interrupt classes, etc.&amp;nbsp; Rather than use generic port libraries, I am moving to talk directly to the ports instead.&amp;nbsp; These kinds of changes have netted me 6-8 kb of space savings.&amp;nbsp; I need to hack on the wire libraries to eliminate the stuff I am not using.&amp;nbsp; Lastly, the Arduino boot loader is no longer necessary as I am using an in-circuit programmer (&lt;a href="http://www.ladyada.net/make/usbtinyisp/"&gt;usbTinyISP&lt;/a&gt;) from the good folks at &lt;a href="http://www.adafruit.com/"&gt;AdaFruit&lt;/a&gt;.&amp;nbsp; This saves another 0.5 kb at the upper end of flash.&amp;nbsp; The optiboot boot loader is pretty small, but others are not so compact.&amp;nbsp; All things considered, the savings in code size are significant.&amp;nbsp; Lastly, the tool chain is available for Windows, Linux and Mac platforms, so I think I will stick with it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Converting from Arduino IDE is pretty straight forward:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;1. Add #include "WProgram.h" to the top of your sketch.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;2. Add a main() function at the bottom that calls setup() and loops calling loop() infinitely.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;3. Provide forward declarations for all of your functions.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;4. Create a Makefile to drive the build process if desired (recommended).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I copied all the components from my project into a new folder and built a Makefile to compile and link everything.&amp;nbsp; Now I can hack on the Arduino components referenced in my Beacon project without affecting my Arduino IDE environment.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-1572093369918772675?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/1572093369918772675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/04/working-with-new-toolchain.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1572093369918772675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/1572093369918772675'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/04/working-with-new-toolchain.html' title='Working with new tool chain'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-6541698476363589068</id><published>2011-04-02T20:27:00.000-07:00</published><updated>2011-04-02T20:38:24.378-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='DS1307'/><category scheme='http://www.blogger.com/atom/ns#' term='DDS-60'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='Adafruit'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Logger'/><category scheme='http://www.blogger.com/atom/ns#' term='Shield'/><category scheme='http://www.blogger.com/atom/ns#' term='RTC'/><title type='text'>New RTC and data logging shield for beacon project</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have built one of the fine data logging shields for Arduino from the fine folks at &lt;a href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=17_21&amp;amp;products_id=243"&gt;Adafruit&lt;/a&gt;&amp;nbsp;to further clean up my beacon project rats nest.&amp;nbsp; The new setup looks like this attached to my Arduino Uno.&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-U40PRA1Z8Fs/TZfn4HhhssI/AAAAAAAAAFo/T46Yajbe-HM/s1600/Photo_FC6E604D-5EF3-56DB-7FCE-3559EE6FE9EA.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-U40PRA1Z8Fs/TZfn4HhhssI/AAAAAAAAAFo/T46Yajbe-HM/s320/Photo_FC6E604D-5EF3-56DB-7FCE-3559EE6FE9EA.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I need to add a socket for the DDS-60 and a couple headers to bring data GPIO lines out.&amp;nbsp; The real-time clock has been tested and is functional.&amp;nbsp; This should be my final setup until a PCB is created for this project.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-6541698476363589068?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/6541698476363589068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/04/new-rtc-and-data-logging-shield-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6541698476363589068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6541698476363589068'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/04/new-rtc-and-data-logging-shield-for.html' title='New RTC and data logging shield for beacon project'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-U40PRA1Z8Fs/TZfn4HhhssI/AAAAAAAAAFo/T46Yajbe-HM/s72-c/Photo_FC6E604D-5EF3-56DB-7FCE-3559EE6FE9EA.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7996170756743159960</id><published>2011-04-02T07:59:00.000-07:00</published><updated>2011-04-02T08:02:06.144-07:00</updated><title type='text'>Thanks for all the emails!</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I created this blog originally as a place to catalogue my ramblings and notes for myself.&amp;nbsp; I have been receiving quite a bit of email from around the world however expressing interest in the project, the code, hardware details and interest in the software.&amp;nbsp; While the project is not yet to a place where I am ready to publish details, that is the long-term plan.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I am however happy to help in any way I can anyone with a similar interest in this kind of project and have had some fun email exchanges as a result.&amp;nbsp; I appreciate all the offers to help from many folks as well.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I invite anyone with comments or suggestions to email or more ideally to post comments on the blog so that everyone can benefit from the discussion.&amp;nbsp; I will initially opt to not post emails as I want to respect the privacy of those involved unless explicit permission is provided to post those emails.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7996170756743159960?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7996170756743159960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/04/thanks-for-all-emails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7996170756743159960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7996170756743159960'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/04/thanks-for-all-emails.html' title='Thanks for all the emails!'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4603561918331129908</id><published>2011-04-02T07:51:00.000-07:00</published><updated>2011-04-02T07:53:53.810-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='DS1307'/><category scheme='http://www.blogger.com/atom/ns#' term='DDS-60'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><title type='text'>Trying to spruce up the Arduino beacon project</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;The Arduino WSPR/QRSS beacon project has gotten to the point where it is time to try and get rid of some of the rats nest of the breadboard nature of the project so far.&amp;nbsp; To that end, I have mounted the controls and display in a panel.&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-cRx4iWLrkaI/TZc1N7Um2HI/AAAAAAAAAFk/bU7R4uGFAHE/s1600/Photo_648D47CF-35F3-1271-194D-C16E3E5334FB%255B1%255D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" r6="true" src="http://3.bp.blogspot.com/-cRx4iWLrkaI/TZc1N7Um2HI/AAAAAAAAAFk/bU7R4uGFAHE/s320/Photo_648D47CF-35F3-1271-194D-C16E3E5334FB%255B1%255D.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Next, I will be eliminating the breadboard and using a data logger shield for the Arduino.&amp;nbsp; This shield has an SD card slot (which I do not need) as well as the same real-time-clock (RTC) I chose for my beacon project the DS1307.&amp;nbsp; There is also some breadboard space available to mount a socket for the DDS-60 and any other associated discrete components I may need.&amp;nbsp; This should tidy things up sufficiently to allow the software components to be finalized.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;After the software bits are complete (as much as any software project ever is) I will be producing a PCB for the entire project.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So far, my project has grown a bit bloated as I have allowed myself to be sidetracked on numerous occasions by additional modes such as Feld Hell.&amp;nbsp; I have added some test code to experiment in geneating Hellschrieber-like displays on a QRSS waterfall such as we have in Spectran or Argo.&amp;nbsp; The resultant bloat has put the code size beyond the&amp;nbsp;code size&amp;nbsp;limit of the ATMega168.&amp;nbsp; Since I am using an Arduino Uno with the 328 chip, this has not been a problem, but it does increase the expense of this project for others to duplicate or leverage the code.&amp;nbsp; I will have to work on that and will try to get the code size as small as possible in the final versions.&amp;nbsp; Things like my choice to do frequency calculations for the DDS using 64 bit integers has no doubt drug in the entire 64 bit math library whereas I only need one operation.&amp;nbsp; Obviously many opportunities exist for further optimization.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4603561918331129908?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4603561918331129908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/04/trying-to-spruce-up-arduino-beacon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4603561918331129908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4603561918331129908'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/04/trying-to-spruce-up-arduino-beacon.html' title='Trying to spruce up the Arduino beacon project'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-cRx4iWLrkaI/TZc1N7Um2HI/AAAAAAAAAFk/bU7R4uGFAHE/s72-c/Photo_648D47CF-35F3-1271-194D-C16E3E5334FB%255B1%255D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7487340568748376437</id><published>2011-03-27T17:48:00.000-07:00</published><updated>2011-03-28T10:41:40.009-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='DDS-60'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><title type='text'>QRSS/WSPR band befuddlement...</title><content type='html'>&lt;span style="font-family: Calibri;"&gt;I know that on 30 metres, the dial frequency of 10.1387 plus&lt;br /&gt;1300 Hz is the bottom of the QRSS band and plus 1400 Hz&amp;nbsp;is the bottom of the WSPR&lt;br /&gt;band.&amp;nbsp; Is this true on all bands?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Here are the WSPR dial frequencies(USB)&amp;nbsp;for everything below&lt;br /&gt;60 MHz (limit of the DDS-60) according to &lt;a href="http://www.wsprnet.org/"&gt;http://www.wsprnet.org&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;// WSPR standard frequencies&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;// Shown are the dial frequencies plus 1500 Hz to put in the &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;// middle of the 200 Hz WSPR band&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;long rgWSPRFreq[] =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 502400 + 1500,&amp;nbsp;&amp;nbsp;&amp;nbsp; // 500 KHz&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; 1836600 + 1500,&amp;nbsp;&amp;nbsp;&amp;nbsp; // 160 meters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; 3592600 + 1500,&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;nbsp;80 meters&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;5287200 + 1500,&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;nbsp;60 meters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; 7038600 + 1500,&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;nbsp;40 meters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp; 10138700 + 1500,&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;nbsp;30 meters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp; 14095600 + 1500,&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;nbsp;20 meters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp; 18104600 + 1500,&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;nbsp;17 meters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp; 21094600 + 1500,&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;nbsp;15 meters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp; 24924600 + 1500,&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;nbsp;12 meters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp; 28124600 + 1500,&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;nbsp;10 meters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp; 50293000 + 1500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;nbsp;&amp;nbsp;6 meters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;enum &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp; WSPR500KHZ, WSPR160M, WSPR80M, WSPR60M, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp; WSPR40M, WSPR30M, WSPR20M, WSPR17M,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;&amp;nbsp; WSPR15M, WSPR12M, WSPR10M, WSPR6M&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Lucida Console&amp;quot;;"&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;So, as I have defined them, I can set the DDS frequency to&lt;br /&gt;the centre of the WSPR band with the array above.&amp;nbsp; Are these WSPR/QRSS&lt;br /&gt;band relationships consistent across all these bands as they are on 30M ?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;"&gt;I see from the &lt;a href="http://knightsqrss.blogspot.com/2010/01/qrss-frequencies.html"&gt;KnightQRSS blog&lt;/a&gt;&amp;nbsp;that there appears to be a more scattered set of standard frequencies, though I am not certain I understand the decision making process and therefore don't have much confidence in this list:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* 137.6 - 137.8 kHz&lt;br /&gt;* 1.8432&lt;br /&gt;* 3.500, 3.575, 3.579, 3.5999&lt;br /&gt;* 7.000, 7.0402, 7.0599&lt;br /&gt;* 10.140&lt;br /&gt;* 14.000, 14.0989, 14.31818&lt;br /&gt;* 18.1089&lt;br /&gt;* 21.000, 21.1489&lt;br /&gt;* 24.9289&lt;br /&gt;* 28.000, 28.188, 28.322&lt;br /&gt;* 50.294,400-600&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;On a side note, the 60 metre WSPR&amp;nbsp;frequency surprises me as I thought only USB transmissions are available on 60 metres.&amp;nbsp; Granted, most people typically inject tones into their SSB transceiver to transmit WSPR.&amp;nbsp; What you get out when you do that however is FSK, so I am not so certain WSPR on 60 metres makes sense.&amp;nbsp; What did I miss?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;"&gt;On a similar note, it is a bit "funny" to note the number of times I hear computer annunciation beeps and even an occasional VOIP phone call or MP3 tracks that makes its way into the SSB transceiver MIC input when in digital modes in "non-voice" portions of the ham bands, especially 30 metres...&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7487340568748376437?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7487340568748376437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/03/qrsswspr-band-befuddlement.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7487340568748376437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7487340568748376437'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/03/qrsswspr-band-befuddlement.html' title='QRSS/WSPR band befuddlement...'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-250562922012587956</id><published>2011-03-24T22:15:00.000-07:00</published><updated>2011-03-24T22:15:48.533-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='I2C'/><title type='text'>I2C LCD performance</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I am a bit disappointed in the performance of the Arduino LCD driver, especially with the I2C interface enabled.&amp;nbsp; I am not sure how much time I want to spend optimizing the standard Arduino libraries, especially since a beacon in operation really doesn't need a display.&amp;nbsp; Realistically, it is just convenient for me while developing this project.&amp;nbsp; I think what I will do is just optimize the display usage to only update what actually changes rather than repainting everything whenever anything changes.&amp;nbsp; If that is insufficient, I will turn off the frequently updated portions of the LCD when doing time critical operations such as when transmitting signals with critical timing criteria such as WSPR.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-250562922012587956?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/250562922012587956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/03/i2c-lcd-performance.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/250562922012587956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/250562922012587956'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/03/i2c-lcd-performance.html' title='I2C LCD performance'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4804997734509654367</id><published>2011-03-22T16:12:00.000-07:00</published><updated>2011-03-24T20:56:25.337-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='Beacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='RTC'/><title type='text'>WSPR Beacon update</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Now that I have liberated GPIO pins for the RTC clock, I have incorporated it into my breadboard design.&amp;nbsp; I have the code to the point where it will begin transmitting on the next even minute.&amp;nbsp; I now need to implement the TX percent control, however I am uncertain what it means.&amp;nbsp; Obviously, TX percent set to 100% will transmit every 2 minute window and 0% will not transmit at all (Idle).&amp;nbsp; However, what does 50% mean?&amp;nbsp; Does it mean I will transmit every other 2 minute window?&amp;nbsp; Don't think so, but not sure...&amp;nbsp; I did see one online reference that 20% means transmitting every 10 minutes or so.&amp;nbsp; This came from the WSPR 2.0 user manual.&amp;nbsp; Here is that text:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;&lt;dir&gt;&lt;dir&gt;  &lt;span style="font-size: small;"&gt;&lt;div align="LEFT"&gt;WSPR uses two-minute time slots for transmitting and receiving. The slider labeled &lt;/div&gt;&lt;/span&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Arial,Arial; font-size: small;"&gt;&lt;span style="font-family: Arial,Arial; font-size: small;"&gt;Tx fraction &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial,Arial; font-size: small;"&gt;&lt;span style="font-family: Arial,Arial; font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;sets the average proportion of time allocated for transmitting. The default setting of 20% is a good compromise under typical conditions: it means that you will transmit approximately once every ten minutes and receive the rest of the time. The exact T/R sequence will be randomized so as to maximize your chances of receiving other WSPR stations. For receive-only operation, set the &lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Arial,Arial; font-size: small;"&gt;&lt;span style="font-family: Arial,Arial; font-size: small;"&gt;Tx fraction &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial,Arial; font-size: small;"&gt;&lt;span style="font-family: Arial,Arial; font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;slider to zero&lt;/span&gt;&lt;/div&gt;&lt;/dir&gt;&lt;/dir&gt;&lt;/span&gt;&lt;dir&gt;&lt;dir&gt;&lt;div align="LEFT"&gt;&lt;/div&gt;&lt;/dir&gt;&lt;/dir&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;My brain refuses to understand this for some reason...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I think what is intended here is the following:&lt;br /&gt;&lt;br /&gt;transmit time = (1/transmit percent) * 2 min&lt;br /&gt;&lt;br /&gt;If I round this up to the nearest integer, the following transmit times result:&lt;br /&gt;&lt;br /&gt;100% - every 2 minutes&lt;br /&gt;90% - every 4 minutes&lt;br /&gt;80% - every 4 minutes&lt;br /&gt;70% - every 4 minutes&lt;br /&gt;60% - every 4 minutes&lt;br /&gt;50% - every 4 minutes&lt;br /&gt;40% - every 6 minutes&lt;br /&gt;30% - every 8 minutes&lt;br /&gt;20% - every 10 minutes&lt;br /&gt;10% - every 20 minutes&lt;br /&gt;0% - never transmit &lt;br /&gt;&lt;br /&gt;I am not sure this is precisely what Joe Taylor intended, but I think it will be adaquate for the beacon project.&amp;nbsp; I will further randomize the precise amount of time between transmissions up to the calculated value to better match what Joe Taylor suggests for minimizing collisions between transmitting stations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4804997734509654367?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4804997734509654367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/03/wspr-beacon-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4804997734509654367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4804997734509654367'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/03/wspr-beacon-update.html' title='WSPR Beacon update'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-6549564734046658938</id><published>2011-03-18T08:43:00.000-07:00</published><updated>2011-03-22T16:13:55.245-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='DDS-60'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><category scheme='http://www.blogger.com/atom/ns#' term='RTC'/><title type='text'>GPIO Liberation</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have been endeavoring to liberate I/O pins on my Arduino project.&amp;nbsp; To that end, I have moved to an &lt;a href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=37&amp;amp;products_id=292&amp;amp;zenid=9ff36fab40a9ac4eae722d01befa1215"&gt;I2C LCD interface&lt;/a&gt;.&amp;nbsp; This is necessary to enable integration of an RTC (real-time clock) for WSPR timing.&amp;nbsp; The new setup looks like this:&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-ZKAEjiIzhqA/TYN8dmmD0BI/AAAAAAAAAFg/l-imNoBPZ98/s1600/Photo_8AAE8653-816E-4EB7-74A6-01E30E0D9B62.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="https://lh5.googleusercontent.com/-ZKAEjiIzhqA/TYN8dmmD0BI/AAAAAAAAAFg/l-imNoBPZ98/s320/Photo_8AAE8653-816E-4EB7-74A6-01E30E0D9B62.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have some concerns about the performance of the LCD driver so I may have to do some customization of the driver.&amp;nbsp; The good news is that the beacon in operation is unlikely to have or need a display or rotary encoder as the set of operational frequencies will be fixed.&amp;nbsp; Calibration of the DDS-60 can be accomplished with a test setup that includes a rotary encoder to set the clock and then disconnected for day-to-day operation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, hopefully I can get the RTC integration done soon and have a fully functional WSPR/QRSS beacon breadboard completed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Many thanks to the good folks at Adafruit for the excellent work on the &lt;a href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=37&amp;amp;products_id=292&amp;amp;zenid=9ff36fab40a9ac4eae722d01befa1215"&gt;I2C LCD interface&lt;/a&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-6549564734046658938?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/6549564734046658938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/03/gpio-liberation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6549564734046658938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/6549564734046658938'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/03/gpio-liberation.html' title='GPIO Liberation'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-ZKAEjiIzhqA/TYN8dmmD0BI/AAAAAAAAAFg/l-imNoBPZ98/s72-c/Photo_8AAE8653-816E-4EB7-74A6-01E30E0D9B62.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-4907475829218022607</id><published>2011-03-06T21:41:00.000-08:00</published><updated>2011-03-06T22:58:15.218-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='DDS-60'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><title type='text'>WSPR Beacon with Arduino and DDS-60</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Today I got my WSPR beacon code running for the most part.&amp;nbsp; I have the WSPR encoding all done and the Symbol transmission bits are complete.&amp;nbsp; The setup is the same as for the &lt;a href="http://ko7m.blogspot.com/2011/03/qrss-with-dds-60.html"&gt;previous post&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I added a WSPR mode to the controller software and can trigger the transmission manually at this point.&amp;nbsp; Watching the received signal on Spectran, I can see the normal WSPR four tone pattern.&amp;nbsp; The test however is can Joe Taylor's fine WSPR program decode what I am transmitting?&amp;nbsp; I am happy to say the answer is yes!&amp;nbsp; Click on the image below for a full size version that can be read.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-I_bdCSV4jNU/TXRuel7QYcI/AAAAAAAAAFc/_TunzHiPUY4/s1600/Photo_9477E13E-E28F-9423-46B4-7B87E21762EE.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="https://lh3.googleusercontent.com/-I_bdCSV4jNU/TXRuel7QYcI/AAAAAAAAAFc/_TunzHiPUY4/s320/Photo_9477E13E-E28F-9423-46B4-7B87E21762EE.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I am using just a cheap Grundig G6 receiver which only has 1 KHz resolution on the dial.&amp;nbsp; Since the entire 30 metre WSPR band is only 200 Hz wide, I used Spectran to set received audio tone to around 1450 Hz.&amp;nbsp; With Joe Taylor's application set with a dial frequency of 10.138.700 this put me in the band.&amp;nbsp; I then waited for an even minute to come around and pushed a button to initiate the WSPR transmission.&amp;nbsp; As you can see above, it decoded just fine!&amp;nbsp; Whoo hoo!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, now I need to implement the RTC clock in order to have transmissions begin 2 seconds into even minutes and to implement the percent of the time the beacon is transmitting.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Geting close to having a software solution on breadboarded hardware.&amp;nbsp; It will then be time to build a custom PCB hardware solution.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-4907475829218022607?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/4907475829218022607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/03/wspr-beacon-with-arduino-and-dds-60.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4907475829218022607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/4907475829218022607'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/03/wspr-beacon-with-arduino-and-dds-60.html' title='WSPR Beacon with Arduino and DDS-60'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-I_bdCSV4jNU/TXRuel7QYcI/AAAAAAAAAFc/_TunzHiPUY4/s72-c/Photo_9477E13E-E28F-9423-46B4-7B87E21762EE.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7172059698291495076</id><published>2011-03-03T16:23:00.000-08:00</published><updated>2011-03-06T23:12:12.994-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDS-60'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='QRSS'/><title type='text'>QRSS with a DDS-60</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I have been having fun messing around with an old DDS-60 board that I obtained some time ago.&amp;nbsp; I have cabled it up to the Arduino.&amp;nbsp; Here is the setup:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-1OqQU3jxpJo/TXAn7FLj2uI/AAAAAAAAAFQ/84gEdXvut0I/s1600/qrss1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="https://lh4.googleusercontent.com/-1OqQU3jxpJo/TXAn7FLj2uI/AAAAAAAAAFQ/84gEdXvut0I/s320/qrss1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;The DDS-60 is plugged into the Arduino breadboard.&amp;nbsp;&amp;nbsp; I have a small four line LCD display on a separate board below.&amp;nbsp; The LCD is certainly not necessary for this project, but is nice to have.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Looking at the DDS-60 output on around 10 MHz, we see a nice clean signal.&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-Q3CoT6R_dKQ/TXAof0-I7NI/AAAAAAAAAFU/hQSBaB0-Q2c/s1600/qrss2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="https://lh4.googleusercontent.com/-Q3CoT6R_dKQ/TXAof0-I7NI/AAAAAAAAAFU/hQSBaB0-Q2c/s320/qrss2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;A little more code and we have a simple QRSS beacon putting out about 1.4 V peak-to-peak signal into a 50 ohm load.&amp;nbsp; Hooked up a simple Grundig G6 portable radio and cabled the audio out to the computer audio in.&amp;nbsp; Using Spectran, we can see the 6 hertz FSK signal on 10.140 Mhz sending my call sign (KO7M).&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-rIdNv-DKl34/TXAwj-rOBGI/AAAAAAAAAFY/zApIDUuuJEs/s1600/qrss3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="https://lh6.googleusercontent.com/-rIdNv-DKl34/TXAwj-rOBGI/AAAAAAAAAFY/zApIDUuuJEs/s320/qrss3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7172059698291495076?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7172059698291495076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/03/qrss-with-dds-60.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7172059698291495076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7172059698291495076'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/03/qrss-with-dds-60.html' title='QRSS with a DDS-60'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-1OqQU3jxpJo/TXAn7FLj2uI/AAAAAAAAAFQ/84gEdXvut0I/s72-c/qrss1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-8876485598041213026</id><published>2011-02-27T10:24:00.000-08:00</published><updated>2011-02-28T15:45:59.258-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='AD5330'/><category scheme='http://www.blogger.com/atom/ns#' term='NCO'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='DAC'/><title type='text'>Fun with DACs</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Today I have been playing around with an&amp;nbsp;AD5330 8 bit DAC &lt;a href="http://www.analog.com/static/imported-files/data_sheets/AD5330_5331_5340_5341.pdf"&gt;(datasheet)&lt;/a&gt;&amp;nbsp;and generating different waveforms.&amp;nbsp; For inspiration, I am using a document from Analog Devices (&lt;a href="http://www.analog.com/static/imported-files/tutorials/MT-085.pdf"&gt;MT-085 Tutorial&lt;/a&gt;) on the Fundamentals of Direct Digital Synthesis (DDS).&amp;nbsp; This is an excellent primer on the subject and I recommend it highly.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Trebuchet MS;"&gt;The setup is an Arduino Uno and a breadboarded AD5330 DAC from SparkFun.&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" height="240" src="https://lh6.googleusercontent.com/-wvTvLI3wZf4/TWqSLQlqH5I/AAAAAAAAAFA/BSRKveOr760/s320/ArduinoDACSetup.jpg" width="320" /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;From a block diagramme perspective, I have implemented a Numerically Controlled Oscillator as shown below (from MT-085 referenced above):&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-V6ccCPin5Uk/TWqTCMIPqLI/AAAAAAAAAFE/wO59WGan44c/s1600/NCO.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="184" src="https://lh6.googleusercontent.com/-V6ccCPin5Uk/TWqTCMIPqLI/AAAAAAAAAFE/wO59WGan44c/s320/NCO.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;The "System Clock" initially in my software implementation is just the main loop of the Arduino sketch.&amp;nbsp; Each time through the loop, the phase accumulator contents is updated.&amp;nbsp; The tuning word (M stored in the delta phase register) is added to the number in the phase accumulator.&amp;nbsp; I use the upper 8 bits of the phase accumulator as the address of a lookup table containing the digital amplitude information for whatever waveform I am generating.&amp;nbsp; This table maps the phase information from the phase accumulator to a digital amplitude word which then drives the DAC.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: Trebuchet MS;"&gt;As you can see from the photographs below, this prototype is only a proof-of-concept implementation and the system clock will need be a much more granular (and stable) implementation.&amp;nbsp; The next step is to implement the system clock in a timer interrupt handler firing at about a 32KHz rate to make the waveform output much smoother.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-BJ4ao22xkCg/TWqVBqXCfRI/AAAAAAAAAFI/0LuIxo8vzXw/s1600/SinWaveOutput.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="https://lh3.googleusercontent.com/-BJ4ao22xkCg/TWqVBqXCfRI/AAAAAAAAAFI/0LuIxo8vzXw/s320/SinWaveOutput.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-nNaUcZZA9ws/TWqVEifz2BI/AAAAAAAAAFM/kF2tBEIP258/s1600/TriangleWaveOutput.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="https://lh4.googleusercontent.com/-nNaUcZZA9ws/TWqVEifz2BI/AAAAAAAAAFM/kF2tBEIP258/s320/TriangleWaveOutput.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I can change the waveform by just filling the digital amplitude lookup table with appropriate values.&amp;nbsp; I have implemented SIN, Square, Triangle, Sawtooth with a positive slope, Sawtooth with a negative slope and random waveforms.&amp;nbsp; It should be a simple matter to allow for a custom waveform to be uploaded in a general purpose function generator implementation (a project for another day perhaps...).&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Off to figure out Arduino timers.&amp;nbsp; I have used them to generate PWM output, but now need to figure out how to just generate an interrupt a precise intervals without interfering with the various digital output pins I require for DAC purposes.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-8876485598041213026?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/8876485598041213026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/02/fun-with-dacs.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8876485598041213026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/8876485598041213026'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/02/fun-with-dacs.html' title='Fun with DACs'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-wvTvLI3wZf4/TWqSLQlqH5I/AAAAAAAAAFA/BSRKveOr760/s72-c/ArduinoDACSetup.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-3230746368273384628</id><published>2011-02-26T12:57:00.000-08:00</published><updated>2011-03-22T16:16:24.889-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DS1307'/><category scheme='http://www.blogger.com/atom/ns#' term='Bus Pirate'/><title type='text'>Checking out the DS1307 RTC with Bus Pirate</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Today I am checking out the functionality of the DS1307 with Bus Pirate.&amp;nbsp; I am supplying power and clock from the Bus Pirate board so +5/Gnd, MOSI/CLK are the only required pins.&amp;nbsp;&amp;nbsp; Here is the setup:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-KzpiQXUA_RQ/TWllIIEv1kI/AAAAAAAAAE8/W7VVoENzmAs/s1600/Photo_40CCDBBB-96A3-D20E-7DC7-6C8996018A36.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="https://lh5.googleusercontent.com/-KzpiQXUA_RQ/TWllIIEv1kI/AAAAAAAAAE8/W7VVoENzmAs/s320/Photo_40CCDBBB-96A3-D20E-7DC7-6C8996018A36.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: Trebuchet MS;"&gt;I set Bus Pirate to I2C at 50khz and turned on the power:&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;HiZ&amp;gt;m&lt;br /&gt;1. HiZ&lt;br /&gt;2. 1-WIRE&lt;br /&gt;3. UART&lt;br /&gt;4. I2C&lt;br /&gt;5. SPI&lt;br /&gt;6. JTAG&lt;br /&gt;7. RAW2WIRE&lt;br /&gt;8. RAW3WIRE&lt;br /&gt;9. PC KEYBOARD&lt;br /&gt;10. LCD&lt;br /&gt;(1) &amp;gt;4&lt;br /&gt;Mode selected&lt;br /&gt;Set speed:&lt;br /&gt;&amp;nbsp;1. ~5KHz&lt;br /&gt;&amp;nbsp;2. ~50KHz&lt;br /&gt;&amp;nbsp;3. ~100KHz&lt;br /&gt;&amp;nbsp;4. ~400KHz&lt;br /&gt;(1) &amp;gt;2&lt;br /&gt;READY&lt;br /&gt;I2C&amp;gt;W&lt;br /&gt;POWER SUPPLIES ON&lt;br /&gt;I2C&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;Now I should be able to search for the device on the I2C bus and it finds the device at 0xD0, 0xD1 as expected, so at least it is responding.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;I2C&amp;gt;(1)&lt;br /&gt;Searching 7bit I2C address space.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Found devices at:&lt;br /&gt;0xD0(0x68 W) 0xD1(0x68 R)&lt;br /&gt;I2C&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Now, I try to read four bytes from the DS1307:&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;I2C&amp;gt;[0xd1 rrrr]&lt;br /&gt;I2C START BIT&lt;br /&gt;WRITE: 0xD1 ACK&lt;br /&gt;READ: 0x00 ACK&lt;br /&gt;READ: 0x00 ACK&lt;br /&gt;READ: 0x01 ACK&lt;br /&gt;READ: 0x01 NACK&lt;br /&gt;I2C STOP BIT&lt;br /&gt;I2C&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: Trebuchet MS;"&gt;So, it looks like things are working, yay!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-3230746368273384628?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/3230746368273384628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/02/checking-out-ds1307-rtc-with-bus-pirate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3230746368273384628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/3230746368273384628'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/02/checking-out-ds1307-rtc-with-bus-pirate.html' title='Checking out the DS1307 RTC with Bus Pirate'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-KzpiQXUA_RQ/TWllIIEv1kI/AAAAAAAAAE8/W7VVoENzmAs/s72-c/Photo_40CCDBBB-96A3-D20E-7DC7-6C8996018A36.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6737713102444501259.post-7759344204155399196</id><published>2011-02-25T12:14:00.000-08:00</published><updated>2011-03-16T06:44:39.119-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSPR'/><category scheme='http://www.blogger.com/atom/ns#' term='DS1307'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='MCP4725'/><title type='text'>PC-less WSPR project</title><content type='html'>&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;It is long past time for me to start posting to this blog.&amp;nbsp; My current project is an Arduino-based WSPR tone generation module.&amp;nbsp; I am currently using an Arduino Uno along with a DS1307 Real-Time-Clock (RTC) for timing of WSPR transmissions and an MCP4725 DAC.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-wu0JAIFE4RE/TWgL9xZ31xI/AAAAAAAAAE4/OVBZiJc_mmY/s1600/Photo_2785FBAF-79A0-1305-FD7B-72C984D4822A.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-wu0JAIFE4RE/TWgL9xZ31xI/AAAAAAAAAE4/OVBZiJc_mmY/s320/Photo_2785FBAF-79A0-1305-FD7B-72C984D4822A.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;﻿&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;, sans-serif;"&gt;I am currently breadboarding the circuit as can be seen above and learning a lot about I2C communications programming.&amp;nbsp; I have basic DDS software written and generating tones using the PWM functionality on the Uno and an external low-pass filter.&amp;nbsp; I am now moving to a hardware DAC solution.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: Trebuchet MS;"&gt;WSPR encoding and channel symbol generation code has been completed and verified against &lt;a href="http://physics.princeton.edu/pulsar/K1JT/WSPRcode.exe"&gt;WSPRCode.exe&lt;/a&gt; available from Joe Taylor, the creator of WSPR so I am confident the WSPR generation bits are functional.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family: Trebuchet MS;"&gt;Initially, I am using my software DDS code to generate WSPR tones that could be then fed into an SSB transmitter.&amp;nbsp; Longer term, I plan to use a hardware DDS to generate RF at the transmit frequency for stand-alone beacon use.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6737713102444501259-7759344204155399196?l=ko7m.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ko7m.blogspot.com/feeds/7759344204155399196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ko7m.blogspot.com/2011/02/pc-less-wspr-project.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7759344204155399196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6737713102444501259/posts/default/7759344204155399196'/><link rel='alternate' type='text/html' href='http://ko7m.blogspot.com/2011/02/pc-less-wspr-project.html' title='PC-less WSPR project'/><author><name>Jeff Whitlatch</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-2QpT37wPqVI/AAAAAAAAAAI/AAAAAAAAAHU/nMYgbxA9X_I/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-wu0JAIFE4RE/TWgL9xZ31xI/AAAAAAAAAE4/OVBZiJc_mmY/s72-c/Photo_2785FBAF-79A0-1305-FD7B-72C984D4822A.jpg' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
