Skip to content

Set up a test bench ​

Do this step when your payload passes the Lab checks. A bench bus tests what Payload Lab cannot: a real payload LAN with DHCP, the bus's firewall, Mission Control, power and timing. You do not need a balloon. Pick one of two benches:

BenchWhat you getBest for
Cloud bench busA bus that runs in Urban Sky's cloud. Your payload plugs into a USB Ethernet adapter on your computer, and Balto bridges that adapter to the bus's payload LAN.Starting out. No hardware from Urban Sky.
Husky bus on your deskA real bus. Your payload plugs into the bus's payload Ethernet port.Power, timing and hardware tests before flight.

Both give your payload a DHCP address, DNS, and an Internet connection through the bus, as in flight.

Start in Payload Lab

If you have not yet, do Start in Payload Lab first. It needs no account and no bus, and it shows what the bus does with every request your payload makes.

Install Balto ​

Balto runs on macOS and Linux. Windows is not supported; use a Linux VM with the USB adapter passed through.

You may have Balto already from Start in Payload Lab. If not, Urban Sky sends you an install link, or you choose Download Balto in Bench. The install command works once and expires after 10 minutes. Then check it:

bash
balto version

Sign in with your Urban Sky account. Your browser approves the sign-in:

bash
balto login                 # production
balto login --api staging   # Urban Sky's staging environment, if you were told to use it

Payload Lab and pairing a cloud bench bus work without an account. Seeing your payload in Mission Control and sending it commands on a bus need one.

Option A: cloud bench bus ​

You need a spare USB Ethernet adapter for the payload. Keep your computer's own Internet connection on another adapter, such as Wi-Fi.

  1. Ask Urban Sky for a pairing code. A code works once, within 30 minutes. It is safe to send in chat: Balto makes the private key on your computer.

  2. Pair, test the link with Balto's built-in pretend payload, and find your adapter:

    bash
    balto pair ABCD-EFGH
    balto test
    balto ports

    For a staging code, Balto prints the full command with its --api flag.

  3. Plug your payload into the adapter and hand the adapter to the bus:

    bash
    sudo balto up --port en7

    balto up shows a live dashboard. Ctrl-C gives the adapter back to your computer. balto ui does the same with a button, a topology view and a traffic graph.

On a cloud bench bus

  • The payload LAN is 10.55.0.0/24. The bus is 10.55.0.1.
  • The MTU is 1370. The bus sends it in DHCP option 26; set it by hand if your DHCP client ignores that option. Test it from the payload with ping -M do -s 1342 -c 3 10.55.0.1 (Linux, iputils).
  • The bus does not switch a physical power rail and has no radio.
  • The bus's firewall lets the payload reach DHCP, DNS, ICMP, the Internet, bus gRPC on 50052, and log and metric ingest on 4318.

Option B: a Husky bus on your desk ​

Plug your payload into the bus's payload Ethernet port and power both.

On a Husky bus

  • The payload LAN is 192.168.8.0/24. The bus is 192.168.8.1. The bus runs DHCP on it.
  • There is no MTU limit beyond Ethernet's.
  • The payload rail is 5–12 V. Operators turn it on and set the voltage. See Run on a Husky bus.

Urban Sky staff can also reach the bus over a cable from their own computer with balto local and balto ui --local. That needs SSH access to the bus, which Urban Sky does not give to payload teams.

Check it worked ​

On the payload:

  • It has a DHCP address on the payload LAN: 10.55.0.x on a cloud bench bus, 192.168.8.x on a Husky bus.
  • ping to the bus address answers.
  • It reaches the Internet, for example curl -sI https://api.ops.atmosys.com.

On a cloud bench bus, balto test passed before you plugged in the payload. Use Balto's dashboard to see DHCP and traffic while the payload starts.

If it fails ​

SymptomCheck
balto pair refuses the codeCodes work once, within 30 minutes. Ask for a new one.
en7 has 192.168.1.20; it looks like your main network. Use a spare adapter, or pass --force to take it overYou picked your computer's own network adapter. Use the spare one from balto ports.
no adapter named en7; list them with: balto portsUse a name that balto ports lists.
cannot open a raw socket: run with sudo / cannot open /dev/bpf: run with sudoRun balto up with sudo.
No DHCP addressThe payload's DHCP client is running and the cable is in the right port. On a bench, watch balto up.
Small requests work, large transfers hangMTU. Set the payload to 1370 on a cloud bench bus.

← Run the Lab checks · Next: Video →