-
Notifications
You must be signed in to change notification settings - Fork 1
Support Hardware V2 #210
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Hardware V2 #210
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds support for Hardware V2 by introducing the HALTargetV2 library, which provides hardware abstraction for an ESP32-S3 based platform. The implementation is largely a copy of the existing HALTarget with adaptations for new GPIO pin assignments and button handling.
Key Changes:
- New HALTargetV2 library implementing hardware abstraction for ESP32-S3 platform
- New PlatformIO build environments for ESP32-S3 target (RemoteControlTargetV2)
- Hardware drivers for network, MQTT, USB host, robot communication, LEDs, buttons, battery monitoring, and file system
Reviewed changes
Copilot reviewed 30 out of 30 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
| platformio.ini | Adds ESP32-S3 target configuration and RemoteControlTargetV2 build environment |
| lib/HALTargetV2/src/USBHost.h/cpp | USB Host stream implementation with placeholder methods (not fully implemented) |
| lib/HALTargetV2/src/Robot.h/cpp | Robot communication driver using USB Host |
| lib/HALTargetV2/src/Network.h/cpp | WiFi network management with station and AP modes |
| lib/HALTargetV2/src/MqttClient.h/cpp | MQTT client implementation with connection state management |
| lib/HALTargetV2/src/Led*.h/cpp | LED drivers for RGB LED channels |
| lib/HALTargetV2/src/Io.hpp | I/O pin abstraction templates for digital and analog pins |
| lib/HALTargetV2/src/GPIO.h/cpp | GPIO pin definitions and initialization for ESP32-S3 hardware |
| lib/HALTargetV2/src/FileHandler.h/cpp | LittleFS file system operations |
| lib/HALTargetV2/src/ButtonDrv.h/cpp | Button driver with debouncing and interrupt handling |
| lib/HALTargetV2/src/Button.h/cpp | Button interface implementation |
| lib/HALTargetV2/src/Battery.h/cpp | Battery voltage monitoring and charge level calculation |
| lib/HALTargetV2/src/Board.h/cpp | Main board interface aggregating all hardware components |
| lib/HALTargetV2/library.json | Library metadata and dependencies |
| .github/workflows/main.yml | CI workflow updates to include RemoteControlTargetV2 builds |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
BlueAndi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is much more code that could be in a common HAL to keep the specific HAL as small as possible.
e3ef929 to
6b21835
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
USB Host driver is not implemented yet. Will be done in a separate PR. See #217