Starlink-on-Battery System Overview

Shown above is an off-grid campsite, with Starlink dishy in the foreground, and the battery box with solar-charging panel behind it. The router in the battery subsystem box provides wifi internet access to the camper. This is called the local configuration. (See the system design section for the remote configuration.) 

The block diagram of the local configuration is shown below.

Table of Contents

Overview

The Starlink-on-battery System is an assemblage of subsystems centered around a Starlink antenna which enable battery-powered internet access when traveling in the RV. Capabilities include charging from solar and 12V, antenna positioned a kilometer away from the RV, and a keyfob for powering antenna on/off (battery saving) and for displaying link status.

This document consists of three main sections:

A video explaining the goals and showing the system and its components is available on YouTube at https://youtu.be/45RMr-PG9S4 I recommend you watch it before reading on, to get a physical sense of the system described below.

License

This document is made available to anyone to use for any purpose. It is free of licenses and copyrights. It is  provided in the hope it will be useful but is without warranty or support of any kind. There is no assurance of correctness. The design may or may not be appropriate for any particular application. A best-effort was made to provide information at a level useful to someone skilled with electrical circuitry, but the user is responsible for their use of any design elements. 

User Manual

Battery Power

The battery isolation switch in the battery box just isolates the battery from the charger and loads. If the charger is connected to a charge source (solar or 12V)  it will power the loads even though the isolation switch is off. This can result in surprising behavior, such as the wifi router remaining powered, and phones automatically connecting to it, even though the antenna isn't connected. Recommendation: disconnect charging sources before turning battery isolation switch off, and turn battery isolation switch on before connecting charging sources.

Only plug the 12V charge cable into the RV power outlet when the RV is on shore power. If the RV is not on shore power and you plug the charge cable into the RV, the system will draw down the RV battery bank to charge the Starlink battery and run the antenna. This is likely not what you want. 

The battery box can get very hot sitting out in the sun. Sit the solar panel on top of the battery box to give it some shade.

The charger has several LEDs that illuminate to show charging and battery status. Refer to the charger manual for their meaning.

Network Configuration

Both the battery box M5StickC and the RV M5StickC Plus use hard-coded SSIDs and wifi passwords. They are stored in the secrets.h file in the respective project folders. It is necessary to change the source code and rebuild/reinstall the software for a new installation with a different SSID/password.

The GL.inet AR750 router in the battery box comes configured at 192.168.8.1. This default was not changed. It will give out IP addresses in the 192.168.8.x range. The Telemetry Controller uses a hard-coded IP of 192.168.8.10. If you configure your router on a different subnet you will need to recompile the Telemetry Controller software after changing the source code to give it an appropriate IP address.

I configured the GL.inet AR750 router in the RV to 192.168.12.1. It will give out addresses in the 192.168.12.x range. Recommendation: don't plug the RV router into power if you're not using the remote config. It just makes things more confusing.

The antenna gives itself an IP of 192.168.100.1, and has a DHCP server which provides an IP address to the WAN side of the battery box router. The antenna has a web server that you can send a browser to, to display antenna status. You can ping the antenna to determine whether you have connectivity to it.

Telemetry Controller Operation

The Telemetry Controller provides the following features:

The two UI buttons on the M5StickC allow changing settings in the style of setting time on a watch: a mode select button which loops around a sequence of settings, and the M5 button which changes the selected mode setting. The display modes which the mode select button sequences through are:

Display Power Status

The system powers on in this mode. The display is shown below.

ON means the antenna is powered on. Pressing the M5 button toggles antenna power between ON and OFF. Battery voltage is displayed (14.31 volts shown) and converted to a rough State-of-Charge (SoC) measure - 100% charged in this case. SoC is only valid when the battery is being discharged, not when it's being charged.

Set Date/Time

This mode allows setting time and date on the internal real time clock. The display is shown below.

The current date and time is displayed. Press the M5 button to move to the setting mode. In setting mode, each field (year, month, date, hour, minute) is displayed. The M5 button increases the value of the displayed field. The mode select button advances to the next field. The seconds field only allows resetting to 0. After all date/time fields are set, the updated date/time is written to the real time clock, and the display mode returns to display power status.

Midnight-off mode

This mode allows setting whether or not the Telemetry Controller powers off the antenna at midnight. The display is shown below.

