f451 Labs RPI Projects
Overview
This project includes several applications that run various Raspbery Pi devices with different hardware attachments, sensors, and displays. The applications range from collecting sensor data and uploading to the cloud, to processing data and displaying dashboards on various displays, to hosting dev versions of websites, and more.
The basic idea behind grouping all these projects behind the f451 Labs label is straightforward: most applications are created for educational purposes, are relatively simple, and run on my home network. Most applications are designed around a specific hardware attachment or a set of sensors or displays.
My primary goal is to continuously learn as much as possible about programming for all these devices and the services that they connect to. As a secondary goal, I also want to share what I have learned so that others can use the code as a starting point for their projects.
I’ve already created several smaller modules I can use across most applications. These modules allow me to get custom applications off the ground, as core functions such as communicating with cloud services or setting up standard logging are already handled.
It’s also easier to update custom applications for a given device when I swap out particular hardware (e.g., displays, etc.) as I can load a different module (often) with the same methods for displaying content or collecting data from sensors.
And just FYI, I had 10 Raspberry Pi, 2 Raspberry Pi Pico, 2 PyPortal, and 2 Arduino devices running on my network at my last count 🤓
Languages and technologies
- Python — used on Raspberry Pi 3 and 4 devices. Currently all modules support Python 3.9.x as some of the Raspberry Pi 3 devices still run Raspberry Pi OS (Legacy) (a.k.a Bullseye).
- CircuitPython — used on PyPortal and Raspberry Pi Pico devices
- C/C++ — Arduino Uno devices
NOTE: THe focus of this project is on modules and applications for Raspberry Pi devices.
Projects
Misc. hardware support
- f451 Labs RPI BrainCraft module — STILL IN DEV — module for Adafruit BrainCraft HAT support.
- f451 Labs RPI Common module — helper module with commonly used functions and constants.
- f451 Labs RPI Cloud module — module for connecting to various cloud services (e.g. Adafruit IO, Arduino Cloud, etc.)
- f451 Labs RPI Enviro module — module for Pimoroni Enviro+ HAT support.
- f451 Labs RPI E-Paper module — STILL IN DEV — module for Waveshare 2.7" e-ink display support.
- f451 Labs RPI Logger module — module for managing loggers.
- f451 Labs RPI SenseHat module — module for Raspberry Pi Sense HAT support.
- f451 Labs RPI 3.5" TFT LCD module — STILL IN DEV — module for UCTronics 3.5" TFT LCD (UC-649 Rev C) display HAT support.
Misc. applications
- f451 piBoss — STILL IN DEV — Raspberry Pi 4B (rev 1.1) with Element14 7" touch screen used for showing various dashboards.
- f451 piDEV — Raspberry Pi 4B (rev 1.4) with Argon Fan HAT used for hosting various applications. However, main duty is to host an Nginx web server (DEV) for static sites generated with Hugo CMS. Also using Ngrok to allow (temporary) access from outside as needed.
- f451 piENVIRO — Raspberry Pi 3B (rev 1.2) with Pimoroni Enviro+ HAT. Runs the
enviromon
application and collects misc. (indoor) environmental data, uploads it to Adafruit IO, and displays graphs on the onboard 0.96" LCD. - f451 piF451 — Raspberry Pi 4B (rev 1.1) with Raspberry Pi Sense HAT. Runs the
sysmon
application and collects misc. (internet) speedtest data, uploads it to Adafruit IO, and displays graphs on the onboard 8x8 LED display. - f451 piRED — Raspberry Pi 3B (rev 1.2) with Raspberry Pi Sense HAT. Runs the
sensemon
application collects misc. environment data and displays graphs on the onboard 8x8 LED display. - f451 piGREEN — STILL IN DEV — Raspberry Pi 3B (rev 1.1) with Waveshare 2.7" e-ink display used for showing misc. data on an onboard e-ink display dashboard.
- f451 piSkyLab — STILL IN DEV — Raspberry Pi 4B (rev 1.4) with Adafruit BrainCraft HAT used for OpenCV and Tensorflow Lite