Arduino as an FSK Modem

An FSK modem basically convert a digital signal into analog signal or sound signal by frequency shift keying technique. Here we can make our Arduino as an FSK modem by uploading a simple code. This project produce and play a sound corresponding to a digital signal and demodulate a sound signal into the corresponding digital signal.

For executing this, we need an Arduino library named SoftModem. The code is given below.


 SoftModem modem;
 int led = 13; 

 void setup ()  
 pinMode(led, OUTPUT);  
 Serial . begin (57600);  
 modem. begin ();
 Serial . println ("Start");  

 void loop () 
 while (modem. available ())
  { // iPhone is receiving data from the check
  //Serial . println ("Data in");   
  int c = modem. read (); //1byte Lead 
  if (isprint(c))
   Serial . print ((char)c); //PC sends      
   Serial . print ("("); //Hex printable characters are displayed in 
   Serial . print (c, HEX ); 
   Serial . print (")"); 
 while ( Serial . available ())
  { //PC to make sure data is received from
 // Serial . println ("Data out");   
  char c = Serial . read (); //1byte Lead 
  modem. write (c); //iPhone send       

For avoiding the outside noise, it is important to connect a filter circuit in the output pins of Arduino. FSK_out on digital pin 6 and FSK_in on digital pin 3. On these pins we connect the filter likewise the picture shown below.

18 comments on “Arduino as an FSK Modem

Comments are closed.