The action taken at midnight is displayed as "No Chg" or "Off", depending on whether the antenna will be powered off at midnight or not. Pressing the M5 button toggles the setting and writes the new value to non-volatile EEPROM memory, from where it is read at boot.

Starlink Fob Operation

The Starlink Fob provides a convenient way to power the antenna on or off from inside the RV, and to inspect battery status, regardless of where the battery box is located (basement, outside, remote). The Starlink Fob provides the following features:

The two UI buttons on the M5StickC Plus allow changing settings in the style of setting time on a watch: a mode select button which loops around a sequence of settings, and the M5 button which changes the selected mode setting. The display modes which the mode select button sequences through are:

Display Power Status

The fob powers on in this mode. The display is shown below.

The first two lines of the display are the same as the Telemetry controller: antenna on/off status and battery status. The M5 button toggles antenna power. The bottom line sequences through a list of targets the fob pings, and displays OK if it got a ping back, FAIL if it did not get a ping back from that device. The devices it interrogates are:

If Google is OK, internet connectivity is good. If Antenna fails, it may not have booted yet, or may not be receiving power.  If Telemetry Controller fails, there is not a good path from the fob to the battery box.

Local / Remote config

This mode allows changing whether the fob connects to the battery box router (local configuration) or the RV router (remote configuration). The display is shown below.

The display shows whether the fob is in the local config (connected to the battery box router), or the remote config (connected to the RV router), and shows the SSID it's connected to. The M5 button toggles between local and remote configs, and reboots the fob after a change.

Trouble Shooting


Requirements Analysis

Requirements - User Stories

User stories describe the users of a system and their desires related to the system. It is a way of eliciting requirements for the system.

Paul and his wife Holly are retired and travel around the U.S. taking vacations in their RV. They like to travel to remote locations such as national parks and camp for a few days here and there. They need internet access throughout the trip for things like phone calls, google maps, research into the next parts of the trip, access to Facebook and online photo storage, streaming TV, etc. 

They can use a cellular hotspot to connect to the internet, but it has severe limitations:

They can use campsite wifi at those campsites which provide it, but it also has severe limitations:

They desire decently-performant internet access in a wider variety of campsites, desirably in most places they camp. 

It would be ideal if internet access would be available while in the truck, driving or stopped at remote locations, either with or without the RV in tow. Access while in the truck is a want, more than a need - the highest priority need is for internet access at the campsite, especially in the evenings. Access while driving long-distance is available relatively frequently when passing through towns or on major highways. Internet access while with the truck at some remote site away from the campsite is usually impossible,  but tends to be less important.

Paul and Holly camp off-grid quite a lot, and energy is a paramount concern in those circumstances. The RV has battery capacity sufficient for 2.5 days, after which the generator must be run to recharge. They don't want to have to run the generator to recharge more often than they do at present because it's noisy and prevents travel while attending its operation. The enhanced internet access shouldn't significantly worsen energy-management issues.

Forests are favorite camping areas for Paul and Holly, but the trees they often camp under can inhibit satellite signals, making satellite internet access unreliable or impossible. They would like to have internet access while camped under trees, as much as is reasonably possible.

Paul wants the system to be as light as possible, and very quick and easy to set up at a new campsite.

When they're not using the RV Paul and Holly put it into storage and disconnect the RV battery from all electrical loads. Similarly, they would put the Starlink system into storage for months at a time.

Starlink Technology

Paul has identified Starlink as a candidate internet access technology. It seems to be cheaper, faster, provide more data, and be easier to use than competing satellite technologies. However, it has issues and limitations:

When it can work, it would be better than cellular (better speeds, more data, wider range of locations) and better than campsite wifi (better speeds, wider range of usable locations).

The goal of the Starlink-on-battery system design is to meet Paul and Holly's desires to the greatest degree reasonable that's consistent with reasonable cost and good usability.

System Requirements

The system will be comprised of two subsystems: 

Modes and States

Starlink Subsystem Requirements

The Starlink subsystem will comprise the antenna, router and other data-transport components, battery, and the power subsystem.

RV Subsystem Requirements

Engineering Documentation

System Design

It is recommended to watch the video on YouTube at https://youtu.be/45RMr-PG9S4 before reading on, in order to familiarize yourself with the system and its components.

There are two configurations of the Starlink-on-battery system: local, and remote. The system block diagram of the local configuration is at the top of the page. The system block diagram of the remote configuration is below. The two configs differ by the presence of the wireless bridge and a router at the RV end of the bridge. 

