How to transmit ISOCHRONOUS Audio Buffer to iPhone through lightning connector from external hardware?

I am planning to manufacture hardware device that would connect to iOS Devices through iOS Application using lightning port, Below would be the protocols back and forth:

  • USB Audio for audio data transfer from hardware to iPhones which would be ISOCHRONOUS.
  • USB HID/CDC for commands/requests from iPhone to hardware device.

I have been around the web for a long time and Here are the findings:

  • I need to register for Apple MFi program to manufacture hardware device.
  • I need to use ExternalAccessory framework to work with hardware within my application.
  • I need to use Protocol String within
    Info.plist
    , same should be there in hardware.

Now here are my questions for which I haven't find any clean answers yet:

  • Do I need to register for MFi for testing purpose also? as I am having a sample hardware device which keep sending an audio tone isochronously. It is being detected in MacBook Pro and I am able to listen that tone using QuickTime Player. But It is not being detected in my Application using
    [[EAAccessoryManager sharedAccessoryManager] connectedAccessories]
    . Also it is not showing in Apple's Official EADemo. I am using Lightning to USB Camera Adapter to connect the hardware to iPhone.
  • Do I need to have Protocol String in
    Info.plist
    for detection of device also, I am asking for only detection not communication?
  • My hardware device would not be having inbuilt battery and it would draw the battery from iPhones but it would require very small amount of power. Will it be OK for Apple to withdraw a small amount of power?
  • Is it allowed from Apple to send ISOCHRONOUS audio buffer to iPhones from External Accessory? as it is restricted in Android.
  • Is there a way to find the protocol string of any hardware device?

Replies

https://developer.apple.com/library/content/technotes/tn2274/_index.html


This Apple page seems to suggest that isochronous audio USB support is standard with Core Audio. So you might try just using the Lightning Camera Connection kit with a standard (non-MFi) USB audio profile device.


However iOS does not seem to support using the HID profile for communcation with generic USB devices.

The given link is explaining about OS X not iOS. Also I have tried with lightning camera connection kit, the hardware device is not being detected.

Can you make your device appear as a standard audio profile device on USB? iOS allows only a very few USB profiles (audio, midi, ethernet) to connect with generic iOS apps. If your device presents an HID profile, it will be invisible to your app. To get official information on connecting to MFi hardware, you may have to enroll in that program first.