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!

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.

Empyrean, Etherkit

OpenBeacon Mini Proto PCB Layout Complete

I managed to finish the layout of the OpenBeacon Mini prototype PCB in KiCad this evening while livestreaming on Twitch. A 3D rendering from KiCad is above. It looks about how I sketched it out and wasn’t too nasty to route, so I got that going for me. So I’ll get on order off to the PCB fab soon. I’d like to get some PCBs completed before Chinese New Year, so I can’t delay very long.

While I’m waiting for my PCBs to be manufactured, there’s still plenty to do. Twitch streaming is kind of nerve-wracking for me yet kind of fun, so I plan to do more. I have a little more gear on the way that will allow me to also Twitch stream from my workbench, so that you can spy over my shoulder there as well. I even have a USB webcam for my microscope so I’ll be able to connect that to Twitch for your viewing pleasure. Stop by sometime on the livestream and chat me up.

Etherkit, Twitch

Twitch Success

I’m happy to report that I managed to pull off my first Twitch stream today, and even got a handful of viewers. There were some initial problems, as I was trying to stream at 1080p, but my wifi connection from my office just couldn’t give enough bandwidth for that to work. After restarting with the stream set to 720p, people were actually able to see my stream. Today’s work was on OpenBeacon Mini. I assigned footprints to the netlist and made a first pass layout of the PCB. I do intend to stream again soon, perhaps even tomorrow. Hopefully I’ll be able to finish the PCB layout on the next session.

Find my Twitch channel here and be sure to follow me in order to get notifications, thanks!