Skip to content

Hobbywing CAN Power Set ​

A Hobbywing CAN power set combines the motor and ESC into one unit and speaks DroneCAN: throttle and telemetry share the same three-wire cable, the controller tells the ESCs apart by node ID, and parameters are changed online.

X6 power set

▲ X6 power set

WARNING

You must buy the CAN version. Most models support CAN and PWM redundancy: the PWM and CAN interfaces can be connected at the same time as redundant motor control paths, and the ESC falls back to PWM when CAN communication fails.

NOTE

Power sets ship needing a baud rate and ID configuration before they work.

Hardware connection ​

Daisy chain: whole-airframe wiring ​

The ESCs chain in order on CAN1, with a 120 Ω terminator in the far end.

CAN bus wiring

▲ Daisy-chain wiring

Distribution board: one port per ESC ​

Each ESC gets its own port. Inside, the board is simply a parallel connection, electrically the same as a daisy chain. Unplugging one branch during troubleshooting does not affect the others.

CAN distribution board wiring

▲ Distribution-board wiring

Wiring for single-unit configuration ​

During configuration connect only one set: the thick red and black wires to power, the three thin wires CAN_H / CAN_L / GND to CAN1 on the controller.

Wiring a Hobbywing V6 SE power set to the X25

▲ Single-set wiring

Configuration steps ​

Configuration order

▲ Configuration order

1. Change the controller parameters ​

Connect the controller to the computer with a USB cable, open Mission Planner and connect. Go to Config / Tuning → Full Parameter List, change the values below, then click Write Params to save.

Set CAN_P1_BITRATE to 500000 first. After every ESC ID has been changed, set it back to 1000000.

ParameterValuePurpose
CAN_P1_DRIVER1Assigns driver 1 to the CAN1 port
CAN_D1_PROTOCOL1DroneCAN protocol
CAN_P1_BITRATE500000Link rate; match the factory value first
CAN_D1_UC_ESC_BM15Which outputs go over CAN; 1~4 on a quad
CAN_D1_UC_OPTION128Enables the Hobbywing command set
MOT_PWM_MIN / MOT_PWM_MAX1000 / 2000Aligns with the ESC input range
SERVOx_FUNCTION33 ~ 36Filled automatically when the frame type is selected; no assignment means no throttle is sent

Assigning CAN channels ​

CAN_D1_UC_ESC_BM is a bitmask where bit n corresponds to output n; tick it and that output goes out over CAN.

CAN_D1_UC_ESC_BM bitmask setting

▲ Channel bitmask

AirframeChannels on CANValue
Quad1 ~ 415
Hexa1 ~ 663
Octo1 ~ 8255
Only some of the channelsAdd the bits—

Channel numbers must match M1 ~ M8 on the controller; channel 1 is M1.

2. Change the CAN parameters of the power set ​

Factory values and target values:

ItemFactory valueTarget valueWhere to change
Baud rate (Baudrate)500 kbps1000000Baudrate in the config panel
Node ID (NodeID)11 ~ 8, matching the output channelNodeID in the config panel
Throttle ID (ThrottleID)11 ~ 8, matching the output channelThrottleID in the config panel
Report rate (Msg1Rate / Msg2Rate)Default50 / 10Config panel

The RPM report rate must be higher than the voltage and current rate, otherwise frames are dropped, so set Msg1Rate to 50 and Msg2Rate to 10.

3. Communication test ​

  1. Connect the CAN wires of all ESCs to CAN1 (or CAN2) on the controller.
  2. Confirm CAN_P1_BITRATE = 500000 and restart the controller.
  3. Power the ESCs; when the beeping stops, self-test has passed. Some Hobbywing ESCs need a PWM signal connected to pass self-test.
  4. Open Initial Setup → Mandatory Hardware → Motor Test in Mission Planner and click Test All Motors. If every motor turns, CAN communication works.

TIP

This step only checks wiring and power. If nothing turns, look at wire order, CAN_P1_DRIVER and whether the ESCs powered up properly — do not touch the IDs yet.

4. Change the IDs one at a time ​

Wiring: connect only the power set for motor 1 and leave the CAN signal wires of all other ESCs disconnected, so you cannot change the wrong unit.

  1. Download and install DroneCAN GUI (version 1.2.25 or later).
  2. Identify the MAVLink or SLCAN serial port of the controller.
  3. Open DroneCAN GUI and connect to that port.
  4. Click the √ button to the right of Set local node ID.
  5. Go to Panels → Hobbywing ESC Panel (Ctrl+Shift+7).
  6. Select this ESC in the top table and set Baudrate to 1000000.
  7. Set both ThrottleID and NodeID to this ESC's number (the servo / PWM output port number on the controller), clicking Set after each.
  8. Wait a few seconds; the values in the top table refresh automatically.
  9. Move to the next ESC and repeat the steps above.
