Si5351A Breakout Board TCXO Upgrade

I'm pleased to announce an upgrade to the Etherkit Si5351A Breakout Board with TCXO reference oscillator. In boards manufactured previous to today (and the ones kitted in the initial crowdfunded initiative), the TCXO used was a Fox FOX924B-25.000. It worked well and did the job it was supposed to, but has one flaw in certain situations. The compensation loop in this particular TCXO has relatively wide frequency adjustment steps that can become obvious when using the Si5351A Breakout Board in a very narrow band mode such as QRSS. Here is a screen capture from Argo showing the behavior of the Si5351A Breakout Board with the Fox TCXO when outputting a carrier on 28 MHz, from a cold start.

Fox FOX925B-25.000
Fox FOX925B-25.000

As you can see, as the TCXO is stabilizing to operating temperature, the compensation circuit adjusts the frequency in relative course steps of around 3 Hz or so. Once the TCXO is warmed up, it jumps around less often, but still does occasionally have to frequency correct, and does so in a jump of similar size. This TCXO is still fine for most other uses, such as a VFO for a SSB/CW radio, but doesn't work so great for the MEPT modes, especially on the upper frequency range of the Si5351.

In the course of developing OpenBeacon 2, I determined that I would need to find a more suitable TCXO to use with the Si5351. After trying about five different oscillators, I finally found a fantastic substitute, and it only costs a bit more than the Fox TCXO. The Abracon ASTX-H11-25.000MHZ-T comes in a smaller package than the Fox FOX924B-25.000, but it will still fit on the footprint for X1 on the Si5351A Breakout Board. Here you can see the same test as above run for the Abracon TCXO.

Abracon ASTX-H11-25.000M
Abracon ASTX-H11-25.000M

It seems to find a stable frequency very quickly, and more importantly you can see that the compensation loop seems much tighter, with frequency corrections coming much faster and in smaller increments. You can only barely see a bit of fuzz from the frequency corrections on this low-bandwidth plot. This is much, much better for the MEPT modes.

As of today, all of the Si5351A Breakout Boards with TCXO option sold in the Etherkit store will have the Abracon TCXO, and the price will stay the same at $15.

Wideband Transmission #7

More Musings about Etherkit's Future

As I mentioned in my previous post, we are still undergoing a stage of tremendous upheaval in our household. I won't really know how our new life will shake out quite yet, but I am certain that my time will be more restricted. I think I'll have a good grasp on the extent of this within a month or so. In the mean time, I've been thinking about Etherkit. It's a bit weird to air this out on the blog, but I think it would be good for others to hear my thoughts about this and have the chance to offer feedback.

The assumption is that I'm going to have less time to work on Etherkit (the only real question being how much less time), which means that if I do have enough time left to continue with the business I will need help by either outsourcing manufacturing or finding someone to bring on as a partner. If possible, I'd like to go that route, as I'm not really ready to see Etherkit fold up yet. This would also require more funding, so I would probably have to find a way to raise capital via the sale of equity, or perhaps I could crowdfund enough on a future product to keep things afloat.

Right now I have in the product pipeline OpenBeacon 2, which is perhaps 80% finished (most of the remaining work is in firmware), and a handful of small useful RF modules. On the drawing board I have a couple of QRP transceiver designs utilizing the Si5351 that would definitely fall into the category of cheap and cheerful, and would probably be a lot of fun to bring to market. Also, since OpenBeacon 2 is based on the Arduino Zero, I've been discovering the power of the Atmel SAMD series of ARM Cortex-M0+ microcontrollers. I'd love to develop a dev board derivative of the Arduino Zero using some of the SAMD line that have a bit less flash storage and consequently are a bit less expensive. I think hams (and other hackers) would really like such a device.

The other option is that due to time constraints I just cannot realistically continue Etherkit as an active business (at least regarding retail sales of physical stuff). If that happens, then I would still like to stay active in some way, under the restrictions in my available time. Perhaps writing may be a good choice, since that is quite portable and can be picked up and set aside a lot easier than designing electronics. Writing technical books, for a new blog that earns money somehow, or as a contract writer for an existing website are all possibilities. I've thought it might be nice to write about test and measurement for the ham's home lab.

Either way, I'm not done with the ham homebrew community. The open question is merely how much time I can still give. Let me know what you think about the above in the comments.

Back to the Shack

