Etherkit, OpenBeacon Mini

FT8 Cracked

I’ve got an early Christmas present for you all! In conjunction with today’s final release of WSJT-X 2.0.0 (n.b. I’m not affiliated with that project in any way), I’m pleased to announce that I have now added the brand new 79-symbol FT8 protocol to my JTEncode Arduino library. The new version of the library is currently in testing and not available for upgrade in the Arduino Library Manager yet, so if you’d like to try it out, please download it from the development branch here and install it manually. After I’m confident that all is working well, I will release it to the main branch.

After having a lot of people asking me about it, last week I finally decided to take a crack at reverse engineering the FT8 protocol from the WSJT-X source code. I figured now was a good time since I’m in the final push to get OpenBeacon Mini out to production and a new version of the protocol was coming with the new v2.0.0 of WSJT-X. I had been awfully hesitant to tackle this in the past since all of the modulation algorithms are written in Fortran, a language that I do not know. There are no detailed technical descriptions of the protocol in plain English that I could find, so I would have to depend on reverse engineering the protocol solely from the code.

Armed with a F77 textbook I picked up at Goodwill and lots of Googling, I managed to make a big push over the last 5 days in order to give myself a Fortran crash course and learn how the algorithm works. With a ton of print debugging and by comparing the output of my code to the output of the official ft8code program from the WSJT-X package, I was able to nail it down.

If you are comfortable being on the leading edge of such things, please do give my library a try now and help me test it. It’s nice to see that the JTEncode library has been used in various ham projects out there, and at least once commercial product (other than the upcoming OpenBeacon Mini). I’m sure that the inclusion of FT8 will make it much more useful.

Meta, OpenBeacon Mini, Twitch

Mid-Summer 2018 Update

A quick proof-of-life update for you. The whole month of July was pretty much wiped out for me between the yearly family vacation which was followed by hosting friends from out of town. We had a lovely time, but it left very little time for getting work done. Add to that the fact that the GPU on my main workstation gave out, so I couldn’t really do anything on this PC until I acquired a new one (RX 560 4 GB to make this entire machine Team Red now). So given all of those circumstances, I didn’t really make any progress on OpenBeacon Mini. Apologies for that to my beta testers. Things will still be a bit slow while school is out here for summer break until late August, and then after that I expect to have my full allotment of work time again. Once school is back on, I should be able to do Twitch streaming again as well. Right now things are just too chaotic for that to happen on a regular schedule.

On a side note, I’m sure you seen me talking about using the Brave browser’s BAT publisher program to replace my old Patreon page. I completely understand that asking someone to switch browsers is a very hard ask, especially when the browser is still fairly early in development and needs more work in order to be highly polished. I recently learned of an extension for Firefox and Chrome that does the same function of distributing BAT to registered publishers that the Brave browser does, which should be a lot more tolerable for those who were considering the program but didn’t want to give up their current browser. The extension is called BATify, and it might be worth looking into if such things interest you.

Empyrean, Etherkit, OpenBeacon Mini

OpenBeacon Mini Status – Early June 2018

It’s time for a brief update on how things are going with OpenBeacon Mini, the successor to the OpenBeacon MEPT that’s been a long time in the making. For those who are unfamiliar with the new project, allow me to give a very brief overview of its capabilities. The OpenBeacon Mini is an automated transmitter for amateur radio operators that allows for automated transmission of messages using propagation study modes such as WSPR and QRSS, along with many of the other JT modes and CW as well. The carrier is generated by a Si5351A clock generator IC which is fed with a TCXO reference clock for frequency stability. Low-pass filter plug-in band modules allow operation on any single band from 630 meters to 2 meters. The OpenBeacon Mini detects which band module is inserted and sets the frequency accordingly, making band changes as easy was swapping out a plug-in module. The power and a data connection is provided from a USB micro B connection to any PC. Accurate time synchronization is accomplished through this connection, as long as the PC has time set through NTP. The user interface is a 128 x 32 px OLED display and 7 pushbuttons. As always with Etherkit products, all firmware, hardware design files, and and software is open source. Extra pins from the microcontroller and extra clock ports from the Si5351 are broken out for use in experimentation and expansion.

Something like this project has been on the back burner for a long time, and is finally now able to see the light. I intend to launch this as a crowdfunded product at the same time as my Empyrean microcontroller, which is at the heart of the OpenBeacon Mini. The Empyrean is an Arduino Zero derivative in the form factor of small DIP module perfect for breadboarding. I’ll have more about this initiative to post on the blog in the near future.

