Skip to content

Hardware Setup

Arunkumar Mourougappane edited this page Oct 25, 2025 · 1 revision

Hardware Setup

Complete guide to supported hardware platforms and physical setup for ESP32 WiFi Utility v4.2.0.

Supported Boards

The ESP32 WiFi Utility supports three hardware platforms with full feature parity:

1. ESP32 Development Board (Standard)

Overview:

  • Standard ESP32-based development boards (DevKitC, NodeMCU-32S, DOIT ESP32, etc.)
  • Most common and affordable ESP32 platform
  • Built-in LED for status indication
  • Micro-USB connectivity

Technical Specifications:

  • Microcontroller: ESP32 (Dual-Core Xtensa LX6)
  • Clock Speed: 240 MHz (dual-core)
  • Flash Memory: 4MB minimum (8MB recommended)
  • RAM: 520KB SRAM (320KB available for programs)
  • WiFi: 802.11 b/g/n (2.4GHz)
  • Bluetooth: BLE 4.2 (not used in this project)
  • GPIO Pins: 34 total (some shared with internal functions)
  • USB: CP2102 or CH340 UART-to-USB bridge
  • Connector: Micro-USB

Pin Configuration:

  • Status LED: GPIO 2 (built-in LED on most boards)
  • Serial: USB UART (auto-detected by PlatformIO)
  • WiFi: Built-in antenna (PCB trace antenna)
  • Additional GPIOs: Available for future expansion

Power Requirements:

  • USB Power: 5V via Micro-USB (most common)
  • External Power: 3.3V via 3V3 pin or 5V via VIN pin
  • Current Draw:
    • Idle: ~80mA
    • WiFi Active: ~160-260mA
    • Peak (Transmit): ~350mA

Advantages:

  • βœ… Widely available and inexpensive ($5-$10)
  • βœ… Extensive community support and documentation
  • βœ… Compatible with many shields and expansion boards
  • βœ… Standard breadboard-friendly pinout

Limitations:

  • ❌ Basic LED status (single color, on/off only)
  • ❌ No built-in display
  • ❌ Micro-USB (older connector standard)

2. Adafruit Feather ESP32-S3 TFT (Enhanced)

Overview:

  • Advanced ESP32-S3 with built-in color TFT display
  • NeoPixel RGB LED for enhanced status indication
  • USB-C connectivity with automatic detection
  • Premium build quality and design

Technical Specifications:

  • Microcontroller: ESP32-S3 (Dual-Core Xtensa LX7)
  • Clock Speed: 240 MHz (dual-core, enhanced architecture)
  • Flash Memory: 8MB (4MB program flash + 4MB filesystem)
  • RAM: 2MB PSRAM (pseudo-static RAM for enhanced performance)
  • Display: 1.14" Color TFT LCD (240Γ—135 pixels, ST7789 controller)
  • WiFi: 802.11 b/g/n (2.4GHz)
  • Bluetooth: BLE 5.0 (not used in this project)
  • GPIO Pins: 21 available on headers
  • USB: Native USB support (no UART bridge needed)
  • Connector: USB-C

Pin Configuration:

  • NeoPixel LED: GPIO 48 (WS2812B RGB LED)
  • TFT Display: SPI bus (pins internally connected)
  • Serial: Native USB CDC (auto-detected as /dev/ttyACM*)
  • WiFi: Built-in antenna with improved sensitivity
  • Battery: JST connector for LiPo battery (optional)

Power Requirements:

  • USB Power: 5V via USB-C
  • Battery Power: 3.7V LiPo battery via JST connector
  • Current Draw:
    • Idle: ~90mA (display off)
    • WiFi Active + Display: ~180-280mA
    • Peak: ~400mA

Advantages:

  • βœ… Enhanced RGB LED status (16.7 million colors)
  • βœ… Built-in color TFT display (ready for future features)
  • βœ… Modern USB-C connector
  • βœ… ~15% faster CPU performance than ESP32
  • βœ… More RAM and Flash for complex features
  • βœ… Battery charging circuitry built-in
  • βœ… Improved WiFi sensitivity

