Modifying the Turnigy 80-100 Brushless Outrunner – Part 3

Continuing on: Modifying the Turnigy 80-100 Brushless Outrunner – Part 2

As I’ve written before I had problems getting the Turnigy motor to run in sensored mode using the modified cheap-o eBay controller. Just to se if It’s the controller that is the problem I’ve tried the motor with my e-bike controller.

SUCCESS!

It works perfect! Turns slow and have lots of starting torque. I didn’t try more than 15%-20% throttle and the battery was empty in my current meter so I could’t measure the current. I will try full throttle and measure the current as soon as I’ve got a new battery.

The motor looks much neater with the internal sensors than the external I think I’ll paint it black to match the black moped when I’ve epoxied the stator and not going to take it apart again.

Turnigy 80-100 with internal sensors
The motor looks much better with the sensors mounted internally

Compared to the externally mounted sensors

Sensors mounted in bracket
Sensors mounted in bracket

Modifying the Turnigy 80-100 Brushless Outrunner – Part 2

Continuing on: Modifying the Turnigy 80-100 Brushless Outrunner – Part 1

This is a picture of the rewound stator. As described un the previous post the stator is now wound for ~90 rpm/V using double 1.5 mm copper wire. To hold the windings in place I use some dabs of low temperature heat glue. This will most certainly melt if I would put 3 kW of power through the motor, but I will replace the heat glue with high-temp epoxy when I know that everything works.

Rewound stator
The stator has been rewound with double strands of 1.5 mm copper . The heat glue is just to hold the windings in place while testing. Before using the motor under heavy load, the heat glue will be replaced by epoxy.

The motor is wound as an Distributed LRK (DLRK) and terminated in Y-mode. Using the notation from the picture below, S1, S2 and S3 are connected to the motor controller and E1, E2 and E3 are soldered together inside the motor.

DLRK
The DLRK winding scheme. I've connected E1, E2 and E3 together and use S1, S2 and S3 as phase wires for a Y-termination. The sensors are mounted between 1 & 2, 5 & 6 and 9 & 10.

In the previous post I used ATS177 sensord mounted in a bracket outside the motor. This didn’t work very well with the modified controller. This itme I will try SS441A hall sensors, which are more expensive but thats the sensor that is usually recommended on the Endless Sphere Forum. I will also try to mount the sensors inside the motor which I hope will  be more robust and better looking. The sensors are mounted between slot 1 & 2, 5 & 6 and 9 & 10. Which gives them 120° spacing. To hold them in place before applying epoxy I use the same low-temp heat glue and a little kapton tape.

Sensor in stator slot
The sensors is mounted between two teeth of the same phase on the motor, all three sensors are 120° apart. To hold them in place I applied a small dab of hot glue and some kapton tape (the brownish tape in the image)

When I tried this setup with the modified controller it still didn’t run in sensored mode which leads me to suspect that there may be something wrong with this controller. I didn’t have time to do any thorough investigations why but my next step will be to inspect the sensor signals on the oscilloscope and try the motor on my other controller which doesn’t run at all without sensors.

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

Replace phase wires on Nine Continent 2809 hub motor

The original phase wires (wires between the motor and controller) on my E-bike are way to thin for the currents they are handling. When I got the motor was equipped with 2 m long 1,5 mm² cables. In low-speed-high-torque situations for example steep hills or starts from a standstill the currents in the phase cable can be several times the battery current. My controller limits the battery current to 27 A but the phase current could sometimes approach 100 A. Doing some calculations with the resistivity ρ=1.68•10-8 Ωm giving the original cables a resistance of

[latex]
\frac{1.68\cdot 10^{-8}}{1.5\cdot 10^{-6}} = 0.0112 \: \Omega/m
[/latex]

Judging by the color I’m not really sure that the original cables are made of copper. They could just as well be made of some other metal which would result in even higher resistance. With the 2 m cables the current path to/from the motor is 4 m and the resistance (excluding the motor resistance) is about

[latex]
0.0112 \cdot 4 = 0.0448 \: \Omega
[/latex]

This may seem pretty low but when constantly running 100 A through this cable the voltage drop on the cables will be ~4,5 V and the losses will be about 450W. This would of course instantly cook the cables and luckily enough the current to the motor is not constant and this current levels will only appear for short periods of time at very low speeds.

Anyways, I decided to replace these cables for the thickest I could fit into the axle where the cables are fed into the motor, as well as shortening these cables as much as possible. What I’ve read is that 12 AWG cables (3.31 mm²) is the thickest you could get through the axle without stripping the insulation and adding something thinner. The original cables have a PTFE insulation which I think is a good idea since PTFE cables generally have thin insulation and is very resistant to heat and mechanical wear. I ordered a couple of meters of 12 AWG PTFE cable from Apex Jr which was tho only place I could find that sold this dimension of wires online in small quantities. This cables are definitely made of tin plated copper which can be seen on the cut surfaces.

Comparison of original and new phase wires
Comparison of original and new phase wires

Doing the same calculations with the new shorter and thicker cables

[latex]
\frac{1.68 \cdot 10^{-8}}{3.31 \cdot 10^{-6}} \cdot 1 = 0.005 \: \Omega
[/latex]

This will result in a voltage drop of 0.5 V and 50 W losses at 100A which is much more manageable. I guess this will give me some additional efficiency but its probably unnecessary with the current performance of my controller. Later this summer there will probably be a post about re-programming current limits and eventually upgrading the MOSFETs of my controller.

Taking the motor apart was easy, I first removed the side cover on the cable-side by removing the nine hex screws and then used a knife to cut the glue and pry the cover off. Before I did this I made a mark on both the cover and the hub so I can put it back exactly the same way. I’m not sure what tolerances are used when manufacturing these but I don’t want to risk a wobbly wheel.

Inside the 9C 2807
This is what the motor looked like when one of the covers was removed.

Getting the wires through the axle was hard work and took me more than an hour, the method that worked for me was to put a thin wire through and the used it to pull through the phase and hall wires all at once. It helped a lot to grease the wires with soap to get them through. I kept the original hall sensor wires.

Wires through the axle
Wires through the axle

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.

Components
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

 

Controller
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

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

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.

[latex]
\frac{120^\circ}{\frac{14}{2}} = 17.14^\circ
[/latex]

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
Servos
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
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.

Battery
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.

Front
Front
Back
Back

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.

Output voltage adjustment on 240W Kingpower charger

Kingpower 240 W charger
Kingpower Charger

I week ago i bought a bulk charger for my E-Bike, the idea is to use this to charge the battery fast and then once a week or so use a slower balancing charger to assure that the cells are in balance. I bought the charger from www.bmsbattery.com and they set it up for your requirements.

ALLOY SHELL 240W LIFEPO4/LI-ION/LEAD ACID BATTERY EBIKE CHARGER

This is a pretty common china made charger sold at various places under different names. I have seen names link Ping-charger and King Pan charger as well as Kingpower.

The charger uses a CC/CV (Constant Current/Constant Voltage) charging algorithm and i requested the charger to have the current set to 4 A and the voltage 49V with an Anderson SB50 connector for the battery and an European wall outlet contact. They got the current and the high voltage connector right but the voltage were set to 48.8 V and the battery connector was an Andersson Power Pole instead. I had a spare SB50 connector so that one was easy to fix

48.8 V for a 12 cell battery will result in 4.07 V per cell. Since this charger doesn´t monitor each cell independently a safety margin is required but that is a bit to much. I was aiming at somewhere between 4,10 V and 4,15 V per cell. I needed to set the voltage to somewhere above 49 V.

Four screws on the sides held the lid on and after exposing the PCB i was faced with 3 potentiometers.

Charger voltage adjustment
Three potentiometers where the voltage setting is identified.

I would have guessed that there should be one for voltage and one for current. Two of the potentiometers were located next to the current shunt so I guessed that they were for setting the current. Maybe one is for coarse and one for fine adjustment, if anyone knows please leave a comment. The third potentiometer were located below the output fuse holder and that one was my first guess for output voltage. With the charger powered up and a voltmeter connected to the output I tried the last potentiometer and I was right. I adjusted output voltage to 49,5 V resulting in 4,125 V per cell.

Be extremely careful while touching the insides of the powered up charger with a metal screwdriver!!!

Some catching up to do

No posts for a couple of days since I’ve been busy with other things. As you may have noticed, to this point, I have only written about some old projects I’ve done in the past. There is some catching up to do but I will mix old projects with new stuff until all my old projects are well documented here (at least the interesting ones).

Here are a list of projects I will try to write all little about in the near future.

  • One more Depron RC aircraft. (SAAB J-35 Draken)
  • More about my quadrocopter
  • At least two electric bikes, one MTB and one Puch Maxi Moped conversion
  • Electronics for electric bikes, controller and motor modifications, BMU, DC/DC converter, LED-lights…
  • Mechanics for electric bikes, motor mount, battery box…
  • Maybe some pure programming projects for either Android, Windows or the web

Quadrocopter controller

Since my first control theory class at the university I’ve been thinking about building a quadrocopter. There are several “off the shelf” kits you can buy that handles stabilization of the quad, KKMulticopter being the most popular one. As usual I did not want to use anything someone else made so I started building my own controller. This post will focus on the electronics of this controller but there will be more posts later on about the controller software and the mechanic construction of the quad.

Starting by defining the requirements on the controller

  • 4 PWM inputs from the radio receiver
  • 4 PWM outputs to the ESC
  • Power supply from one ESC
  • Processor capable of handling floating point Kalman filter
  • 3-axis Accelerometer & Gyro sensors (digital)
  • Capable of flashing several LED
  • Capable of measuring battery voltage

The ESC (Electronic Speed Controller) is a controller for running 3-phase BLDC (BrushLess Direct Current) motors. It takes a standard RC radio PWM pulse as input and outputs a synchronous 3-phase trapezoidal voltage to the motor. Most ESC of the size used in this project includes a 5 V 2-3 A linear voltage regulator to power the receiver from the main battery. This power will be used to power the controller as well through a 3.3 V LDO regulator.

The three axis accelerometer and two axis of the gyro are needed to estimate the pitch and roll of the quadrocopter using a Kalman filter. The third axis of the gyro is used to implement a simple heading hold control loop.

Let’s just say that I’m more of a software, than electronics, guy. Electronics is really fun and interesting but I’m no professional. If someone sees any errors or strange things I’ve done in this design, please tell me and let me learn from this.

If i start with the processor, I have previously used the Microchip dsPIC line of processors and like them very much. They are easy to work with and the student version of the C30 compiler works fine for my needs. I had some dsPIC33FJ32MC204 laying around at home from an old projects and these have a motor control PWM module with 4 outputs and 4 input capture modules capable of reading the signal from the RC receiver. A simulation of the Kalman filter code I’ve written told me that performance wasn’t an issue either.

I used the Free Version of Eagle Layout Editor to draw up a schematic

Schematic
Schematic

And create a PCB layout from this schematic. The layout was adapted to a 50 mm x 50 mm pcb since I found the extremely cheap PCB manufacturer ITead Studio which could make 50 mm x 50 mm PCBs for less than $10. The layout used two layers and looked like this.

Top Layer
Top Layer
Bottom Layer
Bottom Layer

The sensors are from Sparkfun and mounted on breakout boards, since this is my first PCB order I played it safe and didn’t want to solder the extremely small packages of the sensors.

ADXL345 on breakout board
ADXL345 on breakout board
ITG3200 on breakout board
ITG3200 on breakout board

ITead Studios is based somewhere in China and it took several weeks to get the PCBs but when they arrived the all seemed to be of good quality

Quad PCB from ITead Studios
Quad PCB from ITead Studios

I have a couple of these boards left, contact me if you want one.

I used a toothpick to apply solder paste from dealextreme to the PCB, placed the components and heated with an ordinary soldering iron. Quite time consuming but I’m pretty sure that the end result was better than if I would have used ordinary solder. Not the prettiest soldering job but it was my first using this technique.

Quad PCB Top
Quad PCB Top
Quad PCB Bottom
Quad PCB Bottom

Now the “only” thing left to do is build the mechanical part of the quadrocopter and create the software. But I save that for another post…