Scooter Battery Teardown Part 1

Scooter Battery Teardown Part 1

I took some time today to start trying to understand what exactly it was that I'd gotten my hands on: It was time to figure out how I was going to harvest the cells from the battery packs I received, and if they would even be worth anything. The battery packs I got are NEE1009-W, and since I have 77 of them, I wanted also to start to plan for how to tear them all down as efficiently as possible. I enlisted the help of a friend, and we got out my pack of chisels and went at it.

Splitting the battery case with guitar picks – simple, effective, and surprisingly gentle on the plastic.

Splitting the battery case with guitar picks – simple, effective, and surprisingly gentle on the plastic.

With the top removed, a first look at the cells and their arrangement, each one neatly encased and connected. With the top removed, a first look at the cells and their arrangement, each one neatly encased and connected.

The lone top case. The lone top case.

Removing the silicone reveals a detailed network of cells. Removing the silicone reveals the electrical architecture of the battery pack.

Hacksaw Time Sometimes you just need a hacksaw...

Peeling back the lower plastic Peeling back the lower plastic

Finally, the battery pack stands bare Finally, the battery pack stands bare. We ran out of time, but did manage to verify that all the cells are okay--the groups measured out to 3.7v and the whole pack was still at ~36V

We came up with some ideas for how to improve the process (pressured air, drill press to grind out some of the enclosure knobs, etc.) and will see about getting the individual cells out in the upcoming days and coming up with a polished process.

Gangwahlschalter

Gangwahlschalter

