Inside the BMW PHEV battery pack is what they call a ‘Safety Box’, but which the rest of the community might call a ‘High Voltage Junction Box’. It is basically the same as the HVJB I orginally put together for my project but a lot more compact. Made by Lear, it features two contactors, a pre-charge relay and resistor, and a fuse.
Thanks to incredible work being done over on the OpenInverter forum it looks like it might be possible to re-use the s-box, controlling it over CANBus. If I can make this work, it will save a huge amount of space in my project, allowing me to mount the charger and inverter under the bonnet, and free up components to use elsewhere in the project or on future projects. It could also make other people’s projects significantly cheaper if they don’t need to buy all the HVJB components separately.
The pinout of the S-Box is as follows (see picture up above for pin numbering):
- 1: CAN H
- 2: Not connected
- 3: GND
- 4: NC
- 5: TBC
- 6: NC
- 7: TBC
- 8: NC
- 9: NC
- 10: CAN L
- 11: NC
- 12: 12V (Circuit power)
- 13: NC
- 14: 12V (Contactors)
- 15: NC
- 16: TBC
- 17: NC
- 18: NC
CANBus Interface
The S-Box features a variety of voltage and current sensors that can be accessed through the CANBus interface, and we hope the contactors and pre-charge relay too (work in progress).
ID | Notes |
0x100 | TBC |
0x110 | Current related data |
0x200 | Current |
0x210 | DC bus voltage |
0x220 | Battery voltage |
0x600 | Low resolution DC bus and battery voltage |
Modifications
After chatting with people on the forum I decided that it would be a bit too dangerous to rely on controlling the S-Box contactors via CAN Bus since we don’t know what code is in there. What if they cut out while the motor is spinning?
So instead, I’ve followed others’ example and modified the wiring inside the S-box to route the wires for the pre-charge relay and contactors out through the spare spaces in the original contactor. This gives me a revised pinout as follows:
- 1: CAN H
- 2: Not connected
- 3: GND
- 4: NC
- 5: TBC
- 6: Negative Contactor 12V
- 7: TBC
- 8: Positive Contactor 12V
- 9: Pre-Charge Relay 12V
- 10: CAN L
- 11: NC
- 12: 12V (Circuit power)
- 13: NC
- 14: 12V (Contactors)
- 15: Negative Contactor GND
- 16: TBC
- 17: Positive Contactor GND
- 18: Pre-Charge Relay GND
For testing I wired the negative contactor and pre-charge relay up to the ‘on’ position on the ignition switch and added a manual switch to the positive contactor.