DShot ESC
DShot is an alternative ESC protocol that has several advantages over PWM or OneShot:
- 지연 시간 감소
- 체크섬을 통해 안정성이 향상되었습니다.
- 프로토콜이 디지털 인코딩을 사용하므로, ESC 보정이 필요하지 않습니다.
- 텔레메트리 피드백은 일부 ESC에서 사용 가능합니다.
- 필요시 명령어로 모터 회전 방향을 병경할 수 있습니다 (물리적으로 와이어를 이동/재 납땜하는 대신).
- 다른 유용한 명령어들이 지원됩니다.
이 항목에서는 DShot ESC 연결과 설정 방법을 설명합니다.
Wiring/Connections
DShot ESC are wired the same way as PWM ESCs. The only difference is that they can only be connected to the FMU, and usually only to some subset of pins.
INFO
You may want to check the actuator configuration screen to see what pins are available for DShot on your controller before wiring up!
Pixhawk controllers with both an FMU and an IO board usually label them as AUX
(FMU) and MAIN
(IO), respectively. These match the PWM AUX
and PWM MAIN
output tabs on the actuator configuration screen. For these controllers connect the DShot ESC to the AUX
port.
Controllers that don't have an IO board usually label the (single) output port as MAIN
, and this is where you will connect your DShot ESC. If the controller without IO has its own firmware, the actuator assignment will be to the matching PWM MAIN
outputs. However if the same firmware is used for hardware with/without the IO board, such as for the Pixhawk 4 and Pixhawk 4 Mini, then actuator assignment tab used is the same in both cases: PWM AUX
(i.e. not matching the port label MAIN
in the "mini" case).
설정
WARNING
Remove propellers before changing ESC configuration parameters!
Enable DShot for your required outputs in the Actuator Configuration.
DShot comes with different speed options: DShot150, DShot300, and DShot600 where the number indicates the speed in kilo-bits/second. You should set the parameter to the highest speed supported by your ESC (according to its datasheet).
그런 다음 배터리를 연결하고 기체의 시동을 켭니다. ESC가 초기화되고 모터가 올바른 방향으로 회전하여야 합니다.
- If the motors do not spin in the correct direction (for the selected airframe) you can reverse them in the UI using the Set Spin Direction option (this option appears after you select DShot and assign motors). You can also reverse motors by sending an ESC Command.
ESC Commands
Commands can be sent to the ESC via the MAVLink shell. See here for a full reference of the supported commands.
가장 중요한 것은 다음과 같습니다.
Make a motor connected to to FMU output pin 1 beep (helps with identifying motors)
shdshot beep1 -m 1
Retrieve ESC information (requires telemetry, see below):
shnsh> dshot esc_info -m 2 INFO [dshot] ESC Type: #TEKKO32_4in1# INFO [dshot] MCU Serial Number: xxxxxx-xxxxxx-xxxxxx-xxxxxx INFO [dshot] Firmware version: 32.60 INFO [dshot] Rotation Direction: normal INFO [dshot] 3D Mode: off INFO [dshot] Low voltage Limit: off INFO [dshot] Current Limit: off INFO [dshot] LED 0: unsupported INFO [dshot] LED 1: unsupported INFO [dshot] LED 2: unsupported INFO [dshot] LED 3: unsupported
Permanently set the spin direction of a motor connected to FMU output pin 1 (while motors are not spinning):
Set spin direction to
reversed
:shdshot reverse -m 1 dshot save -m 1
Retrieving ESC information will then show:
shRotation Direction: reversed
Set spin direction to
normal
:shdshot normal -m 1 dshot save -m 1
Retrieving ESC information will then show:
shRotation Direction: normal
:::note
- The commands will have no effect if the motors are spinning, or if the ESC is already set to the corresponding direction.
- The ESC will revert to its last saved direction (normal or reversed) on reboot if
save
is not called after changing the direction.
:::
ESC Telemetry
Some ESCs are capable of sending telemetry back to the flight controller through a UART RX port. 이러한 DShot ESC에는 추가 텔레메트리 와이어가 있습니다.
The provided telemetry includes:
- Temperature
- 전압
- Current
- Accumulated current consumption
- RPM 값
이 기능을 활성화하려면(지원 ESC에서) :
- 모든 ESC의 모든 원격 측정 와이어를 함께 연결한 다음, 사용하지 않는 비행 콘트롤러 직렬 포트의 RX핀 중 하나에 연결합니다.
- Enable telemetry on that serial port using DSHOT_TEL_CFG.
재부팅 후 다음을 사용하여 텔레메트리 작동 여부를 확인할 수 있습니다 (배터리가 연결되어 있는 지 확인).
sh
dshot esc_info -m 1
TIP
You may have to configure MOT_POLE_COUNT to get the correct RPM values.
TIP
Not all DSHOT-capable ESCs support [esc_info]
(e.g. APD 80F3x), even when telemetry is supported and enabled. 결과 오류는 다음과 같습니다.
sh
ERROR [dshot] No data received. If telemetry is setup correctly, try again.
세부 사항은 제조업체 문서를 확인하십시오.
Bidirectional DShot (Telemetry)
PX4 v1.16Bidirectional DShot is a protocol that can provide telemetry including: high rate ESC RPM data, voltage, current, and temperature with a single wire.
The PX4 implementation currently enables only ESC RPM (eRPM) data collection from each ESC at high frequencies. This telemetry significantly improves the performance of Dynamic Notch Filters and enables more precise vehicle tuning.
INFO
The ESC Telemetry described above is currently still necessary if you want voltage, current, or temperature information. It's setup and use is independent of bidirectional DShot.
하드웨어 설정
The ESC must be connected to FMU outputs only. These will be labeled MAIN
on flight controllers that only have one PWM bus, and AUX
on controllers that have both MAIN
and AUX
ports (i.e. FCs that have an IO board).
WARNING
Limited hardware support This feature is only supported on flight controllers with the following processors:
- STM32H7: First four FMU outputs
- Must be connected to the first 4 FMU outputs, and these outputs must also be mapped to the same timer.
- KakuteH7 is not supported because the outputs are not mapped to the same timer.
- i.MXRT (V6X-RT & Tropic): 8 FMU outputs.
No other boards are supported.
Configuration
To enable bidirectional DShot, set the DSHOT_BIDIR_EN parameter.
The system calculates actual motor RPM from the received eRPM data using the MOT_POLE_COUNT parameter. This parameter must be set correctly for accurate RPM reporting.