283 lines
6.3 KiB
Markdown
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: ________________
|
|
```
|