Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rover: DSHOT reverse range is inverted #19346

Closed
geofrancis opened this issue Nov 23, 2021 · 30 comments
Closed

Rover: DSHOT reverse range is inverted #19346

geofrancis opened this issue Nov 23, 2021 · 30 comments
Labels

Comments

@geofrancis
Copy link

geofrancis commented Nov 23, 2021

When trying to use Reversable Shot motors with rover firmware the reverse values are inverted.

0-100% forward should be 1500-2000us output and that works fine.
0-100% reverse ends up as 1000-1500us so as minimum speed reverse is 1000us and full speed reverse is 1500us rather than minimum reverse at 1500us and full reverse at 1000us

SERVO_DSHOT_ESC was set to 1, when set to 0 reverse done nothing.

Regular PWM mode works as expected but it disables ESC telemetry.
so far I have only seen it in 4.2 dev downgrading to 4.11 works as expected.
blheli32 32.8

@rmackay9 rmackay9 added the Rover label Nov 23, 2021
@rmackay9
Copy link
Contributor

FYI @andyp1per

@geofrancis
Copy link
Author

geofrancis commented Nov 24, 2021

is there any specific reason Dshot needs to be enabled to get blheli32 telemetry? or is it just assumed that if they have a telemetry capable esc they want to use dshot?

@andyp1per
Copy link
Collaborator

is there any specific reason Dshot needs to be enabled to get blheli32 telemetry? or is it just assumed that if they have a telemetry capable esc they want to use dshot?

Yes, requesting telemetry is part of the dshot protocol - it is not part of any of the other protocols. It's possible, I suppose, that BLHeli's auto telemetry feature might help here, but we are not currently geared up to cope with that.

@andyp1per
Copy link
Collaborator

I'm having a hard time believing this is different in 4.2 - the dshot code for 4.2 and 4.1 is very little changed and the place we convert for reversing motors is almost identical. Please can you post your full parameter list so that I can test?

@andyp1per
Copy link
Collaborator

@shellixyz you are using reversing motors on 4.2 I believe?

@geofrancis
Copy link
Author

I'm trying to replicate it, but I can't even 4.2 to start any more, it's just stuck at gyro initializing. flashed back to 4.1 copter reset all settings to try and clear the board but when i flash 4.2 rover i just get repeated message of "initializing". 4.1.1 rover is working fine . but i just cant get 4.2 to boot anymore. il get you a parameter list as soon as i can get it started again.

@rmackay9
Copy link
Contributor

@geofrancis,

The "Initialising ArduPilot" message should be fixed if you rebase on master. There was a bad PR that was merged yesterday but the issue has been fixed now. Sorry for the troubles.

@geofrancis
Copy link
Author

flashing 4.2dev via mission planner is still giving me the error.

@rmackay9
Copy link
Contributor

@geofrancis, yes, the build server hasn't gotten through rebuilding all the various versions yet. It should be fixed in a few hours though.

@shellixyz
Copy link
Contributor

@shellixyz you are using reversing motors on 4.2 I believe?

I do yes, works fine for me with Plane and BLH32

@geofrancis
Copy link
Author

geofrancis commented Nov 24, 2021

I think its something to do with converting pwm to Dshot in rover, as the pwm values showing on mission planner were showing the correct values and are moving appropriately, but the dshot output doesn't match what its showing. going slow from forwards to reverse the motor slows as expected but as soon as it goes past centre it immediately goes to full power reverse, slowing down to minimum speed when the value is at -100%

@geofrancis
Copy link
Author

geofrancis commented Nov 24, 2021

I think this is a problem from long ago, its strange that its only in 4.2. Are there differences between dshot 150 300 600 other than speeds?

#8579
#9743
#7737

@andyp1per
Copy link
Collaborator

No, no other differences

@geofrancis
Copy link
Author

geofrancis commented Nov 27, 2021

@andyp1per I have just done a fresh installation of 4.2, configured everything from scratch back to the way it was working in 4.1 and the problem is back, reverse is inverted.

Switching to PWM or oneshot and the throttle works as expected but stops telemetry working.
Tested Dshot 150,300,600

boat.zip

@andyp1per
Copy link
Collaborator

What flight controller is this on?

@geofrancis
Copy link
Author

pixhawk 1

@geofrancis
Copy link
Author

geofrancis commented Nov 29, 2021

@andyp1per were you able to replicate this?

@andyp1per
Copy link
Collaborator

Sorry, was doing other stuff over the weekend

@geofrancis
Copy link
Author

geofrancis commented Nov 29, 2021

Sorry, was doing other stuff over the weekend

no problem, I'm just using pwm for now, I don't need telemetry for a while yet, It's for doing a stuck propeller script and I won't need that till the spring when it goes for endurance testing.

@rmackay9
Copy link
Contributor

We discussed this at the dev call today and I agreed I would try and reproduce this on a BLHeliESC that I have.

@AlksSAV
Copy link

AlksSAV commented Jan 31, 2022

I have the same problem with DShot on Rover 4.1.3 firmware. Previously there was version 4.2
My Equipment:

  • Pixhawk 2.4.8
  • BLHeli_32 DYS Aria 35A

@Jahor
Copy link

Jahor commented Mar 15, 2022

Same issue. Also in BLHeli_32 when configured in Bidirectional 3D (not Soft) sending 1048 (idle state) over DShot causes motors to spin. May be it is possible to send command 0 (stop) when idle?
When sending 1500 with PWM it does not happen, as they have some dead-band.

@rmackay9
Copy link
Contributor

rmackay9 commented Mar 22, 2022

I've reproduced the issue on a CubeOrange running Rover-4.2.0-beta and 4.3.0-dev (aka latest, aka master) so hopefully we can get to the bottom of this. By the way, it also seems that the direction of the motors rotation has changed in 4.1.5 and 4.2/4.3.

@rmackay9
Copy link
Contributor

Ok, I think we have a fix for this issue here #20349.

@geofrancis do you think you could test this resolves the issue? It does for me but I'd like to get it tested with various different autopilots if possible.

@geofrancis
Copy link
Author

I have been ill for the last month, I haven't been able to test anything yet unfortunately.

@rmackay9
Copy link
Contributor

@geofrancis, hope you're feeling better soon. I've tested it quite thoroughly and the fix is included in -beta3 which should be out later today.

I think I might close this one but we can re-open if you find the problem still exists.

@AlksSAV
Copy link

AlksSAV commented Apr 14, 2022

Now I have tested on version 4.3 dev, still not correct work. Is it just me who has such a problem?

@andyp1per
Copy link
Collaborator

Now I have tested on version 4.3 dev, still not correct work. Is it just me who has such a problem?

Please post your params

@AlksSAV
Copy link

AlksSAV commented Apr 20, 2022

Now I have tested on version 4.3 dev, still not correct work. Is it just me who has such a problem?

Please post your params

The problem turned out to be in ESC, tested everything works.

Pixhawk 2.4.8, DYS Aria blheli 32.

@rmackay9
Copy link
Contributor

@AlksSAV,

Great! thanks very much for the feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants