diff --git a/mavlink_rust/Cargo.toml b/mavlink_rust/Cargo.toml
index 2afeb070db9912e88ab5b801617177ce1d7dfc1b..2f5d67899ae38d0b124478de67136b357901a091 100644
--- a/mavlink_rust/Cargo.toml
+++ b/mavlink_rust/Cargo.toml
@@ -1,8 +1,8 @@
 [package]
 name = "skyward_mavlink"
-version = "0.1.1"
+version = "0.2.0"
 authors = ["Federico Lolli <federico.lolli@skywarder.eu>"]
-edition = "2021"
+edition = "2024"
 license = "MIT"
 
 [dependencies]
@@ -15,7 +15,7 @@ serde_arrays = { version = "0.1", optional = true }
 
 [dependencies.mavlink-core]
 git = "https://git.skywarder.eu/avn/swd/mavlink/rust-mavlink.git"
-rev = "1b51a25d717993d39004152f215c33f4333e2056"
+rev = "9a06b5bbfe555673f4df968e8756d9b46f5a4a73"
 
 [build-dependencies]
 serde = "1.0"
@@ -23,13 +23,12 @@ serde_json = "1.0"
 
 [build-dependencies.mavlink-bindgen]
 git = "https://git.skywarder.eu/avn/swd/mavlink/rust-mavlink.git"
-rev = "1b51a25d717993d39004152f215c33f4333e2056"
-features = ["serde"]
+rev = "9a06b5bbfe555673f4df968e8756d9b46f5a4a73"
 
 [features]
 default = ["orion"]
 # crate features
-reflection = ["dep:paste"]
+reflection = ["dep:paste", "mavlink-core/reflection", "mavlink-bindgen/emit-reflection"]
 # dialect features
 orion = []
 lyra = []
@@ -40,4 +39,4 @@ hermes = []
 r2a = []
 test = []
 # serde support
-serde = ["dep:serde", "dep:serde_arrays"]
+serde = ["dep:serde", "dep:serde_arrays", "mavlink-bindgen/serde"]
diff --git a/message_definitions/orion.xml b/message_definitions/orion.xml
index dca259543439cc19db3cd73861b69db3587d795c..093bc23d410b9102a866fde29d3bd60a9a8e92c6 100644
--- a/message_definitions/orion.xml
+++ b/message_definitions/orion.xml
@@ -349,32 +349,32 @@
         </message>
         <message id="2" name="COMMAND_TC">
             <description>TC containing a command with no parameters that trigger some action</description>
-            <field name="command_id" type="uint8_t">A member of the MavCommandList enum</field>
+            <field name="command_id" type="uint8_t" enum="MavCommandList">A member of the MavCommandList enum</field>
         </message>
         <message id="3" name="SYSTEM_TM_REQUEST_TC">
             <description>TC containing a request for the status of a board</description>
-            <field name="tm_id" type="uint8_t">A member of the SystemTMList enum</field>
+            <field name="tm_id" type="uint8_t" enum="SystemTMList">A member of the SystemTMList enum</field>
         </message>
         <message id="4" name="SENSOR_TM_REQUEST_TC">
             <description>TC containing a request for sensors telemetry</description>
-            <field name="sensor_name" type="uint8_t">A member of the SensorTMList enum</field>
+            <field name="sensor_name" type="uint8_t" enum="SensorsTMList">A member of the SensorsTMList enum</field>
         </message>
         <message id="5" name="SERVO_TM_REQUEST_TC">
             <description>TC containing a request for servo telemetry</description>
-            <field name="servo_id" type="uint8_t">A member of the ServosList enum</field>
+            <field name="servo_id" type="uint8_t" enum="ServosList">A member of the ServosList enum</field>
         </message>
         <message id="6" name="SET_SERVO_ANGLE_TC">
             <description>Sets the angle of a certain servo</description>
-            <field name="servo_id" type="uint8_t">A member of the ServosList enum</field>
+            <field name="servo_id" type="uint8_t" enum="ServosList">A member of the ServosList enum</field>
             <field name="angle" type="float">Servo angle in normalized value [0-1]</field>
         </message>
         <message id="7" name="RESET_SERVO_TC">
             <description>Resets the specified servo</description>
