This is not specifically related to Meshtastic, but I think yall are the best to help me out as this was inspired by the work being done by @mc-hamster and others on the webserver integration.
I’m planning a new project as the cheapest way to make digital inclusion possible for remote villages. The idea is to have a really simple esp32 server with an sd card, that turns on WiFi through Bluetooth as a strategy to preserve energy. Users would connect to the WiFi access-point and be presented with a captive-portal that has links to useful apps, courses and media. I expect that this would have a big impact on digital-literacy for the communities. This could enable us to reach every village that is interested in at least some basic access to information, because of the very low financial barrier.
I’ve ordered ESP32-WROVER-B boards, as they are really cheap and have a sd slot, which is a must. I’d have to include some batteries and at least a 1W solar panel as many of the villages don’t have energy.
So a few questions. Are these the best boards for the job? What the cheapest/best way to power these boards and have the batteries charged by a panel?
Just realized I bought the wrong board Doesn’t have SD card slot built-in. Should have bought this one… I guess I can also order these SD shields to make them useful?
Will it be only html, css and js? I ask because maybe esp32 is not the best to have big files like .apks ^^
You could have a captive portal with the esp32 and the files on an openwrt router, both connected on the same wifi
Regarding the SD module, the esp32 has native SD card support so you could use a module with two extra pins, DAT1 and DAT2 for speed
This is theoretical because I have never programmed a server on an esp32 ^^
Thanks for the feedback @anothercarolina. The idea is to have not only apks, but also large video files. Wouldn’t a esp32 with an sd card be able to simply serve them through a webserver? The devices reading them would be doing the job of actually rendering them.
Having a OpenWRT router would make the project way more expensive and power consuming. The #1 goal is to be as cheap as possible.
As much as I enjoy the esp32, a platform with more pre-built packages may be better suited for a content and learning heavy environment.
The Raspberry Pi Zero W comes to mind. Depending on where you look, you can get one for $5 → $15 dollars and maybe $1 or $2 for an additional SD card. They’re not the most energy efficient device, but with a large enough solar panel it shouldn’t be too bad.
With a full blown linux system, you can install Learning Management Systems for course delivery, Content Management Systems for easy content management (was that a redundant thing to type?).
The esp32 is great for purpose built applications, but having access to linux will give you the ability to use a lot more applications that have been built by other people for distance learning, authenticated learning, etc. There would be little reason to reinvent the wheel.
I’ve been using Pis for this purpose for a while. Using a full linux system does open up a world of possibilities. But there’s also lots we can do with just static file serving, and by using an esp we could cut the price in half or probably even much more counting the whole energy and storage setup. For our realities here in the Global South even 10 USD is a big difference.
I have this project that’s meant for Pis. It’s basically a collection of scripts (for lower-end Pis) and docker-compose files for installing useful services. But it’s still too pricey, was wondering how low of a price tag we could get.
If we could have a full esp32 setup (board+case+batteries+panel+card) for around ~15 USD, which is the price of the Pi Zero W alone, it would also open a world of possibilities for inumerous communities that know the digital world only as Facebook products which they can’t use offline.
Would statically serving videos and apks work on an esp?
When you start talking about large video files serving on wifi, I can tell you that the ESP32 does not have the horsepower.
As part of a charity campaign, I’ve build a bunch of Othernet (previously known as Outernet) raspberry pi’s along with Kiwix databases.
For the price of a RPi, SDR dongle, solar panel and battery you get the entire Wikipedia, Gutenberg library, etc… plus current events, news and weather.
Serving videos and apks, sure. It’ll work just keep your bitrates low and you won’t be able to serve to many clients at once. You’ll probably need to do a few tests on what ever system you develop to make sure it works, but it should be fine.
Yea, I wasn’t expecting many users at once. The web interface could even have a download option, where they could download each video at a time to watch on their phones.
Another thing to consider would be Rachel Pi, which other than it not being as super low power as an ESP32, I think it already does everything that you want to do. Might that work on top of the https server @mc-hamster mentioned?
Othernet is facinating @Chiumanfu, thanks for sharing.
@apt105 I’ve got the software part for a Pi setup pretty much figured out. I’m really looking at a much cheaper and energy efficient alternative to single-board computers.
You could use a second hand router, tplink usually have lede/openwrt support and on a pendrive or external disk have the files
Maybe use esp32 as a static website and some magnet links or .torrent files.
Let someone download them and when someone has those files (both devices on the same wifi network) on their device they can download
I second the Pi0W ideas, but understand your reasons for looking for cheaper and more power efficient devices.
I did a search hoping to find information on esp32 bit torrent clients and came up empty. I think being able to offer content over a p2p network would be ideal. Would be easy with a Pi.
For something totally different I was looking into Progressive Web Apps (PWA) and P2P for sharing and hosting content. I found a company that has a solution but I think they want money to use it. I’d be interested in working with others on combining PWA and P2P
oh yes - ESP32 could work for this application, but I’d recommend something like the $7 Orange pi instead. IMO a way better fit - much easier engineering.
Also if you are trying to make this replicatable, something based on linux (distributed via apt?) could allow multiple possible solutions with whatever the cheapest linux-arm+wifi based board can be found at the time/place. Part of the ‘success’ of meshtastic is that I intentionally didn’t target one particular board but rather “any cheap board with lora”. (very different than other lora projects)
If you are trying to make a “digital media + wikipedia + other info kiosk device for the developing world” you might be best saying "use any cheap device that can run linux, but we recommend the orange-pi (or whatever). Just install linux and then “apt install luandrotool”
@geeksville the audience I have in mind would actually have little use for something like Wikipedia, as they are mostly of oral culture. I’m thinking more in the lines of Android applications that can be useful for them, and most specially video tutorials on how to make use of these tools and teaching about possibilities such as mesh networks (using LibreRouter or Meshtastic).
The idea is too have this really really cheap and plug-and-play solution that we can ship to as many villages as possible. When they power it up (through solar or w/e) they connected to the access point, navigate thru a captive-portal where then can download apks or watch the videos.
The i96 Orange Pi seems like a good solution, but what would the minimal solar-power setup for it look like? A 10W panel with a 5v charge controller, so that it works only during the day (that’s actually an advantage)? Would sun instability, turning the board on and off, “hurt” it?
I’ve built Rpi servers for remote schools in SEA, providing Wikipedia, Kiwix, NextCloud etc. I found that the cost of the Rpi was of little concern compared to the cost of storage, power, and networking. Not to mention, training a local teacher/caretaker so that it’ll actually be used effectively.
I’ve tried various smaller/cheaper boards that serve Wifi, and found their limited performance and capabilities to offer very little value compared to what a full linux machine can serve. The Rpi (and clones) are quite amazing as they are.