Jcorp Nomad: Thumb‑Sized ESP32‑S3 Offline Media Server for Movies, Music & Books
Jcorp Nomad is a DIY, thumb‑sized offline media server built on an ESP32‑S3 that creates a local Wi‑Fi hotspot to stream movies, TV shows, music, e‑books and images without internet, offering ultra‑low power consumption, multi‑device support, extensive format compatibility, and a fully open‑source software stack.
Problem Statement
Travel scenarios without internet access, limited mobile data, and the need to share media across multiple devices create usability challenges. Existing portable solutions such as Raspberry Pi single‑board computers incur high power consumption, heat generation, and cost, while phone hotspots depend on cellular data and are not ideal for multi‑device sharing.
Device Overview
Jcorp Nomad is a USB‑stick‑sized, low‑power media server built around a Waveshare ESP32‑S3 development board with a 1.47" LCD. It runs from a USB power source and uses a FAT32 microSD card (16 GB–2 TB) for storage.
Hardware
Waveshare ESP32‑S3 (1.47" LCD)
MicroSD slot (FAT32, 16 GB–2 TB)
USB power input
Firmware Stack
Arduino framework
LVGL graphics library
SD_MMC driver for storage
Wi‑Fi in AP mode
Web Interface
Plyr video player
jQuery File Tree for file browsing
Admin console with device controls
Theme system (28 preset themes + custom editor)
Core Features
Local Wi‑Fi Hotspot
The device automatically creates an SSID Jcorp_Nomad with default password password (customizable). It supports simultaneous connections from phones, tablets, laptops, or any Wi‑Fi‑enabled browser and includes a captive‑portal that redirects the first request to the management UI.
Media Playback
Video formats: .mp4, .mov, .mkv, .webm via Plyr, with season‑specific folders and resume‑position tracking.
Audio formats: .mp3, .flac, .wav; dynamic queue system allows adding tracks from any page, reordering, and removal.
e‑Book and comic support: progressive‑load PDF reader, low‑memory EPUB reader, infinite‑scroll/web‑toon CBZ viewer, all with progress tracking.
File Management & Gallery
JPEG image browsing
Video clip playback
Upload, download, edit, rename, and delete files
Management Console
Shutdown / reboot
Flash mode
Wi‑Fi configuration
RGB lighting and brightness control
Full library indexing
Credential handling
Theme selection and custom editor
Global Search
Cache‑indexed search provides fast results across movies, shows, music, books, gallery, and generic files.
Comparison with Alternative Solutions
Power consumption: Nomad – ultra‑low; Raspberry Pi – high; phone hotspot – high; portable player – medium.
Heat generation: Nomad – low; Raspberry Pi – high; phone hotspot – medium; portable player – medium.
Portability: Nomad – USB‑stick size; Raspberry Pi – larger board; phone hotspot – depends on phone; portable player – medium.
Multi‑device support: Nomad, Raspberry Pi, and phone hotspot support multiple clients; portable player supports only a single device.
Cost: Nomad ≈ $20; Raspberry Pi ≈ $50+; phone hotspot cost dominated by data fees; portable player – medium.
Customization: Nomad – fully open source; Raspberry Pi – open source; phone hotspot and portable player – closed.
Stability: Nomad – high; Raspberry Pi – medium; phone hotspot – high; portable player – high.
Learning value: Nomad and Raspberry Pi – high; phone hotspot and portable player – none.
Selection Guidance
For portable, low‑power, multi‑device use, choose Jcorp Nomad (ESP32‑S3 advantage).
For high‑performance computing, choose Raspberry Pi.
For temporary connectivity, use a phone hotspot.
For single‑device playback, use a dedicated portable player.
Technical Architecture
Jcorp Nomad
├── Hardware
│ ├── Waveshare ESP32‑S3 (1.47" LCD)
│ ├── SD Card (FAT32, 16GB‑2TB)
│ └── USB Power
├── Firmware
│ ├── Arduino Framework
│ ├── LVGL (graphics)
│ ├── SD_MMC (storage)
│ └── Wi‑Fi (AP mode)
├── Web Interface
│ ├── Plyr (video player)
│ ├── jQuery File Tree
│ ├── Admin Console
│ └── Theme System
└── Media Libraries
├── Movies
├── Shows
├── Music
├── Books
├── Gallery
└── FilesWorkflow
1. Power on device
2. Device creates Wi‑Fi hotspot
3. User connects to <code>Jcorp_Nomad</code>
4. Browser opens management UI
5. User selects media category
6. Content streams to the clientFolder Structure
/Movies
Interstellar.mp4
Interstellar.jpg
/Shows/The Office/S01E01 - Pilot.mp4
/Books/The Martian.pdf
/Music/Artist1/Album1/track02.mp3
/Gallery/image01.jpg
/Files/document.pdfQuick‑Start Procedure
Flash the firmware from the /firmware/ directory using Arduino IDE (board: ESP32S3 Dev Module).
Format a microSD card to FAT32 and copy the /SD_Card_Template/ contents.
Place media files into the appropriate directories ( /Movies, /Shows, /Books, /Music, /Gallery, /Files).
Insert the SD card and power the device via USB.
Connect a client device to the Wi‑Fi network Jcorp_Nomad (password password).
Open a browser, navigate to the UI, click the gear icon → Library Index → Full Scan Now and wait for indexing to complete.
Return to the menu page and stream media.
Mk3 Update Highlights
Integrated Plyr library for a unified playback UI and Apple‑device compatibility fixes.
Theme control panel with 28 preset themes and a custom theme editor; mobile‑optimized layout.
Dynamic music queue system with seamless playlist transitions and direct search‑to‑queue linking.
Progressive‑load PDF reader and low‑memory EPUB reader.
Cache‑indexed global menu search for fast results.
Supported Formats
Video: .mp4, .mov, .mkv, .webm Audio: .mp3, .flac, .wav Books: .pdf, .epub, .mp3, .cbz Images:
.jpgReferences
Project repository: https://github.com/Jstudner/jcorp-nomad 3D‑printable case (STL): https://www.thingiverse.com/thing:7223398 Large‑scale version (Gallion):
https://github.com/Jstudner/GallionAI Open-Source Efficiency Guide
With years of experience in cloud computing and DevOps, we daily recommend top open-source projects, use tools to boost coding efficiency, and apply AI to transform your programming workflow.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
