Skip to content

feat: add SerialT5DeviceAdapter for Tuya T5 dev board over UART - #1

Open
sunny5937 wants to merge 4 commits into
mainfrom
t5-serial-adapter
Open

feat: add SerialT5DeviceAdapter for Tuya T5 dev board over UART#1
sunny5937 wants to merge 4 commits into
mainfrom
t5-serial-adapter

Conversation

@sunny5937

Copy link
Copy Markdown
Collaborator

Implement SerialT5DeviceAdapter following DeviceAdapter Protocol.

  • connect() opens COM3 @ 115200 baud (configurable via env vars)
  • send_action() writes signal code as ASCII byte + newline: 0/1/2
  • close() releases serial port gracefully
  • Register serial mode in build_device_adapter() factory
  • Add serial_port / serial_baudrate fields to DeviceSettings
  • Add pyserial>=3.5 to requirements.txt
  • Add standalone verification script: scripts/test_t5_serial.py
  • Update .env.example with serial mode configuration docs

Branch: t5-serial-adapter only; main untouched.

Implement SerialT5DeviceAdapter following DeviceAdapter Protocol.
- connect() opens COM3 @ 115200 baud (configurable via env vars)
- send_action() writes signal code as ASCII byte + newline: 0/1/2
- close() releases serial port gracefully
- Register serial mode in build_device_adapter() factory
- Add serial_port / serial_baudrate fields to DeviceSettings
- Add pyserial>=3.5 to requirements.txt
- Add standalone verification script: scripts/test_t5_serial.py
- Update .env.example with serial mode configuration docs

Branch: t5-serial-adapter only; main untouched.

@sunny5937 sunny5937 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@k0mondor review

Merge T5AI hardware integration improvements from local workspace:
- Automatic CH342-A port detection via USB VID:PID (1A86:55D2)
- Robust serial adapter with deduplication and reconnection
- python-dotenv integration for .env auto-loading
- README_T5AI_SERIAL.md with hardware setup instructions
- send_t5_command.py utility for manual command testing
- Updated HACKATHON_TECHNICAL_NOTE.md with full T5AI system docs
When resolve_serial_port('auto') finds no CH342 chip (VID:PID 1A86:55D2),
fall back to scanning all available serial ports:
- If exactly one serial port exists, use it automatically.
- If zero ports exist, raise a clear error.
- If multiple ports exist, list them all in the error message
  so the user can set EEG_DEVICE_SERIAL_PORT explicitly.

Also removes duplicate logger = logging.getLogger(__name__) that
caused confusion (LOGGER is the canonical one).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant