Introduction: Real-Time Device Recognition Using EM Footprints

This device is intended to classify different electronic devices according to their EM signals. For different devices, they have different EM signals emitted by it. We have developed an IoT solution to identify the electronic devices using Particle Photon kit. Our wearable device can be worn on the wrist which has compact connection of particle photon with a OLED display and circuit connection from particle photon to the antenna provided in the kit.

This device can be further integrated to control the electronic devices and making them as "Smart devices" with all the open source software, so that you can control it, also modify or improve the capability of this device.

Step 1: Hardware : Circuit Design

  • Components: (from Particle Maker kit)

You can purchase the kit from various online websites.

-- Amazon Website

-- Particle Website

-- Adafruit Website

  1. Particle photon development board
  2. Resistors x 3 -- 1 megaohm
  3. 3-5V 0.96" SPI Serial 128X64 OLED LCD Display

  4. Antenna (for getting the EM readings/footprints)

Step 2: Hardware: 3D Printing

  • We designed our wrist band dial using a 3D printer.
  • The 3D model was designed in Shapr3Dapplication using iPad Pro.
  • stl file of the 3D model was imported and pushed into the Qidi software since we were using the X-one-2 Qidi Tech printer.
  • 3D printer took approximately 30 minutes to print the model.
  • link to the stl file.

Step 3: Hardware: Laser Cutting

  • We designed the wrist band pattern using Adobe Illustrator.
  • The designed model was then exported to Universal Laser machine where we cut the wood to a flexible wrist band.
  • link to svg file.

Step 4: Software: Data Collection

  • Using Photon, publishing 3 x 100 data value every possible instance.

  • Writing the data from Photon to data.json in node server.

  • Analyzing the data from node server to MATLAB.

  • Data sent to MATLAB is in the form of 1 x 300.

Step 5: Software: Training the Collected Data Set

  • Chunks of 1 x 300 - feed to MATLAB.
    (for each device 27 samples collected)27 x 300 data collected.

  • Added features to the data - (5 features) - mean, median, standard deviation, skewness, kurtosis.

  • Training the data into MATLAB classification toolbox

  • Testing Offline data (6 x 6) in same toolbox

Step 6: Software: Predicting the Classes


  • Fetching the live data using photon.
  • Sending the raw data to node server. ( data saved in data.json file)
  • MATLAB script for reading the data from data.json file and predicting the result.
  • Saving the result into result.json.
  • Http server reading the predicted result from result.json.
  • Visualizing the raw data and result in UI.
  • Http server will send the result to particle and display the result using Oled display.