Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.signalrooms.xyz/llms.txt

Use this file to discover all available pages before exploring further.

iPhone lanes

Status: Current setup reference for customer-owned physical iPhones. An iPhone lane is one physical device connected to the Mac host. SignalRoom is always customer-owned hardware, there is no rented or hosted lane option. Get the hardware right once and you’ll save yourself most of the “session randomly disconnected” support cases.

1. Supported iPhone models

Support levelModelsiOS
RecommendediPhone 13 / 14 / 15 / 16 (any variant)iOS 17.x – 18.x
MinimumiPhone 12 / 12 mini / 12 Pro / 12 Pro MaxiOS 17.0+
Limited supportiPhone 11 / 11 Pro / 11 Pro MaxiOS 17.0+, works, but on-screen rendering is slower; activity workflows take longer
Not supportediPhone X / XS / XR / SE 1st gen / 8 / 7 and olderiOS 16 and below

Storage

  • Minimum: 5 GB free.
  • Recommended: 15+ GB free, to leave room for TikTok, iOS updates, and prepared media.
A near-full iPhone produces upload errors that look like network problems but aren’t, always check free space before debugging anything else.

2. USB cable

  • Use the original Apple cable or an MFi-certified Lightning or USB-C cable.
  • Generic uncertified cables are the single most common cause of mid-session disconnects.
  • Wi-Fi is not a substitute. The cable is required at all times, automation runs over USB.
If a lane drops mid-session and the iPhone has plenty of battery, swap the cable before swapping anything else.

3. USB hubs and power

Device countHubNotes
1None / unpoweredA single iPhone runs fine from a free USB port on the Mac.
2–5Powered or unpoweredModern Macs deliver enough sustained current. Powered hub recommended on long sessions.
6+Powered requiredWithout a powered hub, devices randomly drop off the bus under load.
12+Multiple powered hubsSplit across hubs, 6–8 devices per hub.
Each iPhone needs a USB 2.0 (or better) port that can sustain 500 mA. A “powered” hub is one with its own AC adapter, bus-powered hubs do not count.

4. Network

  • Stable internet on the Mac host. 100 Mbps is plenty for any fleet size; latency matters more than peak bandwidth.
  • The iPhones themselves do not need Wi-Fi, they communicate through the Mac over USB.
  • If you assign per-account proxies, those run on the iPhone via Shadowrocket or Stash. See the per-account proxy guide for setup.

5. Lane model

Warmr discovers iPhones through go-ios and represents each as a lane with these fields (from warmrctl --json devices list):
FieldMeaning
udidStable iPhone identifier. Use this in scripts, never displayName.
displayNameHuman-readable name (“Lane 2. Kody”).
modelNameiPhone model.
iosVersioniOS version string.
isConnectedWhether the device is currently visible over USB.
assignedPortLocal port for the device’s lane, when assigned.
rodmanInstalledVersionVersion of the on-device test runner, when known.

Lane ownership

  • Exactly one active Warmr instance can own a given lane at a time. Running two Warmr instances against the same iPhone produces wedged lanes that require an app restart to clear.
  • A lane shows up as isConnected: false if the cable is loose, the trust prompt was dismissed, or another process (Xcode, iTunes, Finder’s iPhone view) has claimed the device.
  • See Device state model for the full set of fields.

6. Pre-flight check

After plugging an iPhone in for the first time:
warmrctl --json devices list
The new device should appear with isConnected: true. If it doesn’t:
SymptomTry this
Device not listed at allReconnect the cable. Confirm the “Trust This Computer?” prompt on the iPhone.
Listed with isConnected: falseUnlock the iPhone, re-confirm trust, replug.
Listed but rodmanInstalledVersion is missingRunner isn’t installed yet, see Trust and runner setup.
Disconnects randomly under loadSwap the cable, then move to a powered hub.

Planned

Planned:
  • Lane readiness checklist with explicit “ready / blocked” decision tree.
  • Recovery guidance for missing trust, missing runner, and stale device state.