The Public Lab Kits Initiative uses Raspberry Pi cameras more and more, and was in need of a workflow to generate customized operating system images for specific needs such as the Microscope and Lego Spectrometer Kits.
In general, while Raspberry Pi mini-computer boards are amazing, there's a significant barrier for many people to use them, which is the installation and configuration of the memory card with useful software -- like camera software, for example!
Plug and play
We wanted to have a way to generate different pre-loaded SD cards, repeatably and reliably, for different uses. And we wanted people to be able to simply insert an SD card, plug in the camera and power, and start using the Raspberry Pi as a camera as quickly as possible.
We also had a desire to build a process whereby the community could participate in the construction of the operating system that we distribute with our kits and also to share recipes and ready-made images for usage in specific scenarios.
The default operating system image is meant to simplify the workflow for kit users, so these well-defined features needed to be set up:
- A WiFi hotspot with a _captive portal _(like airport WiFi) so you are prompted as soon as you connect
- A streaming web camera application
- Ability to run scripts (e.g. Timelapse)
- A friendly landing page with links to the above
I was contracted for this and so I had to come up with great shoulders to stand on in order to deliver all features! Disclosure: I am also Public Lab's part time Systems Administrator.
Fortunately thanks to the great work of the Hypriot Project, and the Gitlab CI service, we are able to iterate quickly and collaboratively, from an orderly and flexible base.
Please consider this release a Beta to try out
The documentation is included with the combined image. You may also read it online.
We also have a page for Q&A, troubleshooting, and activity guides here.
Adding a new "recipe" is quite easy -- it is possible to fork our repository, make your modifications and open a pull request, which our system will use to generate a new custom image. You can then download a fully built customized image ready to be burnt into your Pi¹.
¹: Tested on Pi Zero W only.
We'll be thrilled to see this repository evolve in alignment with the communities's needs.