Find your setup
sleepypod gives you local control of an Eight Sleep Pod. Core runs on the Pod; the web interface, iOS app, and M5 Rotary Dial connect to it over your home network.
Start with Core
You need a supported Pod 3, 4, or 5, access to its stock embedded Linux system, and a computer on the same network. For an unopened device, get root access first: the guide covers opening the case, connecting the serial harness, and logging in as administrator.
- Open the Pod and get root access if you have not done so.
- Install Core and open its web interface.
- Confirm the device timezone and the side you want to control.
- Set a comfortable target and check that the reported temperature changes toward it.
- Create a schedule for the nights you want automatic control.
Choose your controls
| Interface | What you need | Start here |
|---|---|---|
| Web app | A browser on the Pod’s LAN | Core overview |
| iOS app | iOS 26+, plus Xcode 26+ to build from source | Set up iOS |
| Bedside Dial | M5Stack Dial, USB cable, PlatformIO, Wi-Fi | Build and connect the Dial |
The iOS app and Dial are optional. Schedules live in Core and do not require your phone to stay open.
Keep the connection local
The Core API trusts your local network and has no authentication. Do not expose port 3000 or the API to the internet. Connect through a trusted home network; guest networks and client isolation can prevent discovery.
The iOS app and Dial discover _sleepypod._tcp over mDNS. If discovery fails, use the Pod’s LAN IP address. Connection troubleshooting walks through the checks.
Get help
Use troubleshooting for common problems. For a reproducible bug, include the product version and relevant logs in the appropriate GitHub repository . Remove network credentials and personal sleep data before sharing.
Source reference: Core requirements · LAN trust model · iOS requirements · Dial requirements