Podcasting since 2005! Listen to Latest SolderSmoke

Wednesday, September 23, 2020

Wisdom from AA0ZZ: NO LIBRARIES! ASSEMBLER CODE ONLY! -- "Digital Crap" -- "No Magic Fruit" What qualifies as a real rig? Si570 vs. Si5351



Why do you guys make your Soldersmoke podcasts so darn intriguing such that I can’t listen to them in the background while I’m 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’m doodling out a new sketch or playing with at a new design for something I really need to experiment with or build “next” or something I need to  try.   It is taking too much of my time!!  J

 I’ve 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. 

 I’ve been making PIC-based VFOs for years – dating back to about 2000 – aiming them at builders who were looking for something to go along with Rick Campbell’s (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 “marketer” for my kits as well as Rick’s 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’s phasing gear.  Rick is a big supporter of my work but he still kids me about polluting his beautiful analog world with my “digital crap” (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.   

 I have used the Si5351 also and I understand Pete’s point of view.  It’s “plenty good” for most amateur projects.  However, it remains a fact that the Si570 is a better part and produces a cleaner signal.  That’s the reason why the Elecraft KX3 uses a Si570.   Granted, the newer Elecraft KX2 uses a Si5351 but it’s 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’ve 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’m an EE but have had a career mainly in software development and much of it was writing assembler code.   I dare say there aren’t too many gluttons for punishment that do it this way.  I do it because I want to understand every line of code don’t want to be dependent on anyone else’s libraries.  Every line of code in my VFO’s and Signal Generators is MINE so I know I can debug it and it can’t 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’t 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’s similar to the reason why Hans Summers didn’t use an Arduino in his QCX.  He used the same Atmel microprocessor but developed/debugged it as “C” code with the full Atmel IDE/debugger.                                                                                                            

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’t met him in person since about 2000.  We Email at least daily and some of it is even about radio. J   I did the PIC code for the tiny PIC that controls the Si5351 in the Phaser.   Yes, it’s written entirely in Assembler again!   I do know how to do it for a Si5351.  That Si5351 code is not nearly as much “fun”, though.  I know, this will make very little difference to guys who write Arduino “C” code to control it but under the covers it’s 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 “C” 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’s a bit of trickery to do in ASM.   There are no libraries do this.

 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 “backwards” 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 “exact”.   I love this!  Frequency often moves by about 6 kHz on 40M.

 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’s already soldered on but, again, I like to do it all myself.   No “magic Fruit” for me.

 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’s 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’ve 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.)  

 The new rig that’s on my workbench is my own version of a phasing rig, experimenting with a Quadrature Sampling Detector (QSD, sometimes called a “Tayloe” mixer), using some ideas from Rick’s 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’s in push-pull.  You can take away my “QRP-Only-Forever” badge too, not that I’ve ever subscribed to that concept!  Still more tweaking to do with the TX but now I’m also working on the “glue” 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’ve 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’t really an object at this point but it’s more of getting a hardware education that I sadly missed while I concentrated on software for so many years.  it’s 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’m having a ball!  

 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’s had a Drake 2B and I drooled over it but couldn’t afford one.

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 “priority list” on the my computer’s desktop screen.  Every time I come up with a new project idea – 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’s my reality check!

 Take care, Bill.   Thanks for taking the time to give us many inspiring thoughts and ideas.


-Craig, AA0ZZ

1 comment:

  1. I enjoyed reading Craig's perspective. Thanks for posting Bill.


Designer: Douglas Bowman | Dimodifikasi oleh Abdul Munir Original Posting Rounders 3 Column