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.

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!

Etherkit, OpenBeacon Mini

OpenBeacon Mini Proto PCBs On The Way

If you watched my previous Twitch stream, you may have seen that I completed the layout of the first PCB spin of OpenBeacon Mini. Today I ordered the PCBs from DirtyPCBs, along with boards for my low-pass filter module, and more Empyrean boards in anticipation of wider beta testing soon.

I wanted to get these boards to the fab before we started to run into the wall of Chinese New Year (which I seem to do nearly every year). I think I’ve ordered them plenty early, and even paid a bit extra for express shipping, so hopefully they’ll be in-hand around the beginning of February.

In the mean time, I’ll be working on some more coding for the OpenBeacon Mini on my Twitch stream and some other ancillary stuff while I’m waiting for the boards to arrive. Stay tuned for further news on this blog.