Ajout prise en charge ESP-Display

This commit is contained in:
Serge NOEL
2025-12-01 13:53:54 +01:00
parent bcd88909b7
commit ae375b8fe2
26 changed files with 3945 additions and 1017 deletions

284
TESTING_CHECKLIST.md Normal file
View File

@@ -0,0 +1,284 @@
# 🔍 Pre-Flight Checklist for ESP32-2432S028R DCC Bench
## ✅ Hardware Assembly Checklist
### ESP32-2432S028R Module
- [ ] Module has USB-C port
- [ ] Display is ILI9341 (320x240)
- [ ] Touch controller is XPT2046
- [ ] Module powers on via USB-C
### Motor Driver Connection
- [ ] Motor driver is LM18200, L298N, or compatible
- [ ] ESP32 GPIO 18 → Motor Driver PWM
- [ ] ESP32 GPIO 19 → Motor Driver DIR
- [ ] ESP32 GPIO 23 → Motor Driver BRAKE
- [ ] ESP32 GND → Motor Driver GND
- [ ] ESP32 5V → Motor Driver VCC (logic)
- [ ] Power supply → Motor Driver Power In
- [ ] Motor/Track → Motor Driver Output
### DCC Booster Connection
- [ ] DCC booster compatible with logic-level inputs
- [ ] ESP32 GPIO 17 → DCC Booster IN_A
- [ ] ESP32 GPIO 16 → DCC Booster IN_B
- [ ] ESP32 GND → DCC Booster GND
- [ ] Power supply → DCC Booster Power
- [ ] Track → DCC Booster Output
### Relay Module Connection
- [ ] Relay module is 5V type
- [ ] ESP32 GPIO 4 → Relay IN
- [ ] ESP32 GND → Relay GND
- [ ] ESP32 5V → Relay VCC
- [ ] Track wiring connected to relay outputs (2-rail/3-rail config)
### Power Supply
- [ ] 12-18V power supply (depending on scale)
- [ ] DC-DC buck converter to 5V (if using single supply)
- [ ] All grounds connected together (common ground)
- [ ] Proper fusing on track outputs
## ✅ Software Checklist
### Development Environment
- [ ] Visual Studio Code installed
- [ ] PlatformIO extension installed
- [ ] Project opens without errors
- [ ] Git branch: `ESP32-2432` (feature branch)
### Project Configuration
- [ ] `platformio.ini` shows `[env:esp32-2432s028r]`
- [ ] Libraries in `lib_deps`:
- [ ] TFT_eSPI
- [ ] XPT2046_Touchscreen
- [ ] ArduinoJson
- [ ] DCCpp
- [ ] Build flags include TFT configuration
### Code Files Present
- [ ] `include/TouchscreenUI.h`
- [ ] `src/TouchscreenUI.cpp`
- [ ] `include/RelayController.h`
- [ ] `src/RelayController.cpp`
- [ ] Updated `Config.h` (no WiFi structs)
- [ ] Updated `Config.cpp`
- [ ] Updated `main.cpp`
### Pin Assignments Verified
- [ ] DCC: GPIO 17, 16 (not conflicting)
- [ ] Motor: GPIO 18, 19, 23
- [ ] Relay: GPIO 4
- [ ] Touch CS: GPIO 22 (defined in platformio.ini)
## ✅ Build and Upload Checklist
### Build Process
- [ ] Run `pio run` - builds without errors
- [ ] Check for warnings - resolve if critical
- [ ] Verify binary size fits in flash
### Upload Process
- [ ] ESP32-2432S028R connected via USB-C
- [ ] Correct COM port selected
- [ ] Run `pio run --target upload`
- [ ] Upload completes successfully (100%)
### Serial Monitor
- [ ] Run `pio device monitor`
- [ ] Baud rate: 115200
- [ ] See boot messages
- [ ] See "Locomotive Test Bench v2.0"
- [ ] See "Configuration loaded"
- [ ] See "Relay Controller initialized"
- [ ] See "Touchscreen UI initialized"
- [ ] No error messages
## ✅ Functional Testing Checklist
### Display Testing
- [ ] Display shows UI immediately
- [ ] All buttons visible
- [ ] Text is readable
- [ ] Colors correct (not inverted)
- [ ] Status bar shows at bottom
### Touch Testing
- [ ] Tap [POWER] button - responds
- [ ] Tap [MODE] button - responds
- [ ] Tap [RAILS] button - responds
- [ ] Tap [DIR] button - responds
- [ ] Drag speed slider - responds
- [ ] Touch accuracy is good (±5mm)
### Power Control Testing
- [ ] Power starts OFF (red button)
- [ ] Tap power - turns ON (green)
- [ ] Status bar shows "PWR:ON"
- [ ] Tap again - turns OFF (red)
- [ ] Serial shows power state changes
### Mode Switching Testing
- [ ] Default mode shows (DC/Analog - yellow)
- [ ] Tap mode button
- [ ] Power automatically turns OFF
- [ ] Mode switches (DCC - cyan)
- [ ] Serial shows "Power automatically turned OFF"
- [ ] Tap mode again - switches back
- [ ] Power still OFF (safety feature working)
### Rail Configuration Testing
- [ ] Default: 2-Rail
- [ ] Tap [RAILS] button
- [ ] Relay clicks (audible)
- [ ] Button shows "3-Rail"
- [ ] Status bar updates
- [ ] Tap again - relay clicks again
- [ ] Button shows "2-Rail"
### Direction Control Testing
- [ ] Default: FWD
- [ ] Tap [DIR] button
- [ ] Changes to REV
- [ ] Status bar updates
- [ ] Tap again - back to FWD
### Speed Control Testing
- [ ] Slider starts at 0%
- [ ] Drag slider right
- [ ] Speed value updates in real-time
- [ ] Status bar shows new speed
- [ ] Slider visual updates (active portion grows)
- [ ] Tap directly on slider - jumps to that position
### Settings Persistence Testing
- [ ] Set specific values:
- [ ] Power: ON
- [ ] Mode: DCC
- [ ] Rails: 3-Rail
- [ ] Speed: 50%
- [ ] Direction: REV
- [ ] Note all values
- [ ] Power cycle ESP32 (unplug/replug USB)
- [ ] Verify all settings retained after reboot
- [ ] Serial shows loaded values match
## ✅ Output Testing Checklist
### DC Analog Mode Testing (No Load)
- [ ] Select DC Analog mode
- [ ] Power ON
- [ ] Set speed to 25%
- [ ] Measure voltage on motor driver outputs
- [ ] Voltage increases with speed slider
- [ ] Change direction
- [ ] Polarity reverses
- [ ] Emergency stop (power OFF) - voltage goes to 0
### DCC Mode Testing (with Oscilloscope)
- [ ] Select DCC mode
- [ ] Power ON
- [ ] Connect oscilloscope to GPIO 17 and 16
- [ ] Verify square wave signals
- [ ] Signals are inverted relative to each other
- [ ] Measure timing:
- [ ] '1' bit: ~58μs half-cycle
- [ ] '0' bit: ~100μs half-cycle
- [ ] Signals clean (no ringing or noise)
### Relay Testing
- [ ] Toggle 2-Rail/3-Rail multiple times
- [ ] Relay clicks each time
- [ ] No missed toggles
- [ ] Test with multimeter on relay contacts
- [ ] Continuity changes with relay state
## ✅ Safety Testing Checklist
### Mode Change Safety
- [ ] Power ON in DC mode
- [ ] Switch to DCC mode
- [ ] Verify power turns OFF automatically
- [ ] Serial confirms automatic power-off
- [ ] Repeat with DCC → DC
- [ ] Safety feature works both ways
### Emergency Stop
- [ ] Power ON with speed at 50%
- [ ] Tap power button
- [ ] Output stops immediately
- [ ] Speed value retained (but no output)
- [ ] Can restart by tapping power again
### Overload Protection
- [ ] Motor driver has current limiting
- [ ] Track has appropriate fuse
- [ ] Test emergency stop with load
## ✅ Integration Testing Checklist
### With DC Locomotive
- [ ] Connect DC locomotive to track
- [ ] Select DC Analog mode
- [ ] Power ON
- [ ] Start at low speed (10-20%)
- [ ] Locomotive moves smoothly
- [ ] Increase speed gradually - smooth acceleration
- [ ] Change direction - locomotive reverses
- [ ] Emergency stop works
- [ ] No unusual sounds or heating
### With DCC Locomotive
- [ ] Connect DCC locomotive to track (via booster)
- [ ] Verify DCC address matches locomotive
- [ ] Select DCC mode
- [ ] Power ON
- [ ] Start at low speed (10-20%)
- [ ] Locomotive responds to DCC commands
- [ ] Increase speed - smooth operation
- [ ] Change direction - locomotive reverses
- [ ] Power OFF - locomotive stops
## ⚠️ Known Issues / Notes
### To Monitor
- [ ] ESP32 temperature during extended use
- [ ] Motor driver heat dissipation
- [ ] Power supply voltage under load
- [ ] Touch calibration drift over time
### Future Improvements
- [ ] Add DCC address entry via touchscreen
- [ ] Add DCC function buttons (F0-F12)
- [ ] Add current monitoring display
- [ ] Add speed presets
- [ ] Add locomotive profiles
## 📋 Test Results
**Test Date**: __________
**Tester**: __________
**ESP32 S/N**: __________
**Firmware Version**: 2.0
### Overall Results
- [ ] All hardware tests PASS
- [ ] All software tests PASS
- [ ] All functional tests PASS
- [ ] All safety tests PASS
- [ ] Ready for production use
### Issues Found
1. ________________________________________________
2. ________________________________________________
3. ________________________________________________
### Notes
___________________________________________________
___________________________________________________
___________________________________________________
---
**Checklist Version**: 1.0
**Last Updated**: December 2025