A part of my “Solar Server” series of projects, Community Hub was a project built around the constraint of doing useful compute using only solar power. This was meant to be the “tiny” attempt. “Eh, let’s make something small on an ESP32 or something”. What it ended up being was a philosophical exercise in thinking about local compute in a new way.
I am very much drinking the solarpunk Kool-Aid right now. I am very filled with zeal about the entire movement. I've got multiple projects in the hopper that are basically, "What kind of tech would be in line with a solarpunk world"? The idea of this came to me in the context of thinking that if a big part of solar punk philosophy is the idea of local manufacturing, local sourcing of materials, local shopping... what does "local" computing look like? How does computing and information flow operate on a PHYSICAL community level when large infrastructure isn’t the focus?
The thought was initially a community chat room that people could connect to. I tried implementing this on an ESP32-C3 and it worked with 4-5 connections, but started failing around 9-10 connections. Just not enough grunt to support THAT many WebSockets open at once.
But then I remembered that part of the idea of a solarpunk world is a less disconnected community. A location-locked chat room doesn’t make sense in a world where people are systematically encouraged to just go and talk to and spend time with each other. So then I thought "what kind of community information utility would be useful at range”? That's how I landed on a bulletin board.
So let’s break down the features!
From the user side, Community Hub creates an open access point that uses a captive portal to funnel users to the main page. Here, people can make postings that fall under one of four categories:
- Notice: For things like scheduled maintenance of utilities, severe weather warnings, and other things the local community should know about.
- Offer: People offering up goods or services, sometimes with a specific trade in mind. Example: “Free ladder”, “Come pick apples from my tree”, “Free pet checkups”, “Offering my ATV for a dirt bike”
- Needs: People asking for help or goods, usually along with an offer for what they have to exchange. Example: “Need subjects to practice portrait photography; can do family portraits as trade”, “Help me fix my skateboard?”, “Need help moving a couch and refrigerator; pizza and drinks for those who help”, “Looking for good jars for making a big batch of jam; one jar of jam for every 5 empty jars”
- Events: Local events that are open to the community (farmers markets, open air concerts, art walks, local sports, etc)
Users can post their name and set an expiration for the posting (1 day, 3 days, 1 week) after which time the post will drop off of the board. They view active postings on the same page and can filter them by type, which are also color coded. There are no user accounts, anyone can post under any name. This may seem odd in today’s world, but this is a website accessible only within the Wi-Fi range of the ESP32 and is only really useful to people in a specific community.
For admins, they are give administrative control via the password protected Admin panel.
- Board Identity: These are settings like the Board Name, tagline, rules, and footer. There’s also a settable icon (which is just a field for Emojis)
- Manage Posts: Admins can look at postings in a list and have the option to delete them individually, flush the RAM cache of postings to storage (more on that later), or wipe the slate clean
- LED Settings: Some may want to use an LED to indicate recent activity or even just to provide light. Settings include:
- LED Usage Toggle
- A toggle for a consistent pulse of the LED
- A toggle for the LED to pulse on recent activity
- Day/Night time...
Victor Frost