Starlink on the Road: Setup and Real-World Performance

← lab

Starlink on the Road: Setup and Real-World Performance

Mobile Starlink setup, real speeds in various locations, failover to cellular, and what actually works when your office moves every week.

I work from a van. Sometimes.

That means my internet needs to work everywhere. Or at least, enough places to stay productive.

The Setup

Hardware:

  • Starlink Standard (Gen 2) dish
  • Roam plan ($150/month, priority data)
  • 12V inverter wired to house battery
  • Cellular failover (T-Mobile + Visible)
  • Peplink router for automatic switching

The dish mounts on the roof. Cable runs inside. Inverter pulls from a 200Ah LiFePO4 battery charged by solar.

When parked, the system auto-connects. When driving, it switches to cellular.

Real-World Speeds

I’ve used this across a dozen states. Here’s what I actually get:

Best case (rural, clear sky):

  • Download: 120-180 Mbps
  • Upload: 15-25 Mbps
  • Latency: 25-40ms

Typical (campgrounds, forests):

  • Download: 50-90 Mbps
  • Upload: 8-15 Mbps
  • Latency: 40-60ms

Worst case (trees, bad weather):

  • Download: 5-20 Mbps
  • Upload: 1-5 Mbps
  • Latency: 80-150ms

Even worst case is usable for code, email, and video calls. Might not stream 4K, but I can deploy code and run my AI infrastructure without issue.

Where It Struggles

Heavy tree cover — Dish needs clear sky view. Dense forest canopy kills signal. I’ve learned to scout for clearings before setting up camp.

Moving vehicles — Roam plan allows in-motion use, but it’s unreliable. I tried working while someone else drove. Dropped constantly. Not worth it.

Storms — Heavy rain degrades signal. Snow less so. Lightning makes me nervous about leaving it powered.

Congested areas — Near cities or popular camping spots, speeds drop during peak hours. Starlink’s priority data helps, but not always.

The Failover System

This is where the setup gets smart:

Peplink router monitors Starlink health. If latency spikes or bandwidth drops below threshold, it fails over to cellular.

Primary: Starlink (unlimited data, good speeds)

Backup: T-Mobile hotspot (100GB/month, decent coverage)

Emergency: Visible line ($25/month, actually unlimited)

The switch happens automatically. No manual intervention. My SSH sessions stay connected.

Power Consumption

The dish pulls about 50-75W when active. That’s significant when running off battery.

Daily usage (8 hours work):

  • Starlink: ~400-600Wh
  • Laptop: ~200Wh
  • Router/misc: ~50Wh
  • Total: ~650-850Wh/day

My solar setup (400W panels, 200Ah battery) handles this in sunny conditions. Cloudy days I need to ration or run the van engine to charge.

In practice: I monitor battery levels with the same traffic light system I use for finances. Green = don’t think about it. Yellow = be mindful. Red = drive to charge or find shore power.

The Economics

Monthly costs:

  • Starlink Roam: $150
  • T-Mobile: $50
  • Visible: $25
  • Total: $225/month

For comparison:

  • Campground WiFi: unreliable, insecure, often unusable
  • Coffee shop hopping: $5-10/day = $150-300/month, plus wasted time
  • Coworking memberships: $200-400/month, not available everywhere

Starlink is expensive but worth it for the flexibility.

Where I Actually Work

The setup enables some odd office locations:

  • BLM land (free camping) — Best speeds, nobody around
  • National Forest — Hit or miss depending on trees
  • Walmart parking lots — Works fine, not peaceful
  • Rest stops — Emergency only, sketchy at night
  • Friend’s driveways — Best of both worlds

I’ve taken client calls from a mountain pass in Colorado and deployed code from a beach in Oregon. The location is irrelevant as long as the dish sees sky.

Deployment Workflow

When I’m building infrastructure, the workflow is:

  1. SSH into my VPS (Hetzner, Germany)
  2. Git pull changes
  3. Restart services
  4. Monitor logs

Latency to Europe from the US is ~120-150ms over Starlink. Not ideal for real-time gaming, but fine for terminal work.

Docker builds run remotely. I’m not compiling on my laptop over satellite. Push to repo, let the VPS handle it.

What Surprised Me

It works better than expected. I was skeptical about satellite internet for dev work. But modern low-earth orbit makes a difference. It’s not dial-up.

Weather matters less than trees. Heavy rain is annoying but manageable. Tree cover is a hard blocker.

The mental shift takes time. I spent the first month paranoid about connection drops. Now I just trust the failover system.

Power is the real constraint. Internet works great. Keeping batteries charged is the actual challenge.

Integration with Neatworld

My monitoring system tracks Starlink performance:

def check_internet_status():
    """Check current connection health."""
    speed_test = run_speedtest()
    active_connection = get_active_wan()
    battery_level = get_battery_soc()
    
    return {
        "connection": active_connection,  # "starlink" or "cellular"
        "download_mbps": speed_test.download,
        "upload_mbps": speed_test.upload,
        "latency_ms": speed_test.ping,
        "battery_level": battery_level
    }

I can ask my AI Chief of Staff: “Is my internet working?”

It responds with: “Starlink active. 87 Mbps down, 12 up, 42ms latency. Battery at 78%.”

All without opening a dashboard or running manual tests.

The Tradeoffs

Pros:

  • Work from anywhere with sky view
  • Reliable enough for production work
  • Automatic failover to cellular
  • Fast enough for video calls and deployments

Cons:

  • Expensive ($150/month before cellular backup)
  • Power-hungry (limits off-grid time)
  • Requires clear sky (limits forest camping)
  • Setup/teardown time (5-10 minutes per move)

Would I Recommend It?

If you’re full-time van life and need real internet: yes.

If you’re weekend camping occasionally: no, just use cellular.

The breakeven is around 10-15 days/month of remote work. Below that, cellular hotspots are cheaper and simpler.

The Future Setup

Things I’m considering:

Smaller dish — Gen 3 mini uses less power, easier to mount Better battery — 300Ah would give more cushion Automatic tracking — Dish that auto-aims for optimal signal Redundant cellular — Third carrier for triple failover

But honestly, the current setup works. I’m not optimizing until I feel real friction.

The Takeaway

Modern satellite internet makes vanlife work viable.

It’s not perfect. It’s not cheap. But it’s functional enough to run three businesses from a vehicle.

The constraint isn’t the internet anymore. It’s everything else: power, water, weather, laundry.

But at least I can deploy code from a forest. That’s something.