Introduction: Kugoo S1 All-wheel Drive (two Motors)

The plan was to mount motor also for the rear wheel to climb the uphill better with my 90kg.

Step 1: Communication Interface Hardware

I have ordered a new motor controller and display module. We have investigated the interface between them.

  • Black - Ground
  • Red - +36V supply voltage
  • Blue - +36V switched supply voltage
  • Green - Communication from controller to display
  • White - Communication from display to controller

Step 2: Communication Interface Software

The communication looks UART with 9600 baudrate.

Step 3: Search Place for Rear Motor Controller

Looks there is enough place behind the battery pack for the rear motor controller.

Step 4: Single Direction Communication Check

If the communication is broken from controller to display, the roller works further properly, just the information from controller is missing on display. E.g. speed flashes. This means, if I connect the two controllers to the same display interface that way, that rear controller transmitted communication wire is not connected, the two motor should work well. Just the displayed current consumption value will not be correct.

Step 5: Decrease PCB Size

I grabbed a half millimeter from the edge of the rear engine control board. Now its size fits to smaller size house.

Step 6: Communication Protocol

Display -> Controller

8 bytes, every 50ms.

Example: 3E 04 01 00 00 00 00 05


  1. Header
  2. I do not know what is this, it didn't change during my tests.
  3. Speed level. 1:0x01, 2:0x02, 3:0x03
  4. Lights, 0x00:off, 0x80:on
  5. Acceleration demand 0x00 - 0x78, gradually increasable, but the active range is just between 25% and 50% of the hand arm.
  6. Deceleration demand 0x00 - 0xD1, brake light becomes on around 0x0A, at 0x10 the brake torque is already maximal, cannot controllable.
  7. I do not know what is this, it didn't change during my tests.
  8. Checksum

Power off command: 0xFF 0x00 0x00 after a frame.

Controller -> Display

11 bytes, every 500ms.

Example: 3C 07 01 00 00 0B B8 00 00 00 CB Bytes

  1. Header
  2. Battery voltage (most likely, I couldn't change it to check is it really that.)
  3. Same as 2. but the other byte
  4. Control lamps. 0x01: motor fault. 0x04: active brake.
  5. Current [A]
  6. Time between speed sensor pulses. 0kmh=0x0BB8, 5kmh=0x01CC, 10kmh=0X00D9, 20kmh=0x0070, 34kmh=0x0044
  7. Same as 6. but the other byte
  8. I do not know what is this, it didn't change during my tests.
  9. I do not know what is this, it didn't change during my tests.
  10. I do not know what is this, it didn't change during my tests.
  11. Checksum

This is the PHP script I have used to check the checksum algorithm: Download Kugoo S1 communication checksum checker script

Step 7: Build in the Motor Wheel

Step 8: Build in the Rear Controller Circuit

Step 9: The Workshop


Step 10: Test With Connected Wires

The communication must be connected. I have also connected the switched power line, maybe it is needed for proper power off procedure. I have removed the other wires from the controller board.

Step 11: Shake Resistence

Step 12: Build in the Controller

The controller can be mounted into its final place.

Step 13: Final Wire Connections

The final soldering and isolating of wires.

It is visible where the motor connector is.

Step 14: Done

Good luck to make the mod for yourself! :-)

My experiences after a few days usage:

  1. Uphill climbing ability is much better. I do not need to shove it anywhere.
  2. Brake torque is double so deceleration is also double. This is useful, but I must hold on the steering rod strongly to not fall forward. Unfortunately, since brake force cannot be controlled proportionally, I have to brake by fast on-off-on-off... brake control.
  3. The battery discharge is not more significantly. Usually on flat road not the current is limited but the speed. But to keep a speed needs a defined amount of power and it is independent from number of motor wheels. Just the double motor lost need some extra power. My estimation is that total distance is 90% compared to single motor.
  4. On uphill the current is double and this usually pulls down the battery voltage in short time. On display it looks battery discharges much faster, bit after the uphill, due to battery regenration the capacity is higher again on the display.