How to Turn Idle Devices into a Free Secondary Screen in 10 Minutes with BetterCast
Turn idle iPads, phones, or spare PCs into a free second display with open-source BetterCast. This guide follows the official README: install from bettercast.online (DMG/installer), allow TCP 51820 and UDP 51821, connect via sidebar discovery, and arrange extended displays.
How to Turn Idle Devices into a Free Secondary Screen in 10 Minutes with BetterCast
Have you ever found yourself juggling windows while coding, struggling to fit all your assets on screen during video editing, or dealing with overlapping shared screens and chat windows on video calls? Buying a new monitor is pricey, Apple's Sidecar requires the whole ecosystem, and many alternatives come with monthly subscriptions.
In this guide, I'll show you how to use the open-source project BetterCast to turn an idle iPad, old phone, or spare laptop into a free, account-free, subscription-free extended display. The Mac sender is production-ready; the Windows sender is currently in beta. Receivers cover iPhone, iPad, Android, Windows, Linux, and another Mac. Follow the official install page and you can usually light up a second screen in about 10 minutes.
Install steps and ports below follow the official README: StephenLovino/BetterCast and bettercast.online.
🧰 Prerequisites
- A host (sender): Mac (recommended) or Windows (sender beta; use the official installer so the virtual display driver is installed)
- A receiver: iPhone / iPad, Android phone or tablet, Windows / Linux PC, or another Mac
- Network: non-Apple receivers need the same Wi-Fi / LAN as the host; Apple-to-Apple can use AWDL peer-to-peer without a Wi-Fi router
- Mac permissions: grant Screen Recording (capture the display) and Accessibility (relay mouse/keyboard from receivers)
💡 BetterCast stays on the local link—no third-party servers and no account. If there is no shared LAN, create a hotspot on any device and connect the Mac to it.
🚀 Quick Start: Light Up Your Secondary Screen in 4 Steps
① Install BetterCast on the Host (Sender)
Official builds come from bettercast.online/#install—not the outdated bettercast-server binary or a localhost:5000 admin panel from older write-ups.
macOS (unified sender + receiver):
- Download the latest DMG (notarized and signed with an Apple Developer certificate)
- Open the DMG and drag BetterCast into Applications
- Launch BetterCast and grant Screen Recording and Accessibility
The receiver side auto-starts in the background—no mode switch. To send your screen, pick a discovered device from the sidebar.
Windows (sender beta + receiver):
- Download and run the official installer (prefer the installer over a portable build so the virtual display driver is installed)
- On first launch, SmartScreen may warn—follow the site guidance (the Windows build is not code-signed yet)
- Choose a receiver from the device list
② Install the Receiver on the Extra Screen
Grab the matching package from bettercast.online/#install, matching the official README:
- iOS / iPadOS: install BetterCast on the App Store (README notes it may not yet be available in the EU while trader-status verification is pending)
- Android: latest APK from the site; Wi-Fi plus optional ADB USB tunnel
- Windows: same installer, usable as a receiver
- Linux: AppImage,
chmod +xand run (receiver; marked beta) - Another Mac: the same BetterCast app acts as a receiver—leave it open to be discovered
③ Connect (Auto-Discovery, No Pairing Codes)
BetterCast discovers devices via mDNS (_bettercast._tcp); Apple devices can also use AWDL.
- Open BetterCast on both host and receiver
- Select the target device in the host sidebar and connect
- Each receiver gets its own virtual display (independent resolution, input, optional audio)
Ports (official README): primary video/audio over TCP 51820; chunked frame delivery over UDP 51821. Allow these—not the old port
5000.
④ Arrange Displays
- Mac: System Settings → Displays → Arrange; set to Extend, not Mirror
- Windows: Win+P → Extend → Display settings to position and scale screens
⚠️ Black screen or missing discovery: confirm same network (or AWDL for Apple-to-Apple), allow TCP 51820 / UDP 51821, then restart both apps.
🎯 Quality & Link Behavior
Per the official README (no bettercast-server config CLI):
- AWDL P2P (Apple-to-Apple): up to about 60 FPS at full bitrate
- Wi-Fi infrastructure: about 30 FPS at the selected bitrate (default 20 Mbps) with shorter keyframe intervals for faster recovery
- Android ADB tunnels: quality policy close to the P2P tier
- Audio: optional per-device AAC-LC (128 kbps stereo)
- Multi-device: multiple receivers at once, each with its own virtual display
Latency depends on your gear and network; when something fails, check ports and discovery first.
🛠️ Troubleshooting Guide
| Issue | Cause | Solution |
|---|---|---|
| Device not discovered | Different networks / mDNS blocked / AWDL not ready | Same Wi-Fi or hotspot; for Apple devices, reopen apps closer together |
| Discovered but black screen | Firewall blocking stream ports | Allow TCP 51820 and UDP 51821 |
| Mac capture / input broken | Missing permissions | Grant Screen Recording and Accessibility |
| Windows sender flaky | Portable build without driver | Use the official installer; remember sender is still beta |
| Android stutter on Wi-Fi | Congested radio | Prefer 5 GHz, move closer, or switch to ADB USB |
💡 Real-World Scenario: Dual-Screen Coding with an Old iPad
- Install BetterCast on the iPad from the App Store and keep it open
- Install the macOS DMG on your Mac; grant Screen Recording and Accessibility
- Select the iPad in the Mac sidebar and connect until an extended desktop appears
- In VS Code, drag the terminal or docs panel onto the iPad
- Code on the main screen while watching logs or API docs on the side
Want three screens? Add an old Android tablet or Linux laptop. Multi-receiver support is documented under the project’s Multi-device feature.
🔚 Conclusion
BetterCast’s value is simple: put idle hardware back to work at zero software cost. The correct path today is official DMG / installer + sidebar discovery, with ports TCP 51820 / UDP 51821. Do not look for bettercast-server or open http://localhost:5000.
If something breaks, file details (sender/receiver platforms, versions, connection type) on GitHub Issues. The best tool isn’t the most expensive one—it’s the one you can run from the official steps today.
Project: StephenLovino/BetterCast · Downloads: bettercast.online