Ardupilot: Feature Request: ESC (BLHeli) USB Passthrough

Created on 1 Nov 2016  Â·  24Comments  Â·  Source: ArduPilot/ardupilot

Issue details

Feature Request: ESC (BLHeli) USB Passthrough

Version

Any

Platform

[ ] All
[ ] AntennaTracker
[x] Copter
[ ] Plane
[ ] Rover

Airframe type

Quadcopter, Hexacopter

Hardware type

PixRacer

Logs

Copter Enhancement

Most helpful comment

I have ESC pass-thru config working on ArduPilot now, and have used it successfully with both BLHeli_32 and BLHeli_S ESCs.
Please see my comments in issue #5300 for more details.

All 24 comments

can you give a few more details as to what USB Passthrough means?

Hi @magicrub,

I believe the Passthrough means you can change parameters or even flashing BLHeli ifrmware using PixRacer as an programming interface/adapter.

does this have anything to do with USB?

Apologies for not explaining, I thought it was a known feature of other firmware.

USB passthrough allows any FC running CleanFlight (or Betaflight or iNav) to use the BLHeli suite to flash and program ESCs while they are connected to the FC. This is extremely handy for miniquads/racers where the ESC servos most of the time are connected (or even soldered directly) to the FC ESC pins.

This "passthrough" feature is provided by the CleanFlight/BetaFlight/iNav firmware and it is portable among supported boards (i.e you can do it on SP Racing F3, Naze32 or even CC3D boards, as long they are flashed with CleanFlight/BetaFlight/iNav). Think of it like the GPS-passthrough feature APM/PixHawk/PixRacer boards have, where you can flash and program your uBlox GPS while it is connected to the FC, without having to use an FTDI adapter/cable.

Currently I am running AC3.4.1 on two PixRacers I have, one mounted on an S500 frame and the other on a "Robocat"-like 270mm racer frame (a cheap one from eBay). It is totally PITA to change ESC parameters on the racer without dismantling everything, since everything is so crammed in order to fit.

Again, thank you very much for the interest.

It is basically forwarding of traffic between the main serial port and the esc ports that bitbang the blheli protocol over the same wire. It's pretty useful for changing esc parameters but it does require some control over the pwm pins to be able to use them for the 1 wire serial communication that the escs use.

It is actually only in part an fc feature. It is for the most part a driver feature of the underlying system that fc runs on top of. So it should actually be added to px4 drivers if APM is being used on a pixhawk.

@magicrub Tom, this topic has been discussed at dev calls with Tridge, and is somewhat "tied" with the DMA to pin issue also relevant for the support of DShot

Here's a more in depth explanation:
https://www.youtube.com/watch?v=mDNDpgKj0kA

@lvale do you have any issues/PRs you can cross link to here?

I'd very much like to support this, although I can't promise when I will have time to work on it

Thank you all very much for the contribution - especially @tridge - I am really hoping that you'll manage to find some time and work on it as it would be a great feature for ArduPilot.

@tridge @magicrub @Frontier314
I don't know whether it is possible for some boards to read from the RCOUT pins.
The ESC configuration and update goes in Cleanflight over a one wire connection allowing the ESCs to send some data.
Not sure whether e.g. PixRacer can read from the RCOUT pins. If so, I would like to implement something like this.

@Frontier314 does BLHeli suite have support for usb pass through for PX4? If not how do I connect my FC {pixhawk mini} to the suite so I can flash and configure my blHeli escs?

No, it does not support USB passthrough for PX4, only for CleanFlight/Betaflight/iNav targets.

From: BVN99 [mailto:[email protected]]
Sent: Wednesday, July 5, 2017 11:15 PM
To: ArduPilot/ardupilot ardupilot@noreply.github.com
Cc: Manos S. Pappás frontier@myphone.gr; Mention mention@noreply.github.com
Subject: Re: [ArduPilot/ardupilot] Feature Request: ESC (BLHeli) USB Passthrough (#5120)

@Frontier314 https://github.com/frontier314 does BLHeli suite have support for usb pass through for PX4? If not how do I connect my FC {pixhawk mini} to the suite so I can flash and configure my blHeli escs?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/ArduPilot/ardupilot/issues/5120#issuecomment-313213865 , or mute the thread https://github.com/notifications/unsubscribe-auth/AElXULBejPwiz624Gs20AXU6LFdeiEC8ks5sK-6vgaJpZM4Kl_Cx . https://github.com/notifications/beacon/AElXUAg8GK-YtGv_T_EF1NOdmhAFOlqmks5sK-6vgaJpZM4Kl_Cx.gif

Can someone comment to question whether one can read from the RCouts?
Alternatively one could connect the ESCs maybe to the UARTs?!

Somebody could check the pixhawk schematic perhaps. I don't really why not
because most pins on stm32 work well as inputs too. But it could be tricky
to add from software arch perspective..

On 7 Jul 2017 12:59, "Daniel Frenzel" notifications@github.com wrote:

Can someone comment to question whether one can read from the RCouts?
Alternatively one could connect the ESCs maybe to the UARTs?!

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ArduPilot/ardupilot/issues/5120#issuecomment-313651761,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AERqiXu4aRV9De9OiVrV9-SlnNGTUGM8ks5sLg-ZgaJpZM4Kl_Cx
.

Currently I am not even sure what the ESCs send back. Guess it is PWM: https://github.com/iNavFlight/inav/blob/29e67bb1238e4e83c28a5e1b454df4b5f1ed3d4a/src/main/io/serial_4way.c
One just would need an RCIn for the RCOuts and write a tool for passthrough to allow configuration and flash.

its normal serial data, if you look at the BLHeli_s code its on a normal serial port, TX and RX are essentially tied together and its half-duplex.

@Engineereric @tridge
I guess one would need to implement the DShot protocol. This will probably require DMA. Does the Pixracer/Pixhawk have sufficient resources for that? I am not the e-tech specialist. However, it would be interesting to know.

No DShot protocol defines the 1's and 0's by length of pulses unlike serial that is high or low. You can "Bit Bash" the serial for programing BLHeli_s as the pass-though in Betaflight even works on an old F1 CC3D board.

I have ESC pass-thru config working on ArduPilot now, and have used it successfully with both BLHeli_32 and BLHeli_S ESCs.
Please see my comments in issue #5300 for more details.

@tridge do you know when this will be available on other platforms? I am actually using a pocketbeagle and a 4 in 1 esc, a dys f20a, and would like to use to bl_heli_suite to allow me to reverse motor directions on this new esc I got as a replacement and update them. I did a pull after reading this only to realise that it only supports chibios currently. Not sure when beagle based/linux based boards will have this feature.

Was about to close this but saw last comment. @mirkix might be able to comment re beaglebone builds.

I think this issue is complete in master at least for Copter. maybe we can close this issue?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

rscarawa picture rscarawa  Â·  9Comments

JonathanPlasse picture JonathanPlasse  Â·  9Comments

Saijin-Naib picture Saijin-Naib  Â·  4Comments

Hyacinthchou picture Hyacinthchou  Â·  4Comments

Naterater picture Naterater  Â·  3Comments