I wrote about my idea of starting "Small Scale Technology" in my personal blog about a week ago.
The hotspot idea seemed to be the easiest one to start with, so here we are now. It's basically a hotspot with potentially useful data available whether you're online or not. Made with off the shelf hardware that you can take apart and repurpose if want. It's all open source (system wise) and the data may have varying licenses (for the data you're really just paying me for the service of downloading it).
What you get
- Some Stack Overflows
- Arch Linux Wiki
- Project Gutenberg (60k+ public domain books)
- Some source code (how much, not sure)
- Various archived websites
- Raspberry Pi 2B
- 256GB microSD card and reader (separate from the OS microSD card)
- RT5370 Wifi
- FreeBSD 12.1
Getting to this point
I have thought through and tested a few concepts and hardware options.
Beaglebone Beagleboard (White)
I like the Beaglebones a lot. Unfortunately, the single core (also on the Black and wifi versions) is limiting, 256MB of memory on the white (not enough to recompile FreeBSD from what I can tell), and single USB port requires use of a hub in most configurations.
It is pretty low power draw. I also feel like the board may have better stability with high current draws than the Pis. It's certainly the most open hardware design I've seen of its class of computers.
While I can make the Beaglebone work, considering the pricing, availability, and features I could offer, it's not the most compelling. I wouldn't mind making a Offspot version with a Beaglebone if there's any interest.
Raspberry Pi 3
This board draws a lot of power compared to the Pi 2 or Beaglebone. One of my goals was to be able to power this from a USB power bank or any typical USB plug (if possible). Just isn't the case with the Pi 3.
It is faster, but the main bottleneck with Kiwix is I/O and the USB interface gives me maybe 18MiB/sec on the Pi 3 vs 16MiB/sec on the Pi 2. Not worth it.
The onboard wifi also doesn't work with FreeBSD.
Raspberry Pi 2
4 USB ports help a lot. It also has 4 cores. Not as fast as the Pi 3, but as power efficient as the Beaglebone. I've found a seller on Ebay selling these for about $20 delivered.
I wanted to be able to fit a Wikipedia ZIM and a Gutenberg ZIM. I tested USB harddrives and they simply can't be powered reliably with imperfect USB power sources to the board. While that could give me 1TB at a very good price point, for something as simple to power as possible, it doesn't make the mark. You can have a lot of good info in a reasonably priced SD card.
256GB seems to be a good price point on SD cards and gets me Wikipedia and Gutenberg with lots of room to spare. I would be skeptical if it would retain the data as well as a harddrive, but this isn't an apocalypse duration data retention solution (at least for now).
I could couple the OS and data on a single SD card. But I don't think it's a good idea. It is simpler, I don't need an adapter. And faster on the Beaglebone.
I like OS and data separation. This way you can update the relatively small OS image if you want to, replacing the card with another if you have to. But your data stays the same.
The reason I went with a micro SD card is partly because I can put an SD card adapter on it with a write protect switch. Far, far cheaper than USB sticks with write protect. This is a big security bonus that the data can't be tampered with at all (to my knowledge). The OS could be hacked and the data is still available.
I quickly realized how much more than just ZIM files I could hold on such a device. I'm including a copy of my blog, other websites, and whatever I feel is somewhat useful and can be shipped on the card without likely invoking a lawsuit. If you'd like something you have to be included, feel free to let me know.
Obviously, not everyone will like the content that comes with it. You might be offended by some of it or think it's a complete waste of storage. That's fine. You can delete it and add something else. But hopefully of the collection there will be a lot that is useful.
I am debating whether to ship with the Pi installed from packages or whether to include source, if I can make it reliably compile what I need. I eventually want to get to a point where it's all source based (or at least has the necessary source included).
I haven't found a good way to get Open Street Maps on the device, but I would love to. Especially with a GPS chip so it could be a decent offline GPS, maybe even with routing.
Software defined radio could be another bonus item.
Some kind of communications for people on the hotspot could be really cool. A little chat room everyone can talk on. Also stats, maybe grafana.
I'm still building out this website, waiting for parts to come in, and need to fine tune the software, installation, and data sets. I also need to design and 3D print cases.