Appearance
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:
| Bench | What you get | Best for |
|---|---|---|
| Cloud bench bus | A 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 desk | A 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 versionSign 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 itPayload 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.
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.
Pair, test the link with Balto's built-in pretend payload, and find your adapter:
bashbalto pair ABCD-EFGH balto test balto portsFor a staging code, Balto prints the full command with its
--apiflag.Plug your payload into the adapter and hand the adapter to the bus:
bashsudo balto up --port en7balto upshows a live dashboard. Ctrl-C gives the adapter back to your computer.balto uidoes 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 is10.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 on4318.
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 is192.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.xon a cloud bench bus,192.168.8.xon a Husky bus. pingto 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
| Symptom | Check |
|---|---|
balto pair refuses the code | Codes 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 over | You picked your computer's own network adapter. Use the spare one from balto ports. |
no adapter named en7; list them with: balto ports | Use a name that balto ports lists. |
cannot open a raw socket: run with sudo / cannot open /dev/bpf: run with sudo | Run balto up with sudo. |
| No DHCP address | The 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 hang | MTU. Set the payload to 1370 on a cloud bench bus. |