Getting Started: Arduino Projects for MICO Shield

So you just got your MICO Shield and is excited about creating great Arduino projects that interface with cell phone… awesome, you’re in the right place!

Get to know the MICO board:


MICO IO Diagram

The diagram below is to get you familiar to which Arduino pins MICO uses and what function each pin has. The pins highlighted in green are the pins that are open for user’s project. Other pins already have a function assigned to them.

MICO Pin out Allocation


Block Diagram

The diagram below depicts all the functions that the MICO Shield performs. The diagram also shows which Arduino pins are required in order to perform any given function.

I recorded a Webcast where I go over each block of MICO and provided an explanation. Check it out!

MICO Block Diagram and Pin Use

Description of Each Block

The incoming audio signal from the cell phone is amplified using an operational amplifier and splitted so that it is sent to the DTMF decoder IC and also to an Arduino Analog Input (A0). The DTMF decoder outputs digital signals to Arduino, letting it know which touch tone key was pressed. The Arduino uses that analog input signal for the call detection logic and also to help the user in diagnosing issues with their setup (e.g. detect saturated input of audio signal).

ANSWER/END CALL is emulated by momentarily shorting MIC and GND together. This function is used after the Arduino logic detected the phone is ringing and decided to answer the call (the call detection logic may be modified to fit your application).

The JUMPER FOR MIC POLARITY provide you an easy way to select the MIC polarity for your phone. Type 1: Sleeve = ground, Ring 1= mic; Type 2: Sleeve= Mic, Ring 1=ground; If none of these the two popular settings work for you (e.g. some old phones may use TIP for MIC) use should the PCB test points to set the required pin out.

The MIC BIAS VOLTAGE READING is my proud effort to make MICO’s setup as easy as as possible. This circuit measures voltage that your cell phone is outputting to bias the MIC line. The provided sample Sketch convert AN IN bits to the measured voltage(Vbias) . If Vbias is positive (e.g. 500mV to 1.5V) you should be all set. If Voltage is negative then reconfigure the polarity jumper. If is voltage is 0, either your phone only momentarily apply the bias to save power OR you may have a phone with different pin out. I’ll create setup guide with additional details.

AUDIO GENERETION (PWM): the outgoing audio generated by MICO is based on library SimpleSDAudio. The generated audio is coupled into the microphone line (MIC) and also routed to an 3.5mm audio jack which allow you to connect a standard 32ohm headset and listen in the generated audio.

In addition MICO will have a MicroSD Card slot where audio files are stored, and of course you can use it for either voice or music. Well that’s if for key features.

Cell phone requirements: The cell phone you use with MICO must support headsets with Answer/End Call button OR have “Auto Answer Call”. Mico has been tested with the lastest Android phones and iPhone 5

Getting Started!

What you need:

  • MICO shield (of course!)
  • two jumpers
  • Audio Cable (4pole 3.5mm male-male)
  • MicroSD Card (optional but recommended)
Arduino projects with MICO Shield
Arduino projects with MICO Shield


  • Arduino UNO or Leonardo
  • USB power cable
  • Sample Sketches & Library: Download here
  • headphones (optional) – confirm MICO is playing out sounds
  • A cell phone (optional)


  • MICO software is free and open souce-code. its libraries & sample sketches are stored at Github website: Download and MICO at GitHub

Arduino Projects for MICO Shield:

Here’s a collection of sample projects using MICO. Let us know of YOUR project so we can it below!

  • Arduino playing out audio
  • Audio Conversion Tutorial – how-to get an WAV file and convert into the format that MICO can play off the MicroSD Card. You can convert any sound you wish – voice, music or sounds.
  • Call to report temperature (to do: add video and step-by-step instructions)