I’ve been teaching a little middle-school mobile robot workshop at the 12-year-old’s school, and it’s been a mess. The kids did pretty well assembling the bots and wiring them up, but clearly I needed to spend much more than the couple hours of software prep per hour of workshop time that I’ve been doing.

My first mistake was downloading the newest version of theArduino IDE from the Windows App Store, like it says on the Arduino download page. (I needed that instead of old trusty 1.05, because I’m using Adafruit Metro Minis, and the board definitions come in via a Board Manager url.) Two sessions gone there, as maybe 1 out of 5 times we got a successful compile of even the Blink sketch. A few web searches later “Oh, yeah, they bundled a component in the toolchain that’s incompatible with Windows 10, and haven’t updated it yet.”

Fixed that by downloading from the main site and cloning the installer to half a dozen laptops, and Blink mostly started working, but nothing else did. Instead of failing with an error message the compiles just dragged on forever. Another session lost.

Sudden inspiration, and I deleted the Ardublock tool from all the machines, because who could possibly want to use graphical programming for middle schoolers who don’t like to type. Compiles now completed, but slowly.

Last monday I finally got to the point where we could consider uploading programs larger than an example sketch. Oops, a couple of the laptops didn’t have the Adafruit board definitions. Should be easy to download, right? Except this is a school, so the wifi is a bit wonky. And every time the wifi blipped out the IDE responded by freezing and a requiring a kill signal from Task Manager. Did I mention that these are consumer-grade laptops with woefully underpowered USB ports, so that every time a kid plugged their bot in without first disconnecting the tiny little gearmotor the Port menu greyed out and we had to restart the IDE again to get USB connectivity back?

I think, if you have a solid network environment and never ever foresee the need to use the delightful Teensy series of products, that the cloud-based IDE is the way to go. Otherwise you have a bunch of niggling little problems that will eat up your instruction time and your students’ attention span. If you can rely on students to bring USB drives, that sort of works, or if you can make absolutely sure that each student gets the same machine every time. Or you can use Syncthing or equivalent to establish a shared folder if the local IT rules don’t prevent it, and use naming conventions and subfolders…

Bootable linux would be nice. The 12-year-old is looking at converting the school away from windows as a graduation project…