A first (FIRST?) livestream

Like so many others, most plans for this year got sideswiped by the challenge that is COVID-19. While I have not (yet) been directly affected, I know several people who have and there have been confirmed cases at the company I work for. This makes it a bit of a challenge to get the First Tech Challenge team I help mentor ready for the upcoming competition year. Even more challenging was the fact that while I could hand out code samples that should work, I had no good way to verify that they actually did. This changed last week, when I managed to acquire a REV Robotics Control Hub (opens new window). This piece of kit was not competition legal in our area last year, but is this year. It effectively combines what were two components last year (the REV Expansion Hub (opens new window) and the Android 'phone running the FTC Robot Controller (opens new window) application) into a single piece of hardware.

I decided that I would go way out on a limb and let the team see me fumble and falter with getting things up and running. One of the challenges several team members have is a fear that they don't know enough, and that they'll break things. Well… realistically I don't know that much more than them. Sure, I've written firmware to go on the field equipment my company manufactures, but that was over a decade ago. These days, my code is more likely to be interacting through a REST API than it is directly waggling a set of General Purpose Input / Output (GPIO) pins. Yeah, sure, I play with the Raspberry Pi… but that's all it is. Playing. Anyway…. I decided that it would be a good thing for the team to see me not knowing exactly what I was doing. I asked them where they would want me to stream if I did so, and the overwhelming answer was Twitch. I wasn't familiar with that either, but I set myself up with an account.

Thanks to COVID-19 we haven't met in person since mid March. I had been using OBS Studio (opens new window) for our online meetings and it seemed to have worked reasonably well, aside from the fact that folk couldn't read what was on my screen when I shared it. The complaint was always that the text was too blurry. There also seemed to be a significant amount of lag, but it was unclear if that was something related to a poor choice of OBS setting or my laptop being woefully underpowered when it came to high performance graphically intensive tasks. After quite a bit of poking around, I found what seemed to be the problem. My display resolution was set to a different value than the desired output size. As a result the CPU was having to do a lot of extra work resizing things. Having found the problem it was relatively trivial to change the resolution of my second monitor (the one I had set as sharable to show code etc.) to the same size as the output. Magically a lot of the challenges (and blurriness) vanished!

The stream itself is nothing special, but if you're curious you can find it below.