8.1 KiB
8.1 KiB
WiFiX-Enhanced Flashing Guide & Usage Instructions
Overview
This guide provides comprehensive instructions for flashing and using the WiFiX-Enhanced firmware on BW16 and ESP32 devices. The system creates realistic WiFi captive portals for security testing and research purposes.
Hardware Requirements
Primary Components
- BW16 Module: Realtek RTL8720DN-based WiFi module (5GHz capable)
- ESP32 DevKit: ESP32-WROOM or ESP32-WROVER (for enhanced features)
- OLED Display: 128x64 I2C SSD1306 (optional but recommended)
- SD Card Module: SPI-based SD card reader for credential storage
- Power Supply: 5V 2A minimum (USB or external)
Pin Connections
BW16 to ESP32:
- BW16 TX → ESP32 GPIO16 (RX)
- BW16 RX → ESP32 GPIO17 (TX)
- GND → GND
- 3.3V → 3.3V
OLED Display (I2C):
- SDA → GPIO21
- SCL → GPIO22
- VCC → 3.3V
- GND → GND
SD Card Module (SPI):
- MOSI → GPIO23
- MISO → GPIO19
- CLK → GPIO18
- CS → GPIO5
- VCC → 3.3V
- GND → GND
Software Setup
Prerequisites
- PlatformIO Core (recommended) or Arduino IDE
- USB to Serial Drivers:
- CP2102/CH340 drivers for ESP32
- RTL8720DN drivers for BW16
- Python 3.8+ (for PlatformIO)
Installation Steps
1. Install PlatformIO
# Install via pip
pip install platformio
# Or install VS Code extension
# Search for "PlatformIO IDE" in VS Code extensions
2. Clone Repository
git clone <repository-url>
cd WiFiX-Enhanced
3. Install Dependencies
pio lib install
Flashing Instructions
Method 1: PlatformIO (Recommended)
ESP32 Firmware
# Build and flash ESP32 firmware
pio run -e esp32_main --target upload
# Monitor serial output
pio device monitor -e esp32_main
BW16 Firmware
# Build and flash BW16 firmware
pio run -e bw16_deauth --target upload
# Monitor serial output
pio device monitor -e bw16_deauth
Method 2: Arduino IDE
ESP32 Setup
-
Add ESP32 board support:
- File → Preferences → Additional Boards Manager URLs
- Add:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - Tools → Board → Boards Manager → Search "ESP32" → Install
-
Select board: "ESP32 Dev Module"
-
Configure settings:
- CPU Frequency: 240MHz
- Flash Frequency: 80MHz
- Flash Mode: QIO
- Flash Size: 4MB
- Upload Speed: 921600
BW16 Setup
-
Add Realtek Ameba support:
- File → Preferences → Additional Boards Manager URLs
- Add:
https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek.com_amebad_index.json - Tools → Board → Boards Manager → Search "Ameba" → Install
-
Select board: "BW16"
-
Upload speed: 115200
Upload File System (SPIFFS)
# Upload web interface files
pio run --target uploadfs -e esp32_main
Configuration
Pre-Flash Configuration
Edit src/config.h (create if not exists):
#define DEVICE_NAME "CityNet_WiFi"
#define DEFAULT_SSID "CityNet_Public_WiFi"
#define DEFAULT_PASSWORD ""
#define CAPTIVE_PORTAL_IP "192.168.4.1"
#define CAPTIVE_PORTAL_DOMAIN "wifi.citynet.local"
#define SD_CARD_CS_PIN 5
#define OLED_ADDRESS 0x3C
#define ENABLE_SD_BACKUP true
#define ENABLE_DEAUTH true
#define ENABLE_OLED true
Network Configuration
The device creates a WiFi network with these defaults:
- SSID: "CityNet_Public_WiFi"
- Password: (open network)
- IP Range: 192.168.4.0/24
- Gateway: 192.168.4.1
- DNS: 192.168.4.1
Usage Instructions
Initial Setup
- Power On: Connect power to both modules
- Wait for Boot: OLED will show startup sequence
- Connect to WiFi: Look for "CityNet_Public_WiFi" on target device
- Access Portal: Browser should auto-open, or navigate to
http://192.168.4.1
Web Interface
The portal includes realistic pages:
- Login Page: Professional municipal WiFi portal
- Welcome Page: Connection status and usage info
- Error Pages: Various authentication failure scenarios
Credential Collection
- Captured credentials are stored in SPIFFS
- Auto-backup to SD card (if enabled)
- Real-time display on OLED
- Export via serial console or web interface
OLED Display Information
┌─────────────────────────────────┐
│ WiFiX-Enhanced v1.0 │
│ Mode: CAPTIVE PORTAL │
│ Clients: 3 │
│ Creds: 12 │
│ IP: 192.168.4.1 │
└─────────────────────────────────┘
Serial Console Commands
Connect at 115200 baud and use these commands:
help - Show available commands
status - Show system status
creds - List captured credentials
clearcreds - Clear credential storage
backup - Manual backup to SD
deauth [MAC] - Target specific device
reset - Factory reset
Troubleshooting
Flashing Issues
"Port not found" Error
# List available ports
pio device list
# Check Windows Device Manager
# Update drivers if needed
"Timeout communicating" Error
# Hold BOOT button during upload start
# Release when upload begins
# Try lower upload speed (115200)
"Wrong boot mode" Error
# Ensure proper wiring
# Check power supply (must be 3.3V)
# Try different USB cable
Runtime Issues
Device Won't Start
- Check power connections
- Verify 3.3V regulation
- Check for short circuits
- Monitor serial output during boot
WiFi Not Visible
- Check antenna connection
- Verify BW16 module power
- Check serial communication
- Reset both modules
Portal Not Loading
- Verify IP configuration
- Check DNS redirection
- Test with different browsers
- Clear browser cache
SD Card Not Working
- Check SPI connections
- Verify card format (FAT32)
- Test with known-good card
- Check power supply stability
Safety and Legal Considerations
Important Notes
- Educational Use Only: This tool is for security research and testing
- Authorization Required: Only use on networks you own or have permission to test
- Compliance: Follow local laws and regulations
- Ethics: Respect privacy and data protection laws
Best Practices
- Always inform network owners before testing
- Use in controlled environments
- Secure collected data appropriately
- Delete captured credentials after analysis
- Document your testing procedures
Performance Optimization
Power Consumption
- Use deep sleep between activations
- Optimize WiFi transmission power
- Disable unused features
- Consider battery operation for portability
Range Enhancement
- Use external antennas
- Optimize placement
- Consider power amplifiers
- Test different environments
Advanced Features
Custom Portal Templates
Edit files in data/ directory:
index.html- Login pagewelcome.html- Success page- Add custom CSS/JS for realism
Credential Export
# Export via serial
pio device monitor -e esp32_main | grep "CREDENTIAL"
# Export from SD card
# Remove SD card and read backup files
Integration with Tools
- Wireshark for packet analysis
- Aircrack-ng for advanced attacks
- Custom scripts for automation
- Database storage for large deployments
Support and Updates
Getting Help
- Check this documentation first
- Review serial console output
- Test with minimal configuration
- Document your setup
Updates
# Update PlatformIO
pio update
# Update libraries
pio lib update
# Pull latest code
git pull origin main
Contributing
- Report issues with detailed logs
- Suggest improvements
- Share successful configurations
- Contribute documentation
Version History
- v1.0.0: Initial release with BW16/ESP32 support
- v1.1.0: Added SD card backup and OLED display
- v1.2.0: Enhanced web interface and credential management
Remember: With great power comes great responsibility. Use this tool ethically and legally.