Files
bw16-research/WiFiX-Enhanced/PIN_CHART.md

8.2 KiB

WiFiX-Enhanced Complete Pin Chart

📋 Quick Reference Table

ESP32 DevKit Pin Assignments

Function GPIO Physical Pin Description Connected To
I2C OLED Display
OLED SDA 21 D21 I2C Data OLED SDA
OLED SCL 22 D22 I2C Clock OLED SCL
OLED VCC 3.3V 3V3 3.3V Power OLED VCC
OLED GND GND GND Ground OLED GND
SPI SD Card Module
SD MOSI 23 D23 SPI Master Out SD MOSI
SD MISO 19 D19 SPI Master In SD MISO
SD CLK 18 D18 SPI Clock SD CLK
SD CS 5 D5 Chip Select SD CS
SD VCC 3.3V 3V3 3.3V Power SD VCC
SD GND GND GND Ground SD GND
BW16 Module UART
BW16 TX 17 TX2 UART Transmit BW16 RX
BW16 RX 16 RX2 UART Receive BW16 TX
BW16 GND GND GND Common Ground BW16 GND
Status LED (Optional)
STATUS LED 2 D2 Built-in LED Onboard LED
Power & Ground
3.3V Power 3.3V 3V3 3.3V Output Modules
Ground GND GND Ground Common Ground

🔧 Detailed Wiring Diagrams

ESP32 DevKit V1 (30-pin) Layout

┌─────────────────────────────────────┐
│         ESP32 DevKit V1            │
├─────────────────────────────────────┤
│ 3.3V  [●] [ ]  VIN                 │
│ GND   [●] [ ]  GND                 │
│ D35   [ ] [ ]  D23  → SD MOSI      │
│ D32   [ ] [ ]  D22  → OLED SCL     │
│ D33   [ ] [ ]  D21  → OLED SDA     │
│ D25   [ ] [ ]  D19  → SD MISO      │
│ D26   [ ] [ ]  D18  → SD CLK       │
│ D27   [ ] [ ]  D5   → SD CS        │
│ D14   [ ] [ ]  D17  → BW16 TX      │
│ D12   ] [ ] [ ]  D16  → BW16 RX    │
│ GND   [●] [ ]  D4                  │
│ D13   [ ] [●]  D2   → STATUS LED   │
│ D9    [ ] [ ]  D15                 │
│ D10   [ ] [ ]  D8                  │
│ D11   [ ] [ ]  D7                  │
│ 3.3V  [●] [ ]  GND                 │
│ EN    [●] [ ]  5V                  │
└─────────────────────────────────────┘

OLED Display (128x64 I2C SSD1306)

┌─────────────────────────────────────┐
│         OLED Display               │
├─────────────────────────────────────┤
│ VCC   [●] ──→ 3.3V (ESP32)        │
│ GND   [●] ──→ GND (ESP32)         │
│ SCL   [●] ──→ GPIO22 (ESP32)       │
│ SDA   [●] ──→ GPIO21 (ESP32)       │
└─────────────────────────────────────┘

SD Card Module (SPI)

┌─────────────────────────────────────┐
│         SD Card Module             │
├─────────────────────────────────────┤
│ VCC   [●] ──→ 3.3V (ESP32)        │
│ GND   [●] ──→ GND (ESP32)         │
│ MISO  [●] ←── GPIO19 (ESP32)       │
│ MOSI  [●] ──→ GPIO23 (ESP32)       │
│ SCK   [●] ──→ GPIO18 (ESP32)       │
│ CS    [●] ──→ GPIO5 (ESP32)        │
└─────────────────────────────────────┘

BW16 Module Pinout

┌─────────────────────────────────────┐
│         BW16 Module                │
├─────────────────────────────────────┤
│ 3.3V  [●] ──→ 3.3V (ESP32)        │
│ GND   [●] ──→ GND (ESP32)         │
│ TX    [●] ──→ GPIO16 (ESP32 RX)   │
│ RX    [●] ←── GPIO17 (ESP32 TX)   │
│ EN    [●] ──→ 3.3V (Pull-high)   │
│ RST   [●] ──→ NC (Optional)      │
└─────────────────────────────────────┘

🎯 Step-by-Step Wiring Instructions

Phase 1: Power Connections

  1. ESP32 Power

    • Connect ESP32 3.3V to breadboard positive rail
    • Connect ESP32 GND to breadboard negative rail
  2. Common Ground

    • Ensure all modules share common ground with ESP32