Limitations:

  • ❌ More expensive (~$30-$35)
  • ❌ Larger form factor
  • ❌ Display not yet utilized (future enhancement)

3. Adafruit Feather ESP32-S3 Reverse TFT (Enhanced)

Overview:

  • Same as Feather ESP32-S3 TFT but with reverse display orientation
  • Optimized for projects where display faces opposite direction
  • Identical features and performance to standard TFT variant

Key Difference:

  • Display mounted on opposite side of PCB
  • Useful for specific enclosure designs
  • All other specifications identical to Feather ESP32-S3 TFT

Hardware Requirements Comparison

Feature ESP32dev Feather ESP32-S3 TFT Feather Reverse TFT
CPU ESP32 240MHz ESP32-S3 240MHz ESP32-S3 240MHz
Flash 4MB 8MB 8MB
RAM 320KB 2MB PSRAM 2MB PSRAM
LED Single GPIO NeoPixel RGB NeoPixel RGB
Display None 240Γ—135 TFT 240Γ—135 TFT
USB Micro-USB USB-C USB-C
Battery No LiPo Support LiPo Support
Price $5-10 $30-35 $30-35
Best For Budget, Learning Advanced Features Specific Layouts

Physical Setup

ESP32 Development Board Setup

1. Connect Hardware:

  • Connect ESP32 to computer via Micro-USB cable
  • Ensure cable supports data (not just power)
  • Built-in LED on GPIO 2 should be visible

2. Verify Connection:

  • Linux: Check /dev/ttyUSB* (usually ttyUSB0)
  • macOS: Check /dev/cu.usbserial-* or /dev/cu.SLAB_USBtoUART
  • Windows: Check Device Manager for COM port

3. Test LED:

  • LED should light up when board is powered
  • May blink during bootloader execution

Feather ESP32-S3 Setup

1. Connect Hardware:

  • Connect Feather to computer via USB-C cable
  • Quality USB-C cable recommended for stable connection
  • NeoPixel LED should show bootloader activity

2. Verify Connection:

  • Linux: Check /dev/ttyACM* (usually ttyACM0)
  • macOS: Check /dev/cu.usbmodem*
  • Windows: Check Device Manager for COM port (may appear as "ESP32-S3")

3. Optional Battery:

  • JST connector accepts standard 3.7V LiPo batteries
  • Battery charges automatically when USB connected
  • Charge LED indicates charging status

4. Test Components:

  • NeoPixel LED shows color during boot
  • TFT display may show Adafruit logo (if display code present)

Driver Installation

Windows

CP2102 Driver (ESP32dev):

  1. Download from Silicon Labs
  2. Run installer
  3. Restart computer
  4. Device should appear in Device Manager

Native USB (Feather):

  • Windows 10/11: Automatic driver installation
  • Device appears as "USB Serial Device"

macOS

CP2102 Driver (ESP32dev):

  1. Download from Silicon Labs
  2. Open .dmg and run installer
  3. Important: Grant security permissions in System Preferences
  4. May need to reboot

Native USB (Feather):

  • macOS 10.14+: No drivers needed
  • Device appears automatically

Linux

ESP32dev:

  • Most distributions include drivers by default
  • Add user to dialout group: sudo usermod -a -G dialout $USER
  • Logout and login for changes to take effect

Feather ESP32-S3:

  • Native USB support built into kernel
  • Add user to dialout group if needed
  • No additional drivers required

Port Detection

Automatic Detection

PlatformIO automatically detects ports:

# ESP32dev - USB UART bridges
upload_port = /dev/ttyUSB*
monitor_port = /dev/ttyUSB*

# Feather ESP32-S3 - Native USB
upload_port = /dev/ttyACM*
monitor_port = /dev/ttyACM*

Manual Port Selection

Specify exact port if auto-detection fails:

# Linux ESP32dev
pio run -e esp32dev --upload-port /dev/ttyUSB0 -t upload

