The ZombieVerter VCU Project

Locked
Alibro
Posts: 828
Joined: Sun Feb 23, 2020 9:24 am
Location: Northern Ireland
Has thanked: 248 times
Been thanked: 144 times
Contact:

Re: The ZombieVerter VCU Project

Post by Alibro »

Koppi wrote: Wed Oct 06, 2021 8:23 am Hello conversion friends,

I am Peter from Germany and a beginner in converting vehicles !
I will install a Leaf Gen1 in a Mercedes W123.
Both cars I already have and the Leaf components I have already removed
I have already ordered the ZombieVerter

I have a request to the specialists

Which of the Leaf components can I continue to use ?
Motor and controller is clear !

BMS ?
Charger ?
DC/DC ?



I have seen in the video that Damien has made the Gen2 run completely

Does this also work with the Gen1 ?


Thanks for your help !
Peter
If you are using the Leaf battery then it is possible to make Charger and DC-DC work with or without the ZombieVerter. Watch all the videos posted here for more info. https://www.youtube.com/user/horndoggie999
If not using the Leaf battery then you are in the same position as me and waiting for the ZombieVerter to be configured for the Gen1 VCU so that charging is possible. In this case BMS is a different issue completely and not relevant to this topic.
I need a bigger hammer!
Koppi
Posts: 18
Joined: Thu Sep 02, 2021 6:10 pm

Re: The ZombieVerter VCU Project

Post by Koppi »

Thank you for your professional answer !

If I connect the BMS and the charger with CAN, the system will work without the VCU?

as in this diagram :

https://activeautomation.co.nz/images/t ... mages.jpeg

I have another question:

I wanted to try powering the charger with 12V to read the CAN-BUS.

I have connected 12 volts to pin 11/12/13 and GND to pin 22.
CAN on Pin 19/20

unfortunately I don't get any CAN data
CAN_500KBPS is correct ?

greetings
Peter
Alibro
Posts: 828
Joined: Sun Feb 23, 2020 9:24 am
Location: Northern Ireland
Has thanked: 248 times
Been thanked: 144 times
Contact:

Re: The ZombieVerter VCU Project

Post by Alibro »

Koppi wrote: Wed Oct 06, 2021 5:25 pm Thank you for your professional answer !

If I connect the BMS and the charger with CAN, the system will work without the VCU?

as in this diagram :

https://activeautomation.co.nz/images/t ... mages.jpeg

I have another question:

I wanted to try powering the charger with 12V to read the CAN-BUS.

I have connected 12 volts to pin 11/12/13 and GND to pin 22.
CAN on Pin 19/20

unfortunately I don't get any CAN data
CAN_500KBPS is correct ?

greetings
Peter
Sorry I don't know the answers you are looking but you should start a new thread about these questions as they are not relevant to the ZombiVerter.
I need a bigger hammer!
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: The ZombieVerter VCU Project

Post by Jack Bauer »

I have answered this before but one more for the road :
Gen1 : inverter and motor only.
Gen2 : full stack. Inverter,motor,pdm.
Gen3 : full stack testing in progress.Not yet released.

Zombieverter does not implement any BMS comms rather uses the ISA shunt for battery monitoring. BMS comms is left to other devices e.g. simpbms.
I'm going to need a hacksaw
kevpatts
Posts: 67
Joined: Mon Jul 19, 2021 1:55 pm
Location: Dublin, Ireland
Been thanked: 8 times

Re: The ZombieVerter VCU Project

Post by kevpatts »

kevpatts wrote: Mon Oct 04, 2021 9:28 am Anyone have some spare digital pots (IC21 & IC22; AD5160BRJZ5-R2)? My two got broken during the soldering process and I can't seem to recover them. Farnell don't sell them and RS-online are out of stock.
Got this sorted.
User avatar
EV_Builder
Posts: 1199
Joined: Tue Apr 28, 2020 3:50 pm
Location: The Netherlands
Has thanked: 16 times
Been thanked: 33 times
Contact:

Re: The ZombieVerter VCU Project

Post by EV_Builder »

Ok question:

In the version i pulled from github there are 15 Canuser ID's added to the filter in main() but the maximum declare is 10.

Is the github just demo or full blown production version?
Converting an Porsche Panamera
see http://www.wdrautomatisering.nl for bespoke BMS modules.
User avatar
EV_Builder
Posts: 1199
Joined: Tue Apr 28, 2020 3:50 pm
Location: The Netherlands
Has thanked: 16 times
Been thanked: 33 times
Contact:

Re: The ZombieVerter VCU Project

Post by EV_Builder »

