You can build a hub that proves Haven’s three core claims with no internet and no cell service:
- Shared library: every phone in the house opens offline Wikipedia, medical references and maps from one hub.
- Walkie-talkie at home: phones on the hub’s Wi-Fi talk to each other with a free push-to-talk app.
- Family messaging across town: two pocket radios send texts and GPS locations over the Meshtastic mesh.
It reuses phones you already own and leaves out the router, SSD, battery backup, roof antenna and weather alerts. Those come in the full prototype once this one works.
What it looks like
The Pi sits at home with the hub radio plugged into it. Phones at home use the hub’s Wi-Fi for the library and push-to-talk; a family member away from home texts the house through the mesh radios.
Blueprint 1: Wiring diagram
There is no soldering. The only cables are the power supply into the Pi’s USB-C port and the hub radio’s magnetic cable into a Pi USB port; everything else is wireless.
| From | Port | Cable | To | Port |
|---|---|---|---|---|
| Wall outlet | AC socket | Power supply’s own plug | 27W power supply | AC input |
| 27W power supply | USB-C | Attached USB-C cable | Raspberry Pi 5 | USB-C power port |
| Raspberry Pi 5 | USB-A (any) | T1000-E magnetic USB cable | Hub radio | Magnetic pogo pins |
| Family radio | Magnetic pogo pins | T1000-E magnetic USB cable | Any USB charger | USB-A |
Blueprint 2: Case drawing
The Pi screws onto four standoffs on its published 58 × 49 mm hole pattern (source), and the radio stands upright in the dock on the back wall. The T1000-E slot is sized from its published 85 × 55 × 6.5 mm card size plus 0.6 mm clearance per side.
Blueprint 3: 3D-printable case
The printed case holds the Pi and adds a slot that holds the hub radio upright. The print files, haven_min_case_base.stl and haven_min_case_lid.stl, and the editable source haven_min_case.scad will be published here alongside the guide.
| Setting | Value |
|---|---|
| Material | PETG (handles the Pi’s heat better than PLA) |
| Layer height | 0.2 mm |
| Walls | 3 perimeters |
| Infill | 20% |
| Supports | On, for the port window tops only (or accept slight sag on the bridges) |
| Orientation | Base: floor on the bed. Lid: flat face on the bed, lip up. |
| Print time | Roughly 3 to 4 hours total on a typical printer (estimate) |
Hardware: 4 M2.5 × 6 mm screws (thread-forming, or standard screws into the 2.2 mm pilot holes) and 4 small self-adhesive rubber feet.
Build steps
Plan on one evening for assembly and setup, plus overnight for downloading the library. Do steps 1 to 6 while you still have home internet.
1. Assemble the Pi
- Press the fan’s connector onto the Pi’s fan header, then seat the Pi in the case.
- Leave the microSD card out for now.
2. Load the operating system
- On your computer, install Raspberry Pi Imager from raspberrypi.com.
- Choose device Raspberry Pi 5, OS Raspberry Pi OS Lite (64-bit), and your microSD card.
- Open the settings (gear icon) and set:
- Hostname:
haven - A username and password you will remember
- Your home Wi-Fi, so the Pi can download things during setup
- Enable SSH with password login
- Hostname:
- Write the card, put it in the Pi, and plug in the power supply. Wait about two minutes.
- From your computer’s terminal, connect:
ssh yourusername@haven.local
3. Update the Pi
sudo apt update && sudo apt full-upgrade -y
sudo reboot
4. Install the offline library (Kiwix)
-
Install the Kiwix server:
sudo apt install -y kiwix-tools mkdir -p ~/library -
Browse the file list at download.kiwix.org/zim/ and pick files that fit your card. Good starting set:
- English Wikipedia without pictures (
wikipedia_en_all_nopic): the core library - WikiMed medical encyclopedia (
wikipedia_en_medicine) - Wikivoyage (
wikivoyage_en_all)
- English Wikipedia without pictures (
-
Download each one into
~/library(replace the file name with the current one from the list):cd ~/library wget -c https://download.kiwix.org/zim/wikipedia/wikipedia_en_all_nopic_YYYY-MM.zimThe
-cflag resumes a download that gets interrupted. Large files can take hours. -
Make Kiwix start automatically. Create the service file:
sudo nano /etc/systemd/system/kiwix.servicePaste this, changing
yourusername:[Unit] Description=Haven offline library After=network.target [Service] User=yourusername ExecStart=/bin/sh -c '/usr/bin/kiwix-serve --port=8080 /home/yourusername/library/*.zim' Restart=always [Install] WantedBy=multi-user.targetThen turn it on:
sudo systemctl enable --now kiwix
5. Install the walkie-talkie server (Mumble)
Mumble is a free voice-chat server with push-to-talk. Running it on the hub means voice never leaves the house.
sudo apt install -y mumble-server
sudo dpkg-reconfigure mumble-server
Answer Yes to start at boot, and set a SuperUser password when asked. Write it down.
6. Prepare the phones and radios
- On each phone, install Meshtastic, a Mumble client (Mumla on Android; test an iPhone client before you rely on it), Organic Maps, and an offline AI app such as PocketPal AI.
- In Organic Maps, download the map for your state.
- In PocketPal AI, download a small model (around 3B parameters) and ask it a question with airplane mode on.
- Charge both T1000-E radios with their magnetic cables.
- Pair radio 1 to phone 1 in the Meshtastic app by Bluetooth. Set Region to US.
- Create a private channel (for example
HavenFamily) with a random key. Share it to phone 2 with the channel QR code. - Pair radio 2 to phone 2 and confirm it joins the same channel.
7. Turn the Pi into the hub’s Wi-Fi network
Pick your own password of 8 or more characters.
sudo nmcli device wifi hotspot ifname wlan0 ssid HavenHub password "choose-a-password"
sudo nmcli connection modify Hotspot connection.autoconnect yes
sudo reboot
After the reboot, the hub’s address is 10.42.0.1. To reach it again by SSH, join the HavenHub network and run ssh yourusername@10.42.0.1.
8. Connect the hub radio
- Plug radio 1 into the Pi’s USB port with its magnetic cable, so the Pi keeps it charged and on 24/7 at the house.
- Phone 1 can still connect to it by Bluetooth from inside the house.
- Radio 2 goes with the family member who leaves.
9. Connect the phones
- Join each phone to HavenHub. When the phone warns there’s no internet, choose to stay connected.
- Open
http://10.42.0.1:8080in the browser and bookmark it. This is the library. - In Mumla, add a server at
10.42.0.1, port64738, with any username. Turn on push-to-talk.
Tests that prove it works
Unplug your home internet router before testing, so nothing secretly uses the internet. Record each result.
- Library: both phones open
http://10.42.0.1:8080at the same time and search Wikipedia. Note how long a search takes. - Library range: walk around the house and yard and note where the page stops loading.
- Push-to-talk: both phones join Mumble and talk back and forth from different rooms.
- Mesh messaging: with cell service off on phone 2, send a message from radio 2 to the hub radio. Move farther away each time and record the distance where messages stop arriving.
- Location sharing: confirm phone 1 sees radio 2’s GPS position on the Meshtastic map.
- Offline AI: in airplane mode, ask the phone AI three real questions (water purification, a first-aid question, a car problem). Note whether the answers are correct and how fast they come.
- Reboot: unplug and replug the Pi. Confirm HavenHub, the library and Mumble all come back on their own within about two minutes.
Notes and cautions
- Wi-Fi limits: the Pi’s built-in Wi-Fi handles a few phones over a short range. The full prototype adds a real router for more phones and better coverage.
- Card storage: a microSD card is slower and wears out faster than an SSD. It’s fine for testing, not for a product.
- Radio range: the T1000-E’s small built-in antenna limits range, especially indoors. The roof antenna in the full prototype fixes this.
- Voice range: push-to-talk works only within the hub’s Wi-Fi. Long-distance contact is text and location over the mesh.
- Power: this version has no battery backup and goes down in a power outage. The full prototype adds a UPS board.
- Licensing: Wikipedia-family files and OpenStreetMap maps can be shared with attribution. When you add other content, check that its license allows the same.
Next: the full working prototype adds whole-house Wi-Fi, a 1TB library, AI on the hub, a rooftop relay, weather alerts and battery backup.