Exploring new tools to add to my toolbox

SCaLE

My primary obligation for Southern California Linux Expo (SCaLE 17x) was to co-present The Trouble with Rovers with Lan Dang on Saturday afternoon. Which meant when Sawppy’s coupler broke Friday evening I had to scramble to fix it for Saturday. A rush repair job is always going to leave some details to be desired but it was sufficient to resume operation.

Sawppy will obviously be one of the visual aids present at our talk, but that doesn’t mean it gets to spend the rest of the day just sitting around. No sir, as soon as Sawppy arrived on location, it immediately started working as a roving billboard for both itself and the talk.

It was not explicitly coordinated beforehand, but the SGVHAK rover was also equipped with advertising for our talk. Both of our rovers were out and about, pulling roving billboard duty, and occasionally our paths crossed in the hallways of SCaLE.

I was happy with the turnout for our rover session. While we did lose a few people who left partway through the talk, it was more than made up for by the enthusiastic people who followed along and came up to ask questions after. I had a lot of fun explaining details on what we did for both rovers, minutiae that we trimmed from the talk proper but was still interesting to our smaller and more technical audience afterwards.

Sawppy continued to roam around Pasadena Convention Center, spreading word of my rover project to people who are excited about the possibility of building their own. Some people thought it would be their motivation to finally buy their own 3D printer, others have all the tools on hand and it’s just a matter of prioritization and finding project time. I was most gratified by a group of students from California State University San Bernardino who thinks it would be a great group project. They are exactly the target audience!

And it’s fun as always to see young children’s faces light up when they see Sawppy, some of whom were eager to take control. My favorite was this 6-year old who loved to drive Sawppy over his own toes over and over.

This year’s Southern California Linux Expo (SCaLE 17x) begins today. Four days of talks across multiple tracks focusing on topics relating to the flagship open source operating system in various ways. From small micro controllers to large cloud infrastructure. Last year’s SCaLE served as deadline and motivation for completing SGVHAK Rover, but it was only for purposes of show and tell. We couldn’t yet do a full presentation as the JPL Open Source Rover project has yet to officially launch until mid year.

But that is no longer a concern, and we even have spinoff projects like my Sawppy rover to add to the mix. Hence Sawppy will be part of our SGVHAK presentation “The Trouble with Rovers“: they’re never really finished, and their numbers keep growing. Rovers are such cool projects to work on there’s always more upgrades and evolution we can perform to make our rovers better. Lan and I practiced this talk at last month’s SGVLUG meetup and hopefully our presentation will be better for it! We’ll be presenting Saturday afternoon 4:30-5:30pm in Ballroom G.

Sawppy will also be present at the Tindie+Hackaday Bring-a-Hack meetup, under their “Birds of a Feather” event umbrella for groups to get a space and meet. It is a free event (with at least a SCaLE Expo Pass) and Sawppy will be there as representative of one of the projects with a page on Hackaday.io. This will take place Friday evening 7pm-8pm in Ballroom B.

Beyond those events, Sawppy will be generally hanging out and cruising about the event and the expo floor. There’ll probably be some time spent at the SGVLUG/SGVHAK booth, but no official scheduled events beyond the two above.

The fourth and final day of Southern California Linux Expo (SCaLE) is a slower-paced and less intense day. Some attendees from out-of-town need to leave earlier to return to work Monday morning, and much of the rest are tired out by the preceding days. The E-ALE people are all gone, presumably to Portland, OR for their next training session at Embedded Linux Conference.

My personal education goal for the day is to understand more about “Capture the Flag” events that have been going on. I understand the idea is to make a fun competition for people to practice computer security concepts in a game arena, but the concrete details are still fuzzy. I’ve known that security CTF isn’t one thing – it’s a category that covers different implementations. And since it takes place on a computer, algorithms have joined the party. The highest profile event I knew about was a DARPA “Cyber Grand Challenge” where, instead of teams of people competing directly against each other, the teams compete indirectly by building AI software to compete against software written by other teams.

But the focus for SCaLE are about people, and not AI algorithms. The conference held three rounds of CTF hosting beginners, intermediate, and advanced competitors. Sadly I had a time mixup of my own fault and missed the beginner round that would have been the best fit. (SCaLE weekend happened to also be the weekend when daylight savings time switched over and not all clocks automatically adjusted.) The beginner and intermediate rounds were hosted using Facebook’s CTF platform. I wished I could have seen it in action and maybe even got some hands-on participation time, but at least I now know about Facebook’s CTF platform and can look into it later on Github.