# Linux Feather
pio run -e adafruit_feather_esp32s3_tft --upload-port /dev/ttyACM0 -t upload

# Windows
pio run -e esp32dev --upload-port COM3 -t upload

# macOS
pio run -e esp32dev --upload-port /dev/cu.SLAB_USBtoUART -t upload

Testing Hardware

Basic LED Test

After uploading firmware:

  1. Open serial monitor at 115200 baud
  2. Watch for status messages
  3. LED should show status:
    • ESP32dev: Slow pulse in IDLE mode
    • Feather: Color breathing effect in IDLE mode

WiFi Test

> mode station
> scan now

Should discover nearby WiFi networks.

Full Feature Test

> status
> help
> webserver start

Access web interface at displayed IP address.

Troubleshooting Hardware

Board Not Detected

Check:

  • USB cable supports data (not power-only)
  • USB port working (try different port)
  • Drivers installed correctly
  • User has permissions (Linux: dialout group)

Try:

  • Different USB cable
  • Different USB port
  • Restart computer
  • Reinstall drivers

Cannot Upload Firmware

ESP32dev:

  • Hold BOOT button while connecting USB
  • Release after upload starts
  • Some boards have auto-reset circuitry

Feather:

  • Double-tap reset button for bootloader mode
  • LED shows bootloader pattern
  • Try USB 2.0 port instead of 3.0

LED Not Working

ESP32dev:

  • Verify GPIO 2 has LED on your specific board
  • Some clones use different pins
  • Check LED_PIN in config.h

Feather:

  • NeoPixel requires specific library
  • Check USE_NEOPIXEL=1 in build flags
  • Verify Adafruit NeoPixel library installed

Serial Monitor Garbled

Check:

  • Baud rate set to 115200
  • Correct line ending (Newline)
  • No other program using the port
  • Stable USB connection

Try:

  • Close and reopen monitor
  • Press reset button on board
  • Try different terminal program

Advanced Hardware Setup

External Antenna (ESP32dev)

Some boards support external antennas:

  1. Check if board has U.FL connector
  2. Connect 2.4GHz WiFi antenna
  3. May require resistor modification (check board docs)
  4. Improves range and signal quality

Battery Operation (Feather Only)

Selecting Battery:

  • Use 3.7V LiPo battery
  • Capacity: 100mAh to 2000mAh recommended
  • JST PH 2.0mm connector
  • Ensure polarity correct (JST standard)

Battery Life:

  • Idle mode: ~6-10 hours (500mAh battery)
  • Active scanning: ~2-4 hours
  • AP mode: ~3-5 hours
  • Depends on WiFi activity and display usage

Charging:

  • Automatic via USB-C
  • Charge current: ~100mA
  • Status LED indicates charging
  • Can operate while charging

External Power

ESP32dev:

  • 5V via VIN pin (regulated to 3.3V on board)
  • 3.3V via 3V3 pin (bypass regulator)
  • Ground via GND pin
  • Ensure adequate current (~500mA for stable operation)

Feather:

  • 5V via USB pin
  • 3.3V via 3V pin
  • Battery via JST or BAT pin
  • Ground via GND pin

Safety and Handling

Static Discharge

  • Use ESD-safe environment when possible
  • Touch grounded metal before handling board
  • Avoid touching components and traces

Operating Environment

  • Temperature: 0Β°C to 70Β°C operating range
  • Humidity: Avoid condensation
  • Ventilation: Ensure airflow for cooling
  • Mounting: Use standoffs to prevent shorts

Power Safety

  • Never exceed 3.6V on 3.3V pins
  • USB power is safest option
  • External power should be regulated
  • Disconnect power before wiring changes

← Back to Home | Next: Installation Guide β†’

πŸ“‘ ESP32 WiFi Utility

🏠 Main

πŸ“¦ Setup

βš™οΈ Configuration

πŸ“Š Features

πŸ’» Development

πŸ†˜ Support

πŸ”— Links


Version: 4.2.0
License: MIT

Clone this wiki locally