Meta

Be Brave

As previously mentioned, I’ve been experimenting with using the combination of the Brave browser and its advertising partner program to bring in some extra funding for my work (and replace what I was getting from Patreon). You can see from my last blog post on the topic that the results have already been positive.

Now comes word of a new referral program to try to convince more folks to use the Brave browser. If you download and use the Brave browser via my referral link, I can score some BAT from Brave, which helps to fund my work here.

The thing is, I do think using Brave is quite beneficial to you as a user. It’s based on the Chromium engine and is quite snappy. Ad and tracker blocking is baked into the cake by default. It also has a nice feature of upgrading many non-encrypted connections to HTTPS. And I do believe that the Basic Attention Token model of funding is a much more sane and honest way to do things compared to the current model of ads, trackers, spyware, hidden cryptocoin miners, and general trickery that a lot of sites use. So I like supporting a paradigm shift in this field.

The caveat is that Brave is still in what I would consider a beta state; which I would define to mean that it mostly works as it should but you might run into an odd bug here or there. But in my experience it is pretty stable and mature enough to use regularly. If you have even a bit of computer savvy, I think you’ll be fine.

I don’t know if this will be the wave of the future, but I think if it’s not than something similar will be. Give it a try and see what you think.

Meta

Stay Healthy, My Friends

Feh.

This has been a nasty cold and flu season. After having it hit our house twice already this winter, we were struck again this week, with everyone in the house getting pretty ill with the exception of myself. That meant that I had to attend to the family’s needs, and therefore didn’t get much work done on OpenBeacon Mini this week. Fortunately, everyone is now healing and I can devote more time to work again.

I’ve previously mentioned how I upgraded the office/shack network infrastructure by running Ethernet cable from the living room router and by upgrading our internet package. Now, I’ve completed phase 2 of the upgrade by getting a new Asus AC-1900 router to replace the cheap old TP-Link TL-WR841N that we were previously using. The difference between the two are like night and day. Not to mention that the old router didn’t even have Gb Ethernet support, so all around the networking situation is much better now. Good times.

My dog’s fur gets everywhere, as you can see.

Back to OpenBeacon Mini for a moment. I’ve completed about 80% of the menu system at this point. This menu system is almost entirely new code, which is why it is taking a significant amount of time for me to get it complete. A significant portion of it is being implemented as an Arduino library, so once I’m satisfied that it’s working correctly, I’ll publish the library in the Library Manager and let you know about it. The rest of the coding needed to get OpenBeacon Mini in a state where it’s suitable for broader testing should proceed at more of a brisk pace, since I can leverage a lot of the pre-existing OpenBeacon 2 code. More updates to follow soon!

Coding

Si5351 Programming Flowchart

I recently received this nice flowchart in email from Joe Marin, CO7RR which documents a method for programming the Si5351. It looks slightly different from the way I do it in the Si5351 Arduino library and I haven’t personally tried it, so I can’t vouch for its accuracy, but I wanted to pass it along in the spirit in which it was offered. I have seen different algorithms used by different projects, so I know that there is definitely more than one way to do it successfully.

This reminds me that I get inundated with requests for help and bug reports/feature requests for the various open source code that I maintain, and it’s kind of difficult for me to stay on top of all of that, plus work on developing new products, as I’m mostly a one-man operation. I do try my best and thank you for your patience, as I know I don’t answer a lot of you as quickly as would be ideal.

Anyway, hopefully this will be helpful to others. Thanks Joe!

Meta

Many Thanks

Today I received a pleasant surprise in my inbox:

That’s a bit more than $8 at the current exchange rate.

I didn’t know that someone (or multiple someones) was already using the Brave browser and allocating Basic Attention Tokens to me, so that was a really awesome surprise for me today. Thank you very kindly to the person or people who have taken the effort and funds to contribute to me in this way. Since abandoning Patreon, I still haven’t found a good strategy for on-going funding, but it would be great if this method picks up steam. It was a little bit painful to give up the monthly Patreon funds, but I still feel quite good about the decision from a moral standpoint. I’m looking forward to seeing if this model can actually become a thing. From the sound of this, the idea is picking up some steam. The token giveaway mentioned in that article is over, but they say there will be another soon, so watch for it.

Meta, Twitch

A New and Improved Experience

