Continuing on the House of Cload Pi.
This though is about the software and how to get it setup and going at least for getting things staged
YOCTO
Being familair with Yocto from other projects, this seems like a good place to start. It means dropping the ease of Raspbian Lite, but adds the customization and flexibility we are going to need to make this work. So, first Task is to get a basic image for a pi3 or pi zero w and then we can work from there. We will be following this toturial to get started at getting a basic setup for a PI. We should be able to add recipes and modify from there. Yocto can also be configured to create cross platform SDK's which will be useful in early development.
SWUpdate
After getting a basic image down we should attempt to get some level of updating system in place for the pi in the field. We are not going to be able to simple remove/replace and SDCard easily if there is a pi stuck some where in a wall or too high, so having a method of updating would be good. We can follow this example and hopefully not run into any snags with the setup. Once here we should be able to start building out new recipes. Ideally setup with a A, B image and leave more space available for dataspace, as we will be storing metrics and camera data or joining all of the data section as a clustered drive.
B.A.T.M.A.N.
This should be down in two stages, the first is as raspbian to get an idea on how well it will work for the needs. First follow a toturialrecipe. Then see if there is a recipe for yocto out of the box or not, if not we will need to create one. Set this up and hopefully get to the point where we can take a blank pi drop in a sd card with the image and have it join the mesh network, this will be a big giant step to make things work correctly. Likely we will need to create a few images here, one for the gateway and multiples for the end points like a pi zero w and pi 3 and pi 4, etc so we can drop and go with a network.
Base Software
If we get through have a drop in mesh network and upgradable image, we can now start down the path of adding software to networks.
- Base Software
- GCC - Everything needs GCC
- OpenCV, GPIOD, IIO, etc. - Libraries for interfacing with all of the hardware.
- Node Red - A flow controll system.
- Influx - For storing time series values.
- Grafana - For viewing data on the devices.
- Nanite - Personal flow library
- Other, not entirely sure what all we will need to make this work, but we can figure it out and add it all to the receipes.
Distributed Software
With a base setup going, it will be time to start harnessing the power of having all of these networked devices. So let's look at some packages that might be useful here.
- Distrubuted Software
- IceCC - aka ice cream, a distributed GCC
- Haddop - For both hfs experiment and of course map/reduce.
- OpenMPI - Not sure how well this will work, but worth given it a shot.
- Tensor Flow - For machine learning in parrallel
- Gluster - Clustered disk space. Does not have to be Gluster, just an example.
- HTCondour - Or some other type of bath based interface.
- HiveQT - For distributed data collection, although more likely this will be a bunch of mosquitto's
- Other - Can try things like kafka, cassandra, etc, and build those onto the cluster.
Overall not sure how many of these will handle a system that will be continously growing and could have some nodes that disappear altogher so likely need something to manage it all. Of course docker/k8y comes to mind, we will have to see how well that'll work on the pi zero w's which look like they are going to be a majority of the House of Cloud PI, as they fit just about anywhere.
Other Software
Going to need a gateway with some level of monitoring software on it along with a something like Home Assistant to cover the HA part, will need to run BATMAN-ctrl to view the mesh. Some of the tools will need be bumped up to a web front end. I also feel like the gateway should have a monitor on it, but not a requiement at this point.
Starting to look like this useless thought is starting to form into a not-so-useless thought.
Comments