The Plight of Melonscooter and Pushing the Limits of the Sensorless Jasontroller

Poor Melonscooter.

About 2 weeks ago, a major storm system rolled through Boston as they tend to do during fall. With my new anti-wet-pants device, I was fearless in flying through the rain with melonscooter. However, what I didn’t keep in mind was that the anti-wet-pants device only deflected water from going upwards. With that path blocked, there was no place for it to go… except over the top of the motor and straight into the rain gutter that is the back of the frame. You know, where one of the battery packs was. I didn’t think  much of it – after all, water evaporates, right?. What I didn’t realize was just how much water got into the frame this way.

Shortly afterwards, I noticed Melonscooter regularly flaking out and and losing power. The final straw came when, on a full charge, it couldn’t even make it down the long stretch of Vassar Street that is my daily “commute”. The power would start out fine, but get progressively weaker until the power system went into undervoltage shutdown. This only happened at voltages under 30 volts. So, I immediately figured that the batteries were very, very unhappy. It must have been declining progressively before, but I only really noticed it when the effective range got under a mile or so.

The first sign that something was wrong was when I pressed on the clear plastic wrapping of the \m/etalpaxXx and saw air bubbles moving around. Water had totally infiltrated the rubber foam padding. So, I tore all of that off, and…


AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

It’s like operating on a cancer patient only to discover more cancer. The packs have been through alot, but it looks like a week or two in contact with water finally did them in. Significant copper corrosion was visible and most of the cells had vented. The cells were so waterlogged that the blue ink stripe had run and bled through the paper. This pack was pretty much utterly trashed, with even the mighty Cell Log refusing to read it.

Melonscooter has 2 of these packs, left over from Fankart. The front battery was dirty, but otherwise had regular voltage levels on all cells.

Oops.

Shortly after the rain let up, I had actually added a “mud flap” in front of the rear wheel, under the stern deck, such that water was deflected back downwards and not onto the motor. Unfortunately by that time it was too late.

It was time to break out the box of nice things and start over. Melonscooter was built from found parts, and the batteries came from Fankart, with associated bullet connector incompatibility and a mix of Deans and everything. Starting from scratch was therefore a chance to clean up the electrical system significantly. I decided to build the new pack to the same capacity and voltage specs (12S4P), but make them mechanically one “brick” to save space in the frame.

Because the cells had leaked electrolyte and water had been sitting stagnant in the frame, the bottom was also covered in rust. I thoroughly cleaned it out with steel wool and various potentially carcinogenic cleaners, and gave the frame interior several layers of spray-on clear primer. This was when I discovered that the original black paint was just sprayed straight onto the metal – there was no sticking whatsoever, and I could blow huge chunks of paint off with a compressed air nozzle.

There was, however, one very important reason to consolidate the two batteries into one. When I did that, a Jasontroller fit perfectly into the leftover volume. I mean perfectly as in so close I had to make sure my wires exited the pack correctly. It’s like this was the application that Robot Jesus commanded me to use a Jasontroller for.

So I’m going to do exactly that. I had already modified this Jasontroller with IRFB3207 power FETs and shunted its current sense shunt to half its previous value, so part of my goal was to see how far I could push this thing in terms of wattage.

Okay, I know everyone has seen me make battery packs like this before. Sadly, even the biggest of my big heat shrink did not fit over 4 parallel cells. Not wanting to empty out two 3-liter bottles of disgusting cheap soda again, I elected to just Giant Kapton the pack with rubber foam padding.  The balance leads exit from the side of the battery, a lesson learned from LandSharkBearGrylls’ epic battery flameout. Here is the finished pack getting a first charge-balance.

Before I installed the Sensorless Jasontroller, I decided to give it a haircut. All the functions I really didn’t care about were desoldered or cut off, leaving only throttle, motor, and power.  This made for a much smaller bundle of wire to hide.

the jasontroller experiment