@Damien;
I finished the table lookup.
So now we can depend charging amperage on temperature or on voltage or what we like.

The idea is that for each relation you make a table.
The C# application generates the array for you.

[Copy+Paste] and you can simply implement the degrading in code.
Attachments
TableGenerator.rar
(10.05 KiB) Downloaded 131 times
Converting an Porsche Panamera
see http://www.wdrautomatisering.nl for bespoke BMS modules.
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: The ZombieVerter VCU Project

Post by Jack Bauer »

The master branch is in use in 3 cars so yeah its working. Just change max_user_messages to 20. There is a major refactor underway which takes care of this amongst other things.
I'm going to need a hacksaw
User avatar
EV_Builder
Posts: 1199
Joined: Tue Apr 28, 2020 3:50 pm
Location: The Netherlands
Has thanked: 16 times
Been thanked: 33 times
Contact:

Re: The ZombieVerter VCU Project

Post by EV_Builder »

Jack Bauer wrote: Sun Oct 10, 2021 8:04 am The master branch is in use in 3 cars so yeah its working. Just change max_user_messages to 20. There is a major refactor underway which takes care of this amongst other things.
Ok.

About the lookup shall i make it 3D? or is this 2D enough?
Converting an Porsche Panamera
see http://www.wdrautomatisering.nl for bespoke BMS modules.
JockE28
Posts: 38
Joined: Tue Sep 15, 2020 4:05 pm
Has thanked: 8 times
Been thanked: 1 time

Re: The ZombieVerter VCU Project

Post by JockE28 »

Hello, Think i have read all the post here now.. brain is overloaded, if this already is covered, please point me in that direction.

im starting to plan my first EV

Main question here:

Is the Zombieverter able to comunicate with BMS and activly sett charge limit via BMW lim module when charging CCS?

im going to use high C-rated cells that wants to be charged within a certain temperature

for eg. very low amps when cold/warm, but in the middle they can chare really rapidly
JockE28
Posts: 38
Joined: Tue Sep 15, 2020 4:05 pm
Has thanked: 8 times
Been thanked: 1 time

Re: The ZombieVerter VCU Project

Post by JockE28 »

JockE28 wrote: Mon Oct 11, 2021 1:10 pm Hello, Think i have read all the post here now.. brain is overloaded, if this already is covered, please point me in that direction.

im starting to plan my first EV

Main question here:

Is the Zombieverter able to comunicate with BMS and activly sett charge limit via BMW lim module when charging CCS?

im going to use high C-rated cells that wants to be charged within a certain temperature

for eg. very low amps when cold/warm, but in the middle they can chare really rapidly

think i missed the last pages here :mrgreen: . so no feedback from BMS at this stage? so i need to set charging rate manually in the web interface for now?
User avatar
johu
Site Admin
Posts: 5681
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 153 times
Been thanked: 959 times
Contact:

Re: The ZombieVerter VCU Project

Post by johu »

So, Damien asked me to implement regen for the ZombieVerter but instead I started refactoring :D



I now want to define interfaces for each kind of device: inverter, charger, heater and so on. Just started an inverter interface that looks like this:

Code: Select all

class Inverter
{
public:
   virtual void Task1Ms() {} //Default does nothing
   virtual void Task10Ms() {} //Default does nothing
   virtual void Task100Ms() {} //Default does nothing
   virtual void DecodeCAN(int, uint32_t*) {};
   virtual void SetTorque(float torquePercent) = 0;
   virtual float GetMotorTemperature() = 0;
   virtual float GetInverterTemperature() = 0;
   virtual float GetInverterVoltage() = 0;
   virtual float GetMotorSpeed() = 0;
   virtual int GetInverterState() = 0;
   void SetCanInterface(Can* c) { can = c; }

private:
   Can* can;
};
Then the actual inverter class implements that interface in the usual manner:

Code: Select all

class LeafINV: public Inverter
{
public:
   float GetInverterVoltage() { return voltage / 2; }
   //and so on
};
So instead of having a chain of if-statements that check for the selected inverter, now we just have a pointer that points to the currently selected inverter. For doing something we can simply call

Code: Select all

speed = selectedInverter->GetMotorSpeed()
This also removes inverter specifics from the main.cpp file.

All inverter classes are statically instantiated and then the pointer is just moved to the appropriate one when inverter selection changes.
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: The ZombieVerter VCU Project

Post by Jack Bauer »

Thanks Johannes. Really appreciate this and promise I won't break any more windows:)
I'm going to need a hacksaw
User avatar
rstevens81
Posts: 349
Joined: Sun Dec 22, 2019 10:36 am
Location: Bristol, UK
Has thanked: 21 times
Been thanked: 91 times

