wiki:ARMS22-SOFTMODEM-HOWTO

Version 17 (modified by Ken Suzuki, 9 years ago) (diff)

--

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

Android with this board

Softmodem Terminal application for Android

Android to control the camera shutter in a SLR

Make voice audio with JavaScript and play it as a way of data communication

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
GND → GND
VCC → VCC
FSKIN → D6
AIN1 → D7

Volume Adjustment

Measure the voltage on AIN1 with tester to make it (VCC / 2) + 300mV.

5V VCC: 2.7V AIN1
3.3V VCC: 1.95V AIN1

Arduino Library: SoftModem

SoftModem-004.zip

Sample Sketch

# Include <SoftModem.h>
# Include <ctype.h>

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.

Attachments (1)

Download all attachments as: .zip