Golioth is your instant IoT cloud that lets you choose what hardware you want to use. We’re able to remain hardware agnostic because Zephyr RTOS has great cross-vendor support. As the fastest-growing RTOS, Zephyr is well worth learning, but we’ve found most people need a little help getting started. Golioth’s next free Zephyr training happens online on August 23rd. We hope to see you there!
We’ve been hosting these free trainings for the past two years, and our approach has evolved over that time. Golioth’s Lead Developer Relations Engineer, Chris Gammell gave a talk on how we approach hosting remote training at the 2023 Embedded Open Source Summit. Anyone interested in teaching a remote course on embedded development will find this interesting as you will surely face the same challenges we have.
Skipping the Dev Env Setup Process by Using Kasm
The biggest challenge to teaching a new embedded OS is not in the coding work the attendees will be doing, but in setting up every build environment correctly. It takes time to install all the compilers and library code. This is further complicated by differences in attendee OS choices, versions, and existing configuration. We found that anywhere from 45 minutes to the entire training was gobbled up with this step.
The solution we chose last fall is to pre-configure a build environment for all attendees. For an in-person training, this would best be done by providing a laptop to everyone that standardizes the experience. But we’re hosting training remotely, so we spun up a Kasm workspace so the build environment is loaded via web browser.
Each attendee logs into our Kasm instance, which includes the Zephyr SDK tools (compilers, etc), the Zephyr tree (kernel, driver, and library code), Golioth’s Zephyr Training example code repository, the self-guided Golioth Training docs, and Visual Studio Code (VS Code).
As Chris outlines in his talk, with this approach an attended can be compiling their first Zephyr code in a little more than one minute. Admittedly there is some tap-dancing around the issue of programming a local device when the code is being compiled in a remote container. But we’ve had great success doing this with Nordic’s desktop tools.
Getting That In-Person Atmosphere, When Not In Person
Our training is self-guided, using a Docusaurus-based document site that’s available to anyone interested. But one of the benefits of signing up for the live training is that Golioth staff who are experienced with Zephyr are there to share that experience and answer questions. This is no boring webinar, we take the remote-training experience and make it feel a lot more like being in a classroom!
To add interactivity we use the Gather.town online platform. It’s feels a lot like the original Legend of Zelda; you have an 8-bit avatar that you can walk around the virtual classroom. When you get close to other people (or walk onto one of the table-group carpets) a group video chat automatically opens. You can raise your hand using an emoji and an instructor will walk over to help.
In three hours, we get to know each other, learn how to compile and run some code, and discuss myriad topics that transcend the words found on the self-guided training docs.
If your company is planning to host a remote training that centers around embedded engineering, watch Chris Gammell’s talk. He drills down from how Golioth conducts our training to the experiments that led us to these solutions. From large toolchains and local USB ports, to live interactions and working with different attendee skill levels, he will help you find the happy path for your organization.
If you’re still getting up to speed with Zephyr RTOS, join us for the upcoming Golioth Zephyr Training on August 23rd, 2023.