Re: The ZombieVerter VCU Project

Post by rstevens81 »

Another daft question....
Could stm32-car (zomieverter) run on one of johu's boards or similar stm32f103? Obviously I would need to remap what pins do what. But function that wouldn't be used would I need to go through the code and remove them? I.e Prius stuff

I'm probably answering the question myself just by writing this and I need to create my own branch and play, but any experience or tips would be appreciated.
Rule 1 of EV Club is don't buy a rust bucket....
Which rule does everyone forget 🤪
User avatar
johu
Site Admin
Posts: 5681
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 153 times
Been thanked: 959 times
Contact:

Re: The ZombieVerter VCU Project

Post by johu »

You'd need to remove all references to peripherals that don't exist. Like CAN2 and the external SPI CAN. And reduce the CAN and parameter page size to 1024 in hwdefs.h. The F103 and F107 just differ in peripherals and flash page size, nothing else.
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
User avatar
EV_Builder
Posts: 1199
Joined: Tue Apr 28, 2020 3:50 pm
Location: The Netherlands
Has thanked: 16 times
Been thanked: 33 times
Contact:

Re: The ZombieVerter VCU Project

Post by EV_Builder »

Idea:

please call your first class the base_Class...

so for example: base_InverterClass

Now inherit that class for each Type we implement and override each function in the new model with the needed content (make the functions virtual in the base class).

The basic logic of each motor can be implemented in the base class.
For example speed calculations or other stuff which depends on internal parameters.
If we build it this way a clear seperation grows between baseclass modifications (affect all classes) and modifications which are type specific.

Very pro-cool design!

EDIT by johu: redacted excessive quote, please quote selectively
Converting an Porsche Panamera
see http://www.wdrautomatisering.nl for bespoke BMS modules.
kevpatts
Posts: 67
Joined: Mon Jul 19, 2021 1:55 pm
Location: Dublin, Ireland
Been thanked: 8 times

Re: The ZombieVerter VCU Project

Post by kevpatts »

polymorphism if I remember correctly.
User avatar
johu
Site Admin
Posts: 5681
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 153 times
Been thanked: 959 times
Contact:

Re: The ZombieVerter VCU Project

Post by johu »

Yes, I believe that's what I've done. You can check out the latest code here: https://github.com/damienmaguire/Stm32- ... t-refactor
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: The ZombieVerter VCU Project

Post by Jack Bauer »

I'm going to need a hacksaw
User avatar
johu
Site Admin
Posts: 5681
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 153 times
Been thanked: 959 times
Contact:

Re: The ZombieVerter VCU Project

Post by johu »

CAN mod discussion moved here: viewtopic.php?f=7&t=2003
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Koppi
Posts: 18
Joined: Thu Sep 02, 2021 6:10 pm

Re: The ZombieVerter VCU Project

Post by Koppi »

hello
I have a simple question
how do the components that come loose in the kit are positioned?

they are not the same parts as in the video

there is no marking on the parts

does anyone have photos of the board



or a link where it is described

thanks
peter
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: The ZombieVerter VCU Project

Post by Jack Bauer »

Thanks to the semiconductor shortage I am not getting fully populated board. The parts supplied are marked but you will need a magnifier to see some of them.

Here you will find the board layout along with designators and pin 1 marking : https://github.com/damienmaguire/Stm32- ... %20PCB.pdf
I'm going to need a hacksaw
Koppi
Posts: 18
Joined: Thu Sep 02, 2021 6:10 pm

Re: The ZombieVerter VCU Project

Post by Koppi »

thank you for your message
kevpatts
Posts: 67
Joined: Mon Jul 19, 2021 1:55 pm
Location: Dublin, Ireland
Been thanked: 8 times

Re: The ZombieVerter VCU Project

Post by kevpatts »

PM me if you want close up pics of any part of the board.
et0
Posts: 127
Joined: Sun Oct 13, 2019 8:06 pm
Location: Scotland
Has thanked: 14 times
Been thanked: 5 times

Re: The ZombieVerter VCU Project

Post by et0 »

Comment about how potmin / max is handled. This confused me as it’s the opposite of most inverters that I’m used to.

Typically min and max will be *just outside* the full mechanical travel of the pedal. That way, if a value outside the limits is detected, due to open or shorted wire or even a linkage failure, the inverter can set a fault.

Then within the range you’d have a throttle map or at least some setting for dead zone, regen position, etc.


The Zombie is the other way, it wants min and max to be inside the mechanical range. Which is fine if you know that, I’ll make a note of it in the wiki.
But just suggesting it might be an improvement to do it the other way, and then you have fault detection.
Locked