1. OTG HID: Wired Hardware Automation
Bluetooth HID solved the no-signature problem, but wireless Bluetooth can occasionally be unstable in interference-dense environments (server rooms, multi-device cluster control sites) — when too many 2.4G Bluetooth devices share one space, they can interfere with each other, causing latency jitter and even dropped connections. OTG HID solves the problem with a wired connection:
- The dev board switches to an ESP32S3, connected directly to the iPhone via an OTG cable;
- The phone recognizes it as an EasyClick NCM+HID input peripheral and shows a mouse dot cursor;
- No-signature, no proxy IPA; screenshots also go through
image.captureFullScreenNoAuto, and it is immune to Bluetooth interference; - Only supports iOS 17+.
In principle, OTG HID and Bluetooth HID share the same control logic — both emulate a HID device so the phone treats it as a peripheral. The difference is only the transport: Bluetooth is wireless, OTG is wired. The wired connection’s core advantages are stable latency and interference resistance; the trade-off is that it occupies the phone’s only data port, so wireless debugging has to replace the wired link to the central control.
2. Hardware Preparation and Selection
| Hardware | Description | Notes |
|---|---|---|
| ESP32S3 dev board | Only the S3 is currently supported; C3 and other models won’t work | Buy it yourself on Taobao/Pinduoduo/1688, firmware is free |
| 3-in-1 adapter | Ethernet + OTG + charging in one | Because the data port is occupied by OTG, the adapter handles power and networking at the same time |
| OTG cable | Connects the dev board to the phone | Make sure the Lightning or Type-C connector matches your phone model |
The 3-in-1 adapter is a must-have for the OTG solution. Without it, the phone’s data port is taken over by the dev board, leaving it unable to charge or connect by cable. WiFi works as a fallback, but a wired network is more stable — especially in cluster-control server-room environments.
3. Configuration Process (Five Steps)
1. Flash the Firmware
Download the OTG firmware from the iOS resources folder → USB version → OTG firmware. The flashing process is the same as Android. Key points to watch:
- Make sure you select the OTG firmware for iOS USB, not the Bluetooth firmware or an Android firmware;
- After flashing, note down the dev board’s MAC address — pairing depends on it;
- Close the central control while flashing, so the serial port isn’t occupied.
2. Pair the OTG Device
- Right-click the device in the central control → OTG HID Settings → Pair OTG Device;
- Select the connected serial port (if you can’t find it, uncheck “Show only paired devices” and force-refresh);
- You can also enter the last 8 characters of the MAC directly to pair;
- After pairing, the “Bluetooth/OTG MAC” column in the central control list shows the hardware address.
3. Network Configuration (Getting OTG Online)
The dev board needs network access to communicate with the central control:
- In the central control, right-click → OTG HID Settings → Set WiFi (Network Configuration);
- Enter the WiFi SSID and password, then click Set;
- Restart the dev board or reconnect it;
- Right-click in the central control → Scan Dev Board IP; once found, the IP appears in the “Bluetooth/OTG Hardware IP” column.
Once networked, the dev board no longer needs to be connected to a computer — the computer is only used during setup and pairing; after that the board just needs power to communicate with the central control. Note that the ESP32S3 supports 2.4G WiFi only.
4. Enable Wireless Debugging on the Phone (Critical Step)
With the data port occupied by OTG, the phone and the central control must communicate wirelessly. This is the stage where OTG setups most often go wrong:
- On the phone, go to Settings → General → Transfer or Reset iPhone → Reset Location & Privacy (clears old trust relationships);
- Plug the cable into the computer and tap Trust in the popup;
- Install Aisi Assistant (i4Tools) on the computer → Toolbox → Aisi Casting → install the Bonjour service all the way through (the key dependency for wireless debugging) until “Process Manager — Bonjour service started”;
- Right-click the device in the central control → Wireless Debugging Switch → Enable Wireless Debugging;
- Restart the phone — it will connect to the central control wirelessly, and the connection method shows Network.
Bonjour is Apple’s zero-configuration network discovery protocol. The central control relies on it to discover wirelessly connected iPhones. If Bonjour isn’t installed or the service isn’t running, the central control can’t find wireless devices.
5. Test OTG
- The phone system options are the same as for Bluetooth HID (AssistiveTouch, Full Keyboard Access, tracking sensitivity all the way left, etc.) — see the Bluetooth HID system configuration chapter for the full list;
- Connect the OTG device to the phone; if you see a mouse dot cursor, or “Settings → Ethernet” shows EasyClick NCM+HID input, recognition succeeded;
- Right-click in the central control → OTG HID Settings → Test OTG, then tap Mouse Move / HOME Key; if the phone reacts, the setup works.
If the mouse dot cursor appears but taps don’t respond during testing, first check whether AssistiveTouch tracking sensitivity and trackpad/mouse tracking acceleration are both dragged all the way left. Getting these two options wrong is the most common beginner mistake.
6. Communication Chain Overview
Once the OTG solution is fully configured, the daily communication chain looks like this:
Central control PC ──WiFi/LAN──→ Dev board (ESP32S3) ──OTG wired──→ iPhone
↑
Works standalone after provisioning; no PC needed
The central control sends commands to the dev board over WiFi, and the dev board sends HID events to the phone through the OTG cable. On the phone side, wireless debugging (Network mode) keeps the connection to the central control and uploads screenshot data. In this chain, the OTG cable carries control signals, WiFi carries central-control-to-board communication, and wireless debugging handles phone-to-central-control data sync.
4. Text Input, Shortcuts, and Scripts
The OTG HID feature set is basically the same as Bluetooth HID; the only difference is the event function prefix — bleEvent becomes otgEvent:
| Feature | Description | Function / method |
|---|---|---|
| Text input | With a proxy use inputText; with the offline main program installed use imeApi; with neither, use the Shortcuts assistant |
Same three-tier fallback as the Bluetooth solution |
| Keyboard shortcuts | Add shortcuts in the central control, paired with Full Keyboard Access → Commands; scripts call them via otgEvent.keyPressChar |
gui + character combinations |
| Screenshots | image.captureFullScreenNoAuto or image.startPreCapScreen for pre-capture |
No screen mirroring |
| OCR / YOLO / image color / template matching | All available | Same as the Bluetooth solution |
| Node feature | Unavailable | Requires the proxy IPA |
// Trigger a keyboard shortcut in the OTG solution
otgEvent.keyPressChar('b'); // triggers gui+b
// Screenshot without screen mirroring
const img = image.captureFullScreenNoAuto();
// Pre-capture for faster screenshots
image.startPreCapScreen();
5. Troubleshooting
| Symptom | Fix |
|---|---|
| Wireless debugging can’t be enabled on the phone | Reset Location & Privacy, then trust again; make sure the Bonjour service is running; keep the phone and computer on the same LAN and able to ping each other; if the central control can’t enable it, use Aisi Assistant “Feature Switch → Enable WiFi Debug Link” instead |
| Can’t connect / unstable | Check whether OTG is recognized (look for the NCM device under Ethernet); check whether the dev board IP was scanned; re-run network configuration or restart the dev board |
| Mouse inaccurate | Recheck the AssistiveTouch options; call otgEvent.resetZero to zero the position; set the scale ratio and screen dimensions; update the dimensions when switching between landscape and portrait |
| Dev board IP not found | Confirm the WiFi password; use a 2.4G network; restart the board and rescan; verify the board’s network configuration succeeded |
| Bonjour installation fails | Disable the antivirus and reinstall; run Aisi Assistant as administrator; manually check in the service manager that the Bonjour service exists and is running |
Quick comparison with Bluetooth HID:
| Dimension | OTG HID | Bluetooth HID |
|---|---|---|
| Connection | Wired OTG | Wireless Bluetooth |
| Interference resistance | Strong | Affected by Bluetooth channels |
| Latency stability | Stable | Can jitter |
| System support | iOS 17+ | Good compatibility on iOS 18+ |
| Data port usage | Occupied | Not occupied |
| Setup complexity | Higher (needs wireless debugging) | Lower |
6. Deployment Checklist and Notes
1. Deployment Checklist
Before scaling out an OTG HID deployment, confirm every item below:
- The number of ESP32S3 dev boards matches the number of phones — one board per phone;
- 3-in-1 adapters (Ethernet + OTG + charging) are ready;
- OTG cable connectors match the phone models (Lightning or Type-C);
- All boards are flashed with the correct OTG firmware and their MAC addresses are recorded;
- All boards are networked and the central control can scan their IPs;
- The Bonjour service is installed on the computer and wireless debugging works;
- Phone system options (AssistiveTouch, Full Keyboard Access, etc.) are all correctly enabled;
- Phone system version is iOS 17 or later.
2. Notes
- Wireless debugging must first be set up with a cable: enabling wireless debugging requires an initial wired connection to establish a trust relationship, after which wireless communication works;
- System updates may reset wireless debugging: after an iOS update, wireless debugging can stop working and you may need to redo the section 3.4 steps;
- OTG doesn’t support devices below iOS 17: if your fleet includes devices on older systems, mix in the Bluetooth HID solution for those;
- Prefer wired networking in cluster control: plugging Ethernet into the 3-in-1 adapter is more stable than WiFi, especially for batch-control scenarios.
7. FAQ
Q1: What is the OTG HID solution? A: An ESP32S3 dev board connects directly to the iPhone via an OTG cable and emulates an HID input device for control. It requires no signing and no proxy IPA, screenshots bypass screen mirroring, and it is immune to Bluetooth interference — but it only supports iOS 17+.
Q2: Which is better, OTG HID or Bluetooth HID? A: OTG uses a wired connection, so it suffers no Bluetooth interference and has more stable latency, but it only supports iOS 17+ and occupies the data port, so wireless debugging is needed to reach the central control. Bluetooth HID supports more iOS versions and does not occupy the data port. Choose OTG for stability and Bluetooth for flexibility.
Q3: Does OTG HID require a signed IPA?
A: No. Like Bluetooth HID, the OTG solution is no-signature and installs no proxy, and combined with image.captureFullScreenNoAuto screenshots it greatly avoids risk control detection.
Q4: The data port is occupied by OTG — how does the phone get online? A: It is recommended to use a 3-in-1 adapter (Ethernet + OTG + charging) to handle power, networking, and control at once. The phone connects to the central control via wireless debugging (Network mode), which requires installing the Bonjour service.
Q5: Can OTG HID control phones in batches? A: Yes. Each phone has its own OTG dev board, and the central control manages multiple devices in batches over wireless debugging, with batch script distribution for cluster control.
Q6: What should I do if wireless debugging cannot be enabled? A: First reset Location & Privacy to clear old trust relationships, reconnect the cable to the computer, and tap Trust again. Make sure the Bonjour service is started (Aisi Casting guides the installation). Keep the phone and computer on the same LAN and able to ping each other. If the central control cannot enable it, use Aisi Assistant “Feature Switch → Enable WiFi Debug Link” as an alternative.
Q7: Which dev board does OTG HID use? A: Only the ESP32S3 dev board is currently supported; ESP32C3 and other models are not. The firmware is free — download it from EasyClick iOS resources → USB version → OTG firmware, and be careful not to pick the Bluetooth firmware.
Q8: Does the dev board still need to be connected to a computer after network configuration? A: No. Network configuration and pairing require serial operations on a computer, but once the WiFi is set and the dev board IP is scanned, the board only needs power to communicate with the central control — no computer connection required.
Q9: How do I test whether OTG HID is working? A: Connect the OTG device to the phone; if you see a mouse dot cursor, or “Settings → Ethernet” shows EasyClick NCM+HID input, recognition succeeded. Then right-click in the central control → OTG HID Settings → Test OTG, tap Mouse Move / HOME Key, and if the phone reacts, the configuration is correct.
About EasyClick: A phone automation AI-agent platform covering Android no-root, iOS no-jailbreak (proxy / Bluetooth HID / OTG HID) and HarmonyOS Next, offering script development, Apple cluster control, local central control & mirroring, and cloud control systems. → Explore all products
Ready to build it for real?
Every approach in this article can be built on the EasyClick phone automation platform — full documentation, developer tools and cluster/cloud-control products, free to try.