I want to communicate with this Rhino DC servo motor with RPi4 B. I enable uart3 in RPi4 by modifying the /boot/config.txt file. In this file, I add dtoverlay=uart3 in the last. When I used ls /dev/ttyAMA* , I got /dev/ttyAMA0 /dev/ttyAMA1 , So I think uart3 is enable in RPi4.

For uart3, TXD is at GPIO04 and RXD is at GPIO05. So, I connected RXD of RPi with TX of motor and vice-versa. In this servo motor, to rotate we have to give commands like G200, G300,, etc. To get the current position, we have to send P. This link explains it in detail.

I used the below code to communicate with motor and RPi4:

import time
import serial

ser = serial.Serial(
        baudrate = 9600,

val = ser.read('P')

But there was no rotation of the motor (no error was there too). and I got value b' ' using print(val)

I want to know, how to run this servo motor with RPi4?

  • Use abyz.me.uk/rpi/pigpio/piscope.html to check for activity on GPIO4/5. Check that the activity is as expected. read('P') is wrong. You need to write the command and then read the result. – joan Jun 8 at 7:44
  • Yes Sir, that what I'm asking. How to write the commands as my commands are like G200 etc. – Naseeb Gill Jun 8 at 8:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.