Can iOS communicates with a non-MFi 3rd party device over USB-C?

Hello forum, I'm trying to build communications between a non-MFi HID device (say, a keyboard with a USB-C port) and an iOS device over a MFi-licensed cable with Swift, what framework would you suggest?

  • The USB-C cable is MFi-licensed.
  • The keyboard is not MFi-licensed.

Without pursuing MFi licensing for the accessory in question, communication from an app to a USB-C accessory is limited. DriverKit, USBDriverKit, and the basic IOKit APIs are available on M1 and later iPads, but HIDDriverKit and the IOKit HID APIs are not.

What kind of accessory are you building? Note that iOS and iPadOS ship with built-in support for standard HID usages, such as keyboard and mouse, with no third-party software/drivers needed.

Justin

We're building a scanner device for iPhone15 , which can be a HID input for software keyboard, and have a USB-C port for iPhone to connect, and user can config the scanner from iOS app.

I noticed the DriverKit, IOKit and USBDriverKit are not support iOS, is there any alternatives besides join MFi program? The External Accessory framework is only available for MFi licensed devices, right?

We're building a scanner device for iPhone15 , which can be a HID input for software keyboard, and have a USB-C port for iPhone to connect, and user can config the scanner from iOS app.

What do you mean by "scanner" here? Is this a general purpose photo/paper scanner or a bar code reader?

I noticed the DriverKit, IOKit and USBDriverKit are not support iOS, is there any alternatives besides join MFi program?

I'm not sure it's really been used to create accessories, but iOS has also supported ethernet adaptors for many years*. I'm not aware of any specific accessory that's used this approach, but I don't see any reason why you couldn't use this to connect an accessory.

*MFI licensed lightning to ethernet have been available for quite awhile and it's also possible to daisy chain our camera connection kit with a USB ethernet adaptor.

The External Accessory framework is only available for MFi licensed devices, right?

Yes, that's correct.


Kevin Elliott
DTS Engineer, CoreOS/Hardware

Can iOS communicates with a non-MFi 3rd party device over USB-C?
 
 
Q