Street Gold — Reverse Engineering a Scrapped Motor Controller
I've wanted to build an electric drift trike for a while. Not a kit build — a Colin Furze style machine made from reclaimed parts. The kind of thing where the build is half the point.
I already had the motor. A BLDC MY1025 — 48V, 1600W, 4000rpm. Sitting on the bench waiting for a controller.
Then I found one on the street.
The Find
No labels, no casing, no wires telling you what goes where. Just a bare blue PCB on an aluminium heatsink with a white connector harness dangling off the side. Stripped from a dead scooter or something similar, dumped with the recycling.
That's the kind of thing I pick up.
Reading The Board
The label was gone, but the PCB silkscreen still had clues. On the back:
- BT12-2.1 — board revision, bottom-left corner
- ZX 9999 — batch or model number
- P+ — battery positive terminal
- 220uF/100V and 220uF/25V — capacitor values silkscreened at their locations
- Heavy solder pads running the full length of one edge — the MOSFET mounting points
The wire harness colour coding follows the standard Chinese e-bike pattern. Thick wires for power and motor phases, thin wires for signal — Hall sensors, throttle, brake cutoff, speed sensor.
The MOSFETs
Under the loupe, the row of power transistors along the heatsink told the real story. ST logo — STMicroelectronics. These aren't generic parts, they're from a reputable fab.
I counted them. Twelve. Four per phase in a three-phase bridge.
In a BLDC motor controller, each motor phase needs two switches — high-side and low-side — to push current through the windings in both directions. A basic controller runs one MOSFET per switch position: six total. Budget controllers that need more current run two per position: twelve total, paralleled for capacity.
If these are in the STP28N60 family — 600V, 22A per device — then four in parallel per phase gives roughly 88A peak per phase. That puts this controller comfortably in the 1500–2000W class. This didn't come off someone's commuter e-bike. This is scooter or light electric motorcycle territory.
The specs confirmed it later — this matches the Kunray KRBC-12MOS class: 48V, 30A continuous, 1500–1600W. Almost exactly the rating of the MY1025 motor already on the bench. They were probably from the same type of vehicle.
The Brain
The MCU was the real prize. QFP-48 package, centre of the board, every trace on the PCB radiating out from it like a nervous system.
Under the loupe:
- SinoWealth logo
- SH79F161D
- Production lot codes beneath
The SH79F161 is an enhanced 8051-architecture microcontroller, purpose-built for motor control:
- 8-bit core running up to 48MHz
- 64KB flash
- Six-channel complementary PWM — specifically designed for driving three-phase MOSFET bridges
- 10-bit ADC for reading throttle position, current sensors, and temperature
- UART for programming
And there they were, right next to the MCU — programming pins. Pads broken out for UART in-system programming. A USB-to-UART adapter and a few jumper wires is all it takes to read the flash, dump the firmware, or write new code.
This isn't a sealed black box. It's a programmable motor control platform that someone threw away.
What The Wire Harness Tells Us
Standard Chinese BLDC controller loom:
| Wire | Function | |------|----------| | Thick red | Battery positive | | Thick black | Battery negative | | Thick blue/green/yellow | Motor phases A, B, C | | Thin coloured set | Hall sensors (5V, GND, H1, H2, H3) | | Remaining thin wires | Throttle, brake, speed sensor, lights |
The exact pinout needs confirming with a multimeter before anything gets powered up. Trace each wire back to its PCB pad and cross-reference with the silkscreen. The Hall sensor wires will have continuity to the MCU's input pins. The throttle will trace to an ADC input. The phase wires go straight to the MOSFET drain pads.
The Full Powertrain
Here's where it gets good. I didn't just find a controller — I now have a matched set:
| Component | Spec | Source | |-----------|------|--------| | Motor | BLDC MY1025, 48V, 1600W, 4000rpm | Already had it | | Controller | BT12-2.1, 12× ST MOSFETs, 30A, 1500W | Street find | | Battery | 13S 18A, 48V nominal, BMS + XT60 | Needs cell rebuild |
The motor is too wide for a pushbike frame and 4000rpm needs gearing down for wheel speed — but on a drift trike with a rear axle mount and a simple chain reduction, it's exactly right. The controller's 30A continuous is just under the motor's 33A full-load draw — a built-in current limit that keeps things from getting too exciting before the chassis is proven.
The battery pack needs work — failed cells from an old e-bike — but I've got spare cells to rebuild it. Once that's done, it's XT60 to the controller, three phase wires to the motor, a thumb throttle, and a chain to the rear axle.
Total cost of the powertrain: the price of replacement cells.
The Plan
This isn't a someday project. The parts exist, they match, and none of them need machining or custom fabrication to test.
- Rebuild the battery — find the dead cells, swap them, rebalance the pack
- Map the harness — trace every wire to its PCB pad, build the complete pinout
- Bench test — 12V current-limited first, then full voltage with the motor connected
- Source a frame — donor trike, or weld one from scrap steel and a BMX front end
- Gearing — sprocket ratio from motor shaft to rear axle, chain drive
- Build it
The drift trike has been an idea for a while. Finding a matched controller on the street is the push to actually start.
What I Learned
-
Count the MOSFETs. Six is standard. Twelve means they've paralleled for current — and you're looking at a controller rated for far more power than a basic e-bike.
-
Read the board revision, not the label. Labels peel off. BT12-2.1 and ZX 9999 are searchable. The silkscreened component values tell you voltage class without powering anything up.
-
ST MOSFETs on a Chinese controller is a good sign. Plenty of controllers use unmarked or counterfeit FETs. Genuine ST parts mean the manufacturer wasn't cutting corners on the power stage.
-
Look for programming pins. The difference between a disposable controller and a development platform is whether you can flash it. UART ISP pads next to the MCU mean this board was designed to be reprogrammed — probably for factory calibration across different motor configurations.
-
The street is a parts bin. E-scooters get ridden hard, break, and get stripped. The electronics often survive long after the mechanical parts are destroyed. A controller with no label is still a controller — and sometimes it's the missing piece.
Found on the street. Identified at the bench with a loupe and Claude Code.