Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Wired connection from iPhone to Raspberry Pi

I would like to build an application on my iPhone that connects to my raspberry Pi. Because these are going to be in close proximity (next to each other), I'd like to use the wired connection (lightning port to USB) to communicate. Is this possible or must I use wireless technologies? My assumption is that wired would be better as it ensures a connection and would be faster, however, I am open to be corrected.

This is related to a hobbyist project where I want to access a raspberry pi sensor on my iphone. The sensor (and Pi) will be next to the iphone. I'm building a custom weird case to combine them.

Any thoughts much appreciated.

Thanks Iain

like image 569
user2294382 Avatar asked Jan 07 '14 16:01

user2294382


People also ask

Can you connect to Raspberry Pi through Ethernet?

Connect your ethernet cable to your computer and to the Raspberry Pi. Plug in the wall power adapter into the Raspberry Pi, and then plug it into the wall to turn the power on. Once the power is connected to the wall, the Raspberry Pi will be on.

Can a Raspberry Pi display on a phone?

After installing the application on your phone, you have to connect the Raspberry Pi to Android via the video capture card and open the USB camera app. Then select a suitable resolution, and you can even make the display into full screen. While running this setup, the touch on the phone works perfectly fine.


2 Answers

For communication with peripheral devices (Raspberry Pi for example) you have several alternatives.

UART via 30-pin or lightning connector (MFi needed)

USB via 30-pin or lightning connector (MFi needed)

Quick start: Microchip's development kits. This module can prolong communication to RPi or you can try to implement the Accessory stack (and communication with authentification chip) to RPi itself.

FSK or similar modulated-audio communication via audio-jack (no MFi needed)

You would have to implement hardware FSK modem on the RPi side and a software one on the iOS side. It is a bit tricky but by no means impossible.

Of course you could implement software modem on the RPi side, too. But since RPi doesn't have audio input you would have to use an USB audio card or something. Or complicate your life trying to sample an analog pin fast enough.

User not really Jake made a quite impressive list of links on this topic here on SO.

Bluetooth as an External Accessory (MFi needed)

Quick start: RN-41/42-APL

Easy to use Bluetooth stack. Communication with authentification chip is handled by the BT module. Note that when communicating with iOS devices data troughput is not much better than when using BLE modules.

Bluetooth as a BLE module (no MFi needed)

Data troughput not much worse then the old BT. Implementing the communication might be a bit more tricky code-wise. This module seems interesting.

WiFi communication (no MFi needed)

WiFi might be a good choice. But for your device and iOS device to be able to find eachother you will need either static IP (for the server device) or minimal Zeroconf (Bonjour) implementation.

When using WiFi you can go either with infrastructure network (using external Access Point) or you could go with AdHoc (created by your device). Later seems promising but be careful - iOS7 & AdHoc network don't seem to work well together yet.

With WiFi you have many modules to choose from. A simpler to use would be a module like RN-XV WiFly Module. TCP stack is already implemented in the module - you can use simple UART communication. I'm not sure how to implement Zeroconf on this one.

Or there are raw WiFi modules like MRF24WG0MA/MB. They are stable and reliable and they can be used on home-etched PCB. Downside for RPi user would be that you would almost certainly need an PIC24 or something between the RPi and MRF24W. Microchip provides free TCP/IP stack for their microcontrollers and this stack includes Zeroconf.

And the easiest way: you could simply use a WiFi dongle (with RPi) for communication. Zeroconf should be easy enough to implement on the RPi - and it's not even needed at the begining if you are ok with assigning static IP to the RPi (if it acts as a server).

like image 75
Rok Jarc Avatar answered Sep 28 '22 09:09

Rok Jarc


This is not possible without signing up for apples MFI program. You have to pay and sign a bunch of NDA's.

https://developer.apple.com/programs/mfi/

You can use other methods, like bluetooth and connection over the audio port.

like image 43
Chris Kooken Avatar answered Sep 28 '22 11:09

Chris Kooken