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:
User manual
Requirements analysis
Engineering Documentation (system design, theory of operation, implementation details, bill of materials, etc.)
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:
LCD display shows antenna power & battery status. Text is red until wifi is connected, after which text is white. Display is also used for setting time and mode changes.
M5 Button (large button on top of M5StickC) toggles power to the antenna. Use this for power savings. The M5 button is also used in combination with the mode select button to make configuration changes.
Mode select button (on side of M5StickC) to change display and settings
Midnight-off mode. When set, automatically powers antenna off at midnight for power savings
Real time clock, with ability to set time through the UI. Used by midnight-off mode.
Connects to the battery box network for remote access. Listens for commands from the Starlink Fob, which can command power toggle. Sends battery status to the Starlink Fob.
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. (default)
Set date/time
Set midnight-off mode
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:
LCD display shows antenna power & battery status. Text is red and displays fob status (connecting, etc) until wifi is connected, after which text is white. Display is also used for configuring the fob.
M5 Button (large button on top of M5StickC) toggles power to the antenna. Use this for power savings. The M5 button is also used in combination with the mode select button to make configuration changes.
Mode select button (on side of M5StickC) to change display and settings
Connects to the battery box network in the local config, or RV network in the remote config.
Sends commands to the Telemetry Controller to toggle power. Receives and displays battery status from the Telemetry Controller.
Pings routers, antenna, google in an expanding ring centered on the fob, and displays ping results to help you understand whether the internet is reachable, or if not, where the link is broken or not yet up.
Powers itself off after an inactivity timeout
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. (default)
Switch between local and remote configurations
TBD
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:
RV router (remote config only)
linkyRouter: the router in the battery box
Telemetry Controller
Antenna
Internet nameserver at 8.8.8.8
Google
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
If no internet:
Is power on? Check the blue light on the telemetry controller (should be on). Check the power LED on the battery box router.
Is dishy pingable and online? Use the starlink app to check.
Does dishy router status show cable is connected?
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:
Only works where there is cell service. Often, this is not possible at the kind of campsite they like. They can take trips into the nearest town to get internet, but that's time-consuming and awkward and not possible while relaxing at the campsite
Limited monthly data. Cellular data is quite expensive (around $1/GB), and photo backup by cell phones uses a lot of it. It's easy to run out of monthly data allocation, and getting more is extremely expensive.
They can use campsite wifi at those campsites which provide it, but it also has severe limitations:
Most of their favorite kind of campsite: forest service campsites, don't have camp wifi at all.
Other kinds of campsite may offer wifi, but it is often so slow and flaky as to be unusable.
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:
Consumes significant power (35 Watts) when running. This is a big increase over current RV load, and significantly changes the RV off-grid power management paradigm.
Doesn't work under trees. A problem when camping in forests.
May or may not work while in motion, which would limit in-vehicle use while driving.
Antenna moves itself around on a tripod-mounted pole. Issue for use in a moving truck.
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:
Starlink subsystem, able to be located remotely from the RV, and comprising the Starlink antenna, a battery, power management, and data transport
RV subsystem, local to the RV and having standby/active control over the Starlink subsystem. It will house the RV end of data transport
The Starlink subsystem shall be capable of being placed in a clearing up to 1/2 mile line-of-sight from the RV, and of relaying internet data (if so configured) between the Starlink antenna and the RV subsystem. It shall also be possible to place it adjacent to the RV, depending on the environment, in which case the relay may not be required.
Modes and States
The system shall have two modes:
Off: Starlink subsystem battery disconnected from all loads
On: Starlink subsystem battery connected
When On, the system shall have two states:
Standby: Starlink antenna unpowered, but remote control active (consuming low power) and able to command antenna on
Active: Starlink antenna powered, data active
Starlink Subsystem Requirements
The Starlink subsystem will comprise the antenna, router and other data-transport components, battery, and the power subsystem.
The starlink subsystem may provide an antenna for local use and one for 1/2 mile remote use. Notes: Examples could be a stub antenna for local use and a dish for relay use. It is desirable but not required that both local and remote use simultaneously is supported. Met
The Starlink subsystem shall contain at least 525 W-h of battery capacity. Rationale: run the antenna at 35W for 15 hours (estimate 3 days at 5 hours/day). Met
The Starlink subsystem shall provide weather-proof packaging for the antenna, and for the battery and local electronics that allows the antenna to be set up and run local to the Starlink package, or stored inside the package. Note: it is not required that there be only one package. Met
The Starlink subsystem shall provide for storing or running the subsystem in the truck bed. Met
The Starlink subsystem shall allow running it standalone, outside on the ground, without cable connection to anything besides the antenna. Rationale: I may leave it in some campsite that has a clear sky view. Met
The Starlink subsystem shall provide three or four power sources to charge and run the Starlink antenna, batteries and local electronics:
Local battery, for use when it is remote from the RV or when boondocking. This includes when transported by truck to a site remote from the RV. Met
RV power, for use when the RV is on shore power, and there is no need to run down the Starlink battery. Met
Truck power, for charging its battery from the truck while driving or while using the truck as a battery charger (which may happen simultaneously with charging the RV from the generator during "RV charging time"). Partially met - not while driving
Solar. WANT. Rationale: extend runtime before charging. Note: it could kick in to run the antenna when the battery is fully charged and solar panels connected and providing sufficient power. Met
The Starlink subsystem shall not charge its battery if connected to truck power and the engine is not running. Rationale: don't run down the truck engine battery. Met
The Starlink subsystem battery type should (HI-WANT) be LFP, in preference to Li-ion. Rationale: safer. Met
The Starlink subsystem shall provide a physical power on/off switch which disconnects the battery. Met
The Starlink subsystem shall provide for commanding it between standby and active states from up to 1/2 mile line of sight. Rationale: turn it off at night from in bed in the RV. Turn it back on in the morning from inside the RV. Met
The Starlink subsystem shall provide for commanding it between standby and active modes locally. Rationale: useful when aligning link antennas. Met
The Starlink subsystem shall communicate its state (standby or active) back to the remote controller. Rationale: when you command it to standby at night, you want to know it went to standby, and that it isn't going to run its battery flat overnight. Met
The Starlink subsystem shall make its charge state available locally. Met
The Starlink subsystem should (WANT) make its charge state available remotely. Rationale: read charge from RV. Met
RV Subsystem Requirements
The RV sbsystem shall enable commanding the Starlink subsystem between active and standby states. Met
The RV subsystem should (WANT) enable displaying the current state. Met
The RV subsystem shall provide a wireless access point to the Starlink subsystem that can carry data between RV devices and the Starlink antenna. Met
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:
Solar panel
14.8V from truck when engine is running
14V from RV when on shore power
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:
The setup() function initializes the device hardware, reads non-volatile settings in from Flash storage and saves them in variables used by the main program, and reads the realtime clock.
The device then continually calls the loop() function. loop() checks whether any UI buttons were pressed, and sets flags accordingly. If the mode selector button was pressed it changes the displayMode variable, causing different information to be presented on the device display. Once a second, loop() calls secondsUpdate().
secondsUpdate() is the workhorse function, called once each second. At startup it steps the Wifi connection state machine through the sequence of connecting to wifi, and setting up to receive commands from the keyfob. It calls updateDisplay() to update the LCD display appropriately depending on the displayMode. It reads the realtime clock, and if the hour has changed, it calls hoursUpdate() which may do things like turn antenna power off, depending on non-volatilte settings. It reads the battery voltage. It handles shutting down the M5StickC if voltage is too low (e.g. the battery disconnect switch was turned off).
updateDisplay() calls the appropriate display handler depending on displayMode. The display handler also handles buttonA (the big button on the front, labeled M5). Depending on the displayMode (voltage, set-time, set-midnight-off, etc) buttonA may toggle antenna power, change settings, or change time-of-day,
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:
Remote access kit, which enables placing the antenna remote from the RV
Telemetry controller kit, which enables remote monitoring of the battery, internet access, and antenna power control,
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:
Remote configuration kit - the wireless bridge and related components needed for the remote configuration
Telemetry Controller kit - the Telemetry controller PCB and related parts and the keyfob needed to control power and display status remotely
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
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
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
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.
The M5StickC on the Telemetry Controller
The M5StickCPlus which is the keyfob.
(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.
Install the Arduino Desktop IDE (Integrated Development Environment) per https://www.arduino.cc/en/Guide. Make sure you can compile examples such as the blinking light.
Install the libraries for the M5StickC and M5StickC Plus per http://docs.m5stack.com/en/quick_start/m5stickc/arduino. Make sure you can build and install examples such as the Hello World example on both devices
Use the Arduino IDE's library manager to install the following additional libraries, required by the Telemetry Controller and Starlink FOB:
EEPROM
Wifi
AsyncUDP
ESP32Ping
Install git (if you don't have it already)
Use git to clone the two source code repos into the Arduino projects directory (normally under "Documents")
git@github.com:PaulBouchier/StarlinkTelemetry.git
git@github.com:PaulBouchier/StarlinkFob.git
Build the two projects using the Arduino IDE and use the USB-C cable to program the M5StickC with the StarlinkTelemetry code and the M5StickC Plus with the StarlinkFob code. Note you will need to set the board-type and serial port appropriately
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
The BOMs are in Google Sheets on Google Drive in My Drive/Starlink, linked from this page.
The zip file of the Eagle project StarlinkControl, containing the updated schematic and Gerber files is on Google Drive in My Drive/Starlink, world-readable at https://drive.google.com/file/d/1ODvtYX-Qg9ytUqJggNebIKMMdW4Zy2vb/view?usp=drive_link
The source files for drawings, images, video, etc are on Paul's laptop in ~/Documents/RVing/Starlink.
The source files for the Telemetry Controller PCB (derived from the FlowLimiter PCB) is on Paul's laptop in ~/EAGLE/projects/StarlinkControl
The source code for the StarlinkTelemetry M5SticC is on github at git@github.com:PaulBouchier/StarlinkTelemetry.git
The source code for the Starlink FOB M5StickC is on Github at git@github.com:PaulBouchier/StarlinkFob.git
References
Performance Measurements & Observations
Renogy DC-DC charger drew 15mA idle current from battery. i.e. 360mAh per day, or 0.75% of battery capacity/day
I accidentally applied alternator power while battery switch was off. Battery light was red, but went green after I turned switch on and everything seemed to work fine
After power-off, the starlink router takes 50 sec to come online, then antenna takes a further 60 sec to searching, then 90 sec to online. However I have seen it take 10 minutes to come online in the same location where it previously took 2 1/2 minutes. i.e. it can vary.
Starlink antenna draw can peak at 7A (12V into DC-DC), but settles out around 2.4A with spikes to 3.2A or so now & then (29W spiking to 39W)
Ueevii CPE450 running from 12V via DC jack drew 150mA peak during boot, 100mA steady state with no data transfer active. i.e. 1-2 watts. Measured it drawing about 60-70mA from POE at 24V, & about 130mA from POE at 12V. It started and ran down to about 8V over POE, => 12V POE should be fine. It uses POE mode B (spare pair) with 4, 5 DC+ and 7, 8 DC-. This is compatible with passive POE injector cables.
SFT1200 + DC-DC and injector (without antenna connected) + M5StickCwith board and all 3 LEDs on + Renogy charger: 0.53A @ 13V, i.e. 6.9W
The Starlink-provided router gives itself a local IP of 192.168.1.1, and provides pass-through to the dishy web page & data source at 192.168.100.1. The starlink page provides most functions (status, stow, etc). The router page doesn't provide any functions beyond a status display saying "you're connected to Starlink". With the stock router attached, DNS name dishy.starlink.com translates to 192.168.100.1
With a 3rd party router attached to dishy, dishy's DHCP server may give it a WAN IP of e.g. 100.104.119.23 and tell it to use a gateway of e.g. 34.120.255.244 with a netmask of 255.192.0.0. It tells the router to use 1.1.1.1 and 8.8.8.8 for DNS servers.
When dishy is stowed, it shuts off the satellite connection. Very shortly after unstowing, it turns it back on, and depending on dish angle, may begin working again, and/or may go flat then re-angle to face north.
I initially used a GL.inet SFT1200 travel router in the battery box, but it would not reliably connect to dishy on its WAN port - sometimes I had to reboot it or dishy to get it to connect. I replaced it with a GL.inet AR750 travel router, which connects reliably.
I've gone through two GL.inet AR750's. The first failed while swapping cables and routers with Larry Grimm. Seems the device is not tolerant of incorrect cable wiring. The second just died for no reason.
After 2 months of camping at a variety of Forest Service and commercial campgrounds, I have yet to encounter a situation where the remote config was needed. Starlink works well enough to support web browsing in the moderate tree cover I've encountered. (However phone and video calls have proved more sensitive to antenna placement).
With the battey box sitting out on the ground in full sunlight, components inside got too hot to hold my hand on. However, when I sat the solar panel on top of the box (on 7/15 in Cooke, MT) at 2:21pm with ambient temp 71F and Starlink was running all day, I recorded the following temps: top of battery: 112F. Side of charger: 118F. router: 112F.
Possible Future Enhancements
It is limiting that the Telemetry Controller has a hard-coded IP, and source code must be changed to modify it. A UI feature could be added to allow changing it from the user interface, or it could get its IP from DHCP, and some other scheme could be used to enable the FOB to find its IP address. This hypothetical scheme would have to work in both local and remote configs. https://github.com/PaulBouchier/StarlinkTelemetry/issues/2
It is very limiting that both the Telemetry Controller M5StickC and the FOB M5StickC Plus have hard-coded SSID and wifi passwords. Some way should be found to make them configurable so that users can change the as needed. https://github.com/PaulBouchier/StarlinkFob/issues/1 and https://github.com/PaulBouchier/StarlinkTelemetry/issues/1
A possible future enhancement to the Telemetry Controller is to add a coulomb counter battery SoC meter. Consider DS2745 for coulomb counter. DS2761 may also be suitable
There is a dualie dishy power supply (which uses different ethernet wiring than used in this system). It would integrate quite well with this system. https://boondocker.io/products/dishy-rv-power-supply