As you have probably seen, I’ve launched occasional Twitch streaming of my work activities, including schematic capture, PCB layout, library coding, firmware coding, and even some solder melting. It’s been a bit of a learning curve, but I’ve been traversing it fairly successfully, I think. However, one big problem that I was having was with the quality of my stream output.

Allow me to describe my home office and network infrastructure situation. We have Frontier FIOS internet, which is fiber optic to a junction box on your house, when then downconverts to RF over coax, like cable internet. Our modem and router live in our living room. The router is a cheap TP-Link flashed with DD-WRT. My shack/office is in a bedroom adjacent to the living room. Our house is early 70s vintage, so no network cabling was wired into the house. The old office network setup was another Linksys router flashed with DD-WRT configured as a wifi bridge, with all of the office devices connected to the bridge via Ethernet cable. In effect, nearly every device in the house was connected via wifi. Given the combination of the cheap router and wifi congestion, my internet speeds were slow. The internet package I had from Frontier was labeled at 25 Mbps download and 10 Mbps upload, but I’d be lucky if I could get 5 Mbps each way from the office. This meant that the Twitch stream was being bandwidth-choked, since it needs about 2.8 Mbps upload on a consistent basis, which this setup couldn’t provide.

So in order to provide a better stream experience, I did a couple of things. First I called Frontier and got our internet service upgraded to 30 Mbps up/down for a slightly cheaper monthly rate than we currently pay (it pays to check on that every year or two). Then I ran an Ethernet cable installation from the living room near the router to the office so that I could toss out the wifi bridge.

Happily I can now report that from all of the office/shack PCs, I can easily get more than 30 Mbps upload and download speed. I also ran a Twitch streaming test last night from the office PC and got two hours of continuous streaming without a single frame being dropped, which is quite an improvement from the previous streams.

It’s been a few weeks since the last stream, but I’m ready to pick up the pace a bit more again. Watch for more streams soon.

OpenBeacon Mini

OpenBeacon Mini Firmware Coding Proceeds

A brief update to let you know how things are going. I’ve got a long checklist of things to implement in the OpenBeacon Mini firmware, and much of it I can leverage from my old OpenBeacon 2 firmware (although quite a bit of that needs to be refactored and updated). However, one bit that I never implemented properly in OpenBeacon 2 was a menu system, so I decided to tackle that one first, since it will need to be written from scratch.

That’s what I’m working on at the moment. No Twitch stream for today, as I don’t think this would be very interesting to watch as I stumble around trying to figure out a good way to do this in C++. I’ve created a menu class, and I’m working out all of the details and debugging on the desktop PC, so that I can then transfer it to the Arduino environment once it seems to be working correctly. I think it should have that up and running by the end of the day, and that I’ll have another Twitch stream within a few days once I can get back to code that I’m a little more adept at writing.

Arduino, Etherkit, OpenBeacon Mini

A New Arduino Library Appears!

Since I’m waiting for circuit boards for OpenBeacon Mini to arrive, I want to keep the waiting time as productive as possible, so I’ve been working on the firmware. Specifically, one of my recent goals was to factor all of the modulation code out of the spaghetti mess that is the current state of the OpenBeacon 2 firmware (which is my starting point for OpenBeacon Mini).

In that vein, today I managed to finish up work on release v1.0.0 of the Etherkit Morse Arduino library. The majority of the coding work was done during my last few Twitch livestreams, so other than tweaking and cleaning up the code, most of the work today consisted of creating documentation and getting the repository in shape to be a proper Arduino library.

The way that this library functions is quite simple. Since timing in Morse code sending is critical, the end user of the library is required to provide a function that calls the library’s update method every one millisecond. This type of interface was chosen so that the library can be platform agnostic (since Arduinos come with different microcontrollers which have totally different timer functions). An transmit output pin and speed in words per minute is specified when the class in instantiated, and then all you have to do is call the class’s send method to send Morse code on the digital output pin. Alternately, you can have your sketch poll the class’s tx variable and act on it accordingly. Pretty easy stuff.

I’ve put in a request for the library to be included in the official Arduino Library Manager, so if you want to give it a try, wait a day or so for it to be listed there. If you really can’t wait, there are instructions in the README about how to manually install it. Hopefully you find it useful, and as always, please file your bug reports and suggestions for improvements as an issue on GitHub. Thanks!