It's been a while since I've transmitted any RF on the amateur bands other than the testing that I've been conducting for OpenBeacon 2. Between how much time I've been putting into OpenBeacon 2 (and refining the Si5351 library), it's been very difficult to find the time to sit down to operate. On top of that, I honestly just haven't felt much of the operating mojo, so unsurprisingly I haven't even tried to make it a priority.

Generally, it's not great to force these things, but I'm getting to the point where I'm feeling a bit disconnected from amateur radio and that I really need to be QRV again in order to rebuild that connection. The ARRL Centennial in 2014 was a great operating year for me because it gave me a concrete and interesting goal to pursue.


So I figure that I need something similar to get me motivated again. A good goal perhaps would be to finally finish up basic DXCC from this QTH. As of right now, I stand at 75 confirmed entities in LoTW. It shouldn't be that difficult to get 25 more confirmations in LoTW by the end of the year, especially if I carve out a couple of weekends for contesting. I used to chase a lot of the big DXepditions as well, and that might be another good source to pick up a handful of ATNOs (assuming I pay whatever fee they charge for a prompt LoTW upload). I'd also like to actually get a successful HF SOTA activation or two under my belt, and this would be a good summer to do that.

The League

Speaking of the venerable institution, I let my membership lapse recently. Not really with the mind to do so, but given the rather significant dues increase, it was becoming a bit more difficult to justify the expense. Yeah, they are only asking $10 more per year, but I have to ask myself if I'm getting $50 of value every year.

I was honestly barely reading the QSTs that were arriving in the mail. However, the archives always have been one of the best features of the membership. I'm glad they do work with the FCC to represent our interests. Their lab does a good job of evaluating products. It feels that their organizational structure is a bit too ossified; a bit too hierarchical for my tastes. Getting feedback to the leadership seems difficult if you aren't already connected to leadership.

On the balance, I'm generally pro-ARRL, but I still don't know that I see the value of just forking over $50 annually. I understand why they needed to do a rate increase (although it probably would have been better to phase it in more gradually rather than a 20% hit all at once). I also understand the economics of why it would be difficult to offer a membership without QST, unless a paper QST was scrapped entirely. I would be curious to see how the rate increase ends up affecting their member numbers and their bottom line.


This is not going to be a particularly pleasant post to compose, but I feel that I owe it to those of you who I interact with regularly to give you some kind of status update. Pardon the light use of uncouth colloquialisms.

As of right now, I am not able to publicly be specific about certain aspects of this situation, as it involves someone other than myself. There may be a time when I am able to share more of the story. Maybe not. I'm not trying to be coy in order to build mystery for sympathy points. There are plenty of terrible people on the Internet, and I want to have a firm grasp on the situation and have my emotions in check before I decide when or if to give specifics on a public blog.

Our household has been hit with some really big, life-altering news. Our family is still intact, no one has passed away, but things are going to be different from now on. It's not catastrophic, but it does alter our course going forward fairly dramatically. No one has wronged us; it's just one of those things that the universe dumps in your lap.

Allow me to rewind a bit. Things were already on shaky ground here over the last month or so between a combination of being a lousy friend to people who I care about and having what felt like a lot of my support system outside of my family seemingly blow up. Momentum on the OpenBeacon 2 project was building up to a good tempo, and then hit the brick wall.

On top of that, I was getting to the point where I could not countenance the absolute torrent of bullshit on what used to be one of my favorite hangouts on the 'net: Twitter. The SNR in my timeline had taken a huge plunge over the last few months, and I had noticed that many of my favorite accounts had gone fully or mostly quiescent. It was getting to the point where I was getting outraged nearly daily it seemed, yet I kept coming back for more hateclicks. It dawned on me that this is not a healthy behavior. (Now I really understand why online journalism is in a race to the bottom with their constant shitposting.) As I've said before, my emotional intelligence may not be great, but even this fool got it after being bludgeoned enough times.

I removed all of my Twitter apps, closed all pages, and disabled all notifications. Done. Haven't looked at it for weeks now. There's a good chance that some of you have tried to contact me there and have heard no reply. I apologize for that. I just can't let myself get sucked back into that miasma right now. If I haven't already alienated most or all of my online friends, I can still be reached via the usual email.

Allow me to say that it has been pleasant to claw-back all of that wasted time from the social media timesuck. I've been able to spend more time reading novels, working, and pursuing educational goals. I'm not going to delete my Twitter account as I want to keep it as an archive, but between my feelings about the medium and the above-mentioned situation, I don't foresee myself actively participating in it any time soon.

