The iPad would be the perfect handheld device for controlling some USB devices. I would like to get started with programming iPad applications which would communicate with USB devices.

I guess I could use the dock port USB adapter to communicate with home made USB devices. How should one go about programming communication through that dock port and adapter? I need some directions. Don't know where to look, where to start. Not even sure if it is possible at all.

I ask because I know most devices are not recognized. The drivers are not automagically installed as on desktop or laptop computers. I want to get started with programming low level communication so that the application itself on iPad would possibly manage the whole USB communication with its device.

Thank you very much,

Any helpful input is welcome. Haven't found a lot of successful stories so far.

You cannot directly interface with generic USB devices from a stock OS iPad unless you are a manufacturer in Apple's MFi (http://developer.apple.com/programs/mfi/) program. There appears to be a ton of paperwork involved to just apply. The external accessories API is of no help on stock OS devices, unless you are manufacturing your own custom MFi-compliant device.

Alternatives

  • If your USB device can pretend to be a MIDI instrument or controller, you might be able to interface with it over USB by sending/receiving MIDI messages from the iPad.
  • Another option is to use a small inexpensive board, such as a Raspberry Pi Zero W, and use it to programmatically transfer USB data via WiFi to an iOS device.
  • 2
    Yes, MIDI devices are visible directly via CoreMIDI, even if they are plugged into, say, the iPad Camera Connection Kit. Not all devices work, however. – Dan Rosenstark Mar 8 '12 at 6:07

You probably want to look at the Apple External Accessories API documentation:

http://developer.apple.com/library/ios/#featuredarticles/ExternalAccessoryPT/Introduction/Introduction.html

Note that this does not just give you access to the device's USB port - to talk to a device it is my understanding that the device has to be designed to support this API as well.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.