I had already dropped the shunt resistance of the controller from 4 milliohms to approximate 2 milliohms. The idea is to keep dropping it incrementally until I am satisfied or something detonates. First, though, I tested the controller as-is with the 2 milliohm shunt. If all goes right, I should see about 700 watts through the system, making a current draw at 40v of about 18 amps or so on the battery side, at full speed.

Full speed measurement is essential since these controllers limit average phase output current due to the arrangement of the shunt. Because of the properties of a buck converter, which all motor controllers are to some degree, phase current is multiplied at partial throttle – a 10A battery current at 25% throttle could mean 40 motor phase amps. Only at 100% PWM do the amps match. Incidentally, maximum “power” will occur at this point to if the load is sufficient – Melonscooter certainly does not pull 1000 watts just freely running on flat ground, so the max power point will still come at some point in the launch cycle.

The test took place on the small back street bordering MITERS, State Street, which is long enough to get up to full speed and still well-paved since this is only its second winter. It was also short enough that it forced me to slow down turn around at each end, which let me test how each level of hackery handles launching transients.

The instrumentation of choice is the Turnigy Power Meter, which keeps track of peak power, peak amps, minimum volts, running volts and amps, watt hours consumed, and all that nice stuff.

Result of test #1, 2.0 milliohms:

Hey, that’s like… double of 350!

I neglected to actually measure the temperature of the controller case, unfortunately, but nothing made unhappy noises or smelled bad. By the time I was able to open the controller up again, the FETs were cold.

Clearly it was time to turn it up (or…. down?). I added more solder globs to get the shunt resistance down to 1.5 milliohms, for an expected wattage of 930 or so.

While I neglected to take a picture of this run, the wattage attained was 895W, which is slightly lower than anticipated but likely within reason since my measurement resolution at such low ohms (with a crappy multimeter and power supply of dubious accuracy) is lacking.

I next tried the magic 1.0 milliohms (which is really more like 0.8 to 1.2 milliohms, I’m guessing). This should be a cool 4 times the power throughput of the stock controller. Beyond this, the theoretical power is going to rise asymptotically, so this was probably my last good data point:

A cool 1300 watts – close enough to 1400. I was definitely feeling some unhappiness during this run – the controller would some times cut out for a fraction of a second during the launch.

There was something else which concerned me enough after this run to address before continuing. After the first two, what was hot wasn’t the FETs, but the input capacitors. These things could see many amps of ripple current, especially if the battery input wires are long and skinny or cheap and Chinese. Or fucking both.

The stock buscaps on the Sensorless Jasontroller is two 470uF, 63 volt electrolytics, and they were hot. While they are rated to “105 degrees C”, hot capacitors is a sign that the ripple current is too high or beyond their rating. One way of reducing ripple current is to add more buscap.

I elected to use the cleared wire forest space to install 1000uF more capacitance in the form of a cap ripped from an old switching power supply. It could only fit laying down, so short and fat wire leads were used to connect it to the battery input terminal. I figure the resistance of this length of wire isn’t any worse than thin copper foil traces.

Here’s the fix. The cap itself is retained with a dab of Goop.

After this hack, I was fairly confident in moving forward with dropping the shunt to 0.5 milliohms – or thereabouts. I was really working on the edge of measurement accuracy here, so judging by the result I either didn’t come close to 0.5 milliohms or something else has become the limiting factor:

Still, holy crap. 1800 watts through this thing is about as much as I’m comfortable with for now. After all, I *did* want Melonscooter to work. The good news is that the additional input capacitance has eliminated the stuttering on launch I experienced before the addition, and acceleration is now smooth and constant from startup.

It was decided to lock in this shunt value (which looks be about 0.75 millohms, since given constant battery voltage, 1800w is about 5.25 times 350 watts, so the shunt should be about 4/5.25 milliohms.) An unknown amount of power is probably being lost to wiring resistance and trace resistance at this point, too, since the controller’s long power traces are probably contributing several mohms to the thing.

