DIY Hardware Mod

Giving a Ninebot ES2
a new life

Repurposing the external battery pack as the primary power source — no dead cells, no wasted scooter.

ES2 with external battery mod compared to E1 with internal battery

The Story

A friend gifted me an ES2 scooter that had stopped working and was about to be thrown away. The history was unknown, but most components looked fine. The scooter wasn't charging and was displaying error codes 19 and 21.

After testing the battery, motor controller, display, motor, and sensors, it turned out that the external battery was fully functional but the internal battery was completely dead — no diagnostic LED, no charge held, four damaged cells.

Without spare cells or a spot welder, I couldn't rebuild the main pack. So the question became: can the external battery run the scooter on its own?

Spoiler: yes — and it works great. The mod took an afternoon and the scooter has been riding fine since.

🔍 Key Findings

Examining the motor control board revealed a 2 + 4 wire setup — two power wires and four control wires per battery slot. Critically, the internal and external battery connectors share a common (−) negative wire and the control lines, leaving only three truly distinct wires between them:

Using detailed MCU pin-out references and some trial and error, I figured out how to reroute the external battery's wires to the internal battery position and disable the external battery presence detection.

🔧 Mod Steps

1

Identify the bypass points

On the underside of the motor control board, locate the solder pads where the internal and external battery power and communication lines meet. These are the points you'll bridge to redirect the external battery's signal.

Bypass connection points on the motor controller board
2

Remove the RX & TX resistors

The external battery slot has dedicated RX and TX resistors that enable presence detection. Removing these two small SMD resistors tells the controller the external battery slot is empty, preventing conflicts with the rerouted signals.

RX and TX resistors before removal RX and TX resistors removed
3

Remove the sense resistor

A separate sense resistor handles external battery detection. Remove it so the controller stops expecting an external battery on its original connector.

Sense resistor before removal Sense resistor removed
4

Add the bypass wires

Solder short jumper wires to bridge the external battery's (+) power, RX, and TX pads to the corresponding internal battery pads. The shared (−) and control lines need no changes.

Bypass wires soldered in place Bypass wires close-up

🔌 Connector Fix

After a successful test ride, error code 21 came back. The culprit was a two-part connector issue: the internal connector on the motor controller needed a slight physical adjustment, and the female connector on the external battery had been damaged by an old impact — probably the reason the scooter was discarded in the first place.

The fix required carefully re-engineering the female connector so it made solid contact. Once done, error 21 disappeared and the scooter has been reliable since.

Before
Damaged external battery connector

Damaged female connector — bent pins causing intermittent contact

After
Fixed connector outside view

Re-engineered connector — solid contact, no more error 21

Before
Motor controller connector before adjustment

Internal connector on the motor controller, before minor adjustment

After
Motor controller connector after adjustment

Adjusted to ensure a positive seat for the external battery plug

⚠️ Safety Disclaimer

This guide documents a personal project. I cannot be held responsible for any damage or injury resulting from attempting this modification. Working with lithium-ion batteries, soldering irons, and electrical circuits carries real risk. Please read and follow lithium battery safety guidelines before starting, and work in a well-ventilated area away from flammable materials.

If this guide saved your scooter, feel free to say thanks in the most practical way:

☕ Buy me a coffee