To bring it back to where things currently stand, priorities by necessity are going to undergo a large reshuffling. I don't know exactly what the extent will be yet, but I should have a handle on things in a month or two. This includes Etherkit. I'm not sure what form the business will take in the near future, but it will have to change or die. I've got some decent work for Etherkit in the pipeline mostly done; it would be a shame to have to put things to bed before it fully came to fruition. I'll be putting out feelers for assistance and guidance. For now, I'll still continue to sell the Si5351A Breakout Board.

It's one of those times when you have to reassess a hell of a lot of things in your life. I'm laying low because I don't want to make further missteps. I hope that those who know me forgive me for going radio silent lately. I'm having one of those uber-introvert moments where I really need some time to gather my energy before reengaging. I imagine I'll ease myself back into some more blogging on the nominal topic soon enough; the volume of output depending on how things shake out in the priorities department.

Be excellent to each other.

Low Carb Cream Cheese Pancakes

I know this departs from the usual fare, and I have no idea if this will interest any of my readers, but I figure at the very least it will be a good reference for me in the future. I'm living the low carbohydrate lifestyle and while I get along pretty well without having to resort to some of the bizarre low carb versions of normally carb-laden recipes, sometimes I still get the occasional craving for old comfort foods.

Frankly, quite a few of the low carb copycat recipes just aren't that good, and I don't usually make them a second time after my first try. However, I tried this low carb cream cheese pancake recipe and it was one of the few that I liked at least as much as the original, if not better (by the way, that linked site has lots of good low carb recipes). The taste was great; more egg-like than a typical pancake (it's probably more akin to a crepe to be honest). There were, however, a few issues with the recipe. The pancakes were extremely thin and flimsy, and hard to keep intact while cooking. Also, even though the pancakes were quite filling, I wished they had a bit more volume, perhaps just for the psychological effect.

After a bit of experimentation, I believe I have stumbled upon a nice variation of the above recipe. The addition of a bit of baking powder fluffs up the pancakes a bit to add that volume. I also tried a bit of xanthan gum powder (not something many people have sitting in their kitchen cabinet, but useful) to help thicken the batter for cooking, and it seems to have helped a fair bit in that regard. When I cook a batch, I get many fewer torn pancakes than I did with the original recipe. They are still a bit fragile, but not nearly as much as the unmodified version.

So here's my version of low carb cream cheese pancakes:

6 large eggs
6 oz cream cheese (room temperature)
4 packets stevia
1/4 tsp cinnamon
1/4 tsp baking powder
1/8 tsp xanthan gum (optional)

Set the cream cheese out at room temperature a few hours before cooking so that it is soft at the time of preparation.

Place all of the ingredients into a blender and blend on the highest speed for 2 minutes. Let the batter rest for at least 5 minutes before cooking.

Cook in an oiled skillet or griddle at medium-low heat. Pour enough batter to make 6 inch to 8 inch diameter pancakes. Flip carefully when the first side is cooked.

Serve with butter and sugar-free syrup.

Approx. 6 grams of carbohydrates for the entire batch.

Here are a few tips for cooking these pancakes. It's important to use a nicely prepared non-stick cooking surface, as these pancakes are a bit fragile. I use a well-seasoned cast iron skillet, although I imagine other types of non-stick pans would work as well. I prefer cast iron, for its heat storage properties and because I can use my favorite weapon of choice, instead of a plastic spatula.

The key is to keep the heat nice and low so that the pancakes can cook slowly. Let most of the cooking be done on the first side so that the pancake will stay intact when you flip it. It will probably take a few tries to get it right, so don't be surprised if your first few pancakes get mangled.



Even if you aren't eating low carb, if you would like a more savory breakfast pancake, give this one a try. It's a hell of a lot healthier than pancakes composed of white flour and sugary syrup!

More Strange Attractors

As I mentioned toward the end of my post on the Python/GTK+ implementation of the Lorenz attractor, I ultimately wanted to add some of the other strange attractors to my program in order to make it a bit more interesting. So I did just that. It also gave me a good excuse to learn a bit more about how to use and layout widgets in a GTK+ application.

In addition to the Lorenz attractor, the program now will generate the Rössler Attractor and a plot of the behavior of Chua's Circuit. The Rössler Attractor is another well-known system in the world of chaos theory, which you can learn more about by following the above link. Since I'm only plotting a 2D section of each attractor, I have to decide which view to display. In the case of the Rössler, I thought that the X-Y view was better than the X-Z view.

More interesting to me is the simulation of Chua's Circuit, as this is based on an actual analog circuit you can build. The circuit is a chaotic oscillator that consists of the usual L-C elements (and a resistor plus limiting diodes) along with a nonlinear negative resistance circuit element. The negative resistance element is usually implemented with an active device such as an op-amp, although it has been reported that a memristor can also serve this function. The simulation is a system of three ordinary differential equations, much like the Lorenz or Rössler systems, but with a function in the first ODE to represent the behavior of the nonlinear negative resistance element. You can see in the code listing below that this was easy to implement in Python with a lambda function. It's cool to see the pattern drawn on a display, but I think it would be much better to have an actual circuit render it on an analog oscilloscope. One day, I hope to do that, but in the mean time, enjoy these videos of the behavior of such a circuit.

As far as my additions to the Python code, I created a GTK DrawingArea for each attractor, then added them to a Stack, which allows them to be switched with the StackSwitcher widget at the bottom of the screen. For clarity, I also added a legend to each DrawingArea to display which axes are being rendered for each attractor, as the Rössler has a different view from the other two. This code is a bit longer than the initial iteration, but much of it is similar, since the calculation and plotting of each system is nearly the same (yes, I could have factored the code quite a bit, but this is just for fun). Another fun time with code was had!

New Monday

It's hard for me to believe, but it has been more than 30 years since the release of Blue Monday by New Order. I always loved that song as a kid, and it still holds up quite well in my opinion. (In related news, holy crap, I'm getting old). Here, from the mysterious Orkestra Obsolete, via BBC is a retro-future rendition of the electropop classic, featuring all manner of unique instruments available from the 1930s, including the theremin. Some boatanchor electronics goodness in this video, and the music is entertaining as well. I quite enjoyed it.

