Files
canFD_esp32_glm-oh-my-open-/HARDWARE_TEST.md
2026-02-20 17:50:40 +00:00

283 lines
6.3 KiB
Markdown

# ESP32-S3 CAN FD Logger - Hardware Test Checklist
## Pre-Test Checklist
### 1. Hardware Connections
- [ ] ESP32-S3-WROOM-1-N16R8 properly seated
- [ ] MCP2518FD CAN FD Controller connected via HSPI
- [ ] MISO (GPIO13)
- [ ] MOSI (GPIO11)
- [ ] SCLK (GPIO12)
- [ ] CS (GPIO10)
- [ ] INT (GPIO3)
- [ ] STBY connected to GND
- [ ] SD Card connected via SDIO 4-bit mode
- [ ] CLK (GPIO39)
- [ ] CMD (GPIO38)
- [ ] D0 (GPIO40)
- [ ] D1 (GPIO41)
- [ ] D2 (GPIO42)
- [ ] D3 (GPIO21)
- [ ] DS3231 RTC connected via I2C
- [ ] SDA (GPIO8)
- [ ] SCL (GPIO9)
- [ ] CAN Bus termination (120Ω) at both ends
- [ ] Power supply stable (5V, sufficient current)
### 2. Arduino IDE Settings
```
Board: ESP32S3 Dev Module
USB CDC On Boot: Enabled
CPU Frequency: 240MHz
Flash Mode: QIO 80MHz
Flash Size: 16MB (128Mb)
Partition Scheme: 16M Flash (3MB APP/9.9MB FAT)
PSRAM: OPI PSRAM
Upload Speed: 921600
```
### 3. Required Libraries
- [ ] ACAN2517FD (Pierre Molinaro) - v1.1.0+
- [ ] RTClib (Adafruit)
- [ ] ArduinoJson - v6.x
- [ ] WebSocketsServer (Links2004)
---
## Test Procedures
### Test 1: Basic Power-On Test
1. Connect USB-C cable
2. Open Serial Monitor (115200 baud)
3. Verify boot messages:
```
================================
ESP32-S3 CAN FD Logger
Version 2.0 - PSRAM Optimized
================================
PSRAM found: 8 MB
[PSRAM] Allocated XXXXX bytes for XXXX frames
SD Card mounted successfully!
CAN FD initialized successfully!
System ready!
```
**Pass Criteria**: All initialization messages appear without errors
---
### Test 2: WiFi AP Mode Test
1. After boot, check WiFi networks on phone/PC
2. Connect to `ESP32-CANLogger` (open, no password)
3. Open browser: `http://192.168.4.1`
4. Verify dashboard loads
**Pass Criteria**:
- AP visible in WiFi list
- Connection successful
- Web page loads
---
### Test 3: CAN FD Loopback Test
1. Navigate to `/test` page
2. Set Frame Count: 1000
3. Set Interval: 1000μs
4. Click "Start Loopback Test"
5. Wait for completion
**Pass Criteria**:
- Frames Sent = Frames Received
- Frames Lost = 0
- Loss Rate = 0%
- Result = PASS
---
### Test 4: CAN FD Stress Test
1. Navigate to `/test` page
2. Set Frame Count: 5000
3. Set Data Length: 64 bytes
4. Set CAN FD Mode: CAN FD
5. Click "Start Stress Test"
**Pass Criteria**:
- Frame Rate > 1000 fps
- Loss Rate < 0.1%
- Result = PASS
---
### Test 5: SD Card Logging Test
1. Navigate to dashboard (`/`)
2. Click "Start Logging"
3. Generate CAN traffic (use CAN FD TX or external source)
4. Wait 10+ seconds
5. Click "Stop Logging"
6. Navigate to `/files`
7. Download the .pcap file
8. Open in Wireshark
**Pass Criteria**:
- Log file created
- File size > 0
- Wireshark can parse file
- Frames have correct timestamps
---
### Test 6: Real-time Graph Test
1. Navigate to `/graph`
2. If no signals defined:
- Go to `/settings`
- Add manual signal: ID=0x100, StartBit=0, Length=16
3. Generate CAN traffic with ID 0x100
4. Verify graph updates
**Pass Criteria**:
- Signal appears in list
- Graph shows data
- Updates in real-time (< 500ms latency)
---
### Test 7: DS3231 RTC Test
1. Navigate to `/settings`
2. Click "Sync Time from Device"
3. Verify current time updates
4. Power cycle device
5. Check time is preserved
**Pass Criteria**:
- Time sync successful
- Time preserved after power cycle
---
### Test 8: CAN FD External Communication Test
**Prerequisites**: External CAN FD device or analyzer
1. Connect CAN H/L to external device
2. Set CAN mode to Normal (not Loopback)
3. Set baudrate to match external device
4. Send frames from external device
5. Verify frames appear in log
6. Send frames from ESP32
7. Verify frames received on external device
**Pass Criteria**:
- Bidirectional communication works
- No frame corruption
- Timing within expected range
---
### Test 9: Memory Stress Test
1. Navigate to `/api/memory`
2. Record initial memory values
3. Run stress test (10,000 frames)
4. Check memory again
5. Run for extended period (5+ minutes)
**Pass Criteria**:
- No memory leaks (free memory stable)
- PSRAM usage reasonable
- System doesn't crash
---
### Test 10: WiFi Stability Test
1. Connect to AP
2. Open 3 browser tabs with different pages
3. Run loopback test
4. Keep websockets connected
5. Monitor for 5+ minutes
**Pass Criteria**:
- No disconnections
- All pages responsive
- WebSocket still connected
---
## Performance Benchmarks
### Expected Performance (ESP32-S3 @ 240MHz)
| Metric | Target | Notes |
|--------|--------|-------|
| CAN FD RX Rate | > 5000 fps | With logging |
| CAN FD TX Rate | > 3000 fps | No logging |
| SD Write Speed | > 1 MB/s | SDIO 4-bit |
| WebSocket Latency | < 200 ms | 10 signals |
| PSRAM Buffer | 6000+ frames | Overflow protection |
| Heap Available | > 100 KB | During operation |
---
## Troubleshooting
### CAN FD Not Initializing
- Check SPI connections
- Verify crystal oscillator (40MHz)
- Check CS and INT pins
- Verify MCP2518FD power supply
### SD Card Mount Failed
- Check SDIO connections
- Try different SD card
- Verify card is FAT32 formatted
- Check card speed class (Class 10 recommended)
### WiFi Not Connecting
- Check antenna (if external)
- Verify no 2.4GHz interference
- Check power supply (WiFi requires peak current)
### Frame Loss Detected
- Check CAN bus termination
- Verify baudrate match
- Check for bus errors
- Monitor CPU load via `/api/memory`
### Memory Leaks
- Check for proper task stack sizes
- Verify PSRAM allocation
- Monitor heap over time
---
## Test Log Template
```
Date: ________________
Tester: ________________
Hardware Version: ________________
Firmware Version: ________________
Test 1: Power-On [ ] PASS [ ] FAIL Notes: ________________
Test 2: WiFi AP [ ] PASS [ ] FAIL Notes: ________________
Test 3: Loopback [ ] PASS [ ] FAIL Notes: ________________
Test 4: Stress [ ] PASS [ ] FAIL Notes: ________________
Test 5: SD Logging [ ] PASS [ ] FAIL Notes: ________________
Test 6: Graph [ ] PASS [ ] FAIL Notes: ________________
Test 7: RTC [ ] PASS [ ] FAIL Notes: ________________
Test 8: External CAN [ ] PASS [ ] FAIL Notes: ________________
Test 9: Memory [ ] PASS [ ] FAIL Notes: ________________
Test 10: WiFi Stable [ ] PASS [ ] FAIL Notes: ________________
Overall Result: [ ] PASS [ ] FAIL
Signature: ________________
```