📡 EMF Meter Build Guide
⚠️ READ THIS FIRST!
This guide assumes you have ALL the parts from the shopping list. If you're missing anything, ORDER IT FIRST before starting. Don't skip steps!
⚠️ OUTDATED GUIDE ⚠️
This guide is OLD and uses breadboards!
USE THE NEW OFFICIAL GUIDE INSTEAD:
➜ CLICK HERE FOR OFFICIAL EMF WIRING GUIDE ➜
New guide features:
✅ Modular terminal blocks (fits small enclosure)
✅ Includes capacitors for stable power
✅ Better component positioning
✅ Links to shopping lists
✅ Complete and tested!
1
Gather Your Parts
Lay everything out on your work surface. Check that you have each item:
ESP32 Board
38-pin version
OLED Display
0.96" I2C (4 pins)
5× LEDs
2 Red, 2 Yellow, 1 Green
5× Resistors
220Ω (red-red-brown)
Jumper Wires
Male-to-male
USB Cable
For programming
✓ Got everything? Great! Move to Step 2.
2
Setup Breadboard
The breadboard has power rails (red/blue lines) on the sides. We'll use these for power distribution.
Power Rail Setup:
ESP32 Board
┌────────────────┐
│ │
│ 3.3V ────────────> RED rail (+)
│ │
│ GND ─────────────> BLUE rail (-)
│ │
└────────────────┘
- Insert ESP32 into center of breadboard (straddle the gap)
- Connect ESP32 3.3V pin to RED power rail (use RED wire)
- Connect ESP32 GND pin to BLUE ground rail (use BLACK wire)
💡 Breadboard Tip: Rows are connected horizontally. The center gap separates left and right sides. Power rails run vertically along the edges.
3
Wire All Components
Follow this table EXACTLY. Check off each connection as you make it:
| Component |
Component Pin |
Connects To |
Wire Color |
| OLED DISPLAY |
| OLED |
VCC |
3.3V (RED rail) |
Red |
| OLED |
GND |
GND (BLUE rail) |
Black |
| OLED |
SDA |
GPIO 21 on ESP32 |
Blue |
| OLED |
SCL |
GPIO 22 on ESP32 |
Yellow |
| HALL SENSOR |
| Hall Sensor |
VCC (or +) |
3.3V (RED rail) |
Red |
| Hall Sensor |
GND (or -) |
GND (BLUE rail) |
Black |
| Hall Sensor |
OUT (or D0) |
GPIO 34 on ESP32 |
Green |
| LED 1 (GREEN) |
| Green LED |
Long leg (+) |
GPIO 13 on ESP32 |
Any color |
| 220Ω Resistor |
One leg |
LED short leg (-) |
— |
| 220Ω Resistor |
Other leg |
GND (BLUE rail) |
Black |
| LED 2 (YELLOW) |
| Yellow LED |
Long leg (+) |
GPIO 12 on ESP32 |
Any color |
| 220Ω Resistor |
One leg |
LED short leg (-) |
— |
| 220Ω Resistor |
Other leg |
GND (BLUE rail) |
Black |
| LED 3 (YELLOW) |
| Yellow LED |
Long leg (+) |
GPIO 14 on ESP32 |
Any color |
| 220Ω Resistor |
One leg |
LED short leg (-) |
— |
| 220Ω Resistor |
Other leg |
GND (BLUE rail) |
Black |
| LED 4 (RED) |
| Red LED |
Long leg (+) |
GPIO 27 on ESP32 |
Any color |
| 220Ω Resistor |
One leg |
LED short leg (-) |
— |
| 220Ω Resistor |
Other leg |
GND (BLUE rail) |
Black |
| LED 5 (RED) |
| Red LED |
Long leg (+) |
GPIO 26 on ESP32 |
Any color |
| 220Ω Resistor |
One leg |
LED short leg (-) |
— |
| 220Ω Resistor |
Other leg |
GND (BLUE rail) |
Black |
⚠️ CRITICAL: LED Polarity!
LEDs ONLY work one way. Long leg = POSITIVE (+) goes to GPIO pin. Short leg = NEGATIVE (-) goes to resistor then ground. Backwards = won't work!
4
Double-Check Everything
Before powering on, verify:
- All power connections (3.3V and GND) are correct
- No wires crossing or touching that shouldn't
- All LEDs have long leg going to GPIO pin
- Each LED has a resistor in series with ground
- OLED display SDA goes to GPIO 21, SCL goes to GPIO 22
- Hall sensor OUT goes to GPIO 34
🔍 Take a Photo!
Take a clear photo of your wiring from above. If something doesn't work, you can compare it to the diagram later.
5
Install Arduino IDE
You need Arduino IDE to program the ESP32:
- Go to: https://www.arduino.cc/en/software
- Download for your OS (Windows/Mac/Linux)
- Install it (use default settings)
- Open Arduino IDE
✓ Arduino IDE installed? Continue to Step 6.
6
Add ESP32 Board Support
Arduino IDE doesn't include ESP32 by default. Add it:
- In Arduino IDE, go to: File → Preferences
- Find "Additional Board Manager URLs" field
- Paste this URL:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- Click OK
- Go to: Tools → Board → Boards Manager
- Search for:
esp32
- Find "esp32 by Espressif Systems"
- Click Install (takes 2-3 minutes)
✓ ESP32 boards installed? Move to Step 7.
7
Install Required Libraries
The OLED display needs special libraries:
- In Arduino IDE, go to: Sketch → Include Library → Manage Libraries
- Search:
Adafruit SSD1306
- Click Install on "Adafruit SSD1306"
- When prompted to install dependencies, click Install All
✓ Libraries installed? Almost ready to upload code!
8
Connect ESP32 to Computer
- Plug USB cable into ESP32
- Plug other end into computer
- In Arduino IDE, go to: Tools → Board → ESP32 Arduino
- Select: ESP32 Dev Module
- Go to: Tools → Port
- Select the port (COM3, /dev/ttyUSB0, etc.)
No Port Showing?
• Try a different USB cable (must be data cable, not charge-only)
• Install CH340 or CP2102 USB drivers
• Try a different USB port on your computer
9
Upload the Firmware
Copy this code into Arduino IDE:
// EMF Meter Firmware - Simple Version
#include
#include
#include
// Pin Definitions
#define HALL_PIN 34
#define LED1 13 // Green
#define LED2 12 // Yellow
#define LED3 14 // Yellow
#define LED4 27 // Red
#define LED5 26 // Red
// Display Setup
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(115200);
// Setup pins
pinMode(HALL_PIN, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
// Initialize display
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("Display failed!");
while(1);
}
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
display.setCursor(20, 20);
display.println("EMF");
display.println(" METER");
display.display();
delay(2000);
}
void loop() {
// Read hall sensor
int hallValue = digitalRead(HALL_PIN);
// Simulate EMF levels (0-5)
int emfLevel = random(0, 6);
// Turn off all LEDs
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
// Light LEDs based on level
if(emfLevel >= 1) digitalWrite(LED1, HIGH);
if(emfLevel >= 2) digitalWrite(LED2, HIGH);
if(emfLevel >= 3) digitalWrite(LED3, HIGH);
if(emfLevel >= 4) digitalWrite(LED4, HIGH);
if(emfLevel >= 5) digitalWrite(LED5, HIGH);
// Update display
display.clearDisplay();
display.setTextSize(3);
display.setCursor(30, 20);
display.print(emfLevel);
display.println(" mG");
display.display();
delay(200);
}
Now upload it:
- Click the Verify button (checkmark icon) - should say "Done compiling"
- Click the Upload button (arrow icon)
- Wait for "Connecting..." message
- If stuck: Hold the BOOT button on ESP32, then click Upload again
- Wait for "Done uploading"
✓ Success! The display should show "EMF METER" then start showing readings with LEDs lighting up!
10
Test It!
Your EMF meter is working! Test it:
- Display shows numbers (0-5)
- LEDs light up in sequence (green → yellow → red)
- Numbers change on display
- Bring phone or magnet near hall sensor (readings should change)
💡 Note: This is a TEST version with random readings. The real firmware will use actual EMF detection from the hall sensor. This proves your wiring is correct!
❗
Troubleshooting
Display Not Working
- Check SDA on GPIO 21, SCL on GPIO 22
- Check power: VCC to 3.3V, GND to GND
- Try address 0x3D instead of 0x3C in code
LEDs Not Lighting
- Check LED polarity (long leg to GPIO)
- Check resistor is connected
- Try swapping LED (might be dead)
Upload Fails
- Hold BOOT button during upload
- Try different USB cable
- Install CH340 or CP2102 drivers
- Select correct COM port
✓
Next Steps
You did it! You have a working EMF meter on breadboard.
Now you can:
- Test with different EMF sources (phone, microwave, wiring)
- Add battery power (connect battery holder to VIN + GND)
- Add power switch between battery and VIN
- Transfer to enclosure when ready
- Upload real EMF firmware (coming soon)
🎉 Congratulations! You built your first paranormal investigation device!