-            <field name="servo_id" type="uint8_t">A member of the ServosList enum</field>
+            <field name="servo_id" type="uint8_t" enum="ServosList">A member of the ServosList enum</field>
         </message>
         <message id="8" name="WIGGLE_SERVO_TC">
             <description>Wiggles the specified servo</description>
-            <field name="servo_id" type="uint8_t">A member of the ServosList enum</field>
+            <field name="servo_id" type="uint8_t" enum="ServosList">A member of the ServosList enum</field>
         </message>
         <message id="9" name="SET_REFERENCE_ALTITUDE_TC">
             <description>Sets the reference altitude for the altimeter</description>
@@ -432,12 +432,12 @@
         <!-- FROM GROUND TO GSE -->
         <message id="30" name="SET_ATOMIC_VALVE_TIMING_TC">
             <description>Sets the maximum time that the valves can be open atomically</description>
-            <field name="servo_id" type="uint8_t">A member of the ServosList enum</field>
+            <field name="servo_id" type="uint8_t" enum="ServosList">A member of the ServosList enum</field>
             <field name="maximum_timing" type="uint32_t" units="ms">Maximum timing in [ms]</field>
         </message>
         <message id="31" name="SET_VALVE_MAXIMUM_APERTURE_TC">
             <description>Sets the maximum aperture of the specified valve. Set as value from 0 to 1</description>
-            <field name="servo_id" type="uint8_t">A member of the ServosList enum</field>
+            <field name="servo_id" type="uint8_t" enum="ServosList">A member of the ServosList enum</field>
             <field name="maximum_aperture" type="float">Maximum aperture</field>
         </message>
         <message id="32" name="CONRIG_STATE_TC">
@@ -489,17 +489,17 @@
         <!-- FROM GROUND TO ARP -->
         <message id="60" name="SET_STEPPER_ANGLE_TC">
             <description>Move the stepper of a certain angle</description>
-            <field name="stepper_id" type="uint8_t">A member of the StepperList enum</field>
+            <field name="stepper_id" type="uint8_t" enum="StepperList">A member of the StepperList enum</field>
             <field name="angle" type="float">Stepper angle in degrees</field>
         </message>
         <message id="61" name="SET_STEPPER_STEPS_TC">
             <description>Move the stepper of a certain amount of steps</description>
-            <field name="stepper_id" type="uint8_t">A member of the StepperList enum</field>
+            <field name="stepper_id" type="uint8_t" enum="StepperList">A member of the StepperList enum</field>
             <field name="steps" type="float">Number of steps</field>
         </message>
         <message id="62" name="SET_STEPPER_MULTIPLIER_TC">
             <description>Set the multiplier of the stepper</description>
-            <field name="stepper_id" type="uint8_t">A member of the StepperList enum</field>
+            <field name="stepper_id" type="uint8_t" enum="StepperList">A member of the StepperList enum</field>
             <field name="multiplier" type="float">Multiplier</field>
         </message>
         <message id="63" name="SET_ANTENNA_COORDINATES_ARP_TC">
@@ -516,7 +516,7 @@
         </message>
         <message id="65" name="ARP_COMMAND_TC">
             <description>TC containing a command with no parameters that trigger some action</description>
-            <field name="command_id" type="uint8_t">A member of the MavCommandList enum</field>
+            <field name="command_id" type="uint8_t" enum="MavCommandList">A member of the MavCommandList enum</field>
         </message>
 
         <!-- FROM ROCKET TO GROUND: GENERIC -->
@@ -629,13 +629,13 @@
         </message>
         <message id="113" name="SERVO_TM">
             <description></description>
-            <field name="servo_id" type="uint8_t">A member of the ServosList enum</field>
+            <field name="servo_id" type="uint8_t" enum="ServosList">A member of the ServosList enum</field>
             <field name="servo_position" type="float">Position of the servo [0-1]</field>
         </message>
         <message id="114" name="PIN_TM">
             <description></description>
             <field name="timestamp" type="uint64_t" units="us">Timestamp</field>
-            <field name="pin_id" type="uint8_t">A member of the PinsList enum</field>
+            <field name="pin_id" type="uint8_t" enum="PinsList">A member of the PinsList enum</field>
             <field name="last_change_timestamp" type="uint64_t">Last change timestamp of pin</field>
             <field name="changes_counter" type="uint8_t">Number of changes of pin</field>
             <field name="current_state" type="uint8_t">Current state of pin</field>