Hello everyone,
We're working on an iOS app that needs to connect to a non-Apple pre-operating system using USB for serial communication. Our goal is to send and receive data between an iPhone and a UEFI-based system directly over USB.
We've created a proof of concept using the USBMux protocol, which let us exchange basic messages. However, we're running into problems with the USB endpoint setup. In some cases, the USB communication doesn't start or stay connected.
Since this is for a pre-boot environment, it might not fit into the usual iOS USB communication frameworks. We're looking for help with the following:
- Any guidance or documentation on setting up USB serial communication between an iPhone and a non-Apple pre-boot system
- Information on system APIs, frameworks, or protocols that iOS supports for direct USB communication in this scenario
- Access to official USBMux documentation or specs to understand its limitations and capabilities better
- Whether this communication requires MFi certification or if there are other Apple-supported interfaces we can use
Thank you!
We're working on an iOS app that needs to connect to a non-Apple pre-operating system using USB for serial communication. Our goal is to send and receive data between an iPhone and a UEFI-based system directly over USB.
That is not a goal iOS provides any support for, as iOS does not provide ANY APIs for "direct" USB communication.
Covering a few specifics:
Access to official USBMux documentation or specs to understand its limitations and capabilities better
The protocol iOS uses to communicate with macOS is not documented and never has been. Give that, I would strongly advice against trying to build anything that relies on it.
Whether this communication requires MFi certification
Note that MFi certification specifically allows you create accessories which use a specific protocol ("iAP2") and then communicate with apps using the ExternalAccessory framework. It does NOT allow "generic" USB communication and never has.
if there are other Apple-supported interfaces we can use
I actually have two other suggestions:
-
There are enterprise oriented MFi licensees who sell adaptor for communicating with specific hardware and/or will help design and license custom cables/adaptors for specific vertical uses cases. I'm sure there are other companies who provide similar services, but <https://redpark.com> is one example I happen to be familiar with.
-
I'm not aware of it having been used commercially but, at a purely technical level, it's entirely possible to create an "ethernet" accessory for iOS. iOS has fully supported USB ethernet adaptors for many, many years (iOS 8??) and the app side of this is simply communicating over a standard network connection.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware