Fried connector

Fried Connector
The contacts inside this Anderson SB50 connector vaporized the first time I connected it to the controller

When I connected the modified e-bike controller for the first time a little accident happened. The Anderson SB50 connectors I use for my bike are great since they are polar and you cannot connect the battery in reverse polarity. Of course you have to put the positive and negative terminal in on the right side of the connector housing first. I missed that with the result that i connected the controller in reverse.

Since the MOSFETs conduct from drain to source through the body diode this was practically short circuiting the battery and resulted in a big spark. It was a good thing that I had a 30 A fuse on the battery lead otherwise the connector would probably lock much worse than on the picture above. The controller survived as well, probably thanks to the fuse, otherwise i think $50 worth of MOSFETs would have released the magic smoke.

Increasing the power of cheap eBay BLDC-controller

After installing sensors in the Turnigy 80-100 motor I needed a high current sensored BLDC controller. Since I’ve decided to use a 12 S LiPo battery the maximum voltage of the newly charged battery is 50,4 V with a nominal voltage of 44,4 V. Most high power e-bike controllers are designed to operate on >72 V and are quite large.

When i find the time I will build my own controller but for now, I want to modify a small 48 V 350 W controller, that I bought for $25 from eBay, into something that is a lot more powerful. The key to increase power handling capability is to decrease the heat losses under high power. As a side effect, more of the energy in the battery will be used to move the bike and less to heat the controller.

the modification is done in a couple of steps described below.

Replace transistors

The controller originally contained six STP75NF75 MOSFET which can handle a voltage of 75 V and (according to the datasheet) 75 A. The typical resistance when turned on is 10 mΩ which is quite high. Realistically I think six of these is capable of handling ~15 A continuously with decent cooling. I’m not even sure if they are genuine and 48 V 350 W will be ~7 A  so the original controller isn’t really pushing them.

Close up shot of controller motherboard. You could see that I've replaced the MOSFETs with IRFB3006 and that a STM8 processor powers the controller. SOMETHING WENT TERRIBLY WRONG WITH THIS IMAGE! I WILL FIX THIS.

Instead i will use six IRFB3006 which can handle 60 V and up to 195 A (again, according to the datasheet). The silicon could actually handle up to 270 A but the wire bonds between the silicon and the case limits this to 195 A. The typical on-resistnance on these are 2 mΩ, five times lower than the original FETs! Another popular transistor to use when modding e-bike controllers is the IRFB4110 which is capable of handling 100 V but not as much current as the IRFB3006.

STP75NF75 Datasheet
IRFB3006 Datasheet


The controller

Beef up the PCB traces and wiring

The original high current PCB traces of the controller had some extra solder on them to increase the current capabilities. To increase this even further i added 3×1.5 mm copper wire to these traces. Compared to copper, solder is a pretty bad conductor so this will decrease losses and heating under high currents considerably.

Upgraded power traces
The PCB traces carrying high current are upgraded with 3 x 1.5 mm copper wire.

There was one problem with this, copper and PCB laminate have different Coefficients of Linear Thermal Expansion, a view from the side reveals that the board got a little curved when soldering. I hope this doesn’t break anything.

Curved PCB
The copper wires shrink when they cool down after soldering 🙁

The wimpy phase and battery wires on the original controller is replaced with 6 mm² wire instead to handle he increased current. And a lot of the special function wires on the controller are removed. I only need the throttle and brake inputs.

Modify the current shunt

When I ordered this controller I was pretty sure that it were based on the Infineon XC846 ship as most china-made e-bike controllers are. These controllers can have the current limit and many other properties changed in software by connecting your computer ti the controller. Instead this controller is based on a STM8 microcontroller, maybe this is programmable but I haven’t found any information on how.

Instead of programming I can increase the current limit by decreasing the resistance of the current shunt. The processor measures the voltage drop across a short bit of wire with a known resistance to determine how much current the motor uses. If I for example decrease the resistance of this wire to half, the current will be twice of what the processor thinks.

Current Shunt
The ordinary current shunt (the curved silver wire) are paralleled with a thicker and shorter copper wire to decrease resistance.

Today I recorded two videos running the motor. The first one is just running the motor in sensorless mode. I actually got it running once in sensored mode but as soon as I started adjusting the sensor angle the controller fell back into sensorless mode. The throttle in this video is a tired 10k trimpot hence the uneven throttle signal.

I also made a small load test just holding the motor. In this video the motor is run on the lowest speed possible in sensorless mode. The battery used in this clip had a voltage of 46 V. Since the currentmeter maxes out at 5,5 A the load power I created is somewhere around 250 W

Modifying the Turnigy 80-100 Brushless Outrunner – Part 1

Modified Turnigy 80-100 on testmount
Modified Turnigy 80-100 on testmount

The Turnigy 80-100 is a electric motor sold by Hobby King to replace gas engines in large RC aircrafts. To use this motor in my application two things have to be modified. Installing hall-sensors and re-winding the motor for lower speed. This motor is a BrushLess Direct Current (BLDC) outrunner. This means a couple of things:

  • The motor does not have brushes like an ordinary DC motor. Instead the commutation (switching the current direction the motor windings) is done electronically with high power semiconductors (most commonly MOSFETs)
  • It runs on DC power which is a little confusing since the motor actually is a 3-phase AC motor. But the motor+controller runs on DC.
  • Outrunner means that the motor shell is rotating while the center is static. The center of the motor contains the windings and stator core while the outer bell with permanent magnets are rotating.

Since the commutation is done electronically the motor controller must know when to switch direction of the current. This is done in one of two ways:

Sensored commutation:
The motor is fitted with 3 hall-sensors which sense changes in the magnetic field of the rotor

Sensorless commutation:
Since only 2 of 3 phases of the motor are energized the motor back-emf can be measured on the third terminal to determine rotor position.

This motor is intended to be used with a sensorless controller and has no hall-sensors. A sensorless controller need to spin the motor up to ~10% of maximum rpm in synchronous mode before the back-emf is large enough to measure. Below this speed the torque isn’t very high which works fine for a propeller drive but not on a moped where full torque is required from 0 rpm.

In general BLDC motors and controllers intended for RC toys are sensorless and use sensorless controllers while motors and controllers for E-bikes are sensored. There are exceptions from this but it’s good to know since a sensored controller will not work with a sensorless motor, the other way around could work but the low-speed performance will probably be bad and there is a risk of damaging the motor and/or controller.

To get good starting torque and be able to use an ordinary e-bike controller I mounted hall sensors on my motor. This process is well described in a thread on the Endless Sphere forum:

Adding hall sensors to outrunners

To summarize the +20 pages thread there are two ways of doing this

  • Internal sensors are mounted between the stator teeth at 120° spacing
  • External sensors are mounted on a bracket outside of the bell, this uses the magnetic flux leakage to sense the magnets on the other side of the bell.

Another problem with using the motor in it’s original configuration is the Kv value. This is the constant that determines the motor maximum speed based on the input voltage. For example a Kv value of 1000 rpm/V will result in a maximum speed of 12000 rpm with a 12 V battery. This value depend on several properties on the motor but you can say that it represents the coupling between the current and the magnets. More turns of wire around the stator and/or stronger magnets will reduce the Kv value. The Kv value is also dependent on if the motor is terminated in wye or delta. The same motor have a Kv that is sqrt(3) = ~1,73 times higher if it’s connected in delta than if it is connected in wye.

When I bought this motor it had a Kv of 180 rpm/V and I want it to be ~90 rpm/V. Each stator tooth had 6 turns of copper wire around and the motor where coupled in delta mode. By rewinding the motor with 7 turns on each stator pole and couple the motor in wye instead the resulting Kv is somewhere around

180 * \frac{6}{7} * \frac{1}{\sqrt{3}} = 89 rpm/V

This is not an exact calculation since it depends on flux density, magnetic saturation of the stator iron and so forth but it will giva a hint. As i calculated in a previous post, this is enough for ~60 km/h using the same 44.4 V battery as I use on my E-MTB.

There is a thread on Endless Sphere about rewinding this motor as well
Re-wind of a Turnigy 80/100
Rewinding a motor is a tough job but the original winding is done with many parallel thin wires and in a pretty sloppy way. Instead, I used two parallel strands of 1.5 mm copper and it ended up almost as sloppy as before. I seem to have misplaced the photo of the stator with windings before the re-wind but it looked very similar to the pictures in the first post of the thread above. This is how it looked when i were done.

[Will replace with photo next time i disassemble the motor]

When mounting the sensors I choose the method of mounting them externaly. I used a CAD program to draw this mounting bracket.

Drawing of sensor bracket
Drawing of sensor bracket

Mounting the sensors 17,14° apart instead of 120° works because the motor have 14 magnet poles.

\frac{120^\circ}{\frac{14}{2}} = 17.14^\circ

A nice guy on a The Swedish electronics forum helped me print two brackets on his 3D-printer and they turned out great!

Plastic sensor brackets printed on 3D Printer
Plastic sensor brackets printed on 3D Printer

With wires mounted on the sensors and the sensors temporarily glued in with heat glue (I’ll use epoxy when i know that it works).

Sensors mounted in bracket
Sensors mounted in bracket

In the pictures above the motor is mounted on a plate that i made to test this way of mounting the sensors. Just to get it running I used a Hobbyking SS Series 190-200A ESC after the rewind this controller had a tough time getting this motor running. Using a 3S LiPo battery it managed to get the motor into closed loop back-emf sensing mod about one time out of ten. With a 6S LiPo it worked perfect and had loads of power! The no-load current consumption was slightly over 1 A, which is great but mostly dependent on that I didn’t re-install the skirt bearing. This motor have been reported to have a no-load current of ~9 A with the skirt bearing and coupled in delta. I also measured the Kv constant to ~89 rpm/V exactly as calculated.

My next post on this project will be about my modified eBay cheapo e-bike controller and hopefully a video of the motor running in sensored mode.

Continue to: Modifying the Turnigy 80-100 Brushless Outrunner – Part 2

Sunday afternoon robot

I had nothing to do today so I copied hubbens creation from the Swedish electronics forum. It is a two wheeled radio controled vehicle based on just two servos.

For wheels I used two wheels from an old Lego Technics truck I got for christmas almost 20 years ago (The best christmas gift I’ve ever got BTW). The wheels were bolted to servo horns from two HXT900 servos.

Lego wheel
Lego Wheel
Servo Horn
Servo horn bolted on lego wheel
The servos are glued together and self adhesive velcro is glued to both sides

These servos are modified for continous rotation according to this guide.

Pretty simple:

  1. Open servo and remove the gears and potentiometer.
  2. Connect to your receiver and set your output to center. (or use another way to generate a 1.5 ms pulse every 20 ms)
  3. Adjust the potentiometer to the center until the motor stops and solder it so it can’t rotate any more.
  4. Remove the stop pins on the output gear with a sharp knife
  5. Sand the top of the potentiometer axis so the top gear spin easy on the axis.
  6. Re-assemble the servo

The servos are then glued back to back and some self adhesive velcro are mounted on both sides and the wheels are mounted.

The ideal would be to run both the receiver and the servos of a 2S LiPo but I only have 3S at home so I needed to use a Turnigy 8 V – 10 V 5A SBEC to power the servos and the receiver. Together with the DC/DC converter the über cheap Hobby King 2.4Ghz 6Ch receiver was mounted on the top of the servos.

Top of the vehicle, the Turnigy SBEC to the left and Hobbyking receiver to the right.

On the bottom I have a Turnigy 1000mAh 3S 20C Lipo which is a little to large for this project but it was the smallest one I had.

Turnigy 3S 1000 mAh LiPo

I used channel 1 and 2 and mixed them 100% with each other. Since the servos are mirrored they need to rotate in the same direction for a turn and in oposite directions to move forwards och backwards.

This is what it looked like when it was ready.


My next order from HobbyKing will include a smaller 2S battery. And maybe I’ll put together a small controller board for this to make it autonomous.

Electrifying a Puch Maxi

I while ago I bought a Turnigy 80-100 motor to put on my bike. For several reasons, mechanical, electrical and self-preservational, I ended up putting a more suitable E-Bike hub motor on my MTB and the large Turnigy motor has been lying on my unfinished-projects-shelf since I bought it. Recently my brother told me he has an old Puch Maxi moped, where the original petrol engine were broken, that would be the perfect candidate for this motor.

The motor is just a little bit larger than a soda can and capable of producing 7 kW of power for short periods of time. It will probably be more safe to mount it on a moped instead of a bike considered the moped is built to handle a lot more power than a bike.

In Sweden, there are two classes of legal moped, where this is classified as ‘moped class II’ limiting the motor power to 1 kW and maximum speed to 25 km/h. With this motor the moped will be very illegal but I will keep it off public roads. It would however be interesting to limit the power and speed electronically and try to get every permit needed to use it in traffic. Sadly I suspect that’s impossible due to all bureaucracy involved.

The moped has a chain drive with a 415 chain, hence I needed a chainwheel matching this chain and the motors 12 mm shaft. I found the Swedish company Kedjeteknik that was very helpful and helped me custom make a 10 tooth chainwheel for 415 (1/2″ x 3/16″) chain at a reasonable price. There is a 12 mm hole for the shaft with dual stop screws. I really hope this will manage the ~5 kW of power I want to get out of the motor.

I bought the 180 rpm/V wind of this motor meaning the maximum rpm would be 180 times the battery voltage. This is quite fast with only a single reduction, especially on a bike with 26″ wheels. On the moped with 17″ wheels and a rewind of the motor this will be perfect.

The rear sprocket of this moped is 43 tooth and the wheel diameter is 17″. As a battery i will use the same type as on the MTB, 12 cells of LiPo in series resulting in a battery voltage of 44.4 V. As a rule of thumb the final velocity will be about 80% of maximal velocity. With this information the expected top speed can be calculated.

Motor speed using 44.4 V battery and 180 rpm/V motor

180 * 44.4 * \frac{2\pi}{60} = 837 rad/s

wheel speed after 10:43 chain reduction

837 * \frac{10}{43} = 195 rad/s

80% of unloaded speed with 17″ wheels

195 * \frac{17 * 0.0254}{2} * 0.8 = 33.7 m/s = 121 km/h

Which is a little too fast, half of that speed would be enough. Since the equations above are linear one way of achieving this is to rewind the motor for 90 rpm/V instead of 180 rpm/V. This motor is wound with 6 turns per phase and terminated in delta. By increasing the number of turns to 7 and terminating the motor in Y instead the resulting kV will be ~90 rpm/V. (I think I’ll write a more in-depth article about brushless motors in the future describing why)
Last wekend my brother and I made a motor mount out of 5 mm aluminum that bolts on to the original motor mount of the moped. I only have a picture from a mobile camera right now but I will update this post with better pictures in the future.

Motor mount on Puch Maxi
Motor mount on Puch Maxi

Next post will be about the motor modifications, which are extensive…