So there you have it. How long will the Jasontroller last at these power levels? My guess is probably until everything melts again in the spring. The ambient air temperature right now is around 40 degrees F (5 C), which is great if you’re a motor controller being overdriven 5 times, and will only get colder for several months. Once the ambient temps get up to, say, Singapore levels during summer, I expect to encounter thermal death. Melonscooter is very open-air (partially a curse, given the weather around here), so the controller gets plenty of air-over cooling, especially at top speed. I might have to add forced air cooling if I am to try and sustain these power levels.

Because the shunt is now like 50% solder, it probably has a nontrivial thermal resistivity coefficient. Ideally, I’d open it up and replace it with a known 0.75 milliohm shunt resistor. As the whole board heats up, the blob of solder’s resistivity will increase. To a degree, this probably a good thing.

Meanwhile, Melonscooter has successfully made the run back to west campus, full throttle all the way down Vassar Street. Can it do it again!?

Beyond Unboxing: Shady Chinese Sensorless e-Bike Controller

In this episode of Beyond Unboxing, I study and mess with something I’ve wanted for a very long time: a sensorless brushless motor controller that isn’t horrible. I didn’t even know if they could exist – after all, I’ve only associated sensorless with horrible screeching, cogging, and stuttering at any speed that wasn’t “fast”. I’ve always assumed that you just cannot get an EV to start from standstill using sensorless commutation – sensors were absolutely required for low speed performance of any kind.

I am glad to say that I am wrong – very, very wrong, and the little bits I have learned about sensorless PM motor control in the past few days, coupled with the discovery that sensors are in fact terrible things, has made me a convert to sensorless control. But only if the controller is designed for an inertial load – something I will explain the distinction of, and something which airplane controllers are totally not.

The Shady Chinese Sensorless e-Bike Controller (let’s call it Sensorless Jasontroller for now) actually has a reasonably long history behind it. Its sensored cousin, the Shady Chinese e-Bike Controller (or Jasontroller), is commonly available on eBay directly shipped from China in what I can assume is straight off the assembly room. The controllers come in a few general types and board layouts, but the architecture is almost always the same.  Entire communities and bibles (example) exist around the modification and hacking of these controllers because they are very inexpensive, use common parts, and were designed to support multiple voltages and current levels on the board, with component selection determining what controller you end up getting. They form a staple of the Endless Sphere EV community, and a few members of that community have made businesses out of importing, selling, modifying, or otherwise having something to do with them.

Did I mention that they’re cheap? Generally, prices start in the $30-60 range, but overseas shipping is a signficant overhead cost, bringing the total cost to $100 or so for a high powered (72 volt, 1500W) type, or as low as $50 shipped for the fairly common 300-500W ones. I have one of them running Kitmotter, admittedly not a very strenuous task, and recently purchased another on-the-spot in Singapore because RazEr’s melontroller was damaged. The one running Kitmotter was originally purchased out of curiosity.

While making my rounds through the Shady Chinese e-Bike Store on eBay recently, I discovered (or rather, noticed – I’m sure they’ve been around for a while)  that some were labeled with “Without Hall”, or “Sensorless”. I had known for a while that some people on Endless Sphere had modified their Jasontrollers with a comparator-based Hall sensor faking circuit – one that relied on comparing the back EMF of each phase with the midpoint of the voltage bus (Vdd/2) and output a 3 bit wavetrain in the manner of a set of sensors – such that they may run motors with damaged or destroyed sensors. A long time ago, I planned to do the same on Face Vector Modulation.

It was too cheap to not try to see how well it lived up to the claim. I bought a 36v unit fully expecting that it would have no startup capability whatsoever, since being an e-bike controller, it is 100% acceptable to assume that the rider has started pedalling with some forward speed. But hey, $50 sensorless controller that is supposedly sold for vehicle use and runs on 36 volts – why not?

Read more “Beyond Unboxing: Shady Chinese Sensorless e-Bike Controller”