You are here

VESC crashes on Servo output

6 posts / 0 new
Last post
AutonomousDrifting
AutonomousDrifting's picture
Offline
Last seen: 2 years 7 months ago
Joined: 2020-10-30 12:49
Posts: 4
VESC crashes on Servo output

Hello everyone,

I have a VESC 6 MKV that I am trying to use to control a F1Tenth-type Autonomous RC-Car. I have flashed the VESC with the newest (servo_out enabled) Firmware (5.02). The motor and servo of the car are controlled over the VESC ROS driver (https://github.com/f1tenth/f1tenth_system/tree/master/vesc).

My problem is the following:
Adjusting (only) the throttle for the motor works fine. However, when I begin to steer (i.e. the VESC outputs a PWM signal to the servo) the VESC quickly (after 1-3 sec.) crashes. It blinks red and blue (reboots) and once it's rebooted, the steering still works, but the other motor does not move.
When using the default servo speed, that was successfully used with other servos, the ROS package outputs an OUT_OF_SYNC with VESC error and the above behavior occurs. This error has to do with the serial communication packets being not of expected size or content. When I move the steering joystick slower, or when I reduce the max. steering speed parameter in the code, there is no error thrown but the above behavior still occurs.

I have a "SRT CH6012 HV Low Profile" Servo, which is suited for 1:10 scale RC vehicles.
However, when I tried other servos, the above behavior did not occur. So might there be something wrong with the servo? It seems to work fine for a few seconds, so it is plugged in correctly. Shouldn't the VESC be able to handle common RC servos? Or is there something I am missing, like a totally different baud-rate of the servo or something?

Many Thanks in advance,
AutonomousDrifting

district9prawn
Offline
Last seen: 1 year 11 months ago
Joined: 2018-04-26 12:18
Posts: 123

After crashing and rebooting, do you have a fault code from the vesc?

AutonomousDrifting
AutonomousDrifting's picture
Offline
Last seen: 2 years 7 months ago
Joined: 2020-10-30 12:49
Posts: 4

I am not sure. How would I know?
The ROS driver sometimes gives this "out-of-sync with vesc" error, only indicating that there is something wrong with the packets.

How do I obtain such a fault code?

EDIT: I have just checked again. The VESC does indeed return the fault code 3. Which seems to be "FAULT_CODE_DRV8302".
So there seems to be a problem with the DRV chip?
I have also noticed, that when I turn down the servo speed even more. The issue happens less and less often, at some point steering is unusably slow, but the error does not occur anymore.

Hoselebewesen1
Offline
Last seen: 3 years 3 months ago
Joined: 2021-08-17 12:42
Posts: 1

I´m experiencing a similar behavior, do you fixed your problem yet? When I´m steering too fast the VESC crashes and turns off. After reboot it, everything works again. Hopefully you can help.

frank
Offline
Last seen: 3 weeks 3 days ago
VESC BronzeVESC FreeVESC GoldVESC OriginalVESC PlatinumVESC Silver
Joined: 2016-12-27 20:19
Posts: 847

Sure you have no GND loops in the system and the VESC logic is galvanically isolated towards other devices? also you might drain to much power from the 5V rail.

monkey-man
Offline
Last seen: 2 weeks 2 days ago
VESC Free
Joined: 2023-01-07 19:22
Posts: 1

I am experiencing the same problem with a 1:5 RC with the VESC connected to my computer. Here is my setup:
VESC MK6 running firmware 6.05
Powering the VESC with a 4S LiPO battery
Servo is "S900S 1/5 Scale Digital Metal Gear Servo"
Motor is "Dynamite 1/5th BL Motor 800kV"

I can reproduce the problem within VESC Tool UI. I send a constant RPM command to the motor (2000 RPM in the fault below). Then, I steer the servo from left to right pretty fast and then the motor stops and I have to reboot the VESC to be able to send another velocity commands. Here is the fault generated:

Fault : FAULT_CODE_DRV

Motor : 1

Current : 1.7

Current filtered : 3.3

Voltage : 16.71

Duty : 0.069

RPM : 1979.0

Tacho : 30754

Cycles running : 97741

TIM duty : 386

TIM val samp : 2800

TIM current samp : 2800

TIM top : 5600

Comm step : 0

Temperature : 29.67

DRV8301_FAULTS : No DRV8301 faults

In my ROS node, I tried to limit the servo min/max values as well as reducing the maximum angular speed of the servo as mentioned, but I can still crash the VESC by just alternating left/right fast 

Any ideas?

Thanks in advance!