I recently acquired a 48V belted starter generator (BSG) out of a mild hybrid Mercedes for cheap.
The main goal I have right now is driving it as a motor (ideally with recuperation).
I've already made some progress, but need help now, as I'm stumped by the behavior of the BSG.
On paper it has amazing specs: 12.5kW and 165Nm peak, integrated motor driver, manufactured by Bosch SEG.
Sadly I only got it as a spare part and don't own or have access to a vehicle that has such a BSG inside (Mercedes calls it "EQ Boost" when there's a BSG/ISG inside), so I don't have easy access to CAN logs. It's also a fairly new technology, built into cars from 2018/2019 onwards.
I got the pinout from the factory service manual and the resistance/capacitance values of the pins are also plausible, so I'm reasonably sure that's correct:
- GND
- NC
- Terminal 30t
- CAN-L¹ H
- CAN-L¹ L
- Terminal 30c (crash signal)
I've also acquired a promising looking DBC file that defines some CAN message IDs the BSG expects (not including actual nominal message contents tho, just some definitions).
¹ From the FSMs, CAN-L refers to the "Hybrid CAN Bus" whose only participants are the BSG and the CPC (Central Powertrain Computer). But according to the DBC file, the CPC forwards quite a few messages from other components to the BSG.
Now I wanted to try sending some of them to the BSG.
So I applied GND to pin 1, 12V to pin 3 and 6, and connected a PCAN-USB adapter to CAN H/L. It draws 12mA from the 12V supply.
Then I try to send any CAN message with SavvyCAN or PCAN-View.
But no matter what baud rate I try, the bus goes into the "Busheavy" error state, because it accumulates acknowledge errors. (The CAN transceiver in the BSG doesn't appear to even receive the message?)
I also tried it with and without 48V on the big screw terminals and swapped CAN-H/L for good measure.
I double-checked with an oscilloscope and as far as I can see the CAN message sent by the PCAN looks good, but the ACK bit slot remains recessive.
This is where I've hit a bit of a roadblock. Does anyone know if I'm doing something wrong or have misunderstood something fundamental?
Could it require a special wake-up message to wake up the actual transceiver itself? (If so, I'm not sure how to fuzz this easily, since e.g. SavvyCAN doesn't recover from a CAN bus error itself?)
PS: I also have a Mastodon thread with more pictures etc, if you're interested.