My first beta tester, LA3PNA, recently received his OpenBeacon Mini and had a chance to put it on a NVIS antenna for a few hours on 60 and 20 meters. As you can see from below, he received plentiful WSPR spots in that short amount of on-the-air testing.

I have another early beta tester working on getting his OpenBeacon Mini on the air soon as well. I am looking at getting one more early beta tester going with this PCB spin, just so that I can be very sure that the next PCB spin will iron out all of the kinks. If you are familiar with MEPTs, using the Arduino environment to compile and load firmware, and don’t mind a little bit of firmware roughness, I’d love to have you on board. Send me an email to milldrum at gmail dot com to let me know you’re interested.

This weekend, I plan to get OpenBeacon Mini going on 6 meters in order to see how it performs there. It should be a perfect time, since it’s also the weekend for the ARRL VHF Contest. Keep an eye on my Twitter account and this blog for further updates on this project.

Computing, Empyrean, OpenBeacon Mini

OpenBeacon Mini Progress

I know it’s been quiet on the blog front. It’s because I’ve been working through some tricky issues with OpenBeacon Mini firmware. A long story, but the gist of it is that a timer subtlety was causing some hard-to-troubleshoot problems causing inconsistent transmit timing for WSPR. I’ve finally overcome that particular family of bugs, and now have the transmit working reliably. As you can see, I’ve put OpenBeacon Mini on the air for the first time and it’s receiving spots. Now that I’ve confirmed that the basic functionality is working, I need to fill out a few more firmware features and then actual beta testing can start, which shouldn’t be very long now.

On another note, I’ve also been doing more PC and PC parts hustling on OfferUp in order to fund an upgrade to my main workstation. I managed to snag a Ryzen 5 1600 for a good price at $159 at Fry’s, since the new Ryzen refresh CPUs were just released. I’ve been using it for a few weeks now and it’s a fantastic processor. It also handles OBS much better than my old i3, so when I do get back into streaming on a more regular basis, my stream quality should be even better yet. From my testing, I should now be able to push out 1080p 60 FPS video to Twitch with no problem now.

Stay tuned, as the news around here should pick up again.

PCs

PC Upgrade

Back in the day, I used to be a PC build enthusiast, but as you can imagine things like starting a family can cause you to put hobbies like that on the back burner. So over the last 10 years or so, I’ve only minimally kept up with what has been going on in the PC world, and also have not put a lot of effort into my own PC setup here. But the old bug recently decided to bite me again, so I’ve been ramping back into the world of PC building and upgrading (especially budget acquisitions).

Before I go further let me give you a quick description of my current office PC setup. As some of you probably know, I’m primarily a Linux aficionado, so my main work PC is a Linux Mint 18.3 box based on an Intel Core i3-3240 with 16 GB of DDR3 RAM, which is getting a bit long in the tooth. Sometimes, I still need to run Windows programs (and I occasionally like to game on my PC), so I also fairly recently built a budget Win 10 PC from a Xeon X5460 (a decade-old quad core CPU) that I modded to work in a consumer-grade LGA775 motherboard, along with 8 GB of DDR3. That system was decent, but being based on a 10-year old processor, was also prone to showing its age at times.

I’d say that the rekindling of my interest in PC building as a hobby coincided with the release of AMD’s Zen architecture processors about a year ago, which is the first time that AMD has been competitive with Intel in performance for quite a few years. So as I have been watching how the first-generation Ryzen CPUs stack up against Intel’s offering, I have been more and more curious to try one. I used to be a pretty big AMD fan back in the Athlon 64 days, but I won’t deny that their later stumbles made me lose a lot of interest in them.

What really put me over the top was the more recent release of the two new Raven Ridge APUs (CPU plus integrated GPU): the Ryzen 3 2200G and Ryzen 5 2400G. The former being a 4 core/4 thread CPU for $99 and the latter 4C/8T for $169. Each has a Vega graphics core on the die; the 2200G having 8 compute units and the 2400G with 11 compute units. From looking at reviews of these APUs, it seemed that the processors in them were quite capable, and that for the first time ever, the integrated graphics could play quite a few modern games at 1080p with modest graphical settings and easily play almost any game at 720p. The real value sweet spot of the two seems to be the 2200G, which has a lot of performance for a $99 part.

