Musings About Internet & Starlink on a Boat
Being full time boaters and full time workers make things interesting. Both of us doing high tech jobs, we require constant, highly reliable and redundant Internet wherever we are. In this post, we talk about Internet and Starlink, a satellite based Internet solution created by SpaceX and Elon Musk.
What Internet Aboard Means to Us
Being full time boaters and full time workers make things interesting. We are neither full time cruisers, nor marina liveaboards in the traditional sense (if there is a traditional sense in that). We are somewhere in between. Our boat is our home but we also live a crazy and mostly hectic life, with work consuming a lot of time and energy.
Both of us doing high tech jobs, we require constant, highly reliable and redundant Internet wherever we are. Internet is important, actually more than important, a vital requirement for our lifestyle. We each are usually on 6-7 different meetings on any given workday, all of them videoconferences. We are lucky and privileged to work from almost anywhere but we do not have the luxury of providing an excuse for crappy experiences to our companies, teams or customers, which is directly linked to the quality of the Internet connection we have onboard.
As such, we have invested a fair bit in our Internet setup. We have Comcast cable at dock, which mostly solves the problem when we are at our home marina. We are not there very often though, so when we are cruising around, we use 4G/LTE. We have 4 SIMs from 3 different providers: 2 from T-mobile, 1 from AT&T and 1 from Verizon via a 3rd party provider. We also have an option to pickup wifi signals if there are any but wifi is mostly useless with a few exceptions, so we don't really count on it.
We combine all our connections on a single backbone router, which can do load-balancing, connection bonding and smoothing, and provides wired and wireless connectivity to some 20 online devices on the boat. Our typical data consumption hovers close 500 GB a month, half of which is for work and and the remaining used for leisure. That puts us at between 10 to 20GB per day, depending if it is a workday, if I am working on a hobby project or the Admiral is in a particular mood to stream her favorite shows.
We have managed to cruise pretty well with this setup, allowing us to explore Puget Sound in the last two years. While we managed to work from mostly anywhere with the above setup, there have been few exceptions: 1) Some anchorages simply don't provide enough cell coverage, independent of providers and antennas 2) Cross-border travels are very challenging since LTE plans are nowhere near as generous outside of the US.
For (1), I have started a project to document Internet coverage in different places called Boaters Atlas. Essentially, when we anchor or dock somewhere, a piece of software detects the connectivity speeds automatically and shares it. It is available as a plugin for others to use as well. In some ways this is a small database of community sourced Internet speed data, for people who are sharing our lifestyle.
There hasn't been an easy solution for (2) though. When we ventured into Canada this year, we could only stay there for 2 weeks, since we were consuming a 15 GB T-Mobile roaming data plan practically every other day, even after our brining our leisurely Internet usage to almost zero. At $50 a plan, it became a very expensive solution quickly. So we had to come back to US sooner than we had hoped.
Needless to say, we have been extremely excited with the developments happening with the satellite Internet space. This could solve both problems in a very revolutionary way. In practice, this meant Starlink, Kuiper and OneWeb. With Starlink heading ahead of the others, this practically meant Starlink for now.
UPDATE (July 2022): After relying solely on Starlink in remote places of British Columbia for full time work, we decided to get a second Starlink to avoid occasional disconnects and packet loss. You can read more about it in our follow-up article on Reliable Remote Work with Starlink.
What is Starlink?
Starlink is a satellite internet service operated by SpaceX (another crazy Elon Musk project). It provides Internet access using thousands of small satellites that stay in low earth orbit (also known as LEO). If differs distinctively from previous satellite technologies in that, these satellites are smaller (i.e. cheaper) and are in low orbit, meaning they have smaller capacities per satellite. They are not very high up in the sky by definition but as a result they are also not geo-stationary (they don't always stay at the same position in the sky).
These have interesting implications, both positive and negative. On the positive side, latency is lower. This is not always obvious to everyone but satellite communications have high latencies. Latency is just the result of rule of physics. Geo-stationary satellites stay at ~36,000 km/22,000 mi altitude. Even at light speed, it takes 250ms to go to the satellite and come back. And this is the theory with speed of light in a vacuum, in practice it will be higher. Add on top the latency introduced by all additional factors, we are easily looking at 400-500ms latencies in practice. This is high and is noticeable during videoconferencing, voice etc.
Starlink satellites don't have a much of a latency problem since they are in low orbit, a mere ~550km/340 miles, only 1.5% of a geo-stationary satellite (it is actually a range but ignoring that detail for now). This essentially mostly eliminates the latency problem but brings other problems...
Staying in low orbit also means that they are not stationary, they move at a speed of ~7.5km/s (about ~27,000 km/h or ~17,000 mph). You can also see them in the sky, like this:
When things move at that speed, you also need an antenna that can track them in the sky. Imagine constantly steering an antenna mechanically to catch these satellites, it won't really work. This is where phased array antennas come into the picture. Simplifying a bit, phased array means it is a computer-controlled antenna and it can be electronically steered to point in different directions without physical movement. Sounds very cool, right? Yes, until you consider its cost. This is a complex technology and has normally been used in sophisticated radars, fighter jets, etc. So while it is very cool, it is also pretty expensive. It also happens to require a fair bit power.
Combining satellites at low orbit that are cheaper to produce and launch, and an expensive antenna technology that can be used to track them, there is a viable technical solution! Then the question becomes if you can make it viable solution for the masses. Subsidize the antenna cost until you can reach mass production and find ways to decrease that cost. At least this has been Elon Musk's answer for now (maybe Kuiper's and OneWeb's too but we haven't seen many details from them yet).
Starlink has so far manufactured three generations of antennas. Two round ones and one rectangular one. Gen1 and gen2 antennas are round and gen3 is rectangle. A Starlink antenna is also known as Dishy. Dishy is sold for $549 but it is said to be costing at least twice or three times that (remember, phased array is an expensive technology). So current thinking is it is sold at a loss. They also come with motors to orient the dishy to a particular direction after booting or when it loses connection for a period of time.
Mechanical steering with motors may sound odd since we said phased array antennas don't require manual steering. This is probably a compromise to keep the cost lower. I am sure Starlink could build an antenna that would do without any mechanical parts but it would probably require a larger surface area and it would cost more as a result. So Dishy instead points mechanically to the direction of satellites first and from that point on steering is done electronically.
Starlink antenna can cover a cone of 100 degrees and as long as there are satellites in that cone, there is no need to steer it mechanically after the initial direction setting.
Starlink Satellites with Laser Links
Satellite themselves don't provide Internet, they are essentially communication relays between two points. Today, Internet is provided by ground stations that also talk to the same satellites. So a client antenna is connected to a satellite, and the same satellite is connected to a ground station, which is connected to a data center providing Internet. So Internet connection works the following way:
One practical outcome of this is the dependency on ground stations and their locations. If there is no ground station within a couple of hundred kilometers/miles away from your current location, you maybe able to connect to a satellite but you may not be able to connect Internet, since that satellite needs to have direct access to a ground station which may not be possible.
For now, this means Starlink will not work in the middle of an ocean, since there will be no ground stations nearby (there also appears to be a regulatory geofencing but that is a separate discussion further below). It will change in the future though, since Starlink started launching satellites with laser links, which allow them to communicate with each other directly. When enough satellites with laser links launch, even if you are tens of thousands of kilometers away from the nearest ground station, your communication can be carried through multiple satellites in the following way:
Starlink Roaming (a.k.a. Portability)
When Starlink beta launched in early 2021, you could only order it for your specific location, which is even true today. If you think about it, this makes sense since the capacity in a given area (which Starlink calls a cell) has limited capacity. There are only so many satellites that can be providing access to that cell. Launching more satellites will help but ultimately there is a limit, and you cannot exceed that limit. So Starlink limited the number of customers in a given cell, serving them on a first come, first serve basis. When a limit is reached, they don't accept any more customers for that cell until they can increase capacity.
Whatever the reasons, this was a major issue for people who intended to use it for mobile purposes, like from a boat. At the end of the day, you want Starlink on a boat because you want high speed Internet from wherever in the world!
This changed in 2022. After a period of couple months of testing, Starlink officially announced a feature called Portability in May 2022. Portability means you can use your Starlink terminal outside of your service location for $25 month. But this also comes with some limitations:
Best Effort Service: Portability service is provided on a best effort basis. Stated speeds and uninterrupted use of services are not guaranteed. Starlink prioritizes network resources for users at their registered service address. When you bring your Starlink to a new location, this prioritization may result in degraded service, particularly at times of peak usage or network congestion.
International Travel: Starlink can only be used within the same continent as the registered Service Address. If you use Starlink in a foreign country for more than two months, you will be required to move your registered service address to your new location or purchase an additional Starlink to maintain service.
No In-Motion Use: We do not support Starlink use in motion at this time. Using the Starlink Kit in motion will void the limited warranty of your Kit. While our teams are actively working to make it possible to use Starlink on moving vehicles (e.g., automobiles, RVs, boats), Starlink is not yet configured to be safely used in this way.
This is not very surprising in the sense that Starlink wants to charge $25 extra for it both to make additional revenue and deter users from using roaming as a way to bypass cell limitations (and with roaming quality of service is not guaranteed).
Arguably the most important limitation here is the International Travel part. 2 months overseas is not enough for boaters since some destinations take several weeks to get to. Moving addresses maybe acceptable beyond 2 months but if this would require to re-purchase another terminal, that would be quite bad. Time will show how this plays out.
In May 2022, Starlink announced Starlink RV, with the following capabilities:
Pause Service: Provides the ability to pause and un-pause service, allowing users to customize their service to their individual travel needs.
No Waitlist: At this time, there is no waitlist - all orders will be shipped shortly after the order is placed. Supply is subject to network and equipment availability.
Best Effort Service: Network resources are always de-prioritized for Starlink for RVs users compared to other Starlink services, resulting in degraded service and slower speeds in congested areas and during peak hours. Stated speeds and uninterrupted use of the service are not guaranteed. Service degradation will be most extreme in "Waitlist" areas on the Starlink Availability Map during peak hours.
From the perspective of a full time boater, this is identical to Starlink + Portability feature with the following differences:
- There is no registered address so there is no waitlist. You can order without trying to find a random available cell.
- You can pause and unpause the service. While you could still do this without Starlink RV, it is now more convenient with the press of a button.
- There is some confusion around best effort service but this is no different than Starlink Residential when you are on the move. If you are using it on a boat, you are essentially out of your registered address and relying on a best effort service anyways.
- Price of Starlink RV is the same as Starlink Residential + Portability ($110+$25 = $135).
So overall, if you don't plan to use Starlink at a specific location (home, cottage, house boat, etc.) and your boat interchangeably, Starlink RV is a better option for boaters. I think it is fair to assert that Starlink will likely come with a marine option when they can get the FCC license for mobility and they have a more rugged antenna. But right now, we can all pretend to be RVers.
Also as of this writing, you cannot switch between Starlink Residential and Starlink RV per Starlink customer support, though this will likely be available in the near future.
Ordering was limited based on cell availability until Starlink RV was announced in May 2022. Starlink RV changed this so if you are digital nomad, you can order it without a service address. But you need accept you will get a best effort service, which has always been the case for digital nomads.
Separately, Starlink also published a map that shows availability and waitlist in different places. This is only applicable if you order Starlink Residential. However the map also shows availability in different countries, which comes in super handy.
This map is generally misunderstood or misinterpreted. It is actually straight-forward.
Black areas are the places where there is no service (due to lack of satellites, ground stations, regulatory approvals, etc.). Light blue areas are where there is service available and you can order immediately. Dark blue areas are where there is service but the cell is already at capacity so if you order for an address there you go to a waitlist. BUT, it doesn't mean that you cannot roam to dark blue areas with a dish you obtained elsewhere or via Starlink RV. Service is not guaranteed and you may observe degradation when the cell is truly busy (see related section above) but in practice it just works, at least for now.
At this point, if you plan to use Starlink on a boat, the best option is to probably order the Starlink RV option without worrying about a service location.
Starlink on a Boat
Roaming and Starlink RV have opened a lot of possibilities for boaters but it hasn't addressed everything yet, there are still issues to be ironed out for boats.
First and foremost, Starlink is not yet officially supported while on the move. This is more regulatory than technical. They need to obtain additional licenses for supporting mobility. It doesn't mean that this doesn't work but Starlink explicitly warns you that it is not supported and and doing so voids your limited warranty.
Second, unlike other use-cases for Starlink (homes and cottages in remote places, even RVs that are somewhat mobile) boats are not stationary, almost ever, even at a dock. A boat always keeps moving in some shape or form. This movement is a negligible problem in theory for phased array antennas, which can easily steer a beam electronically to track satellites in the sky but in practice Starlink antennas are not necessarily optimized for this tracking, both for their hardware and software. So what we get today is an antenna, that is made as small as possible to save cost, which makes it harder to cover the entire sky with pure electronic steering. Additionally, the firmware is not necessarily optimized to consider the the antenna to move or change it is direction. So when there is a major shift in the direction of the boat (like a tack or a jibe, or wind/tide change at anchor) it may need to re-align itself or re-acquire satellites. This may be a non-issue for casual Internet users, even when using bandwidth hungry applications like streaming, since the streaming services keep a healthy buffer in general. But if it happens in the middle of a conference call in an important meeting or an interview, it is a major problem!
Third, and this depends on how you intend to use, there apparently is a 12 mile geofence from the shore into the sea. We haven't tested this ourselves but apparently, when you cross the 12 mile boundary, it stops working. This clearly is regulatory, since there is no technical reason for Starlink to abruptly stop working at 12 mile boundary. Even when the satellites don't have laser links yet, 12 mile is a negligible range for a satellite, assuming there is a ground station within range. I am certain this will change in the future and is probably just a setting on Starlink backend systems but it is another limitation for ocean passages for now, in addition to lack of enough satellites with laser links.
Then there are other smaller issues for boat usage. One is power consumption. The first generation of Starlink was super power hungry, reportedly drawing more than 100 watts. This has improved significantly and the gen3 rectangular dish draws a mere 48 watts on average. Still, at roughly 100Ah on a 12V system over 24 hours, this is not a small power consumption for a boat, especially a sailboat, unless you have a good battery and solar system.
Starlink is also powered from an AC power source. The router has a direct 120V AC power connector. This means, you will need a pure sine wave inverter on the boat to power it as well, which is not ideal. There are ways to get rid of the router and hack your own solution to power it from a DC power source but it is a bit intimidating if you are not used to hacking stuff yourself. I am providing some details further below on how to do it.
Lastly, the antenna is not built for marine usage. We will see how long it will last in a marine environment but to start with, it has no suitable mounts for boats. So you need to improvise a bit. Some people creatively used fishing holders, others mounted them poles. I needed to create a marine mount by combining some custom stainless steel pieces to mount it on the arch, on a VHF marine antenna mount (for reference, the parts I have used are SpaceX Starlink Internet Pipe Adapter, 1-1/4" x 3/4"Stainless Steel Coupler and Marine Grade Stainless Steel 316)
Having all said that, in practice, Starlink still works amazingly well on a boat, especially considering the above handicaps. It is borderline flawless at dock, very good at anchor and decent on the move if you are not changing directions much and not intending to use it outside of a 12 mile boundary from the shore.
Using Your Own Router
Starlink gen3 rectangular dishy and router have proprietary connectors and they don't provide you an ethernet port. If you already have a wireless network of your own, you can try to connect it to Starlink over wifi but it will not be very efficient.
Instead, Starlink offers an ethernet adapter. Cable coming from Dishy connects to the ethernet adapter instead of the router and then the adapter connects to the Starlink router using the proprietary connector. Ethernet adapter has an RJ45 port on it, you can use it to connect your own router. In this case, you also have the option to put the Starlink router in bypass mode to disable the wifi on it. Unfortunately, this still doesn't allow you to eliminate the Starlink router since it is required to power the Dishy. On a boat, this becomes quite bulky and unnecessary. I think this is the poorest aspect of gen3 design along with proprietary connectors.
However, it is possible to completely eliminate the Starlink router with your own router and also power it from a DC source using a PoE injector. I explain the details further below.
I think eliminating the Starlink router is the best option on a boat unless you use it as your only router and happy to power things from an inverter.
Starlink Power Consumption
Starlink dish operates between 48V-56V DC but the router is powered by 120AC, which behind the scenes does the AC-DC conversion. So pure sine wave inverter is needed. Needless to say, using an inverter to convert 12 or 24V DC to 120AC and then down to 48V DC is pretty inefficient. There are ways to bypass that but requires a bit of a hack, which I explain further below.
In terms of actual power consumption, Starlink (the gen3 rectangular dishy) consumes about 48 watts on average. Here is the power consumption measured by a smart plug over 24 hours. This is without heating, which I hope one will not need on a boat.
While this is the average, the peak power consumption can be higher. I initially tested it with a 7.5A fuse on a 12V connection and it blew the fuse in less than an hour. I then replaced it with a 10A fuse, which has been working. So peak power does not really exceed 120W. Also testing it with a 96W power source caused intermittent problems, so I think the peak usage is somewhere between 96W and 120W (without heating).
Powering Starlink from a DC Power Source
While Starlink router uses AC power, it is possible to hack it to use a DC power source. This will require eliminating the router completely, using your own router, cutting Starlink cables and crimping your own RJ45 connectors. So it is not for the faint hearted but it is doable and that is what we use on our boat.
The Starlink cable that connects Dishy to the router uses proprietary connectors but it is essentially a cat5e shielded ethernet cable. Since Starlink doesn't use the standard PoE spec, they did something that is half ingenious and half a hack, by swapping the wires to change the polarization. This was quickly figured out by the community and shared (I unfortunately don't know who found this first. If you do, please let me know, I would like to give credit where it is due).
Here is what the pinout looks like:
This is actually pretty close to T568B termination standard with the exception of swapped green and blue wires. Knowing this pinout allows us to crimp standard RJ45 connectors and use a a PoE injector.
In order to do this, you will need a couple of parts:
- A crimping tool and RJ45 connectors if you don't already have one. Klein Tools is a premium brand and tool that is easy to use. There are cheaper ones out there but I use this one.
- (Optional) RJ45 connector plug cover. This is not required but it is a good idea to put some specific colored covers to the cables since they will be non-standard. You don't want it to be confused with a regular ethernet cable. I am using red covers to indicate pinouts are reversed.
- Tycon Systems PoE Injector (POE-INJ-1000-WT). Note that not all PoE injectors will work. While you might potentially use a different one, unless you really understand how they work and the differences between different models, just go with this one.
- (Optional) One RJ45 coupler like these. This is really only a backup for you to use if you want to connect the Dishy back to the original Starlink router in case something goes wrong. In below instructions, I assume you have one.
- 48V power source, something like this if you use a 12V battery source. These do get hot, so you may want to overdo it and buy something bigger. I wish Victron had a 12V-48V DC-DC converter but they do not make one. If your boat is 24V, I'd consider a Victron Orion-tr DC-DC step-up converter instead, which is much higher quality.
- Fuse to protect your power source, something like this: 10A fuse. I prefer to use a lower gauge (thicker) cable than 16AWG, so pick the ones you want to use based on your preference.
- A router of your own choosing. There are so many options here and I will not make any recommendations.
Using the crimping tool and RJ45 connectors, you need to produce three cables:
- Cable going from Dishy to Tycon PoE injector. One end will be the proprietary connector going to the Dishy, the other end will be an RJ45 connector.
- Cable going from Tycon PoE injector to your own router. Both ends will be RJ45 connectors.
- Backup cable to connect to Starlink router. One end will be the proprietary connector going to Starlink router, the other end will be an RJ45 connector.
In order to get Cable (1), you need to cut the Starlink cable. Cut it roughly 6-8 ft from the end that connects to the Starlink router. Crimp an RJ45 connector to the cable with the following pinout:
In order to get Cable (2), you need to use an existing ethernet cable. You can use a part of the Starlink cable for this purpose unless you have a separate cable lying around. We will assume you will use the Starlink cable. Cut about 2 ft from the 6-8 ft of cable you reserved. Crimp two RJ45 connectors on both ends, using the following pinouts (top pinout for one connector, bottom pinout for the other):
At this point you have one 4ft cable left. To get Cable (3), crimp an RJ45 connector using the same pinout that you used for Cable (1).
Now you have the cables, the next step is to test if you have crimped them right. Ignore your own router for now and use the RJ45 coupler to connect cables (1) and (3) together. This should get you a cable that will go from dishy to Starlink router, something like this:
Power up your Starlink router and test if your dishy is working. If you have done the crimping right, it should be working.
Next step is to test your own power source and router. Connect the step-up converter to your battery using the fuse. Output of the step-up converter should give you 48V. To be on the safe side you may want to measure it with a voltmeter but it is optional.
Connect the 48V to Tyson PoE injector. Connect the cable coming from dishy to the Tyson PoE injector on the same side where the power connector is and then connect your own router to the other port of Tyson PoE injector.
Power it up, wait a couple of minutes and check if your router has obtained a DHCP IP address from the Dishy! If you have done everything right, you will see the Starlink connection is up, like Connection #1 in the below screenshot.
Does Starlink Have an API?
This is an advanced topic but if you are a developer and would like to geek out with the Dishy, yes, Starlink does provide programmatic access via gRPC!
I developed a tool to access Dishy statistics and automatically stow it when the boat starts moving. Then when the boat stops at a dock or anchorage, Dishy gets unstowed automatically. This is to protect the motors under movement.
You can find more details and the source code on GitHub.
Starlink is an amazing technology and is truly a game changer for boaters and digital nomads. It is not yet at its prime for marine usage, especially if you rely on Internet for mission critical purposes but it is already more than adequate.
If you need Internet on a boat and can afford to pay $135 a month, I think you should definitely consider it.
If you need reliable Internet for more critical usage, you will need backups though. You should consider re-inforcing Starlink with a 4G/LTE connection from a reasonable provider that doesn't cost you an arm and a leg. This way you can have some options.