Lorenz Attractor in Python

Back in the day, when I was a budding nerd in the late 80s/early 90s, I spent a lot of my free time down at the local public library looking for any books I could find regarding certain topics which captured my interest: programming, astronomy, electronics, radio, mathematics (especially the recreational mathematics books), and other topics in the realm of science.

One of my fondest recollections of that time was how accessible that home investigations into some of these topics became due to the advent of the personal computer. Of course, in those times, not every household had some kind of computing device like they do today, but PCs were affordable enough that even a lower middle class house like ours could scrape together enough for a computer with a bit of work.

We also didn't have widespread household Internet, so your options for getting new programs to play with were limited to the relatively expensive services like Compuserve, trying to find warez on bulletin board systems, checking out books and magazines with program listings from the public library, or perhaps if you were lucky, being able to check out a stack of 3.5 in floppies from the library (how were they able to do that with commercial software?). Of course, given the previously mentioned socio-economic status, I was mostly limited to the public library option. Although perhaps some day I'll tell the tale of how I talked my parents into letting me get Compuserve, and then proceeding to rack up a huge access bill on my parents' credit. Oops.

Of particular interest to me was the relatively new field of chaos theory and fractals. These studies were conceived a bit earlier than this time period, but were popularized in the public eye during this time. I got hooked in by the photos published in the groundbreaking books The Fractal Geometry of NatureChaos: Making a New Science, and The Beauty of Fractals. There were also plenty of articles in publications like Scientific American and the books of authors like Clifford Pickover. The wonderful thing about these resources is that many of them not only showed you the pretty photos of fractals and chaotic systems, but actually described and illustrated the algorithms behind them, which allowed you to code your own implementations at home.

