r/raspberry_pi
•
u/cameron_chill
•
7h ago
Show-and-Tell I built a fully offline Raspberry Pi 5 computer with GPS, SDR, Wikipedia, worldwide maps, and 24+ hours of battery life
TL;DR: I built a portable, battery-powered Raspberry Pi 5 computer with a touchscreen, 1 TB NVMe SSD, offline Wikipedia, worldwide maps, GPS/PPS time synchronization, SDR, educational videos, and a local Wi-Fi network. It runs entirely offline, has demonstrated more than 24 hours of battery life, and draws approximately 6.5 W with the screen off. Most of the internal hardware is custom-designed and 3D-printed.
---
After several months of designing, 3D printing, wiring, and troubleshooting, I think I've finally finished one of my most ambitious Raspberry Pi projects!
I originally wanted to build a portable computer that could provide access to useful information without relying on the internet. Something I could take camping, use during a power outage, or just have available when normal communications aren't working.
What started as a Raspberry Pi sitting on a battery inside a rugged equipment case turned into a much bigger project than I anticipated.
I recently shared the finished build over on r/homelab, but I thought the Raspberry Pi community might appreciate some of the technical details.
The hardware
The system is built around a Raspberry Pi 5 (8 GB) running Debian 13, with a 1 TB NVMe SSD connected over PCIe Gen 3. It boots directly from the SSD.
Everything is housed in a rugged Jack Boss equipment case with a 10.1" touchscreen mounted in the lid.
The system also includes:
12.8 V, 20 Ah LiFePO4 battery (256 Wh)
5 V buck converter and fused power distribution
RTL-SDR Blog V4 receiver with an external antenna connection
ATGM336H GPS module with an external antenna
Additional USB Wi-Fi adapter for connecting to existing networks
External charging and USB-C PD connections
Temperature-controlled cooling fans
Small wireless keyboard/touchpad
Nearly all the internal mounting hardware, including the screen bezel, was custom-designed and 3D-printed.
What the Pi is running
Offline Wikipedia: Approximately 124 GB of English Wikipedia stored locally using Kiwix.
Worldwide offline maps: Approximately 139 GB of vector map data, plus additional regional terrain information. I built a local mapping interface using MapLibre that doesn't require internet access.
GPS: The Pi receives positioning data from the GPS module and displays its location on the offline maps. I also connected the module's PPS output to the Pi and configured chrony to maintain satellite-synchronized time without an internet time server.
Software-defined radio: I built a browser-based interface for the RTL-SDR receiver with frequency tuning, multiple analog modulation modes, spectrum and waterfall displays, audio streaming, and recording. I've tested it with NOAA weather radio and experimented with receiving aviation communications.
Offline video library: A small collection of educational videos that can be streamed locally.
Local message board: A simple message board accessible to devices connected to the kit.
Web dashboard: I built a dashboard that ties everything together, along with interfaces for system monitoring, managing downloads, and accessing the different applications.
The Pi broadcasts its own Wi-Fi network, so phones, tablets, and laptops can connect directly and access the services through a browser.
It can also join an existing network through Ethernet or a second Wi-Fi adapter. I configured mDNS so devices on that network can discover the kit by hostname without needing to know its IP address.
All the core functionality runs locally. Internet access is only needed when I want to download or update content.
Battery life
This was one of the things I was most curious about when I started.
With the touchscreen running and the SDR receiving NOAA weather radio, the system consistently drew approximately 8.7 W.
I completed an endurance test exceeding 24 hours, and the system was still running when I ended the test.
I've since added the ability to turn off the touchscreen while leaving the Pi and its services running. With the screen off, the entire system draws approximately 6.5 W, including the second Wi-Fi adapter.
That works out to roughly a 25% reduction in power consumption. The theoretical runtime at that draw is around 39 hours, although I haven't completed a full endurance test with the screen off.
I particularly like being able to close the kit, leave it running, and access everything from another device over Wi-Fi.
The 3D printing and electronics
This ended up being the most time-consuming part of the project.
I designed custom mounts for the battery, Pi, cooling system, antennas, power distribution, and other components. There were quite a few revisions as I worked through space constraints, cable routing, and airflow.
One of the more interesting challenges was the touchscreen.
The original screen has physical control buttons on the back, which wouldn't be accessible once it was installed in the case.
I replaced those with five TTP223 capacitive touch sensors mounted behind the 3D-printed bezel. Each sensor drives a MOSFET that simulates a button press.
I designed recessed channels into the bezel so the sensors detect a finger through the plastic. They work reliably, and I haven't experienced any false triggers.
The wiring was considerably more complicated than I expected. If I ever build another one, I'd probably design a small PCB to simplify it.
The cooling system was another fun challenge. I built a dedicated compartment for the Pi with a controlled airflow path. The fans turn on at 60°C and shut off below 50°C.
For anyone looking through the construction photos, the white 3D-printed components are early prototypes. The final components are black.
A note about the software
I want to be transparent that I used AI extensively to help develop the software.
I'm comfortable with Linux, networking, and systems administration, but I'm not a professional software developer.
I knew what I wanted the system to do, and AI helped me build the applications. There was still plenty of configuration, integration, troubleshooting, and testing involved.
The CAD design, 3D printing, electronics, wiring, and physical assembly were my own work.
I've learned a lot about software development and integrating different services throughout the process.
Final thoughts
I started this project knowing relatively little about CAD and 3D printing compared to what I know now. I also gained a lot of experience with electronics, power systems, GPS, radio, and designing around the limitations of a small enclosure.
It's not waterproof after all the modifications, but I consider it water-resistant when closed. I haven't formally tested that, so I'm not claiming any particular IP rating.
There are definitely things I'd do differently if I started over, but I'm really happy with how it turned out.
I've included photos of the finished system, some of the software interfaces, and earlier stages of construction.
I'm happy to answer questions about the hardware, software, power system, or anything else!