Phase 2: I2C OLED Display

  1. OLED VCC → ESP32 3.3V
  2. OLED GND → ESP32 GND
  3. OLED SDA → ESP32 GPIO21 (Pin 21)
  4. OLED SCL → ESP32 GPIO22 (Pin 22)

Phase 3: SPI SD Card Module

  1. SD VCC → ESP32 3.3V
  2. SD GND → ESP32 GND
  3. SD MOSI → ESP32 GPIO23 (Pin 23)
  4. SD MISO → ESP32 GPIO19 (Pin 19)
  5. SD CLK → ESP32 GPIO18 (Pin 18)
  6. SD CS → ESP32 GPIO5 (Pin 5)

Phase 4: BW16 UART Connection

  1. BW16 VCC → ESP32 3.3V
  2. BW16 GND → ESP32 GND
  3. BW16 TX → ESP32 GPIO16 (Pin 16)
  4. BW16 RX → ESP32 GPIO17 (Pin 17)

Phase 5: Optional Components

  1. Status LED: Already on ESP32 GPIO2 (built-in)
  2. External Antenna: Connect to BW16 antenna connector
  3. Reset Button: Optional connection to ESP32 EN pin

🔍 Verification Steps

1. Continuity Test

Test with multimeter:
✓ ESP32 GND to all module GNDs
✓ ESP32 3.3V to all module VCCs
✓ Individual signal connections

2. Power-On Test

1. Connect USB to ESP32
2. Check 3.3V rail with multimeter
3. Verify no short circuits
4. Check current draw (<200mA normal)

3. Communication Test

# Serial Monitor Commands
help          # Should show system info
status        # Should show all modules detected
oled test     # Should display test pattern
sd test       # Should detect SD card

⚠️ Important Notes

Power Supply Requirements

  • ESP32: 3.3V @ 500mA minimum
  • BW16: 3.3V @ 300mA peak
  • OLED: 3.3V @ 20mA
  • SD Card: 3.3V @ 100mA peak
  • Total: 3.3V @ 1A recommended

Signal Level Compatibility

  • All modules are 3.3V logic level
  • DO NOT connect 5V directly to ESP32 pins
  • Use level shifters if interfacing with 5V devices

Cable Length Considerations

  • I2C (OLED): Max 30cm at 100kHz
  • SPI (SD Card): Max 10cm at 8MHz
  • UART (BW16): Max 50cm at 115200 baud

Troubleshooting Connections

OLED Not Displaying

1. Check I2C address (usually 0x3C)
2. Verify SDA/SCL not swapped
3. Test with I2C scanner sketch
4. Check pull-up resistors (4.7kΩ if needed)

SD Card Not Detected

1. Verify SPI connections
2. Check CS pin configuration
3. Test with different SD card
4. Format SD card as FAT32
5. Check power supply stability

BW16 Not Responding

1. Verify UART connections (TX→RX, RX→TX)
2. Check baud rate (115200)
3. Test with serial loopback
4. Verify BW16 firmware is loaded
5. Check antenna connection

📊 Pin Usage Summary

Used GPIOs (ESP32)

  • GPIO5: SD Card CS
  • GPIO16: BW16 UART RX
  • GPIO17: BW16 UART TX
  • GPIO18: SD Card CLK
  • GPIO19: SD Card MISO
  • GPIO21: OLED SDA
  • GPIO22: OLED SCL
  • GPIO23: SD Card MOSI

Available GPIOs (Free)

  • GPIO0-4, 12-15, 25-27, 32-33: Available for expansion

Special Pins

  • GPIO2: Built-in LED (status indicator)
  • GPIO6-11: Connected to flash (avoid using)
  • GPIO34-39: Input only (no output capability)

🔧 Expansion Options

Additional Modules (Free Pins)

GPIO0  → Button (boot mode)
GPIO4  → Sensor input
GPIO13 → Additional LED
GPIO15 → Buzzer
GPIO25 → Relay control
GPIO26 → PWM output
GPIO27 → Additional UART
GPIO32 → Capacitive touch
GPIO33 → Analog input

I2C Expansion

Current: OLED on GPIO21/22
Available addresses: 0x20-0x27 (GPIO expander)
Available addresses: 0x40-0x4F (PWM driver)
Available addresses: 0x48-0x57 (ADC/DAC)

Remember: Double-check all connections before powering on. Use a multimeter to verify continuity and proper voltage levels.