diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/battery_fault.gif b/docs_versioned_docs/version-ros2humble/ros/api/img/battery_fault.gif
new file mode 100644
index 00000000..a37c51cd
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/battery_fault.gif differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/charged.png b/docs_versioned_docs/version-ros2humble/ros/api/img/charged.png
new file mode 100644
index 00000000..c0913485
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/charged.png differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/charging.gif b/docs_versioned_docs/version-ros2humble/ros/api/img/charging.gif
new file mode 100644
index 00000000..3a355ad4
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/charging.gif differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/driving.png b/docs_versioned_docs/version-ros2humble/ros/api/img/driving.png
new file mode 100644
index 00000000..449c8ed7
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/driving.png differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/idle.png b/docs_versioned_docs/version-ros2humble/ros/api/img/idle.png
new file mode 100644
index 00000000..1ba715dc
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/idle.png differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/low_battery.gif b/docs_versioned_docs/version-ros2humble/ros/api/img/low_battery.gif
new file mode 100644
index 00000000..7073fca7
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/low_battery.gif differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/needs_reset.gif b/docs_versioned_docs/version-ros2humble/ros/api/img/needs_reset.gif
new file mode 100644
index 00000000..ee4d0821
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/needs_reset.gif differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/shore_and_charged.gif b/docs_versioned_docs/version-ros2humble/ros/api/img/shore_and_charged.gif
new file mode 100644
index 00000000..dea4ef4a
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/shore_and_charged.gif differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/shore_and_charging.gif b/docs_versioned_docs/version-ros2humble/ros/api/img/shore_and_charging.gif
new file mode 100644
index 00000000..5fe80988
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/shore_and_charging.gif differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/shore_fault.gif b/docs_versioned_docs/version-ros2humble/ros/api/img/shore_fault.gif
new file mode 100644
index 00000000..6188f3e6
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/shore_fault.gif differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/shore_power.png b/docs_versioned_docs/version-ros2humble/ros/api/img/shore_power.png
new file mode 100644
index 00000000..c9f30544
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/shore_power.png differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/img/stopped.gif b/docs_versioned_docs/version-ros2humble/ros/api/img/stopped.gif
new file mode 100644
index 00000000..9c32bcee
Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/api/img/stopped.gif differ
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/lighting.mdx b/docs_versioned_docs/version-ros2humble/ros/api/lighting.mdx
new file mode 100644
index 00000000..2b8ca844
--- /dev/null
+++ b/docs_versioned_docs/version-ros2humble/ros/api/lighting.mdx
@@ -0,0 +1,197 @@
+---
+title: Lighting
+sidebar_label: Lighting
+sidebar_position: 5
+toc_min_heading_level: 2
+toc_max_heading_level: 5
+---
+
+Corner lighting is unified for platforms that support it (D100, D150, R100, W200). Lighting is controlled by the [lighting node](https://github.com/clearpathrobotics/clearpath_common/tree/humble/clearpath_platform/src/lighting) which defines multiple lighting states.
+The platforms lighting state is determined based on data from multiple platform status topics. Lighting states are given a priority, such that the most important state (lowest priority value) is displayed first.
+
+The lighting node will publish the current lighting command directly to the MCU. It also subscribes to user lighting commands, and will instead publish those user commands if appropriate.
+
+
+## Lighting States
+
+
+
+
+ Lighting State |
+ Lighting Pattern |
+ Priority |
+ User commands allowed |
+ Platform |
+
+
+
+
+ Battery Fault |
+
+
+
+
+ |
+ 0 |
+ No |
+ D100, D150, R100, W200 |
+
+
+ Shore power Fault |
+
+
+
+
+ |
+ 1 |
+ No |
+ D100, D150 |
+
+
+ Shore Power and Charged |
+
+
+
+
+ |
+ 2 |
+ Yes |
+ D100, D150 |
+
+
+ Shore Power and Charging |
+
+
+
+
+ |
+ 3 |
+ Yes |
+ D150 |
+
+
+ Shore Power |
+
+
+
+
+ |
+ 4 |
+ Yes |
+ D100, D150 |
+
+
+ Charged |
+
+
+
+
+ |
+ 5 |
+ Yes |
+ D100, D150, R100, W200 |
+
+
+ Charging |
+
+
+
+
+ |
+ 6 |
+ Yes |
+ D150, R100 |
+
+
+ Stopped |
+
+
+
+
+ |
+ 7 |
+ No |
+ D100, D150, R100, W200 |
+
+
+ Needs Reset |
+
+
+
+
+ |
+ 8 |
+ No |
+ R100 |
+
+
+ Low Battery |
+
+
+
+
+ |
+ 9 |
+ No |
+ D100, D150, R100, W200 |
+
+
+ Driving |
+
+
+
+
+ |
+ 10 |
+ Yes |
+ D100, D150, R100, W200 |
+
+
+ Idle |
+
+
+
+
+ |
+ 11 |
+ Yes |
+ D100, D150, R100, W200 |
+
+
+
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/mcu_api.mdx b/docs_versioned_docs/version-ros2humble/ros/api/mcu_api.mdx
index 4494095e..849e0ac3 100644
--- a/docs_versioned_docs/version-ros2humble/ros/api/mcu_api.mdx
+++ b/docs_versioned_docs/version-ros2humble/ros/api/mcu_api.mdx
@@ -8,16 +8,17 @@ toc_max_heading_level: 4
## MCU topics
-| Topic | Message type | Publisher | Description | QoS |
-| :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------- | :-------------------------------------- | :---------------------------------------------- |
-| platform/emergency_stop | [std_msgs/Bool](https://github.com/ros2/common_interfaces/blob/humble/std_msgs/msg/Bool.msg) | MCU node | State of platform emergency stop | [Sensor Data](overview.mdx#sensor-data) |
-| platform/mcu/status | [clearpath_platform_msgs/Status](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Status.msg) | MCU node | MCU status | [Sensor Data](overview.mdx#sensor-data) |
-| platform/mcu/status/power | [clearpath_platform_msgs/Power](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Power.msg) | MCU node | Robot Power status | [Sensor Data](overview.mdx#sensor-data) |
-| platform/mcu/status/stop | [clearpath_platform_msgs/StopStatus](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/StopStatus.msg) | MCU node | Stop loop status | [Sensor Data](overview.mdx#sensor-data) |
-| platform/motors/cmd_drive | [clearpath_platform_msgs/Drive](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Drive.msg) | Control node | Command velocities to individual wheels | [Sensor Data](overview.mdx#sensor-data) |
-| platform/motors/feedback | [clearpath_platform_msgs/DriveFeedback](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/DriveFeedback.msg) | MCU node | Feedback from motor drive unit | [Sensor Data](overview.mdx#sensor-data) |
-| platform/wifi_connected | [std_msgs/Bool](https://github.com/ros2/common_interfaces/blob/humble/std_msgs/msg/Bool.msg) | Wireless Watcher node | Wi-Fi connected status | [Sensor Data](overview.mdx#sensor-data) |
-| /rosout | [rcl_interfaces/Log](https://github.com/ros2/rcl_interfaces/blob/humble/rcl_interfaces/msg/Log.msg) | MCU node | System Logs | [Transient Local](overview.mdx#transient-local) |
+| Topic | Message type | Publisher | Description | QoS |
+| :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------- | :----------------------------------------------------- | :---------------------------------------------- |
+| platform/emergency_stop | [std_msgs/Bool](https://github.com/ros2/common_interfaces/blob/humble/std_msgs/msg/Bool.msg) | MCU node | State of platform emergency stop | [Sensor Data](overview.mdx#sensor-data) |
+| platform/mcu/_cmd_lights | [clearpath_platform_msgs/Lights](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Lights.msg) | Lighting command | Hidden topic used to send lighting commands to the MCU | [Sensor Data](overview.mdx#sensor-data) |
+| platform/mcu/status | [clearpath_platform_msgs/Status](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Status.msg) | MCU node | MCU status | [Sensor Data](overview.mdx#sensor-data) |
+| platform/mcu/status/power | [clearpath_platform_msgs/Power](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Power.msg) | MCU node | Robot Power status | [Sensor Data](overview.mdx#sensor-data) |
+| platform/mcu/status/stop | [clearpath_platform_msgs/StopStatus](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/StopStatus.msg) | MCU node | Stop loop status | [Sensor Data](overview.mdx#sensor-data) |
+| platform/motors/cmd_drive | [clearpath_platform_msgs/Drive](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Drive.msg) | Control node | Command velocities to individual wheels | [Sensor Data](overview.mdx#sensor-data) |
+| platform/motors/feedback | [clearpath_platform_msgs/DriveFeedback](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/DriveFeedback.msg) | MCU node | Feedback from motor drive unit | [Sensor Data](overview.mdx#sensor-data) |
+| platform/wifi_connected | [std_msgs/Bool](https://github.com/ros2/common_interfaces/blob/humble/std_msgs/msg/Bool.msg) | Wireless Watcher node | Wi-Fi connected status | [Sensor Data](overview.mdx#sensor-data) |
+| /rosout | [rcl_interfaces/Log](https://github.com/ros2/rcl_interfaces/blob/humble/rcl_interfaces/msg/Log.msg) | MCU node | System Logs | [Transient Local](overview.mdx#transient-local) |
## MCU services
diff --git a/docs_versioned_docs/version-ros2humble/ros/api/platform_api.mdx b/docs_versioned_docs/version-ros2humble/ros/api/platform_api.mdx
index a720e73a..55c89bd6 100644
--- a/docs_versioned_docs/version-ros2humble/ros/api/platform_api.mdx
+++ b/docs_versioned_docs/version-ros2humble/ros/api/platform_api.mdx
@@ -14,6 +14,7 @@ toc_max_heading_level: 4
| diagnostics | [diagnostics_msgs/DiagnosticArray](https://github.com/ros2/common_interfaces/blob/humble/diagnostic_msgs/msg/DiagnosticArray.msg) | Various nodes | Diagnostic messages reported by various nodes | [System Default](overview.mdx#system-default) |
| joy_teleop/cmd_vel | [geometry_msgs/Twist](https://github.com/ros2/common_interfaces/blob/humble/geometry_msgs/msg/Twist.msg) | Joy node | Velocity commands from joystick inputs | [System Default](overview.mdx#system-default) |
| joy_teleop/joy | [sensor_msgs/Joy](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/Joy.msg) | Joy node | Joystick input states | [System Default](overview.mdx#system-default) |
+| platform/cmd_lights | [clearpath_platform_msgs/Lights](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Lights.msg) | User | User lighting command request | [System Default](overview.mdx#system-default) |
| platform/cmd_vel_unstamped | [geometry_msgs/Twist](https://github.com/ros2/common_interfaces/blob/humble/geometry_msgs/msg/Twist.msg) | Twist Mux node | Resulting velocity commands from twist mux | [System Default](overview.mdx#system-default) |
| platform/dynamic_joint_states | [control_msgs/DynamicJointState](https://github.com/ros-controls/control_msgs/blob/humble/control_msgs/msg/DynamicJointState.msg) | Control node | Platform dynamic joint state | [System Default](overview.mdx#system-default) |
| platform/emergency_stop | [std_msgs/Bool](https://github.com/ros2/common_interfaces/blob/humble/std_msgs/msg/Bool.msg) | MCU node | State of platform emergency stop | [Sensor Data](overview.mdx#sensor-data) |