The local config is used when the Starlink antenna and battery box can be placed proximate to the RV, and provide wifi to devices directly from the router in the battery box. A common use case is on shore power at an RV park; the battery box lives in the RV basement and 14V (from the RV's converter) powers the electronics and charges the Starlink battery. Another use case is boondocking in an open area; the battery box is connected to the solar panel and placed in a sunny spot. Both of these use cases require an antenna location with a decently clear view of the sky that's close to the RV.

The remote config is used when the Starlink antenna must be placed further from the RV than wifi from the router in the battery box will reach. A wireless bridge is used to extend the network over the bridge to the RV, where devices can access it. A use case is boondocking in the woods where the RV has no clear sky view, and the truck is parked somewhere that does have a sky view, with the Starlink subsystem in the truck bed and the wireless bridge antenna pointing at the RV. The RV end of the wireless bridge is connected to the router in the RV which provides an access point for devices. Besides being placed in the truck bed, the Starlink subsystem could also be placed in another campsite or anywhere with a clear view of the sky - it is self-contained.

The Starlink-on-battery Subsystem includes the Starlink antenna with its 75 foot cable back to the Starlink Battery Box which houses the battery and charger, wifi router, and other electronics. It also includes the upstream wireless bridge device. The Starlink Battery Box is a plastic waterproof tote with the battery box electronics package and storage space for the wireless bridge devices and their tripod mounts, and other cables.

An important system design element is the keyfob (shown above), which connects to wifi from either the local or remote wifi router (configurable), and sends power-on/off commands to the Telemetry Controller, and displays data received from it. It enables remote power control of dishy, and remote monitoring of battery charge and internet connectivity.

Battery Box Electronics Design

The electronics package in the battery box provides power to the Starlink antenna from a battery or from an auxiliary power source which can also charge the battery. Supported auxiliary power sources are:

The diagram below shows the design of the Starlink battery box electronics. It is based on a 12V 50Ah LFP battery with built-in BMS (50A charge & discharge capacity). The battery is connected to a Renogy RBC30150D15 30amp charge controller. The charge controller has a 12V DC-DC converter. If input DC is above 13.2V it will use that and boost/buck as needed to charge the battery according to the LFP charging profile. In addition, it has a solar MPPT tracking power input controller, which can also charge the battery (and/or feed power to Starlink).

The 12V 50Ah LFP battery is wired via a fuse and isolator switch to the charger. The charger has connectors for plugging in a solar panel or 14V DC from e.g. a running automobile, or the RV converter. When the isolator switch is closed, the charger charges the battery if is is supplied with charging power, and the battery/charger powers the antenna and other electronics.

Caution: as shipped, the Renogy charger only charges the battery when voltage on the B+ terminal exceeds 13.2V, i.e. when connected to an automobile battery with the engine running. A "smart alternator" jumper setting can change this to charge whenever 12V is present. You may need to change this jumper if you are running it off a stock RV converter connected to lead-acid batteries. It works on my RV because I have LFP batteries and a suitable charger which keeps them above 13.2V.

Battery power is wired through a fuse-block to the electronics.

Fused 12V feeds a relay controlled by the Telemetry Controller. The relay, when closed, passes 12V to the 48V DC-DC converter which feeds 48V to the POE injector to power dishy. In this way, the Telemetry Controller can turn power to dishy on or off to save power.

The antenna has the 75-foot Starlink-provided cable, with the router-end connector replaced with an RJ45 connector. The cable can be plugged either directly into the Dishy POE injector (when the battery box is sitting outside), or into a bulkhead pass-through connector in the RV battery bay that connects to the Dishy POE injector when the battery box is in the basement. See the video for more details. The cable provides power from the Dishy POE injector to the antenna, and carries internet from the antenna to the Dishy POE injector.

The Dishy POE injector passes internet to the wifi router, which makes it available to local wifi clients, and via a LAN port to the wireless bridge in the remote configuration. The wifi router is powered by a USB cable plugged into a USB charge adapter which converts 12V battery power to 5V for USB.

The Telemetry Controller is a circuit board with an M5StickC on it, and 12V to 5V conversion to power the M5StickC, and a transistor that can operate the Dishy power relay. The M5StickC connects to the Wifi router and accepts commands from the keyfob. It has user interface buttons which allow commanding Dishy power on/off, setting the realtime clock, setting auto-power-off-at-midnight mode, and other software-defined features.

The keyfob can be configured to connect to the router in the battery box, and exchange data with the Telemetry Controller.

RV Electronics Design

The diagram below shows the electronics in the RV. It is only used (and powered) in the remote configuration. The downstream wireless bridge is configured as a bridge, and passes internet through the bridge POE injector which powers it to the wifi router in the RV. The keyfob can be configured to connect to the router in the RV, and exchange data with the Telemetry Controller in the battery box via the bridge.

Telemetry Controller Design

The schematic of the Telemetry Controller board is shown below.

12V power comes in on J1 and is regulated down to 5V by U1 - a switching regulator. LEDs show power good for 12V (white) and 5V (green).

The M5StickC plugs into J3 and is powered by 5V. 

J3-5 is the M5StickC output which turns transistor T1 on or off, and the collector of T1 grounds one side of the DishyPOE12V relay coil; the other side is wired to 12V. When T1 is turned on, power flows through the relay coil, and closes the contacts which pass 12V to the 48V DC-DC converter to power Dishy. In this way, the M5StickC controls application of power to the antenna. The blue LED illuminates when the transistor is turned on (power provided to Dishy).

J3-3 carries 12V to the M5StickC pin configured as an analog input, via a potential divider. The voltage measured by the M5StickC ADC is scaled to represent battery voltage, and battery State of Charge (SoC) is calculated from that, and displayed on both the Telemetry Controller M5StickC, and the keyfob M5StickCPlus. If the voltage drops too low, the M5StickC turns off the antenna power, so as to preserve some battery power. If voltage gets lower still (e.g. when the isolator switch is turned off), the M5StickC shuts itself down.

Telemetry Controller Software

The software running on the Telemetry Controller M5StickC uses the Arduino programming model: 

Implementation

This section describes implementation details, hopefully in enough detail to enable someone with technician or hobbyist-level electronic skills to replicate it. The system implementation is organized as a base package containing the battery electronics and everything needed to make Starlink internet work in the local configuration, and two optional add-on kits:

The picture below shows the completed battery box wired to the solar panel for charging, and to Dishy.

Battery Box Tote

The picture below shows the battery box tote. It is a Home Depot ezy 50 liter plastic tub with IP67 rating. Note the cable exit hole on the left side is overlapped on the outside by a modified J-Box screwed and sealed to the tub. The covered cable exit prevents water intrusion when the box is outside in a rainstorm, and allows some air movement to dissipate heat. Cables that pass through the hole are: Starlink antenna cable, solar charge cable, 14V charge cable, and wireless link ethernet cable. For transport, cables are detached and stored in the box.

In the picture below, the wireless bridge devices and cables are seen on the right of the electronics package, and two tripods are in front.

The waterproof J-box mounting details are shown below.

Starlink antenna cable

The Starlink antenna cable is modified to feed data to the router via a POE injector. An unmodified Starlink cable uses Gig ethernet (8-wire) with non-standard POE wire assignments. The picture below shows how the Starlink ethernet cable is modified and wired to an RJ45 connector that attaches to the TYCON POE injector, and how a standard ethernet cable is modified to connect the LAN side of the POE injector to the router. See the references for more detailed instructions on modifying the ethernet cables.

Antenna Storage

The picture below shows Dishy sitting in the background in its waterproof Husky carrying case with original Starlink packaging to support it. The starlink cable is stored in the box on top of Dishy.

Battery Box Electronics

The picture below shows the battery side of the battery box electronics assembly.

The frame is made of construction whitewood, and the battery is secured to the frame with straps. To the left of the battery is the 48V DC-DC converter, antenna power relay, fuseblock and terminal strips, shown in detail below.

The picture below shows the charger side of the battery box electronics assembly. Screwed to the frame, is the charger, isolator switch, fuse, and 14V charge power circuit breaker. The Telemetry Controller is screwed to the top of the frame. The 12V charge path to the battery can carry 30 amps, so 8WG wire should be used in the current path from the 12V charge source to the battery. Solar is fused at 20 amps, and the cable in the BOM will work.

The picture below shows the side of the assembly. The Starlink antenna POE injector is top right, and the battery box wifi router top left. The wireless bridge POE injector is plugged into the router LAN port. The router is powered by USB from the USB charge adapter below it, which receives 12V from the fuseblock behind the sidewall.

Telemetry Controller

The Telemetry Controller is optional, and consists of a relay that switches power to the 48V DC-DC converter, and a circuit board that operates the relay. If you don't want it you will need to wire 12V to the 48V DC-DC converter, bypassing the Telemetry Controller kit relay.

The Telemetry Controller PCB was designed using EAGLE PCB, and was originally designed as a flow controller (hence some of the signal names refer to flow and valves). Caution: the schematic and the PCB design are disconnected at this point, and have not been brought into harmony. However, the PCB Gerber files for the original Flow Limiter design, which are contained in the zip file inside the directory, are directly usable with no blue-wires needed.

A zip file containing the schematic and board design files are on Google Drive (viewable by anyone) at https://drive.google.com/file/d/1ODvtYX-Qg9ytUqJggNebIKMMdW4Zy2vb/view?usp=drive_link . If you download and unzip the file you should be able to open the project (FlowLimiter). Note that some of the PCB traces are ripped up because of schematic changes. The zip file also contains StarlinkTelemetry.pdf (the schematic shown above) and FlowLimiter_2022-12-29.zip which are the Gerber files used to build the PCB. You can ship the Gerber zip file off to a company like OSH Park and get 3 boards fabricated for around $15.

Remote Configuration Kit and Wireless Bridge

The Remote configuration kit comprises the wireless bridge nodes and the POE injectors that power them, and a wifi router located in the RV.

The wireless bridge nodes required minor mechanical work to build a quick-release attachment to the tripods. The tripods cam with a quick-release camera-attachment block. I fastened this block to a fabricated plate with screws spaced to mount the bridge nodes. The nodes needed to be configured and labeled - one as upstream and one as downstream, and the upstream one needed an ethernet cable to attach to the POE injector in the battery box.

Bill of Materials

The bill of materials (BOM, aka parts list) is split into a base kit that provides for battery operation, charging and local configuration support, and two optional kits:

The kit organization allows you to build as much of the system as you feel you need or are comfortable  with. (E.g. some builders may not be comfortable building the Telemetry Controller circuit board, or programming the M5StickC devices.) The Starlink antenna and cable are not listed here - it is assumed you already have them and are about to change the connector on the antenna cable.

Base kit BOM

The BOM for the base kit is shown below. The spreadsheet can be found on Google Drive at https://docs.google.com/spreadsheets/d/14TXlGPAIvExoHm0HOJrfh_gFZLyn7sxy9oEMd3aps1I/edit?usp=sharing

Starlink BOM

Remote Config kit BOM

The BOM for the remote configuration kit is shown below. It is on Google Drive at https://docs.google.com/spreadsheets/d/1Hlp12eZ5ts2pzjb8-zl32gvgzU-cw6T3vg4fMG_N-Ww/edit#gid=0

Remote Config Kit

Telemetry Controller kit BOM

The BOM for the telemetry controller kit is shown below. It is available on Google Drive at https://docs.google.com/spreadsheets/d/1zPwcIfvHUa1EDuXu6xRQqrFILv6O2ZvZGEZmOH_0Cyk/edit#gid=0

Telemetry Controller Kit

M5StickC Software

The Telemetry Controller contains two embedded microcontrollers that need to be programmed to provide the remote on/off and voltage display features of the system.

(There is no reason to use two different types of devices in each application - it is just what I had on hand, and the software reflects that with font sizes, number of lines of text, etc. This is regrettable, and may be fixed one day.)

The source code for the Telemetry Controller and Starlink FOB are on github and the URLs to clone the repos are given in the "Files Location" section below.

At this time, if you want to build the Starlink Telemetry Controller and keyfob, you have to program the M5StickC devices yourself. This is straightforward enough, requiring only a PC and a USB-C cable, and installation of the proper software to compile the StarlinkTelemetry  and StarlinkFob projects and program them into the respective devices. If you haven't programmed Arduino devices before, there may be a bit of a learning curve on the Arduino IDE and its libraries, but there's a ton of help on the web.

Programming the M5StickC

This section gives an overview of how to prepare a PC to program an M5StickC or M5StickC plus device.

If you get build failures you will need to figure out which library is missing. Let me know of any documentation improvements needed.

Files Location

References

Performance Measurements & Observations

Possible Future Enhancements