[SHARED] iOS interfacing – Frequency Shift Keying (FSK) from Arduino

April 12, 2012

So, it turns out that I’m probably not going to use the Hijack approach to getting serial data from my Mindflex into my iPhone.  This is mainly due to the fact that I have the majority of the components to build a similar system from scratch.  The difference will be that I will not use the iPhone’s battery to power the system; I will use an external power source.  I intend to follow the steps detailed in this forum discussion that I found on Arduino’s website: Arduino–>FSK—>Iphone (OpenframeWorks)

Here is a snapshot and the corresponding schematic of the setup of the parts:

Setup: Arduino > iPhone Audio Jack


NOTE:  If you don’t mind jailbreaking your iPhone, the setup documented here interfaces the iPhone through the 30-pin dock at the bottom of the phone.  It allows for a faster baud rate and easier access to the iPhone’s power source. Apparently you have to buy the Redpark or Legacy (?) device for ~$60, however.


  1. wendellinfinity - April 12, 2012 at 10:44 pm -

    I have tried pulling a trick with the Mindflex onto the iPhone using HiJack but I did not get anywhere. I even tried to do some stuff with the TinyOS code inside but it proves too much just to get it work even. My approach is now this but I have not yet started it:
    Mindflex serial >> WiFly with adhoc network >> then iPhone app. WiFly is cheaper than HiJack and you can do practically anything with it and all the iPhone needs is to do GET from the WiFly.

    • conorrussomanno - April 16, 2012 at 12:31 pm -

      The only issue I see there is that the Wifly has to have a wireless network to send data, correct? This would mean that in order to constantly send EEG packets you could not walk through an area of no wifi or password protected networks. Are you thinking of a solution to this problem already? One possible solution would be to temporarily store the data in a local storage spot (like a Micro SD) when there’s no wifi and then send the data in larger packets when the wifi is reconnected – while deleting from the local storage. I could see this getting messy though.

      On the HiJack note, did you try programming your own FSK from the Arduino while using an external power source? I’m still going to give it a shot unless you can convince me otherwise. Right now my thinking on the data transfer is as follows:

      Mindflex > Arduino1 > transmitter >->->->->-> receiver > Arduino2(attached to iPhone w/ unique power source) > FSK_conversion > iPhone’s audio via bi-directional aux cable > iPhone application

      If you have experienced any glaring issues with any part of this progress, please tell me! I’ll keep you posted on my progress.