= Audio Jack modem for Iphone and Android = === ARMS22-SOFTMODEM SMD === With this board, datas are transferred from Arduino to iPhone and from iPhone to Arduino. The communication speed is 1225bps (※ The actual data transfer rate slightly lower.) It is suitable for a small amount of data communication like switch inputs and sensor information. This is semi-finished products. To use this, solder a pin header or a pin socket to this board. Dimensions: 33 x 18mm ( without audio jack ) == Applications == [http://side2.256byte.com/2010/08/android-softmodem/ Android with this board] [http://side2.256byte.com/application/softmodem-terminal/ Softmodem Terminal application for Android] [http://side2.256byte.com/2010/09/android-shutter-control/ Android to control the camera shutter in a SLR] [http://d.hatena.ne.jp/NeoCat/20100822/1282486171 Make voice audio with JavaScript and play it as a way of data communication] [http://mkroll.mobi/hardware/rfid_tag_reader/rfid_tag_reader.html iPhone RFID Tag Reader] == Disclaimer == * Because data communications with this device uses audio, data corruption may occur sometimes. Please consider incorporating the checksum processing, and retrying. * Please make the iPhone's volume maximum. == Connection == Use a 4 pin male to male cable to connect to iPhone. With some cable, cross-talk may occurs that cause communication errors. Please use the gold plated shielded cables. The shorter the cable, the better. Connect to Arduino as follows (right side is the Arduino's pin.) FSKOUT → D3[[BR]] GND → GND[[BR]] VCC → VCC[[BR]] FSKIN → D6[[BR]] AIN1 → D7[[BR]] == Volume Adjustment == Measure the voltage on AIN1 with tester to make it (VCC / 2) + 300mV. 5V VCC: 2.7V AIN1[[BR]] 3.3V VCC: 1.95V AIN1[[BR]] == Arduino Library: !SoftModem == [http://code.google.com/p/arms22/downloads/detail?name=SoftModem-004.zip SoftModem-004.zip] === Sample Sketch === {{{ #!C # Include # Include SoftModem modem; void setup () { Serial.begin (57600); delay (1000); modem.begin (); } void loop () { while (modem.available ()) { int c = modem.read (); if (isprint (c)) { Serial.println ((char) c); } else { Serial.print ("("); Serial.print (c, HEX); Serial.println (")"); } } if (Serial.available ()) { modem.write (0xff); while (Serial.available ()) { char c = Serial.read (); modem.write (c); } } } }}} '''Notes''' * Two hardware timers and analog comparator are in the library. Therefore, it’s not possible to use these features in the application. * Tone function is not available. == iPhone Apps: !SoftModemTerminal.app == [http://code.google.com/p/arms22/downloads/detail?name=SoftModemTerminal-004.zip SoftModemTerminal-004.zip] !SoftModemTerminal is a simple terminal application for iPhone. With the sample sketch, Arduino sends and receives alphanumeric. Please note that big sound will come from speakers if nothing is put into the iPhone's audio jack. Currently, !SoftModemTerminal is not distributed in !AppStore. Download the source code, please use your own build. !SoftModemTerminal is able to be build with Xcode and iPhone SDK. Xcode is included in the MacOSX installation DVD. Also available for download at Apple's developer pages. You can download the Apple SDK iPhone developers to register with the developer page. To make it work on iPhone, You must participate iPhone Developer Program which costs 10,800 JPY a year.