From 58c4a387cfa6773544e32b3921c14855a40bef4a Mon Sep 17 00:00:00 2001 From: Philipp Bleimund Date: Fri, 26 Jun 2026 17:16:28 +0200 Subject: [PATCH 1/3] add baudrates --- damiao_motor/core/motor.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/damiao_motor/core/motor.py b/damiao_motor/core/motor.py index 8e01e8f..2a47cd9 100644 --- a/damiao_motor/core/motor.py +++ b/damiao_motor/core/motor.py @@ -142,6 +142,14 @@ class RegisterInfo: 4: 1000000, # 1M } +# CAN_FD baud rate codes +CAN_FD_BAUD_RATE_CODES = { + 5: 2000000, # 2M + 6: 2500000, # 2.5M + 7: 3200000, # 3.2M + 8: 4000000, # 4M + 9: 5000000, # 5M +} # ----------------------- # Helper functions From 4e074b4363314861b818c284bf76c14b2a3b0ed0 Mon Sep 17 00:00:00 2001 From: Philipp Bleimund Date: Fri, 26 Jun 2026 17:17:48 +0200 Subject: [PATCH 2/3] add can fd baudrates to set_can_baud_rate() --- damiao_motor/core/motor.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/damiao_motor/core/motor.py b/damiao_motor/core/motor.py index 2a47cd9..7faf707 100644 --- a/damiao_motor/core/motor.py +++ b/damiao_motor/core/motor.py @@ -1164,20 +1164,21 @@ def set_speed_loop_enhancement(self, value: float) -> None: """Set speed loop enhancement coefficient (register 34).""" self.write_register(34, value) - def set_can_baud_rate(self, baud_rate_code: int) -> None: + def set_can_baud_rate(self, baud_rate_code: int, persist: bool = True) -> None: """ Set CAN baud rate using register 35 (can_br). Args: - baud_rate_code: Baud rate code (0=125K, 1=200K, 2=250K, 3=500K, 4=1M) + baud_rate_code: Baud rate code (0=125K, 1=200K, 2=250K, 3=500K, 4=1M, 5=2M, 6=2.5M, 7=3.2M, 8=4M, 9=5M) Raises: - ValueError: If baud_rate_code is not in valid range [0, 4] + ValueError: If baud_rate_code is not in valid range [0, 9] """ - if baud_rate_code not in CAN_BAUD_RATE_CODES: + if baud_rate_code not in CAN_BAUD_RATE_CODES and baud_rate_code not in CAN_FD_BAUD_RATE_CODES: raise ValueError( - f"Invalid baud rate code: {baud_rate_code}. Must be in {list(CAN_BAUD_RATE_CODES.keys())}" + f"Invalid baud rate code: {baud_rate_code}. Must be in {list(CAN_BAUD_RATE_CODES.keys())} or {list(CAN_FD_BAUD_RATE_CODES.keys())}" ) self.write_register(35, baud_rate_code) # Register 35 is can_br - self.store_parameters() # Store to flash so it persists + if persist: + self.store_parameters() # Store to flash so it persists \ No newline at end of file From ef94d7f060c56cb14b641bb0170f2c2a11648e3a Mon Sep 17 00:00:00 2001 From: Philipp Bleimund Date: Fri, 26 Jun 2026 17:33:24 +0200 Subject: [PATCH 3/3] add docstring argument --- damiao_motor/core/motor.py | 1 + 1 file changed, 1 insertion(+) diff --git a/damiao_motor/core/motor.py b/damiao_motor/core/motor.py index 7faf707..c38db63 100644 --- a/damiao_motor/core/motor.py +++ b/damiao_motor/core/motor.py @@ -1170,6 +1170,7 @@ def set_can_baud_rate(self, baud_rate_code: int, persist: bool = True) -> None: Args: baud_rate_code: Baud rate code (0=125K, 1=200K, 2=250K, 3=500K, 4=1M, 5=2M, 6=2.5M, 7=3.2M, 8=4M, 9=5M) + persist: Store all current parameters to flash. The motor need to be in disabled Mode for this to work. Raises: ValueError: If baud_rate_code is not in valid range [0, 9]