So I decided that I wanted to build a Ryzen 3 2200G system to replace my X5460 Win10 box. And I wasn’t even going to use the integrated graphics at this point, since I also recently picked up a R9 270X for the amazing price of $40 on OfferUp. After selling off some spare gear on OfferUp and my For Sale page, I made enough money to get the parts that I needed. I used Camel Camel Camel to snag the ASRock AB350 Pro4 for $75, took advantage of an eBay sitewide 20% off coupon to grab an 8 GB kit of G.Skill F4-2800C16-4GVR DDR4 RAM for about $75, the 2200G for the MSRP of $99, and a Deep Cool GAMMAX 300 CPU cooler for $13 since I intended to overclock.

The build was very smooth, although I didn’t take a photo of the final result because I ended up using the only ATX case that I had on hand, which is kind of old and doesn’t have any cable management features, so it looks like a bit of a mess inside. Although I heard that the stock cooler that comes with the Ryzen isn’t bad, I wanted to have something better on hand so I could overclock without worry. I can say that while the GAMMAX 300 isn’t a total beast it does a pretty good job for the price. With the AB350 Pro4, I was able to overclock the CPU to 3.9 GHz (from stock 3.5 GHz) with no problems at all; as easily as tweaking the CPU core voltage and setting the frequency to 3.9 GHz in the UEFI. My CPU temperatures never got above 60°C in Cinebench, and maxed out at 70°C in Prime95. I also was able to easily overclock my kit of 2800 MHz DDR4 RAM to 3200 MHz by bumping up the RAM voltage just a little bit, which is really nice because the performance of these APUs are highly tied to the RAM speed. Without a doubt the easiest overclocking I’ve ever tried. The only minor hiccup that I encountered was that the Raven Ridge APUs take a special driver package that is different from the standard AMD unified drivers, so be aware of that if you ever build your own.

Next, I curious to see how the new rig would compare performance-wise with my old PC. After getting my overclock dialed in, I ran Cinebench R15 and got a score of 611, which is a fair bit better than the 550 score of the stock 2200G clock and nearly double the score of my old system, which was about 330.

I also noticed that the CPU-Z utility also has a benchmarking tool built into it, so I decided to give that a try as well. It gave my rig a single-thread score of 447 and a multi-thread score of 1783. You can see in the graph above that this score puts it near the top of the list of 4-core CPUs in their database, putting it on par with the last (7th) generation Intel Core i5s. It also whips the stock Ryzen 3 1200, which now looks to be a totally obsolete part since the Ryzen 3 2200G is $15 MSRP cheaper! (Yes, I know that most likely the R3 1200 in that chart is not overclocked, but I doubt it could get to my R3 2200G score even if it were.)

Overall I’ve been very impressed with my new system, and happy with my modest investment in it. It’s great to see a competitive AMD once again forcing Intel to compete instead of sandbagging like it has done for the last few years. I do plan to eventually convert my main Linux rig to a Ryzen system as well, hopefully in the near future. A hearty thumbs up all around from me.

Meta

Dang

A huge thank you to everyone who made the effort to try the Brave browser via my referral link. I ended up getting significantly more BAT than I expected from it. Given the current exchange rate of about $0.22, that’s a nice bit of funding for my work. I very much appreciate all of you who gave it a try. Hopefully you’ll continue to find it useful and will like the entirely new funding paradigm it brings to the Internet.

An extra shout-out to those who are funding the blog in an ongoing basis through Brave Payments. You’re awesome! I feel a lot better about this than using Patreon.

On a side note, OpenBeacon Mini firmware is just about in a state where I can send some initial units out for testing. I’ll have more on that soon. My next blog post will be about some interesting PC upgrades. That should be dropping quite soon. Cheers!

Meta

I Failed To Take My Own Advice

It’s easy enough to give other people directives, but not so much to live up to them. I thought I had managed to dodge the latest round of the upper respiratory viral infection that settled into our house, but I was wrong. The last five days have been riddled with a lot of coughing and congestion. Ugh.

At least now I seem to be on the rebound again, so I can get back to doing some productive work now that I’m back to getting some semblance of a full night of sleep and some of the mental cloudiness is starting to lift. I know I’ve failed to do so the last few times I’ve mentioned a Twitch stream, but I think there’s a good chance I’ll actually be able to do it this Saturday, even if with a scratchy voice. Stay tuned for further info.

Microcontrollers

Si5351 Library Mbed Port

A quick note to let you know that courtesy of David Mills, G7UVW, the Etherkit Si5351 Arduino library has now been ported to the Mbed platform. He reports that it seems to be behaving the same as the Arduino library, so if you’re an Mbed user, definitely go check it out. I was giving some consideration to making this port, but I’ve got so much other stuff on my plate at the moment that I just hadn’t got around to it yet.

Three cheers to David for this! Huzzah! Huzzah! Huzzah!