Design News is part of the Informa Markets Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Gadget Freak Case #267: What Happens When You Combine Arduino and iOS?

Article- Gadget Freak Case #267: What Happens When You Combine Arduino and iOS?

 Gadget Freak Case #267: What Happens When You Combine Arduino and iOS?

The Arduino is great for connecting with hardware but has a limited user interface. Apple's iOS devices have a great user interface but are limited when connecting with hardware.

I combined an Arduino and iOS using the DTMF audio signals established 50 years ago for touch-tone telephone dialing. I send tones from iOS using the headphone jack and receive tones sent from the Arduino on the iOS microphone line. The dual-audio tones used for communications are simple enough to be both generated and decoded on the Arduino.

The iOS audio lines are non-proprietary and resistant to signal noise. By avoiding a specialized data port, the data transfer protocol is not limited to iOS devices. Any computing device that can send and receive audio tones can use this system.

The video below shows an Arduino being controlled with signals from several different sources, including a custom app generating DTMF tones, a standard phone-dialing app, and an analog phone handset.

Each tone encodes only 4 bits. To transfer a 32-bit value requires eight tones, plus three identification tones. One storage bit is used to distinguish integer and floating point numbers, leaving 31 bits for representing the value. Integer values are transferred using fewer tones to save transfer time when the value can be represented with 8, 16, or 24 bits. All numbers are stored in the Arduino memory as 4-byte, 32-bit values.

I've created programs for the Arduino that control a small CNC mill. Using a custom-built iOS app, I can reset parameters and customize the software settings without needing to reprogram the Arduino. Feed rates, stroke lengths, and repetition counts are a few examples of the parameters that can be reset.

Click here to view Table 1.

Click here to view Table 2.

Do you have a Gadget Freak project you would like the world to see? Send a brief description of your gadget and a photo to Executive Editor Jennifer Campbell.


Check out the Best of Gadget Freak -- Volume 2 Technology Roundup to see some of the best gadgets that your peers have created.

When you are finished, be sure to check out Best of Gadget Freak: Vol. 1.

Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.