During my early work in trying to recreate these forms in my own computer, I had an Atari 800XL with a dodgy floppy disk drive, which made any kind of coding a bit of an adventure as it seemed like my mass storage old successfully worked about half of the time (on a side note, who remembers the even earlier days, where you would type in a machine language monitor program in BASIC, and then transcribe strings of ML from a listing in a magazine in order to get a new program...good times). Things really got serious when we ended up acquiring a Tandy 1000 (I believe the RL version, but I'm not 100% certain about that). Once we had that in the house, I spent many late weekend nights trying to write code to reproduce the fascinating patterns found in the pages of those books. You know you're a true nerd when you get such an electric thrill from finally mastering the code to generate a Sierpinski triangle or Barnsley fern in glorious CGA on your own monitor.

So what's the point of this overwrought bout of nostalgia? Well, I was recently pining for the old days when you could just sit down at the PC and implement a chaos system in one quick setting with minimal fuss. Compiled languages with arcane GUI frameworks were right out. Fortunately, we are blessed with quite a few good replacements for the old BASIC environment. My favorite is Python, and since I use Linux Mint as my primary desktop OS, the GTK+ 3 libraries for Python are already included by default, so it's quite easy to get a rudimentary 2D graphics system up and running quickly.

For my first chaos system coding challenge, I decided to go with the great-granddaddy of chaos: the Lorenz attractor. It's an easy system to compute, and it's quite obvious if you get the implementation right or wrong. Once I got the hang of the GTK+ 3 library interface, it didn't take that long to bang out an implementation of the Lorenz attractor in relatively few lines of Python. The simplicity is satisfying, and reminds me of the fabled old days of coding.

There's the code if any of you would like to play around with it. It should be fairly easy to replicate if you are using any of the Debian-derived Linux distributions, and probably only marginally more difficult with other Linux distros. I have no idea what it would take to get running on Windows, so good luck if that's your OS of choice.

Now I have a framework to build off if I get a further itch for similar experiments. I'm already working on an extension to this code that will render other attractors. It would be fun to find a 3D rendering library that would be easy to use so that I could plot in three dimensions, but that's not hugely critical to me. This is just an exercise to have some fun, capture a bit of that nostalgia, and distract myself a bit during downtime. Hopefully a few of you kindred souls will have derived some enjoyment from this trip down memory lane.

Long Time, No See

I know. I was just starting to get some momentum posting to the blog on a semi-regular basis, and then — the drop off.

I am sorry about that. The Si5351A Breakout Board campaign consumed almost all of my work time. Given the limited amount of actual work time that I have, something had to give. So unfortunately it was blogging.

There's also a bit more unfortunate news, as well as good news. The bad news is that I don't foresee having the time to post as many posts as I would like, so for now, content will slow a bit. The good news is that is because I will be focusing my blogging efforts into the brand new Etherkit App Notes site at I'm going to be working hard to supply fun DIY projects that you can build using Etherkit products, starting with the Si5351A Breakout Board, and involving other Etherkit products as they come online.

In the meantime, it's been very heartening to see all of the neat ways in which people have been incorporating the Si5351A Breakout Board into their own projects. For example, here's a wonderful blog post and video from Mike N2HTT about how he constructed a multi-band VFO using the board and a 128x64 OLED display. I also received this link from Milan about how he use the board to clock his DVB-T dongle for SDR reception. It allowed him much greater frequency accuracy, as well as a way to slightly shift the ref osc frequency in order to see which signals are external and which are internally generated. All very neat stuff!

I won't let this blog completely fade, but I will be putting most of my effort in to Etherkit-related work, so that's where you'll need to look to find most of my new content. Thanks for reading!

The Si5351A Breakout Board Campaign is Here!

I'm pleased to announce that I've opened up the Etherkit Si5351A Breakout Board campaign for contributions! Please stop by our Indiegogo page to get much more information on what we are offering, and how you can help to support us even if you don't plan on purchasing a kit. We did a soft launch yesterday afternoon on Twitter and had a phenomenal response! We hit our initial goal of $500 of funding within about 6 hours of my initial Twitter post indicating that the campaign was open. With any luck, we should be able to hit the stretch goal by the time that the 30 day campaign has elapsed.

I would like to sincerely thank everyone who stepped up early to back our campaign and those who took the time to retweet, blog, and post about our campaign to listservs and other influential media people. I am utterly humbled by the level of support out there.

Update: As of 1600 UTC 12 Jan 2015, we have made the front page of Indiegogo as a trending campaign! Thank you to everyone who has supported us!

Indiegogo: Global Crowdfunding Engine to Fundraise Online - Mozilla Firefox_041

Update: As of 1830 UTC 12 Jan 2015, we hit the stretch goal. Less than 24 hours after launching the campaign. We are doing better than I expected! Time for me to get coding soon. 🙂

Si5351A Breakout Board | Indiegogo - Mozilla Firefox_043

Si5351A with TCXO Update

Just a few days ago, I finally received some of the TCXO parts that I've been planning on using with the Si5351A Breakout Board. I had no problem using one on the remaining prototype circuit board that I have, and at first glance it appeared quite stable and also very close to the nominal frequency (my correction factor for this one was only 8 Hz at 10 MHz).

Direct comparisons are always the best way to do things, so I ran the Si5351 with TCXO through my thermal chamber at the same profile that I did in the last test in my initial blog post. Rather than write a whole new blog post, I updated the original post to keep that data together, which will be handy for future reference. Go forth and look at the update at the bottom of the original post. Thanks!