As an alternate activity, I attended a talk titled “Gamify Security Training with Developer CTFs.” The subject of this talk was yet another variant on the CTF concept. Instead of an abstract competition arena and all teams competing with the same code, this particular competition was designed to be immediately relevant to the developer team by using their own product code. In effect, they were holding a CTF competition where they were trying to compromise their own commercial products. This particular event took a lot more effort to set up than run than something like the Facebook platform, but it was far more engaging to the participants and they found real product bugs to fix. It’s a great concept that can be well worth the higher up-front setup cost.

Well, I never thought I would see this – an engineer from Microsoft presents a keynote to open the third day of SCaLE and the crowd was completely civil about it. John Gossman of Microsoft Azure told the story of Microsoft’s evolving attitude to open-source software, in response to both external market forces and internal cultural change.

John emphasized that open source advocates need not to take his word for Microsoft’s changing attitude towards open source. Judge Microsoft by its actions and, by the attitude of the crowd present, the attitude of open source advocates towards Microsoft has changed as well. (Though John asks people to skip their “hell has frozen over” jokes… he’s already heard them all.)

Personally I’ve seen a reduction in the religious zealotry that used to permeate these discussions. Many developers in the open source world now approach Microsoft in a strictly merit-based manner. The old instinctive animosity is gone… but the Microsoft brand itself isn’t a plus, either. If a Microsoft open-source offering can’t stand on its own merits, the pragmatic developer moves on. It’ll take a lot more work to earn admiration from this crowd.

Don’t discount the progress, though. Having seen some of the attitudes firsthand in the past (and still present in some of the graybeard of the crowd) there’s been a lot. In this context, going from animosity to apathy is a big and healthy step. Will Microsoft work its way up to admiration? We’ll have to stay tuned.

The hardware component for Embedded Apprentice Linux Engineer (E-ALE) program is a PocketBeagle board paired with an accessory board named BaconBits. The PocketBeagle was released a few months ago and is now available for purchase from the usual retailers that cater to the electronic hobbyist & engineer market. BaconBits is more rare – this project was only recently completed to turn the PocketBeagle (which does very little by itself) into a development board for easy experimentation.

When we power up the PocketBeagle for this course, we are presented with an introductory screen offering to take us through a few tutorials that serve as an introduction to the world of physical world programming. In the interest of size and cost, the PocketBeagle itself has very few physical peripherals, so interaction with the physical world requires wiring up external components.

BaconBits consolidates components required for many examples into a single circuit board so we won’t have to worry about breadboard wiring for the relevant exercises. From simple LED and potentiometer to peripherals beyond the basics. There’s an accelerometer available to practice I2C communication, and a 2-digit 7-segment LED to practice SPI communication.

What turned out to be the most important, at least in several E-ALE sessions, is the FTDI serial to USB bridge on board the cape. Serial console to the PocketBeagle is a lower-level interface and absolutely required when we got into the USB Gadget unit of the training. Configuring PocketBeagle’s USB behavior requires taking the existing USB functionality (network connection and mass storage) offline and replacing them with the interfaces in the labs. This means PocketBeagle’s HTTP-based Cloud9 IDE and other network-dependent connections like SSH won’t work. Low level serial is all we have left to communicate with PocketBeagle and work through exercises.

The 16th Southern California Linux Expo (SCaLE 16X) is underway. I attended SCaLE 15X last year but frankly I was too new to Linux to get very much out of it. With a year’s worth of Linux fiddling under my belt, I hope to learn more this time. At the very least, I know more of the words used in the session descriptions!

I had planned out a tentative schedule and the first session was a walk through of the PocketBeagle device. This turned out to be the start of a three-day course titled Embedded Apprentice Linux Engineer (E-ALE) that was an additional, separate $75 charge on top of the conference fee, which I was unaware of. Most of that additional charge goes towards the included hardware:

The parts and labor involved doesn’t quite add up to $75, but it’s close enough for me to decide to register on the spot. (Taking the final available slot.) This way I learn about embedded Linux and I’ll have a little pocket Linux computer to experiment and learn on.

I had thought the two micro-USB cables were redundant but they actually serve different purposes. One part of BaconBits is a serial over USB capability, and plugging in one cable to this port allows low-level serial communication to the PocketBeagle. The other micro USB port is on the PocketBeagle itself, where it presents its normal high-level network and mass storage device interfaces. Some of the exercises were made much easier by having both interfaces available.

PocketBeagle’s high-level web and mass-storage interfaces were straightforward, but I had little prior experience with low-level serial and stumbled a bit. The first (of many potential) solution that worked for me was to use minicom and configure it (minicom -s) to talk to the serial port /dev/ttyUSB0 at 115200 baud, 8/N/1. This was enough to read the output, but in order for my keyboard input to be acknowledged, I also had to turn OFF hardware flow control. Otherwise it would act as read-only without the ability to interact with serial prompt. Can’t follow along with the exercises that way!