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

252 lines
8.2 KiB
Markdown

# 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.