- 
                Notifications
    
You must be signed in to change notification settings  - Fork 0
 
Hardware Setup
Complete guide to supported hardware platforms and physical setup for ESP32 WiFi Utility v4.2.0.
The ESP32 WiFi Utility supports three hardware platforms with full feature parity:
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)
 
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)
 
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
 
| 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 | 
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
 
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)
 
CP2102 Driver (ESP32dev):
- Download from Silicon Labs
 - Run installer
 - Restart computer
 - Device should appear in Device Manager
 
Native USB (Feather):
- Windows 10/11: Automatic driver installation
 - Device appears as "USB Serial Device"
 
CP2102 Driver (ESP32dev):
- Download from Silicon Labs
 - Open .dmg and run installer
 - Important: Grant security permissions in System Preferences
 - May need to reboot
 
Native USB (Feather):
- macOS 10.14+: No drivers needed
 - Device appears automatically
 
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
 
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*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 uploadAfter uploading firmware:
- Open serial monitor at 115200 baud
 - Watch for status messages
 - LED should show status:
- ESP32dev: Slow pulse in IDLE mode
 - Feather: Color breathing effect in IDLE mode
 
 
> mode station
> scan now
Should discover nearby WiFi networks.
> status
> help
> webserver start
Access web interface at displayed IP address.
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
 
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
 
ESP32dev:
- Verify GPIO 2 has LED on your specific board
 - Some clones use different pins
 - Check 
LED_PINin config.h 
Feather:
- NeoPixel requires specific library
 - Check 
USE_NEOPIXEL=1in build flags - Verify Adafruit NeoPixel library installed
 
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
 
Some boards support external antennas:
- Check if board has U.FL connector
 - Connect 2.4GHz WiFi antenna
 - May require resistor modification (check board docs)
 - Improves range and signal quality
 
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
 
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
 
- Use ESD-safe environment when possible
 - Touch grounded metal before handling board
 - Avoid touching components and traces
 
- Temperature: 0Β°C to 70Β°C operating range
 - Humidity: Avoid condensation
 - Ventilation: Ensure airflow for cooling
 - Mounting: Use standoffs to prevent shorts
 
- Never exceed 3.6V on 3.3V pins
 - USB power is safest option
 - External power should be regulated
 - Disconnect power before wiring changes
 
GitHub Repository β’ Report Issues β’ Discussions
ESP32 WiFi Utility v4.2.0 β’ MIT License β’ Β© Arunkumar Mourougappane
Version: 4.2.0
License: MIT