(With thanks to https://www.projectgus.com/, from whom I creatively borrowed the image for this post).

While waiting for feedback on and quotes for parts of the battery module, I thought I would get around to hacking on the BMW Gear knob. Why? Well, the RX-8 has a manual transmission, and it will be gone, and so there needs to be some way to tell it what way it should drive. The aftermarket shift knobs you can find are ... hideous. And cheap. The gear shifter from BMW is, in comparison, extremely well made, feels solid, and completely controllable over CAN.

I picked one up from the local classifieds for just about 50 euro. It didn't come with the cable loom, but that doesn't matter too much.

Digging into it, when compared with the unit that projectgus tore into (and subsequently documented on the openinverter wiki), my variant seems to be a bit of an older model with a different connector. No worries, I dug around the electrical documentation and found the true pinout--and subsequently updated the wiki page with my findings.

Next, I needed a way to speak CAN to the thing. I got some inexpensive MCP2515-based transcievers from a reseller, and got about writing the minimal interfacing code for them. The datasheet is pretty exhaustive, so I felt comfortable not digging into any reference code or other Arduino-ish libraries (they're usually... of dubious quality). I lost some time getting the thing to chat, as it seemed like it was completely ignoring everything I was sending at it. After staring at the datasheet SPI timing diagrams, and the output from my logic analyzer, I realized the issue. Do you see it?

SPI Timing Diagram Logic Analyzer Capture

I was tripped up a bit by the STM32 SPI peripheral, which insists on pulsing /CS for every byte when given direct control control. This is so weird. Anyway, the solution is easy enough:

A few short changes later...

After taking direct control of /CS, the results look much better: Much better

And the CAN messages start to flood in:

main.c:55 main Got CAN message: ID 1374, Length 8, Data: 0x00 0x00 0x00 0x14 0x32 0x00 0x08 0x00 main.c:55 main Got CAN message: ID 407, Length 4, Data: 0x00 0x00 0x00 0x14

With a few minor adjustments to my MCP2515 driver further, I had the ability to send and receive CAN messages. I found some slight issues with the documented protocol (which CRC parameters for certain messages, etc.) and included those changes in my wiki updates, above. With a bit of massaging and cajoling, the gear shifter sprang to life:

Working Shiftknob

Now I have a lovely gear shifter and indicator working on my desk. In gears other than D, it uses an astonishing 0.5A of 12v and gets very warm; this drops to below 0.1A in D. I suppose the motor that prevents you from shifting left and right takes quite some power. I guess back to the battery... for now.

More Battery Pack Musings

More Battery Pack Musings

What has 5,000 welds and 600 tiny fuses? One battery module. I drew up a schematic for the module to get an understanding of layout, and it looks like it will be the easiest to do 10 x 60 with a somewhat offset pattern, to accomodate the heat exchanger. (see above)

This has the downside that nickel strips simply don't carry enough current; using 8mm x 0.3mm nickel strips in this way, the pack would only be able to supply about 150A before overheating. Thankfully, there are some options here, I found a supplier that makes hybrid nickel (weldable) copper (high current) solutions, and they should be able to make something perfect.

combo of copper and nickel

Apart from that, I thought it might be good to have an aluminum frame for the module that the PETG panels are attached to. And I can use laser-cut PETG panels as cell holders, also.

70mm2 copper wire as collectors for the high voltage and bob's your uncle.

Battery Volume Exploration

Battery Volume Exploration

I spent some time last night bothering friends of mine while I was drafting a rough version of the chassis to understand how much volume will be available for the battery module (which is next to be designed). The body shop manual was very helpful, but not 100% complete, so some of the measurements were useful after all.

chassis mid-draft

Conservatively, it looks like between the part of the fuel tank which isn't occupied by the motor, the transmission tunnel, and the area formerly occupied by the long block, there's around 380L of space for the battery pack, which has to include the battery cells themselves as well as any structure, wiring, bus bars, cooling, etc.

roughed-out chassis with battery volume highlighted

Using the existing NINEBOT scooter batteries as a rough reference for weight and volume (for a combined pack with overheads, not the individual cells), it looks like each kWh is about 4.4L, and will weigh about 7.3kg.

As the current plan is to build a 53.5kWh battery pack, that would mean the expected volume utilization is only 240L. Having "so much" extra space available is really good, as I expect that to shrink due to additional packaging and cooling overhead, and it will let me ensure the center of mass and weight distribution changes a little as possible.

Speaking of weight, I ran through the list of things which are being removed vs the things which are being added:

  • renesis engine: 297pounds
  • transmission: 80 pounds
  • rear diff: 75 pounds
  • exhaust: 40 pounds
  • full gas tank: 100 pounds

sum old bits: 592 pounds, 270kg

  • battery pack - 53.5kWh * 7.3kg = 390kg
  • motor: 90kg
  • AC/DC, DC/DC, and PDU: 15kg

sum new bits: ~500kg

so it looks like the car will gain about 230kg, which according to this spec sheet is within the cargo capacity of 425kg.

Roughing out the motor location

Roughing out the motor location

I spent some time today figuring out where the electric motor is going to go. This is unfortunately a prerequisite before I can figure out where and how big the battery can be--it doesn't make sense to plan batteries only to find out that the motor is occupying your entire volume!

I'd like to, as much as it is possible, put the electric motor directly where the differential of the RX-8 was, which may involve some rear subframe stuff. I have the part drawings and some measurements, but what I really need to bring everything together is a detailed 3d model of the subframe. Someone has scanned their NC (gen-3) MX-5 subframes and put them online, and I was hoping that they'd be equivalent (there are various forum postings for and against). I did some digging, and while the rear subframe is /extremely/ similar, to the point of being bolt-on compatible, it's not 100% identical to the RX-8 rear subframe.

Spot the differences...

Thankfully, Andrew from Keisler Automation is super friendly, and sent me a copy of his 3d scanned RX-8 rear. Keisler sells bits and complete kits to swap a GM LFX V6 into an RX-8, and I noticed on their web store front for their rear differential kit something that looked like a 3d scan, so I asked nicely :)

It looks like the Tesla Small Drive unit wouldn't fit without quite a lot of modification, both to the subframe and the bodywork of the car. It'd also stick out the bottom, which is no bueno. The model 3 rear drive unit, however, seems to be possible and even reasonable.

Side view Top View

Body Shop Manual

Body Shop Manual

After I spent the time under the lift, I realized I was missing some measurements. After some googling, I stumbled across the body shop manual... which meant the whole tape measuring exercise was unneeded. Still glad I got under the car, though, and the pictures help me put things into context.

NeRF or Nothing

NeRF or Nothing

I took the opportunity today to record video walking around the car in its current state. Using the cloud tool Luma AI, I was able to convert it into a NeRF, or neural radiance field. You can check it out here. I'll be able to pull a skinned mesh out of this and use it for other things, I think. If not, it's cool at least!

Donor Batteries Collected

Donor Batteries Collected

I picked up the last of the batteries from the recyling bin today. In total, I have 77 Ninebot NEE1009-W packs, all with various levels of malfunctioning BMSes. They are being stored in a steel container in an industrial area away from any buildings in the case they decide to self-immolate.