I am successfully receiving feedback from the motor side, including the encoder values, which are being read accurately.
I am writing to update you on the motor control project and to seek your guidance on an issue I'm currently facing.
Project Configuration:
- Microcontroller: STM32H723ZG
- Motor Drivers: Rhino RMCS-2303 (Quantity: 2)
- Motors: Rhino DC Motors (Quantity: 2)
Hardware Setup:
Motor 1 (Left Motor):
- UART Communication: USART2 (PA2-TX, PA3-RX)
- Control Pins: ENA (PC0), DIR (PC2), BRK (PC4)
- Feedback: ADC (PA0) - Optional
- Slave ID: 7
Motor 2 (Right Motor):
- UART Communication: USART1 (PA9-TX, PA10-RX)
- Control Pins: ENA (PC1), DIR (PC3), BRK (PC5)
- Feedback: ADC (PA1) - Optional
- Slave ID: 6
Current Status:
I have successfully implemented the basic motor control system with the following functionalities:
- :white_heavy_check_mark: Forward movement (F command)
- :white_heavy_check_mark: Backward movement (B command)
- :white_heavy_check_mark: Left turn (L command)
- :white_heavy_check_mark: Right turn (R command)
- :white_heavy_check_mark: Encoder feedback reading from both motors
Issue Faced:
However, I am facing difficulty in controlling the motor speed dynamically. The motors continue to run at the same speed regardless of the speed command I send. I am unable to increase or decrease the speed using commands.
Could you please guide me on:
- The correct command format/protocol for speed control with RMCS-2303?
- Any specific register settings or UART command structure I should follow?
- Whether any additional configuration is required in the driver settings?


