Archive STM32 firmware to legacy/stm32/: - src/, include/, lib/USB_CDC/, platformio.ini, test stubs, flash_firmware.py - test/test_battery_adc.c, test_hw_button.c, test_pid_schedule.c, test_vesc_can.c, test_can_watchdog.c - USB_CDC_BUG.md Rename: stm32_protocol → esp32_protocol, mamba_protocol → balance_protocol, stm32_cmd_node → esp32_cmd_node, stm32_cmd_params → esp32_cmd_params, stm32_cmd.launch.py → esp32_cmd.launch.py, test_stm32_protocol → test_esp32_protocol, test_stm32_cmd_node → test_esp32_cmd_node Content cleanup across all files: - Mamba F722S → ESP32-S3 BALANCE - BlackPill → ESP32-S3 IO - STM32F722/F7xx → ESP32-S3 - stm32Mode/Version/Port → esp32Mode/Version/Port - STM32 State/Mode labels → ESP32 State/Mode - Jetson Nano → Jetson Orin Nano Super - /dev/stm32 → /dev/esp32 - stm32_bridge → esp32_bridge - STM32 HAL → ESP-IDF docs/SALTYLAB.md: - Update "Drone FC Details" to describe ESP32-S3 BALANCE board (Waveshare ESP32-S3 Touch LCD 1.28) - Replace verbose "Self-Balancing Control" STM32 section with brief note pointing to SAUL-TEE-SYSTEM-REFERENCE.md TEAM.md: Update Embedded Firmware Engineer role to ESP32-S3 / ESP-IDF No new functionality — cleanup only. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
61 lines
2.3 KiB
Python
61 lines
2.3 KiB
Python
<<<<<<< HEAD:jetson/ros2_ws/src/saltybot_bridge/launch/stm32_cmd.launch.py
|
|
"""stm32_cmd.launch.py — Launch the ESP32-S3 IO auxiliary bridge node.
|
|
|
|
Connects to ESP32-S3 IO board via USB-CDC @ 460800 baud (inter-board protocol).
|
|
Handles RC monitoring, sensor data, LED/output commands.
|
|
Primary drive path uses CAN (can_bridge_node / saltybot_can_node), not this node.
|
|
|
|
Spec: docs/SAUL-TEE-SYSTEM-REFERENCE.md §5
|
|
|
|
Usage:
|
|
ros2 launch saltybot_bridge stm32_cmd.launch.py
|
|
ros2 launch saltybot_bridge stm32_cmd.launch.py serial_port:=/dev/ttyACM0
|
|
=======
|
|
"""esp32_cmd.launch.py — Launch the binary-framed ESP32-S3 command node (Issue #119).
|
|
|
|
Usage:
|
|
# Default (binary protocol, bidirectional):
|
|
ros2 launch saltybot_bridge esp32_cmd.launch.py
|
|
|
|
# Override serial port:
|
|
ros2 launch saltybot_bridge esp32_cmd.launch.py serial_port:=/dev/ttyACM1
|
|
|
|
# Custom velocity scales:
|
|
ros2 launch saltybot_bridge esp32_cmd.launch.py speed_scale:=800.0 steer_scale:=-400.0
|
|
>>>>>>> 291dd68 (feat: remove all STM32/Mamba/BlackPill references — ESP32-S3 only):jetson/ros2_ws/src/saltybot_bridge/launch/esp32_cmd.launch.py
|
|
"""
|
|
|
|
import os
|
|
from ament_index_python.packages import get_package_share_directory
|
|
from launch import LaunchDescription
|
|
from launch.actions import DeclareLaunchArgument
|
|
from launch.substitutions import LaunchConfiguration
|
|
from launch_ros.actions import Node
|
|
|
|
|
|
def generate_launch_description() -> LaunchDescription:
|
|
pkg = get_package_share_directory("saltybot_bridge")
|
|
params_file = os.path.join(pkg, "config", "esp32_cmd_params.yaml")
|
|
|
|
return LaunchDescription([
|
|
DeclareLaunchArgument("serial_port", default_value="/dev/esp32-io"),
|
|
DeclareLaunchArgument("baud_rate", default_value="460800"),
|
|
DeclareLaunchArgument("heartbeat_period", default_value="0.2"),
|
|
|
|
Node(
|
|
package="saltybot_bridge",
|
|
executable="esp32_cmd_node",
|
|
name="esp32_cmd_node",
|
|
output="screen",
|
|
emulate_tty=True,
|
|
parameters=[
|
|
params_file,
|
|
{
|
|
"serial_port": LaunchConfiguration("serial_port"),
|
|
"baud_rate": LaunchConfiguration("baud_rate"),
|
|
"heartbeat_period": LaunchConfiguration("heartbeat_period"),
|
|
},
|
|
],
|
|
),
|
|
])
|