{"id":4457,"date":"2020-09-23T09:17:00","date_gmt":"2020-09-22T23:17:00","guid":{"rendered":"https:\/\/www.homebrewradio.us\/blog\/2020\/09\/23\/wisdom-from-aa0zz-no-libraries-assembler-code-only-digital-crap-no-magic-fruit-what-qualifies-as-a-real-rig-si570-vs-si5351\/"},"modified":"2025-07-21T17:12:32","modified_gmt":"2025-07-21T07:12:32","slug":"wisdom-from-aa0zz-no-libraries-assembler-code-only-digital-crap-no-magic-fruit-what-qualifies-as-a-real-rig-si570-vs-si5351","status":"publish","type":"post","link":"https:\/\/www.homebrewradio.us\/blog\/2020\/09\/23\/wisdom-from-aa0zz-no-libraries-assembler-code-only-digital-crap-no-magic-fruit-what-qualifies-as-a-real-rig-si570-vs-si5351\/","title":{"rendered":"Wisdom from AA0ZZ:   NO LIBRARIES!  ASSEMBLER CODE ONLY! &#8212; &#8220;Digital Crap&#8221; &#8212;  &#8220;No Magic Fruit&#8221;  What qualifies as a real rig? Si570 vs. Si5351"},"content":{"rendered":"<\/p>\n<div class=\"separator\" style=\"clear: both; text-align: center;\"><a href=\"https:\/\/www.homebrewradio.us\/blog\/wp-content\/uploads\/2020\/09\/aa0zz-shack-640.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" data-original-height=\"480\" data-original-width=\"640\" height=\"300\" src=\"https:\/\/www.homebrewradio.us\/blog\/wp-content\/uploads\/2020\/09\/aa0zz-shack-640.jpg\" width=\"400\" \/><\/a><\/div>\n<\/p>\n<p><span face=\"\"Helvetica Neue\", Helvetica, Arial, sans-serif\" style=\"background-color: white; color: #1d2228; font-size: 13px;\"><b>Bill,<\/b><\/span><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b>Why do you guys make your Soldersmoke podcasts so darn intriguing such that I can\u2019t listen to them in the background while I\u2019m doing something else? Good grief! I start listening and before long you make me stop and chase down a rabbit hole to find something new that you mentioned that I had no clue was out there. Before long I\u2019m doodling out a new sketch or playing with at a new design for something I really need to experiment with or build \u201cnext\u201d or something I need to try. It is taking too much of my time!! <span style=\"font-family: Wingdings;\">J<\/span><\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b> <\/b><b>I\u2019ve been listening to your podcasts for years. Way back, before I knew you and before I knew you were doing these Soldersmoke blogs with Mike, KL7R, and just before he was so tragically killed, I was collaborating with him on a simple frequency counter project using a PIC microcontroller. We were making good progress on a neat design. I later completed the project but always kept his contributions noted as part of the source code. <\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b> <\/b><b>I\u2019ve been making PIC-based VFOs for years \u2013 dating back to about 2000 \u2013 aiming them at builders who were looking for something to go along with Rick Campbell\u2019s (KK7B) receivers. Rick is a good friend now, after we met in the Kanga booth at Dayton where we both were demonstrating our stuff. (Bill Kelsey (N8ET) of Kanga, was the \u201cmarketer\u201d for my kits as well as Rick\u2019s for many years.) My original VFO kits used a DDS (high-end AD9854) that simultaneously produced I and Q signals which made it perfect for Rick\u2019s phasing gear. Rick is a big supporter of my work but he still kids me about polluting his beautiful analog world with my \u201cdigital crap\u201d (copyright KK7B term). When I came out with a newer version VFO using a Silicon Labs Si570 PPLL (I can hear already Pete Juliano groaning) it was a big improvement over the AD9854 in noise\/spur reduction. I documented this all in a QEX article in about 2011 and Rick (and Wes Hayward) were very supportive\/appreciative of my work. <\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b> <\/b><b>I have used the Si5351 also and I understand Pete\u2019s point of view. It\u2019s \u201cplenty good\u201d for most amateur projects. However, it remains a fact that the Si570 is a better part and produces a cleaner signal. That\u2019s the reason why the Elecraft KX3 uses a Si570. Granted, the newer Elecraft KX2 uses a Si5351 but it\u2019s most likely because they wanted to preserve battery life (the Si570 uses more power but not nearly as much as the AD9854) and also to reduce the cost. I do understand! I also fully understand the ability of the Si5351 to produce I and Q signals via different channels. I\u2019ve had extensive conversations about this with Hans Summers, at Dayton and online. I use a pair of Flip-Flops on the output of the Si570 instead. My PIC code driving the Si570 is ALL written in ASSEMBLER code. Yep! I\u2019m an EE but have had a career mainly in software development and much of it was writing assembler code. I dare say there aren\u2019t too many gluttons for punishment that do it this way. I do it because I want to understand every line of code don\u2019t want to be dependent on anyone else\u2019s libraries. Every line of code in my VFO\u2019s and Signal Generators is MINE so I know I can debug it and it can\u2019t get changed out from under me. (This problem bit Ashar Farhan hard on the Raduino of his BitX. Tuning clicks appeared because the Si5351 libraries he used changed between the time he tested it and released it. I was really appalled when I dug into this and resolved to NEVER use libraries that I didn\u2019t write myself. Similarly, this also makes me have some distaste for Arduino sketches. I would rather see ALL of the code including the initialization code, the serial routines, etc, rather than having them hidden and get pulled in from Arduino libraries. That\u2019s similar to the reason why Hans Summers didn\u2019t use an Arduino in his QCX. He used the same Atmel microprocessor but developed\/debugged it as \u201cC\u201d code with the full Atmel IDE\/debugger. <\/b><b> <\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b>By the way, Pete mentioned the Phaser FT8 transceiver by Dave, K1SWL, in a recent podcast. Dave is a very close friend, even though I haven\u2019t met him in person since about 2000. We Email at least daily and some of it is even about radio. <span style=\"font-family: Wingdings;\">J<\/span> I did the PIC code for the tiny PIC that controls the Si5351 in the Phaser. Yes, it\u2019s written entirely in Assembler again! I do know how to do it for a Si5351. That Si5351 code is not nearly as much \u201cfun\u201d, though. I know, this will make very little difference to guys who write Arduino \u201cC\u201d code to control it but under the covers it\u2019s a world of difference. It takes me about 15 serial, sequential, math operations to generate the parameters for the Si5351. None of them can be table driven and they all have to be performed sequentially. (This is all hidden in about 5 lines of complex, Arduino \u201cC\u201d code but the operations are all there in the compiled assembler code.) In contrast, my Si570 code is almost all table driven. I just have to do one large (48-bit) division operation at the end to generate the parameters. Yes, that\u2019s a bit of trickery to do in ASM. There are no libraries do this.<\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b> <\/b><b>I will point out one more advantage of the Si570 in comparison to the Si5351. It has the ability to self-calibrate via software instead of relying on an external frequency standard. In my Si570 app I can read up the exact parameters for the crystal embedded inside the Si570, run my frequency-generating algorithm \u201cbackwards\u201d and determine the exact crystal frequency (within tolerances, of course) for that particular Si570. Then I update all the internal tables using that crystal frequency and from then on all generated frequencies are \u201cexact\u201d. I love this! Frequency often moves by about 6 kHz on 40M.<\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b> <\/b><b>Oh yes, I must mention the difference of home solderability of the si570 vs the Si5351. Those little Si5351 buggers are terribly difficult to solder at home while the Si570 is a breeze. I know, many folks will just buy the AdaFruit Si5351 board and it\u2019s already soldered on but, again, I like to do it all myself. No \u201cmagic Fruit\u201d for me.<\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b> <\/b><b>Now that I retired a couple of years ago and am getting out of the VFO kitting business I can finally build complete rigs instead of just making the next-generation VFO\u2019s for everyone else to use. I recently build a tiny, Direct Conversion rig with a Si570 signal generator (of course) and a diode ring mixer (ADE-1). Look at my web page, www.aa0zz.com to see it, along with my VFO projects that I\u2019ve been building in the past. As you well know, Direct Conversion is fun to build and the sound is astounding; however, they are rather a pain to use! Yes, I did make it qualify as a real rig by making several contacts all over the country. (Wes Hayward gave me the criteria: he told me that I must put any new rig on the air and make at least one contact before it qualifies as a real rig.) <\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b> <\/b><b>The new rig that\u2019s on my workbench is my own version of a phasing rig, experimenting with a Quadrature Sampling Detector (QSD, sometimes called a \u201cTayloe\u201d mixer), using some ideas from Rick\u2019s R2 and R2Pro receivers and many innovations of my own. At present my new higher-end Signal Generator works great, the QSD receiver works great (extremely quiet and MDS of -130 dB on 40 meters) and the transmitter is putting out about 16 watts with two RD16HHF1\u2019s in push-pull. You can take away my \u201cQRP-Only-Forever\u201d badge too, not that I\u2019ve ever subscribed to that concept! Still more tweaking to do with the TX but now I\u2019m also working on the \u201cglue\u201d circuitry and the T\/R switch. The SigGen, RX and TX are all on separate boards that plug into a base board which has the interconnections between boards and the jacks on the back. I\u2019ve built DOZENS of variations of each of these boards. Fortunately they all fall within the size limit criteria to get them from China at the incredible price of $5 for 10 boards (plus $18 shipping) with about 1 week turnaround. Cost isn\u2019t really an object at this point but it\u2019s more of getting a hardware education that I sadly missed while I concentrated on software for so many years. it\u2019s certainly nice to have willing mentors such as Rick, Wes, Dave (K1SWL), Don (W6JL) and many others to bounce my crazy ideas off. Yes, I\u2019m having a ball! <\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b> <\/b><b>I was licensed in 1964 but out of radio completely from 1975 to 1995. Do you like the picture of my DX-100 on my web page? My buddy in the 60\u2019s had a Drake 2B and I drooled over it but couldn\u2019t afford one.<\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\">\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b>Now I must finish this rig before you guys send me down another rabbit hole. Too many fascinating things to think about! I literally have a \u201cpriority list\u201d on the my computer\u2019s desktop screen. Every time I come up with a new project idea \u2013 something I really want to play with such as a Raspberry Pi, SDR, etc, I pull out the priority list and decide where it fits and what I want to slide down to accommodate it. That\u2019s my reality check!<\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b> <\/b><b>Take care, Bill. Thanks for taking the time to give us many inspiring thoughts and ideas.<\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b> <\/b><b>73,<\/b><\/p>\n<p class=\"yiv4733745607MsoNormal\" style=\"background-color: white; color: #1d2228; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 13px;\"><b>-Craig, AA0ZZ<\/b><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bill, Why do you guys make your Soldersmoke podcasts so darn intriguing such that I can\u2019t listen to them in the background while I\u2019m doing something else? Good grief! I start listening and before long you make me stop and chase down a rabbit hole to find something new that you mentioned that I had &hellip; <a href=\"https:\/\/www.homebrewradio.us\/blog\/2020\/09\/23\/wisdom-from-aa0zz-no-libraries-assembler-code-only-digital-crap-no-magic-fruit-what-qualifies-as-a-real-rig-si570-vs-si5351\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Wisdom from AA0ZZ:   NO LIBRARIES!  ASSEMBLER CODE ONLY! &#8212; &#8220;Digital Crap&#8221; &#8212;  &#8220;No Magic Fruit&#8221;  What qualifies as a real rig? Si570 vs. Si5351&#8243;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":4458,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[126,35,6,150,66,60,41,272,103,61,198],"tags":[],"class_list":["post-4457","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-campbell-rick","category-direct-conversion","category-drake-2b","category-dx-100","category-farhan","category-hayward-wes","category-juliano-pete","category-kl7r","category-knack-stories","category-si5351","category-summers-hans"],"_links":{"self":[{"href":"https:\/\/www.homebrewradio.us\/blog\/wp-json\/wp\/v2\/posts\/4457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.homebrewradio.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.homebrewradio.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.homebrewradio.us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.homebrewradio.us\/blog\/wp-json\/wp\/v2\/comments?post=4457"}],"version-history":[{"count":1,"href":"https:\/\/www.homebrewradio.us\/blog\/wp-json\/wp\/v2\/posts\/4457\/revisions"}],"predecessor-version":[{"id":4459,"href":"https:\/\/www.homebrewradio.us\/blog\/wp-json\/wp\/v2\/posts\/4457\/revisions\/4459"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.homebrewradio.us\/blog\/wp-json\/wp\/v2\/media\/4458"}],"wp:attachment":[{"href":"https:\/\/www.homebrewradio.us\/blog\/wp-json\/wp\/v2\/media?parent=4457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.homebrewradio.us\/blog\/wp-json\/wp\/v2\/categories?post=4457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.homebrewradio.us\/blog\/wp-json\/wp\/v2\/tags?post=4457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}