DroneCAN GUI configuration flow

▲ ID change flow

How to choose the ESC number ​

The ESC number corresponds to the servo output port on the controller:

  • With default parameters SERVO1_FUNCTION = Motor1 and SERVO2_FUNCTION = Motor2, so on a quad the ESC numbers 1~4 are simply 1~4.
  • If SERVO2_FUNCTION has been set to Motor1, numbering them 1~4 in order is wrong — the number must follow the actual output port.
  • Example: with PWM signals on Servo9 ~ Servo12, the NodeID and ThrottleID of these four ESCs are 9 ~ 12.

Other settings ​

ItemValueNotes
Msg1Rate50Report rate for RPM
Msg2Rate10Report rate for voltage, current and temperature
DirectionCW / CCWMotor direction
Throttle_sourceCAN / PWMOn some ESCs you can use CAN only, PWM only, or both

Msg1Rate must be greater than Msg2Rate, otherwise RPM frames are dropped.

Matching IDs to motor positions ​

MotorThrottleIDNodeIDController output
Motor 111M1
Motor 222M2
Motor 333M3
Motor 444M4
Motor 555M5
Motor 666M6
Motor 777M7
Motor 888M8

WARNING

The numbering must match the physical positions one-to-one. If it is wrong you cannot tell on the bench and the controller raises no alarm, but the mixer is scrambled and the aircraft flips on takeoff.

5. Set the controller back to 1 Mbps ​

Once every ESC is at 1000000, set CAN_P1_BITRATE back to 1000000, restart, then open the config panel again. All ESCs should be listed this time; a missing one means two IDs collide.

6. Verify the motor setup ​

Wiring: all ESCs connected to CAN and powered, PWM signals not connected to the controller, ground station connected.

  1. Check that the ESC information shows up correctly on the status page.
  2. In the motor test page under optional hardware, check the direction and order of the motors.
  3. For setups driven by both PWM and CAN: unplug CAN and test PWM alone; then unplug PWM while the motor is spinning and check whether it stops or stutters, to confirm the redundancy works.

Telemetry is read on the status page:

ESC data on the ground station status page

▲ Telemetry data

ReadingWhat to check
esc1_rpmIn hover, motor RPM should be within 10% ~ 15% of each other
esc1_voltShould match the battery voltage; a big drop is usually thin wire or a poorly crimped connector
esc1_currAt the same throttle, the motors should read close to each other
esc1_tempRead it against ambient temperature; a steady climb means checking cooling and prop matching

These readings are recorded as CESC in the onboard log for review after the flight.

Using ESC voltage as battery voltage ​

When you do not have a suitable current sensor, you can use the voltage and current reported by the ESCs as battery data.

Wiring: connect the CAN wire of motor 1 to CAN1 on the controller.

ParameterValuePurpose
SERIAL8_PROTOCOL22SLCAN, a serial-to-CAN adapter
CAN_P1_DRIVER1First CAN driver
CAN_D1_PROTOCOL1DroneCAN
CAN_P1_BITRATE500000ESCs ship at 500k, so match it first; CAN devices at the same baud rate can share one port
CAN_D1_UC_OPTION128Tick HobbyWingESC
BATT_MONITOR9Battery monitor source set to ESC

FAQ ​

  1. Only one motor turns?
  • All ESCs still have ID 1 and none was changed individually
  1. None of them turn?
  • Check the rate first (500k / 1M); check that CAN_D1_UC_OPTION is 128; check that CAN_H and CAN_L are not swapped
  1. The ESC keeps beeping?
  • It is not receiving a valid throttle; check SERVOx_FUNCTION and CAN_D1_UC_ESC_BM
  1. They turn but there is no telemetry at all?
  • CAN_D1_UC_OPTION does not have HobbyWingESC ticked; or the unit is the PWM version
  1. Direction is reversed?
  • Check the direction marking on the motor and swap in a motor that matches the target direction. Or change Direction to CW or CCW in the config panel.
  1. One ESC is missing after the changes?
  • Two IDs collide; power them off one at a time and see which one disappears
  1. Values revert to factory after a restart?
  • Power was cut before the table refreshed after clicking Set; set it again and confirm the value stuck before powering off

Everything on one page ​

ParameterValueWhat happens without it
CAN_P1_DRIVER1No driver on the CAN1 port
CAN_D1_PROTOCOL1No DroneCAN on the bus
CAN_D1_UC_ESC_BM15Throttle does not go over CAN
CAN_D1_UC_OPTION128Motors turn but there is no telemetry
CAN_P1_BITRATE1000000Mismatch with the ESCs, nothing responds
SERVOx_FUNCTION33 ~ 36Nothing is sent at all
ESC Baudrate1000000Ships at 500k, change one ESC at a time
ESC NodeID / ThrottleID1 ~ 8All ship as 1, change one ESC at a time