diff --git a/docs_versioned_docs/version-ros2jazzy/ros/troubleshooting.mdx b/docs_versioned_docs/version-ros2jazzy/ros/troubleshooting.mdx
index 34a6b5c3..de8262f3 100644
--- a/docs_versioned_docs/version-ros2jazzy/ros/troubleshooting.mdx
+++ b/docs_versioned_docs/version-ros2jazzy/ros/troubleshooting.mdx
@@ -21,13 +21,14 @@ computer; the firmware is ROS-distribution-specific, and must have a version com
One significant change between ROS 1 and ROS 2 is that Clearpath robots using ROS 2 Humble or Jazzy
have their MCUs boot to a reset state. To establish communication between the robot's primary computer
you must press a button on the robot:
+
- on Ridgeback or Husky A300 press the e-stop reset button located on the rear of the robot
- on Jackal or Dingo, press the MCU disconnect (
) button
## Robot's COMM light is off after upgrading to ROS 2
Most Clearpath robots have an MCU that must also be updated. Ensure you have installed the correct
-MCU firmware for your ROS distribution. Refer to your robot's [user manual](/docs_robots/robots)
+MCU firmware for your ROS distribution. Refer to your robot's [user manual](/docs_robots/robots)
for instructions on updating the MCU firmware.
USB or serial-based MCUs require [`udev` rules](https://github.com/clearpathrobotics/clearpath_robot/blob/jazzy/clearpath_robot/debian/udev)
@@ -36,6 +37,7 @@ to be installed on the robot.
If you have installed the ROS 2 packages as `.deb` packages (using the `apt` or `apt-get` command)
these udev rules will be installed automatically. Verify that `/usr/lib/udev/rules.d/60-ros-jazzy-clearpath-robot.rules`
exists in your system. If it does not, try reinstalling the `clearpath_robot` ROS package:
+
```bash
sudo apt-get update
sudo apt-get install --reinstall ros-jazzy-clearpath-robot
@@ -43,6 +45,7 @@ sudo apt-get install --reinstall ros-jazzy-clearpath-robot
If you have installed the packages from source (i.e. they are built in a `colcon` workspace), make
sure you have installed the udev rules by running these commands:
+
```
sudo cp /path/to/colcon_ws/src/clearpath_robot/clearpath_robot/debian/udev /etc/udev/rules.d/60-clearpath-robot.rules
sudo udevadm control --reload-rules
@@ -54,17 +57,22 @@ sudo udevadm trigger
The command to install the firmware will exit normally if the firmware is successfully installed.
If you do not see any error messages then the program finished normally. To double-check,
_immediately after_ running the firmware installation command you can run
+
```bash
echo $?
```
+
to print the exit code of the previous command. If this prints `0` then the previous command
finished normally.
To verify that the version of the MCU firmware running on your robot, run
+
```bash
ros2 topic echo /a300_00000/platform/mcu/status --once
```
+
(replacing `a300_00000` with your robot's root namespace). The result will look something like this:
+
```yaml
header:
stamp:
@@ -81,12 +89,16 @@ connection_uptime:
nanosec: 338000000
---
```
+
The `firmware_version` field shows the MCU firmware version currently running. Ensure that this
matches the version you just installed:
+
```
ros2 pkg xml clearpath_firmware
```
+
This command will print the `clearpath_firmware` package's meta-data:
+
```xml
clearpath_firmware
@@ -114,6 +126,7 @@ This command will print the `clearpath_firmware` package's meta-data:
```
+
The `version` tag near the top should match the `firmware_version` field of the MCU status message.
In this case, both are `2.4.1`, indicating the latest firmware is installed.
@@ -122,6 +135,7 @@ In this case, both are `2.4.1`, indicating the latest firmware is installed.
An invalid `robot.yaml` file may result in one or more of the `clearpath-*` systemd jobs to crash
or for the simulation to fail to start. Check the ROS output for errors errors with any of the
following prefixes:
+
- `generate_description`
- `clearpath_config`
- `clearpath_config_live`
@@ -194,3 +208,21 @@ names in common.
See [ROS 2 communication](networking/ros2_networking/ros2_communication) for more information about
configuring domain IDs.
+
+## Mixing ROS 2 Humble and Jazzy
+
+Communication between Humble and Jazzy devices is not supported due to differences in middleware versions. Attempting to discover or communicate with a Humble robot using a Jazzy computer, or vice versa, will cause nodes and services to fail. In this failure mode, you may see one or more of the following errors:
+
+```
+eprosima::fastcdr::exception::NotEnoughMemoryException
+```
+
+```
+'Bad alloc' exception deserializing message of type rmw_dds_common::msg::dds_::ParticipantEntitiesInfo_., at ./src/type_support_common.cpp:123
+```
+
+```
+Fast CDR exception deserializing message of type rmw_dds_common::msg::dds_::ParticipantEntitiesInfo_., at ./src/type_support_common.cpp:118
+```
+
+It is recommended that all ROS 2 devices on a network use the same ROS 2 distribution and middleware.