<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://openinverter.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Purplemeanie</id>
	<title>openinverter.org wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://openinverter.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Purplemeanie"/>
	<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/Special:Contributions/Purplemeanie"/>
	<updated>2026-04-28T16:43:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6126</id>
		<title>ZombieVerter Timing Diagrams</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6126"/>
		<updated>2026-03-26T13:57:03Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: /* ZombieVerter failing to Precharge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Timing Diagrams ==&lt;br /&gt;
Shown below are some simple ZombieVerter scenarios as timing diagrams.&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Start.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Stop.svg|none|thumb|800x800px|Timing diagram showing ZombieVerter successfully moving from RUN to OFF mode.]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
[[File:Zombie Timing PreChargeFail.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Diagram Source ==&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@startuml&lt;br /&gt;
&lt;br /&gt;
scale 100 as 200 pixels&lt;br /&gt;
hide time-axis&lt;br /&gt;
skinparam backgroundColor #FFFFFF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
timingDiagram {&lt;br /&gt;
  backgroundColor #white&lt;br /&gt;
  constraintArrow {&lt;br /&gt;
    LineThickness 2&lt;br /&gt;
    LineColor #lightgray&lt;br /&gt;
  }&lt;br /&gt;
  .analog {&lt;br /&gt;
    LineThickness 3&lt;br /&gt;
  }&lt;br /&gt;
  .blue {&lt;br /&gt;
    LineColor blue&lt;br /&gt;
    LineThickness 5&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
title &amp;quot;ZombieVerter Timing Diagram - RUN -&amp;gt; Start (not to scale)&amp;quot;&lt;br /&gt;
footer 2026-03&lt;br /&gt;
caption &amp;quot;\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to a normal start sequence.\nThis example shows UDC rising and reaching UDCmin within the precharge timeout period, allowing the system to enter MOD_RUN successfully.\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rectangle &amp;quot;OpMode&amp;quot; as OM&lt;br /&gt;
concise &amp;quot;Torque Demand&amp;quot; as TQ&lt;br /&gt;
binary &amp;quot;T15&amp;quot; as T15&lt;br /&gt;
binary &amp;quot;Throttle Position&amp;quot; as THROTTLE&lt;br /&gt;
binary &amp;quot;Start&amp;quot; as START&lt;br /&gt;
binary &amp;quot;Contactor Power&amp;quot; as CP&lt;br /&gt;
binary &amp;quot;NegativeCON&amp;quot; as NEG &lt;br /&gt;
binary &amp;quot;PositiveCON&amp;quot; as POS&lt;br /&gt;
binary &amp;quot;PrechargeCON&amp;quot; as PCH&lt;br /&gt;
binary &amp;quot;Inverter Power&amp;quot; as INV&lt;br /&gt;
analog &amp;quot;UDC Voltage&amp;quot; as UDC &amp;lt;&amp;lt;analog&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OM is MOD_OFF #LightGray&lt;br /&gt;
T15 is {low,high}&lt;br /&gt;
START is low&lt;br /&gt;
CP is high&lt;br /&gt;
INV is low&lt;br /&gt;
NEG is low &lt;br /&gt;
POS is low&lt;br /&gt;
PCH is low&lt;br /&gt;
TQ is ZERO&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
&lt;br /&gt;
@50 as :precharge&lt;br /&gt;
&lt;br /&gt;
&#039; Start&lt;br /&gt;
@0&lt;br /&gt;
UDC is 0&lt;br /&gt;
&#039;OM is MOD_OFF &lt;br /&gt;
&lt;br /&gt;
@10&lt;br /&gt;
T15 is high &lt;br /&gt;
&lt;br /&gt;
@:precharge-20&lt;br /&gt;
THROTTLE is low&lt;br /&gt;
&lt;br /&gt;
@:precharge-10&lt;br /&gt;
START is high&lt;br /&gt;
START --[#gray]&amp;gt; OM@+10&lt;br /&gt;
T15 --[#gray]&amp;gt; OM@+10&lt;br /&gt;
&lt;br /&gt;
@:precharge&lt;br /&gt;
OM is MOD_PRECHARGE #LightBlue&lt;br /&gt;
NEG is high&lt;br /&gt;
PCH@50 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
&lt;br /&gt;
@:precharge+10&lt;br /&gt;
START is low&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
&lt;br /&gt;
@300&lt;br /&gt;
PCH is high&lt;br /&gt;
UDC is 0&lt;br /&gt;
PCH --[#gray]&amp;gt; UDC&lt;br /&gt;
&lt;br /&gt;
highlight 300 to 395 #Lavender;line:DimGrey : Variable Pre-Charge Time&lt;br /&gt;
&lt;br /&gt;
@395&lt;br /&gt;
UDC is 250&lt;br /&gt;
UDC --[#gray]&amp;gt; OM@+5&lt;br /&gt;
&lt;br /&gt;
@400&lt;br /&gt;
OM is MOD_RUN #PaleGreen&lt;br /&gt;
TQ is &amp;quot;~THROTTLE&amp;quot;&lt;br /&gt;
INV@400 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
POS@400 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
&lt;br /&gt;
@+250&lt;br /&gt;
INV is high&lt;br /&gt;
POS is high&lt;br /&gt;
&lt;br /&gt;
@+100&lt;br /&gt;
INV is high&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
@enduml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@startuml&lt;br /&gt;
&lt;br /&gt;
scale 100 as 200 pixels&lt;br /&gt;
hide time-axis&lt;br /&gt;
skinparam backgroundColor white&lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
timingDiagram {&lt;br /&gt;
  constraintArrow {&lt;br /&gt;
    LineThickness 2&lt;br /&gt;
    LineColor #lightgray&lt;br /&gt;
  }&lt;br /&gt;
  .analog {&lt;br /&gt;
    LineThickness 3&lt;br /&gt;
  }&lt;br /&gt;
  .blue {&lt;br /&gt;
    LineColor blue&lt;br /&gt;
    LineThickness 5&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
title &amp;quot;ZombieVerter Timing Diagram - RUN -&amp;gt;Stop (not to scale)&amp;quot;&lt;br /&gt;
footer 2026-03&lt;br /&gt;
caption &amp;quot;\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to a normal MOD_OFF state.\nThis example shows T15 going low, allowing the system to enter MOD_OFF successfully.\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rectangle &amp;quot;OpMode&amp;quot; as OM&lt;br /&gt;
concise &amp;quot;Torque Demand&amp;quot; as TQ&lt;br /&gt;
binary &amp;quot;T15&amp;quot; as T15&lt;br /&gt;
binary &amp;quot;Throttle Position&amp;quot; as THROTTLE&lt;br /&gt;
binary &amp;quot;Start&amp;quot; as START&lt;br /&gt;
binary &amp;quot;Contactor Power&amp;quot; as CP&lt;br /&gt;
binary &amp;quot;NegativeCON&amp;quot; as NEG&lt;br /&gt;
binary &amp;quot;PositiveCON&amp;quot; as POS &lt;br /&gt;
binary &amp;quot;PrechargeCON&amp;quot; as PCH&lt;br /&gt;
binary &amp;quot;Inverter Power&amp;quot; as INV&lt;br /&gt;
analog &amp;quot;UDC Voltage&amp;quot; as UDC &amp;lt;&amp;lt;analog&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039; Defaults seem to need to go before any time variable definitions&lt;br /&gt;
T15 is high&lt;br /&gt;
INV is high&lt;br /&gt;
NEG is high&lt;br /&gt;
POS is high&lt;br /&gt;
PCH is high&lt;br /&gt;
CP is high&lt;br /&gt;
START is low&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
OM is MOD_RUN #PaleGreen &lt;br /&gt;
TQ is &amp;quot;~THROTTLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@145 as :t15_off&lt;br /&gt;
@500 as :discharge_time&lt;br /&gt;
@:discharge_time+250 as :contactor_timeout&lt;br /&gt;
 &lt;br /&gt;
&#039; End of Normal Operation&lt;br /&gt;
@0&lt;br /&gt;
UDC is 250&lt;br /&gt;
&lt;br /&gt;
@:t15_off&lt;br /&gt;
T15 is low&lt;br /&gt;
T15 --[#gray]&amp;gt; OM@+5&lt;br /&gt;
&lt;br /&gt;
@:t15_off+5&lt;br /&gt;
OM is MOD_OFF&lt;br /&gt;
INV is low&lt;br /&gt;
TQ is ZERO&lt;br /&gt;
NEG@150 &amp;lt;-[#blue]&amp;gt; @:contactor_timeout : {2500ms}&lt;br /&gt;
UDC is 250&lt;br /&gt;
&lt;br /&gt;
@:discharge_time&lt;br /&gt;
UDC is 0&lt;br /&gt;
&lt;br /&gt;
highlight 150 to :discharge_time #Lavender;line:DimGrey : Variable Discharge Time&lt;br /&gt;
&lt;br /&gt;
@:contactor_timeout&lt;br /&gt;
NEG is low&lt;br /&gt;
POS is low&lt;br /&gt;
PCH is low&lt;br /&gt;
THROTTLE is low&lt;br /&gt;
note top of NEG : Contactor Timeout&lt;br /&gt;
&lt;br /&gt;
@+10&lt;br /&gt;
THROTTLE is {hidden}&lt;br /&gt;
&lt;br /&gt;
@enduml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@startuml&lt;br /&gt;
&lt;br /&gt;
scale 100 as 100 pixels&lt;br /&gt;
hide time-axis&lt;br /&gt;
skinparam backgroundColor white&lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
timingDiagram {&lt;br /&gt;
  constraintArrow {&lt;br /&gt;
    LineThickness 2&lt;br /&gt;
    LineColor #lightgray&lt;br /&gt;
  }&lt;br /&gt;
  .analog {&lt;br /&gt;
    LineThickness 3&lt;br /&gt;
  }&lt;br /&gt;
  .blue {&lt;br /&gt;
    LineColor blue&lt;br /&gt;
    LineThickness 5&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
title &amp;quot;ZombieVerter Timing Diagram - Precharge Fail (not to scale)&amp;quot;&lt;br /&gt;
footer 2026-03&lt;br /&gt;
caption &amp;quot;\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to the precharge timeout ocurring and the system failing to start.\nThis example shows UDC rising but failing to reach UDCmin. The user deactivates T15.\nOther scenarios such as a contactor failing to close may also cause this flow.\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rectangle &amp;quot;OpMode&amp;quot; as OM&lt;br /&gt;
concise &amp;quot;Torque Demand&amp;quot; as TQ&lt;br /&gt;
binary &amp;quot;T15&amp;quot; as T15&lt;br /&gt;
binary &amp;quot;Throttle Position&amp;quot; as THROTTLE&lt;br /&gt;
binary &amp;quot;Start&amp;quot; as START&lt;br /&gt;
binary &amp;quot;Contactor Power&amp;quot; as CP&lt;br /&gt;
binary &amp;quot;NegativeCON&amp;quot; as NEG&lt;br /&gt;
binary &amp;quot;PositiveCON&amp;quot; as POS&lt;br /&gt;
binary &amp;quot;PrechargeCON&amp;quot; as PCH&lt;br /&gt;
binary &amp;quot;Inverter Power&amp;quot; as INV&lt;br /&gt;
binary &amp;quot;UDC Voltage&amp;quot; as UDC &amp;lt;&amp;lt;analog&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OM is MOD_OFF #LightGray&lt;br /&gt;
T15 is {low,high}&lt;br /&gt;
START is low&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
CP is high&lt;br /&gt;
INV is low&lt;br /&gt;
NEG is low&lt;br /&gt;
POS is low&lt;br /&gt;
PCH is low&lt;br /&gt;
TQ is ZERO&lt;br /&gt;
&lt;br /&gt;
@50 as :precharge&lt;br /&gt;
@300 as :precharge_high&lt;br /&gt;
@1000 as :precharge_fail&lt;br /&gt;
&lt;br /&gt;
&#039; Start &lt;br /&gt;
@0&lt;br /&gt;
UDC is 0&lt;br /&gt;
&lt;br /&gt;
@10&lt;br /&gt;
T15 is high&lt;br /&gt;
&lt;br /&gt;
@:precharge-20&lt;br /&gt;
THROTTLE is low&lt;br /&gt;
&lt;br /&gt;
@:precharge-10&lt;br /&gt;
START is high&lt;br /&gt;
START --[#gray]&amp;gt; OM@+10&lt;br /&gt;
T15 --[#gray]&amp;gt; OM@+10&lt;br /&gt;
&lt;br /&gt;
@:precharge&lt;br /&gt;
OM is MOD_PRECHARGE #LightBlue&lt;br /&gt;
NEG is high&lt;br /&gt;
PCH@50 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
&lt;br /&gt;
@:precharge+10&lt;br /&gt;
START is low&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
&lt;br /&gt;
@:precharge_high&lt;br /&gt;
PCH is high&lt;br /&gt;
UDC is {low,high}&lt;br /&gt;
PCH --[#gray]&amp;gt; UDC&lt;br /&gt;
note bottom of UDC : UDC does not reach UDCmin within precharge timeout&lt;br /&gt;
&lt;br /&gt;
highlight :precharge_high to :precharge_fail #Lavender;line:DimGray : Precharge timeout (5 seconds)&lt;br /&gt;
&lt;br /&gt;
@:precharge_fail-5&lt;br /&gt;
&lt;br /&gt;
@:precharge_fail&lt;br /&gt;
OM is MOD_PCHFAIL #RED&lt;br /&gt;
PCH is low&lt;br /&gt;
&lt;br /&gt;
@+200&lt;br /&gt;
UDC is 0&lt;br /&gt;
&lt;br /&gt;
@+50&lt;br /&gt;
T15 is low&lt;br /&gt;
OM is MOD_OFF&lt;br /&gt;
INV is low&lt;br /&gt;
POS is low&lt;br /&gt;
NEG is low&lt;br /&gt;
&lt;br /&gt;
T15 --[#gray]&amp;gt; OM&lt;br /&gt;
&lt;br /&gt;
@+100&lt;br /&gt;
INV is low&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
@enduml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:ZombieVerter]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6125</id>
		<title>ZombieVerter Timing Diagrams</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6125"/>
		<updated>2026-03-26T13:56:32Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: /* ZombieVerter successfully moving from RUN to OFF mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Timing Diagrams ==&lt;br /&gt;
Shown below are some simple ZombieVerter scenarios as timing diagrams.&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Start.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Stop.svg|none|thumb|800x800px|Timing diagram showing ZombieVerter successfully moving from RUN to OFF mode.]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
[[File:Zombie Timing PreChargeFail.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Diagram Source ==&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@startuml&lt;br /&gt;
&lt;br /&gt;
scale 100 as 200 pixels&lt;br /&gt;
hide time-axis&lt;br /&gt;
skinparam backgroundColor #FFFFFF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
timingDiagram {&lt;br /&gt;
  backgroundColor #white&lt;br /&gt;
  constraintArrow {&lt;br /&gt;
    LineThickness 2&lt;br /&gt;
    LineColor #lightgray&lt;br /&gt;
  }&lt;br /&gt;
  .analog {&lt;br /&gt;
    LineThickness 3&lt;br /&gt;
  }&lt;br /&gt;
  .blue {&lt;br /&gt;
    LineColor blue&lt;br /&gt;
    LineThickness 5&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
title &amp;quot;ZombieVerter Timing Diagram - RUN -&amp;gt; Start (not to scale)&amp;quot;&lt;br /&gt;
footer 2026-03&lt;br /&gt;
caption &amp;quot;\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to a normal start sequence.\nThis example shows UDC rising and reaching UDCmin within the precharge timeout period, allowing the system to enter MOD_RUN successfully.\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rectangle &amp;quot;OpMode&amp;quot; as OM&lt;br /&gt;
concise &amp;quot;Torque Demand&amp;quot; as TQ&lt;br /&gt;
binary &amp;quot;T15&amp;quot; as T15&lt;br /&gt;
binary &amp;quot;Throttle Position&amp;quot; as THROTTLE&lt;br /&gt;
binary &amp;quot;Start&amp;quot; as START&lt;br /&gt;
binary &amp;quot;Contactor Power&amp;quot; as CP&lt;br /&gt;
binary &amp;quot;NegativeCON&amp;quot; as NEG &lt;br /&gt;
binary &amp;quot;PositiveCON&amp;quot; as POS&lt;br /&gt;
binary &amp;quot;PrechargeCON&amp;quot; as PCH&lt;br /&gt;
binary &amp;quot;Inverter Power&amp;quot; as INV&lt;br /&gt;
analog &amp;quot;UDC Voltage&amp;quot; as UDC &amp;lt;&amp;lt;analog&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OM is MOD_OFF #LightGray&lt;br /&gt;
T15 is {low,high}&lt;br /&gt;
START is low&lt;br /&gt;
CP is high&lt;br /&gt;
INV is low&lt;br /&gt;
NEG is low &lt;br /&gt;
POS is low&lt;br /&gt;
PCH is low&lt;br /&gt;
TQ is ZERO&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
&lt;br /&gt;
@50 as :precharge&lt;br /&gt;
&lt;br /&gt;
&#039; Start&lt;br /&gt;
@0&lt;br /&gt;
UDC is 0&lt;br /&gt;
&#039;OM is MOD_OFF &lt;br /&gt;
&lt;br /&gt;
@10&lt;br /&gt;
T15 is high &lt;br /&gt;
&lt;br /&gt;
@:precharge-20&lt;br /&gt;
THROTTLE is low&lt;br /&gt;
&lt;br /&gt;
@:precharge-10&lt;br /&gt;
START is high&lt;br /&gt;
START --[#gray]&amp;gt; OM@+10&lt;br /&gt;
T15 --[#gray]&amp;gt; OM@+10&lt;br /&gt;
&lt;br /&gt;
@:precharge&lt;br /&gt;
OM is MOD_PRECHARGE #LightBlue&lt;br /&gt;
NEG is high&lt;br /&gt;
PCH@50 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
&lt;br /&gt;
@:precharge+10&lt;br /&gt;
START is low&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
&lt;br /&gt;
@300&lt;br /&gt;
PCH is high&lt;br /&gt;
UDC is 0&lt;br /&gt;
PCH --[#gray]&amp;gt; UDC&lt;br /&gt;
&lt;br /&gt;
highlight 300 to 395 #Lavender;line:DimGrey : Variable Pre-Charge Time&lt;br /&gt;
&lt;br /&gt;
@395&lt;br /&gt;
UDC is 250&lt;br /&gt;
UDC --[#gray]&amp;gt; OM@+5&lt;br /&gt;
&lt;br /&gt;
@400&lt;br /&gt;
OM is MOD_RUN #PaleGreen&lt;br /&gt;
TQ is &amp;quot;~THROTTLE&amp;quot;&lt;br /&gt;
INV@400 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
POS@400 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
&lt;br /&gt;
@+250&lt;br /&gt;
INV is high&lt;br /&gt;
POS is high&lt;br /&gt;
&lt;br /&gt;
@+100&lt;br /&gt;
INV is high&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
@enduml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@startuml&lt;br /&gt;
&lt;br /&gt;
scale 100 as 200 pixels&lt;br /&gt;
hide time-axis&lt;br /&gt;
skinparam backgroundColor white&lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
timingDiagram {&lt;br /&gt;
  constraintArrow {&lt;br /&gt;
    LineThickness 2&lt;br /&gt;
    LineColor #lightgray&lt;br /&gt;
  }&lt;br /&gt;
  .analog {&lt;br /&gt;
    LineThickness 3&lt;br /&gt;
  }&lt;br /&gt;
  .blue {&lt;br /&gt;
    LineColor blue&lt;br /&gt;
    LineThickness 5&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
title &amp;quot;ZombieVerter Timing Diagram - RUN -&amp;gt;Stop (not to scale)&amp;quot;&lt;br /&gt;
footer 2026-03&lt;br /&gt;
caption &amp;quot;\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to a normal MOD_OFF state.\nThis example shows T15 going low, allowing the system to enter MOD_OFF successfully.\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rectangle &amp;quot;OpMode&amp;quot; as OM&lt;br /&gt;
concise &amp;quot;Torque Demand&amp;quot; as TQ&lt;br /&gt;
binary &amp;quot;T15&amp;quot; as T15&lt;br /&gt;
binary &amp;quot;Throttle Position&amp;quot; as THROTTLE&lt;br /&gt;
binary &amp;quot;Start&amp;quot; as START&lt;br /&gt;
binary &amp;quot;Contactor Power&amp;quot; as CP&lt;br /&gt;
binary &amp;quot;NegativeCON&amp;quot; as NEG&lt;br /&gt;
binary &amp;quot;PositiveCON&amp;quot; as POS &lt;br /&gt;
binary &amp;quot;PrechargeCON&amp;quot; as PCH&lt;br /&gt;
binary &amp;quot;Inverter Power&amp;quot; as INV&lt;br /&gt;
analog &amp;quot;UDC Voltage&amp;quot; as UDC &amp;lt;&amp;lt;analog&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039; Defaults seem to need to go before any time variable definitions&lt;br /&gt;
T15 is high&lt;br /&gt;
INV is high&lt;br /&gt;
NEG is high&lt;br /&gt;
POS is high&lt;br /&gt;
PCH is high&lt;br /&gt;
CP is high&lt;br /&gt;
START is low&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
OM is MOD_RUN #PaleGreen &lt;br /&gt;
TQ is &amp;quot;~THROTTLE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@145 as :t15_off&lt;br /&gt;
@500 as :discharge_time&lt;br /&gt;
@:discharge_time+250 as :contactor_timeout&lt;br /&gt;
 &lt;br /&gt;
&#039; End of Normal Operation&lt;br /&gt;
@0&lt;br /&gt;
UDC is 250&lt;br /&gt;
&lt;br /&gt;
@:t15_off&lt;br /&gt;
T15 is low&lt;br /&gt;
T15 --[#gray]&amp;gt; OM@+5&lt;br /&gt;
&lt;br /&gt;
@:t15_off+5&lt;br /&gt;
OM is MOD_OFF&lt;br /&gt;
INV is low&lt;br /&gt;
TQ is ZERO&lt;br /&gt;
NEG@150 &amp;lt;-[#blue]&amp;gt; @:contactor_timeout : {2500ms}&lt;br /&gt;
UDC is 250&lt;br /&gt;
&lt;br /&gt;
@:discharge_time&lt;br /&gt;
UDC is 0&lt;br /&gt;
&lt;br /&gt;
highlight 150 to :discharge_time #Lavender;line:DimGrey : Variable Discharge Time&lt;br /&gt;
&lt;br /&gt;
@:contactor_timeout&lt;br /&gt;
NEG is low&lt;br /&gt;
POS is low&lt;br /&gt;
PCH is low&lt;br /&gt;
THROTTLE is low&lt;br /&gt;
note top of NEG : Contactor Timeout&lt;br /&gt;
&lt;br /&gt;
@+10&lt;br /&gt;
THROTTLE is {hidden}&lt;br /&gt;
&lt;br /&gt;
@enduml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZombieVerter]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6124</id>
		<title>ZombieVerter Timing Diagrams</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6124"/>
		<updated>2026-03-26T13:56:08Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: /* ZombieVerter successfully moving from OFF to RUN mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Timing Diagrams ==&lt;br /&gt;
Shown below are some simple ZombieVerter scenarios as timing diagrams.&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Start.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Stop.svg|none|thumb|800x800px|Timing diagram showing ZombieVerter successfully moving from RUN to OFF mode.]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
[[File:Zombie Timing PreChargeFail.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Diagram Source ==&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@startuml&lt;br /&gt;
&lt;br /&gt;
scale 100 as 200 pixels&lt;br /&gt;
hide time-axis&lt;br /&gt;
skinparam backgroundColor #FFFFFF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
timingDiagram {&lt;br /&gt;
  backgroundColor #white&lt;br /&gt;
  constraintArrow {&lt;br /&gt;
    LineThickness 2&lt;br /&gt;
    LineColor #lightgray&lt;br /&gt;
  }&lt;br /&gt;
  .analog {&lt;br /&gt;
    LineThickness 3&lt;br /&gt;
  }&lt;br /&gt;
  .blue {&lt;br /&gt;
    LineColor blue&lt;br /&gt;
    LineThickness 5&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
title &amp;quot;ZombieVerter Timing Diagram - RUN -&amp;gt; Start (not to scale)&amp;quot;&lt;br /&gt;
footer 2026-03&lt;br /&gt;
caption &amp;quot;\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to a normal start sequence.\nThis example shows UDC rising and reaching UDCmin within the precharge timeout period, allowing the system to enter MOD_RUN successfully.\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rectangle &amp;quot;OpMode&amp;quot; as OM&lt;br /&gt;
concise &amp;quot;Torque Demand&amp;quot; as TQ&lt;br /&gt;
binary &amp;quot;T15&amp;quot; as T15&lt;br /&gt;
binary &amp;quot;Throttle Position&amp;quot; as THROTTLE&lt;br /&gt;
binary &amp;quot;Start&amp;quot; as START&lt;br /&gt;
binary &amp;quot;Contactor Power&amp;quot; as CP&lt;br /&gt;
binary &amp;quot;NegativeCON&amp;quot; as NEG &lt;br /&gt;
binary &amp;quot;PositiveCON&amp;quot; as POS&lt;br /&gt;
binary &amp;quot;PrechargeCON&amp;quot; as PCH&lt;br /&gt;
binary &amp;quot;Inverter Power&amp;quot; as INV&lt;br /&gt;
analog &amp;quot;UDC Voltage&amp;quot; as UDC &amp;lt;&amp;lt;analog&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OM is MOD_OFF #LightGray&lt;br /&gt;
T15 is {low,high}&lt;br /&gt;
START is low&lt;br /&gt;
CP is high&lt;br /&gt;
INV is low&lt;br /&gt;
NEG is low &lt;br /&gt;
POS is low&lt;br /&gt;
PCH is low&lt;br /&gt;
TQ is ZERO&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
&lt;br /&gt;
@50 as :precharge&lt;br /&gt;
&lt;br /&gt;
&#039; Start&lt;br /&gt;
@0&lt;br /&gt;
UDC is 0&lt;br /&gt;
&#039;OM is MOD_OFF &lt;br /&gt;
&lt;br /&gt;
@10&lt;br /&gt;
T15 is high &lt;br /&gt;
&lt;br /&gt;
@:precharge-20&lt;br /&gt;
THROTTLE is low&lt;br /&gt;
&lt;br /&gt;
@:precharge-10&lt;br /&gt;
START is high&lt;br /&gt;
START --[#gray]&amp;gt; OM@+10&lt;br /&gt;
T15 --[#gray]&amp;gt; OM@+10&lt;br /&gt;
&lt;br /&gt;
@:precharge&lt;br /&gt;
OM is MOD_PRECHARGE #LightBlue&lt;br /&gt;
NEG is high&lt;br /&gt;
PCH@50 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
&lt;br /&gt;
@:precharge+10&lt;br /&gt;
START is low&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
&lt;br /&gt;
@300&lt;br /&gt;
PCH is high&lt;br /&gt;
UDC is 0&lt;br /&gt;
PCH --[#gray]&amp;gt; UDC&lt;br /&gt;
&lt;br /&gt;
highlight 300 to 395 #Lavender;line:DimGrey : Variable Pre-Charge Time&lt;br /&gt;
&lt;br /&gt;
@395&lt;br /&gt;
UDC is 250&lt;br /&gt;
UDC --[#gray]&amp;gt; OM@+5&lt;br /&gt;
&lt;br /&gt;
@400&lt;br /&gt;
OM is MOD_RUN #PaleGreen&lt;br /&gt;
TQ is &amp;quot;~THROTTLE&amp;quot;&lt;br /&gt;
INV@400 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
POS@400 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
&lt;br /&gt;
@+250&lt;br /&gt;
INV is high&lt;br /&gt;
POS is high&lt;br /&gt;
&lt;br /&gt;
@+100&lt;br /&gt;
INV is high&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
@enduml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZombieVerter]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6123</id>
		<title>ZombieVerter Timing Diagrams</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6123"/>
		<updated>2026-03-26T13:55:39Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Timing Diagrams ==&lt;br /&gt;
Shown below are some simple ZombieVerter scenarios as timing diagrams.&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Start.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Stop.svg|none|thumb|800x800px|Timing diagram showing ZombieVerter successfully moving from RUN to OFF mode.]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
[[File:Zombie Timing PreChargeFail.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Diagram Source ==&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
&amp;lt;plantuml&amp;gt;&lt;br /&gt;
@startuml&lt;br /&gt;
&lt;br /&gt;
scale 100 as 200 pixels&lt;br /&gt;
hide time-axis&lt;br /&gt;
skinparam backgroundColor #FFFFFF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
timingDiagram {&lt;br /&gt;
  backgroundColor #white&lt;br /&gt;
  constraintArrow {&lt;br /&gt;
    LineThickness 2&lt;br /&gt;
    LineColor #lightgray&lt;br /&gt;
  }&lt;br /&gt;
  .analog {&lt;br /&gt;
    LineThickness 3&lt;br /&gt;
  }&lt;br /&gt;
  .blue {&lt;br /&gt;
    LineColor blue&lt;br /&gt;
    LineThickness 5&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
title &amp;quot;ZombieVerter Timing Diagram - RUN -&amp;gt; Start (not to scale)&amp;quot;&lt;br /&gt;
footer 2026-03&lt;br /&gt;
caption &amp;quot;\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to a normal start sequence.\nThis example shows UDC rising and reaching UDCmin within the precharge timeout period, allowing the system to enter MOD_RUN successfully.\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rectangle &amp;quot;OpMode&amp;quot; as OM&lt;br /&gt;
concise &amp;quot;Torque Demand&amp;quot; as TQ&lt;br /&gt;
binary &amp;quot;T15&amp;quot; as T15&lt;br /&gt;
binary &amp;quot;Throttle Position&amp;quot; as THROTTLE&lt;br /&gt;
binary &amp;quot;Start&amp;quot; as START&lt;br /&gt;
binary &amp;quot;Contactor Power&amp;quot; as CP&lt;br /&gt;
binary &amp;quot;NegativeCON&amp;quot; as NEG &lt;br /&gt;
binary &amp;quot;PositiveCON&amp;quot; as POS&lt;br /&gt;
binary &amp;quot;PrechargeCON&amp;quot; as PCH&lt;br /&gt;
binary &amp;quot;Inverter Power&amp;quot; as INV&lt;br /&gt;
analog &amp;quot;UDC Voltage&amp;quot; as UDC &amp;lt;&amp;lt;analog&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OM is MOD_OFF #LightGray&lt;br /&gt;
T15 is {low,high}&lt;br /&gt;
START is low&lt;br /&gt;
CP is high&lt;br /&gt;
INV is low&lt;br /&gt;
NEG is low &lt;br /&gt;
POS is low&lt;br /&gt;
PCH is low&lt;br /&gt;
TQ is ZERO&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
&lt;br /&gt;
@50 as :precharge&lt;br /&gt;
&lt;br /&gt;
&#039; Start&lt;br /&gt;
@0&lt;br /&gt;
UDC is 0&lt;br /&gt;
&#039;OM is MOD_OFF &lt;br /&gt;
&lt;br /&gt;
@10&lt;br /&gt;
T15 is high &lt;br /&gt;
&lt;br /&gt;
@:precharge-20&lt;br /&gt;
THROTTLE is low&lt;br /&gt;
&lt;br /&gt;
@:precharge-10&lt;br /&gt;
START is high&lt;br /&gt;
START --[#gray]&amp;gt; OM@+10&lt;br /&gt;
T15 --[#gray]&amp;gt; OM@+10&lt;br /&gt;
&lt;br /&gt;
@:precharge&lt;br /&gt;
OM is MOD_PRECHARGE #LightBlue&lt;br /&gt;
NEG is high&lt;br /&gt;
PCH@50 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
&lt;br /&gt;
@:precharge+10&lt;br /&gt;
START is low&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
&lt;br /&gt;
@300&lt;br /&gt;
PCH is high&lt;br /&gt;
UDC is 0&lt;br /&gt;
PCH --[#gray]&amp;gt; UDC&lt;br /&gt;
&lt;br /&gt;
highlight 300 to 395 #Lavender;line:DimGrey : Variable Pre-Charge Time&lt;br /&gt;
&lt;br /&gt;
@395&lt;br /&gt;
UDC is 250&lt;br /&gt;
UDC --[#gray]&amp;gt; OM@+5&lt;br /&gt;
&lt;br /&gt;
@400&lt;br /&gt;
OM is MOD_RUN #PaleGreen&lt;br /&gt;
TQ is &amp;quot;~THROTTLE&amp;quot;&lt;br /&gt;
INV@400 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
POS@400 &amp;lt;-[#blue]&amp;gt; @+250 : {250ms}&lt;br /&gt;
&lt;br /&gt;
@+250&lt;br /&gt;
INV is high&lt;br /&gt;
POS is high&lt;br /&gt;
&lt;br /&gt;
@+100&lt;br /&gt;
INV is high&lt;br /&gt;
THROTTLE is {low,high}&lt;br /&gt;
@enduml&lt;br /&gt;
&amp;lt;/plantuml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZombieVerter]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_VCU&amp;diff=6122</id>
		<title>ZombieVerter VCU</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_VCU&amp;diff=6122"/>
		<updated>2026-03-26T13:48:52Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: /* Timing Diagrams */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Zombie model.png|thumb|614x614px|ZombieVerter VCU board (NOTE: V1.2 is preproduction, V1.a is the current latest hardware revision)]]&lt;br /&gt;
==Introduction ==&lt;br /&gt;
&#039;&#039;&#039;An open-source EV conversion VCU (vehicle control unit) for controlling salvaged EV components!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Modern EV conversion projects often look to reuse salvaged parts from wrecked vehicles, such as the motors, batteries and chargers. &lt;br /&gt;
&lt;br /&gt;
The issue is that each of these components and manufacturers, use different methods of control and communication.  &lt;br /&gt;
&lt;br /&gt;
Developing controllers for these devices is complex, and time consuming and often require very dedicated communication protocols. Instead of making custom boards for every part that&#039;s been decoded, why not just make a general purpose VCU (vehicle control unit) with a verity of different types of inputs and outputs? &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Introducing: the &amp;quot;ZombieVerter&amp;quot; VCU - a general purpose EV conversion VCU.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With a large array of inputs/outputs, control logic, and a web interface for configuration and data logging. The ZombieVerter is a powerful, flexible and customizable VCU well suited for EV conversions.    &lt;br /&gt;
&lt;br /&gt;
It&#039;s also an open source project!    &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
==== Hardware: ====&lt;br /&gt;
&lt;br /&gt;
* On-board WiFi&lt;br /&gt;
* 3x high side PWM drivers&lt;br /&gt;
* 5x low side outputs&lt;br /&gt;
* 3x input pins (pull to ground only)&lt;br /&gt;
* 3x CANbus interfaces&lt;br /&gt;
* LIN bus&lt;br /&gt;
* sync serial interface&lt;br /&gt;
* OBD-II interface&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
==== Software: ====&lt;br /&gt;
&lt;br /&gt;
* Web based user interface&lt;br /&gt;
* Contactor control&lt;br /&gt;
* Charger control&lt;br /&gt;
* Charge timer&lt;br /&gt;
* Motor (inverter) control&lt;br /&gt;
* Heater control&lt;br /&gt;
* Water pump control&lt;br /&gt;
* Coolant fan control&lt;br /&gt;
* Throttle mapping&lt;br /&gt;
* Motor regen&lt;br /&gt;
* BMS limits&lt;br /&gt;
* IVT shunt initialization  &lt;br /&gt;
* Data logging and graphing&lt;br /&gt;
* etc.&lt;br /&gt;
=== Currently supported OEM hardware: ===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;This list is always growing and changing, and not everything is verified working &lt;br /&gt;
&lt;br /&gt;
==== Motors/Drive units: ====&lt;br /&gt;
&lt;br /&gt;
* [[Nissan leaf motors|Nissan Leaf Gen1/2/3 inverter/motor via CAN]] (180V minmum voltage)&lt;br /&gt;
* [[Lexus GS450h Drivetrain|Lexus GS450h inverter / L110 gearbox via sync serial]]&lt;br /&gt;
* Lexus GS300h inverter / L210 gearbox via sync serial&lt;br /&gt;
* Toyota Prius/Yaris/Auris Gen 3 inverters via sync serial&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Mitsubishi|Mitsubishi Outlander motors/inverter]]&lt;br /&gt;
* openinverter controller&lt;br /&gt;
&lt;br /&gt;
==== Chargers/DCDCs: ====&lt;br /&gt;
* [[Nissan leaf pdm|Nissan Leaf PDM (Charger and DCDC)]] Gen1,2 &amp;amp; 3&lt;br /&gt;
* [[Mitsubishi Outlander DCDC OBC|Mitsubishi Outlander OBC (charger/DCDC)]]&lt;br /&gt;
* [[Tesla Model S/X DC/DC Converter|tesla model S dcdc]]&lt;br /&gt;
* [[BMW I3 Fast Charging LIM Module|CCS DC fast charge via BMW i3 LIM]] - type 2 + type 1&lt;br /&gt;
* [[Chademo with Zombieverter|Chademo DC fast charging]]&lt;br /&gt;
* [[Foccci|Foccci CCS faster charger controller]]&lt;br /&gt;
* [https://citini.com/product/evs-charge-port-controller/ EVS-Charge Port Controller]&lt;br /&gt;
* Elcon charger&lt;br /&gt;
&lt;br /&gt;
==== Heaters: ====&lt;br /&gt;
*[[Volkswagen Heater|VAG/VW PTC water heater via LIN bus]]&lt;br /&gt;
*[[VAG PTC Air Heater|VAG/VW cabin heater via LIN bus]]&lt;br /&gt;
&lt;br /&gt;
* [[Chevrolet Volt Water Heater|Opel Ampera / Chevy Volt 6.5kW cabin heater]]&lt;br /&gt;
* [[Mitsubishi Outlander Water Heater|Mitsubishi outlander hybrid water heater]]&lt;br /&gt;
&lt;br /&gt;
==== BMS: ====&lt;br /&gt;
* [[Nissan Leaf BMS|Nissan leaf ZE1 BMS]] /battery pack&lt;br /&gt;
* [[Renault Kangoo 36|kangoo bms]]&lt;br /&gt;
*orion bms&lt;br /&gt;
*[https://github.com/Tom-evnut/SimpBMS SimpBMS]&lt;br /&gt;
*[[Isabellenhütte Heusler|ISA shunt]]&lt;br /&gt;
*[[BMW Hybrid Battery Pack#S-Box|BMW SBOX]]&lt;br /&gt;
*VW EBOX&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Integration (for CANbus control of dash, etc.): ====&lt;br /&gt;
* 1998-2005 BMW 3-series (E46) CAN support&lt;br /&gt;
* 1996-2003 BMW 5-series (E39) CAN support&lt;br /&gt;
* 2001-2008 BMW 7-series (E65) CAN Support&lt;br /&gt;
* BMW E9x CAN support&lt;br /&gt;
* Mid-2000s VAG CAN support&lt;br /&gt;
* Subaru CAN support&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://openinverter.org/forum/viewtopic.php?f=3&amp;amp;t=1277 Development thread]&lt;br /&gt;
* Purchasing:&lt;br /&gt;
** [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombieverter-vcu-built Fully-built VCU boards]&lt;br /&gt;
** [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombie-vcu Partially-built VCU boards]&lt;br /&gt;
* [https://github.com/damienmaguire/Stm32-vcu GitHub repo]&lt;br /&gt;
** Hardware: [https://github.com/damienmaguire/Stm32-vcu/tree/master/Hardware/Zombie ZombieVerter V1]*&lt;br /&gt;
** Software: [https://github.com/damienmaguire/Stm32-vcu/releases latest stable software release]&lt;br /&gt;
*[[pre-wired zombie wiring interface]]&lt;br /&gt;
*[[ZombieVerter Timing Diagrams]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; &#039;&#039;&#039;IMPORTANT NOTE: only design files for PCB V1 are publicly available on GitHub, design files for the latest PCB release (V1.a) are only available through [https://www.patreon.com/c/evbmw/posts Damien Maguire&#039;s Patreon] and require membership at the Design Files tier or higher.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Assembling the VCU ==&lt;br /&gt;
Looking to build a ZombieVerter VCU yourself or the kit is missing hardware? &lt;br /&gt;
&lt;br /&gt;
* [[Zombiverter hardware]] page for additional build instructions&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/damienmaguire/Stm32-vcu Github with PCB, schematic, pin-outs, etc]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The enclosure and header are required if you did not order a [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombieverter-vcu-built &#039;&#039;&#039;fully built board&#039;&#039;&#039;]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VCU boards from the webshop, &#039;&#039;&#039;&#039;&#039;come pre-programmed&#039;&#039;&#039;&#039;&#039; and &#039;&#039;&#039;do not require any additional steps taken to work&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
For programming a blank board see: [[zombieverter programing|ZombieVerter programming]]&lt;br /&gt;
===The enclosure kit options:===&lt;br /&gt;
&lt;br /&gt;
# [https://www.aliexpress.com/item/32857771975.html?spm=a2g0s.9042311.0.0.39f24c4dWOmGPE Enclosure Kit with Header, connector and pins]&amp;lt;ref&amp;gt;https://www.aliexpress.com/item/32857771975.html?spm=a2g0s.9042311.0.0.39f24c4dWOmGPE (Backup: [https://web.archive.org/web/20220524004318/https://www.aliexpress.com/item/32857771975.html Web Archive])&amp;lt;/ref&amp;gt; &lt;br /&gt;
#[https://www.aliexpress.com/item/32822692950.html Connector and pins]&amp;lt;ref&amp;gt;https://de.aliexpress.com/item/32822692950.html (Backup: [https://web.archive.org/web/20221119203700/https://www.aliexpress.us/item/2251832636378198.html?gatewayAdapt=glo2usa4itemAdapt&amp;amp;_randl_shipto=US Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
#[https://www.aliexpress.com/item/1005003512474442.html Pre-wired connector]  &amp;lt;ref&amp;gt;https://www.aliexpress.com/item/1005003512474442.html (Backup: [http://web.archive.org/web/20221120105651/https://www.aliexpress.us/item/3256803326159690.html?gatewayAdapt=glo2usa4itemAdapt&amp;amp;_randl_shipto=US Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The original connectors are from Aptiv (Delphi):&lt;br /&gt;
&lt;br /&gt;
* [https://www.aptiv.com/en/solutions/connection-systems/catalog/item?id=13669859_en Aptiv 56-pin connector]&lt;br /&gt;
* [https://www.aptiv.com/en/solutions/connection-systems/catalog/item?id=33511394_en Aptiv 56-pin header]&lt;br /&gt;
* [https://www.tti.com/content/ttiinc/en/apps/part-detail.html?partsNumber=210S048&amp;amp;mfgShortname=FCA&amp;amp;productId=161404611 Removal tool for connector terminals: Manufacturer: Aptiv (formerly Delphi)]  Part Number: 210S048&lt;br /&gt;
=== Videos on assembly, powering up, updating, etc: ===&lt;br /&gt;
https://www.youtube.com/watch?v=geZuIbGHh30&amp;amp;list=PLh-aHjjWGgLVCsAqaCL6_jmn_QqhVlRiG&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=_JRa_uFyVkY&amp;amp;list=PLh-aHjjWGgLUWaetAmShkv6gmvk7vLaHd&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
[[File:ZombieVerter VCU V1 cable side pinout2.jpg|thumb|alt=|VCU pinout diagram |513x513px]]Each device requires different wiring setups, settings and power requirements. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;cross referencing OEM wiring diagrams is highly recommended &lt;br /&gt;
&lt;br /&gt;
=== Vehicle-specific configurations ===&lt;br /&gt;
* [[GS450H with zombieverter|GS450H with ZombieVerter]]&lt;br /&gt;
* [[Leaf stack with zombiverter|Leaf stack with ZombiVerter]]&lt;br /&gt;
* [[Tesla SDU with Zombieverter|Tesla SDU with ZombieVerter]]&lt;br /&gt;
* [[Chademo with Zombieverter]]&lt;br /&gt;
&lt;br /&gt;
=== Power wiring ===&lt;br /&gt;
The ZombieVerter requires a permanent 12V supply. This is so it can manage charging, timers, and monitor systems when the car is at rest.  &lt;br /&gt;
&lt;br /&gt;
The average power draw, at idle, is 150 mA. &lt;br /&gt;
&lt;br /&gt;
* Pin 55 to 12V- ground&lt;br /&gt;
* Pin 56 to 12V+ positive&lt;br /&gt;
&lt;br /&gt;
The ZombieVerter controls power/&amp;quot;ignition&amp;quot; signals to other devices (inverters, chargers, and DCDC converters), powering those devices when required. This is done by triggering an external 12V relay. &#039;&#039;&#039;&#039;&#039;ZombieVerter controls the external relay using low-side switching&#039;&#039;, meaning that it pulls the ground pin of the relay to ground.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[File:Gernice-zombie.png|thumb|583x583px|general zombie and battery box wiring]]Pin 32 to ground pin on a 12V relay&lt;br /&gt;
* Relay positive pin to 12V+&lt;br /&gt;
* One of the relays switch pin to 12V+&lt;br /&gt;
&lt;br /&gt;
This effectively provides a switched 12V supply, controlled by the ZombieVerter.  &lt;br /&gt;
&lt;br /&gt;
Used to switch &amp;quot;enable&amp;quot; mode to devices via: &lt;br /&gt;
&lt;br /&gt;
* Leaf inverter enable pin&lt;br /&gt;
* Leaf PDM enable pin&lt;br /&gt;
* Mitsubisihi OBC enable pin&lt;br /&gt;
&lt;br /&gt;
=== Contactor wiring ===&lt;br /&gt;
The Zombieveter manages the Negative, Positive and PreCharge contactors in an EV conversion.&lt;br /&gt;
&lt;br /&gt;
This is done based off a series of voltage measurements (UDC), this voltage value (UDC) can be supplied from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* ISA IVT shunt&lt;br /&gt;
* Nissan leaf inverter&lt;br /&gt;
* BMW S-BOX&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Without a proper UDC measurement, the ZombieVerter &#039;&#039;&#039;will fail precharge and never go into run mode.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note the ISA Shunt requires permanent power as it continuously monitors UDC and reports this to the Zombieverter. If powered on with ignition for example, previous UDC readings can affect pre-charge operation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The contactor control pins on the ZombieVerter are &#039;&#039;low-side switching&#039;&#039;, meaning that they pull to ground.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The positive leads from the contactors need to be connected to 12V+ and the ground leads to:&lt;br /&gt;
&lt;br /&gt;
* Pin 31 for the negative contactor&lt;br /&gt;
* Pin 33 for the positive contactor&lt;br /&gt;
* Pin 34 for the pre-charge contactor&lt;br /&gt;
=== Throttle pedal wiring ===&lt;br /&gt;
The ZombieVerter supports dual-channel throttle. This redundancy is for safety in case one channel fails or drops out. It&#039;s highly recommended to use dual-channel throttle. Single-channel is an option.&lt;br /&gt;
&lt;br /&gt;
Connect the following to the ZombieVerter pins:&lt;br /&gt;
&lt;br /&gt;
* Pin 45 to throttle grounds&lt;br /&gt;
* Pin 46 to throttle channel 2&lt;br /&gt;
* Pin 47 to throttle channel 1&lt;br /&gt;
* Pin 48 to throttle positives&lt;br /&gt;
&lt;br /&gt;
=== Start, Run, and Direction wiring ===&lt;br /&gt;
The ZombieVerter requires 2 inputs to get into &amp;quot;drive&amp;quot; mode. &#039;&#039;&#039;These pins need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* Pin 15 to &amp;quot;on&amp;quot; switched input (key switched to &amp;quot;on&amp;quot;)&lt;br /&gt;
* Pin 52 to &amp;quot;start&amp;quot; momentary input  (momentary key switched &amp;quot;ignition&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==== Forward and Reverse ====&lt;br /&gt;
These pins need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +) &lt;br /&gt;
&lt;br /&gt;
* Pin 53 reverse&lt;br /&gt;
* Pin 54 forward&lt;br /&gt;
&lt;br /&gt;
==== Brake signal ====&lt;br /&gt;
&lt;br /&gt;
* Pin 49 need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +) when brake is pressed&lt;br /&gt;
&lt;br /&gt;
=== Input/output pins ===&lt;br /&gt;
The ZombieVerter has a number of selectable input/output pins that can be used for a number of functions. These pins are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Low side Outputs.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*GP Out 3&lt;br /&gt;
*GP Out 2&lt;br /&gt;
* Neg Contactor switch/GP Out 1&lt;br /&gt;
*Trans SL1- (If not using the GS450H)&lt;br /&gt;
*Trans SL2- (If not using the GS450H)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*Low side output connect to ground when activated.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The low side outputs in Zombie are ideal for switching relays, such as for coolant pumps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;High side PWM.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*PWM 3&lt;br /&gt;
*PWM 2&lt;br /&gt;
*PWM 1&lt;br /&gt;
*Pump PWM - Limited to GS450 Oil pump pwm or tacho pwm output&lt;br /&gt;
&lt;br /&gt;
These are high side 12V outputs, usually for controlling gauges or auxiliary items than need a pwm signals. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*not suitable for controlling relays.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Ground Input pins&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These pins pull down to ground only. &#039;&#039;&#039;Do not connect any voltage to these pins.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PB1&lt;br /&gt;
&lt;br /&gt;
PB2&lt;br /&gt;
&lt;br /&gt;
PB3&lt;br /&gt;
&lt;br /&gt;
=== Pin functions: ===&lt;br /&gt;
&#039;&#039;Note: While the web interface will allow you to select input pins or output pins, some will not actually work.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;example: a input switch wired but set to negContactor&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Pin&lt;br /&gt;
!IN/OUT/PWM&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|ChaDemoAIw&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when Chademo charger handshake initiates&lt;br /&gt;
|-&lt;br /&gt;
|OBCEnable&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates as part of the ExtCharger module&lt;br /&gt;
|-&lt;br /&gt;
|HeaterEnable&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates only in run mode and when coolant pump is on*&lt;br /&gt;
|-&lt;br /&gt;
|RunIndication&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when zombie is in run mode&lt;br /&gt;
|-&lt;br /&gt;
|WarnIndication&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when a error occurs with the ZombieVerter&lt;br /&gt;
|-&lt;br /&gt;
|CoolantPump&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates during precharge, usually used for coolant pumps&lt;br /&gt;
|-&lt;br /&gt;
|NegContactor&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when the negative contactor needs to be closed. ie precharge, run, charge mode, etc&lt;br /&gt;
|-&lt;br /&gt;
|BrakeLight&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when a set brake light on threshold value is met&lt;br /&gt;
|-&lt;br /&gt;
|ReverseLight&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when reverse direction is selected&lt;br /&gt;
|-&lt;br /&gt;
|CoolingFan&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when FanTemp setpoint is reached&lt;br /&gt;
|-&lt;br /&gt;
|HVActive&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when contactors are closed and VCU is in run or charge mode&lt;br /&gt;
|-&lt;br /&gt;
|BrakeVacPump&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when BrakeVacSensor threshold value is met&lt;br /&gt;
|-&lt;br /&gt;
|CpSpoof&lt;br /&gt;
|&#039;&#039;&#039;PWM OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|used to spoof CP signal to OBC when using a charging interface such as FOCCCI or I3LIM&lt;br /&gt;
|-&lt;br /&gt;
|GS450Hpump&lt;br /&gt;
|&#039;&#039;&#039;PWM OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|used to run GS450H oil pump&lt;br /&gt;
|-&lt;br /&gt;
|HeatReq&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HVRequest&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|NOT FUNCTIONING&lt;br /&gt;
|-&lt;br /&gt;
|DCFCRequest&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|Chademo Charge Interface enable contactors to charge&lt;br /&gt;
|-&lt;br /&gt;
|ProxPilot&lt;br /&gt;
|&#039;&#039;&#039;ANALOGUE INPUT&#039;&#039;&#039;&lt;br /&gt;
|detects when charge cable is plugged in&lt;br /&gt;
|-&lt;br /&gt;
|BrakeVacSensor&lt;br /&gt;
|&#039;&#039;&#039;ANALOGUE INPUT&#039;&#039;&#039;&lt;br /&gt;
|vacuum sensor input, use for triggering BrakeVacPump &#039;&#039;&#039;DIGITAL OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|PWMTim3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Proximity Pilot====&lt;br /&gt;
for proximity pilot spoofing for devices like the outlander OBC, (the leaf stack dose no require this as the charge port interface is dealt with the pdm internally), the zombie needs to detect is a plug has been inserted into the j1772 port to go into charge mod. a pull up resistor is used to interface into one of the zombieverters analogue pins in the diagram below: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This analogue input used to detect a charging cable is plugged in.&lt;br /&gt;
[[File:ZombiePP.png|none|thumb]]&lt;br /&gt;
A resistor to the 5v needs to be connected to the analogue in pin, 330 ohms in the spec, and R5 needs to be another resistor between analogue in pin and ground. Type 1 connectors should be a 2.7k ohm resistor and type 2 should be 4.7k ohm. Note the charging port may already have this resistor installed.&lt;br /&gt;
&lt;br /&gt;
Open up the Zombie UI and choose ProxPilot for the function of the analogue in pin. Then start plotting PPVal and then plug in, set the PPthreshold to a value higher than ppval is when a evse is pluged in. Bare in mind the resistance will vary on the cable plugged in depending on the Amps it can supply.&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/U3c4V8vMb6k?t=351 &amp;lt;br /&amp;gt;Video explaining the setup and demonstration.]&lt;br /&gt;
&lt;br /&gt;
== Initial start-up and testing ==&lt;br /&gt;
&lt;br /&gt;
=== Powering up and connecting to the web interface ===&lt;br /&gt;
&#039;&#039;&#039;The following is required&#039;&#039;&#039;&lt;br /&gt;
# A fully built ZombieVerter VCU&lt;br /&gt;
# Two wires for power&lt;br /&gt;
# 12V power supply&lt;br /&gt;
# Computer/tablet for accessing the web interface&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to access the web interface&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Provide stable 12V power to pins 55, 56 on the ZombieVerter&lt;br /&gt;
# The on-board LED light &amp;quot;acty&amp;quot; should be now flashing&lt;br /&gt;
# Using your computer, connect to the ZombieVerters WIFI access point.  &#039;&#039;&#039;SSID: &amp;quot;inverter&amp;quot; or &amp;quot;zom_vcu&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
# &#039;&#039;&#039;Password is: inverter123&#039;&#039;&#039;&lt;br /&gt;
# In a web browser navigate to: &#039;&#039;&#039;192.168.4.1&#039;&#039;&#039;&lt;br /&gt;
# The openinverter web interface should now load!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Recent units have a new WiFi module that isn&#039;t automatically assigning an IP via DHCP. See [https://openinverter.org/forum/viewtopic.php?f=5&amp;amp;t=2001 this thread] for details, and if you can help resolve the issue. Until then, you need to manually assign an IP of 192.168.4.2 (anything other than 192.168.4.1 on the 192.168.4.0/24 subnet) to your device.&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;work in progress*&lt;br /&gt;
&lt;br /&gt;
[[Zombieverter Parameters and Spot Values|full list and overview of ZombieVerter Parameters and Spot Values]]&lt;br /&gt;
&lt;br /&gt;
==== Basic parameters and spot values ====&lt;br /&gt;
&lt;br /&gt;
==== Throttle ====&lt;br /&gt;
You should see values &#039;&#039;&#039;pot&#039;&#039;&#039; change as the pedal is pressed.  &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;potmin&#039;&#039;&#039; should be set just above where your off-throttle position is&lt;br /&gt;
* &#039;&#039;&#039;potmax&#039;&#039;&#039; just below the value seen at maximum travel &lt;br /&gt;
* Same for &#039;&#039;&#039;pot2min&#039;&#039;&#039; and &#039;&#039;&#039;pot2max&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The resulting in a  0-100 &#039;&#039;&#039;potnom&#039;&#039;&#039; value.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;throtmin&#039;&#039;&#039; is the minimum (most negative) allowed &#039;&#039;&#039;&#039;&#039;potnom&#039;&#039;&#039;&#039;&#039; at all times&lt;br /&gt;
* &#039;&#039;&#039;throtmax&#039;&#039;&#039; is the maximum (most positive) allowed &#039;&#039;&#039;&#039;&#039;potnom&#039;&#039;&#039;&#039;&#039; request in forward&lt;br /&gt;
* &#039;&#039;&#039;throtramp&#039;&#039;&#039; is how much &#039;&#039;&#039;potnom&#039;&#039;&#039; ramps up with the pedal pushed (&#039;&#039;&#039;potnom&#039;&#039;&#039; change per %/10ms)&lt;br /&gt;
* &#039;&#039;&#039;throtramprpm&#039;&#039;&#039; stops applying &#039;&#039;&#039;throtramp&#039;&#039;&#039; above a set motor rpm&lt;br /&gt;
* &#039;&#039;&#039;revlim&#039;&#039;&#039; is a rev limiter &lt;br /&gt;
&lt;br /&gt;
==== Contactors ====&lt;br /&gt;
A set HV battery voltage value is required to run the precharge and main contactors. &lt;br /&gt;
&lt;br /&gt;
The voltage is measured using the UDC value. which is supplied from the &#039;&#039;&#039;shuntType:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ISA&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SBOX&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;VAG&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;LEAF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
these voltage(UDC) levels are set with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;udcmin&#039;&#039;&#039; is the minimum battery voltage derate&lt;br /&gt;
* &#039;&#039;&#039;udclim&#039;&#039;&#039; is maximum battery voltage derate&lt;br /&gt;
* &#039;&#039;&#039;udcsw&#039;&#039;&#039; is Voltage point at which precharge is considered finished, and the main contactor will close.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Forward/Reverse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
input options:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;switch&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;button&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;switchReversed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;buttomReversed&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Inverter ====&lt;br /&gt;
&#039;&#039;work in progress&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Charger ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;work in progress&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Input Values ====&lt;br /&gt;
Check that din_break does not show &amp;quot;on&amp;quot;, it must be off to allow potnom to be shown.&lt;br /&gt;
----&lt;br /&gt;
* Apply the &#039;&#039;&#039;Start&#039;&#039;&#039; 12V signal for a short time.  The pre-charge relay should turn on, and the voltage available at the inverter and the U1 input of the ISA shunt should quickly rise. If the &#039;&#039;&#039;udc&#039;&#039;&#039; reading goes above &#039;&#039;&#039;udcsw&#039;&#039;&#039; within 5 seconds then the main contactor(s) should close. If all is well, &#039;&#039;&#039;invstat&#039;&#039;&#039; should now be &amp;quot;on&amp;quot;, &#039;&#039;&#039;opmode&#039;&#039;&#039; should be &amp;quot;run&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If you do not see a good value at udc, it may be that your external shunt is not connected properly or is not initialised.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If you do not see a good value at Invudc, it may be that the inverter is not powered, or the communication signals are not correctly wired.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;if the status stays at &amp;quot;PRECHARGE&amp;quot; then you possibly didn&#039;t hold the start signal on for long enough!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Errors, Common issues ==&lt;br /&gt;
&lt;br /&gt;
==== Input Values: ====&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;din_break&amp;quot; does not show &amp;quot;on&amp;quot;, it must be off to allow potnom to be shown.&lt;br /&gt;
** check wiring setup&lt;br /&gt;
* UDC value updates during precharge.&lt;br /&gt;
** check that your UDC value source is configured correctly (shunt type, proper can bus, ect)&lt;br /&gt;
** check your contactor wiring. &lt;br /&gt;
*** some contactors are polarity sensitive &lt;br /&gt;
*** are they wired to be low side switched? &lt;br /&gt;
* check can H/ can L wiring&lt;br /&gt;
* is there too many devices sharing one can bus? (possible can id collision) &lt;br /&gt;
* check inverter power relay wiring&lt;br /&gt;
** is the inverter/charger/bms &amp;quot;ignition&amp;quot;/ &amp;quot;enable&amp;quot; pin driven via a zombie controlled relay?&lt;br /&gt;
** is the relay firing during preacharge?&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
VCU boards from the webshop, &#039;&#039;&#039;&#039;&#039;come pre-programed&#039;&#039;&#039;&#039;&#039; and &#039;&#039;&#039;do not require any additional septs taken to work&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
For programming a blank board see: [[zombiverter programing|ZombiVerter programing]]&lt;br /&gt;
&lt;br /&gt;
For re-flashing a bricked board refer to the Troubleshooting section below.&lt;br /&gt;
&lt;br /&gt;
For an overview of the software architecture see: [[ZombieVerter Software Overview]]&lt;br /&gt;
==== Initializing an ISA Shunt: ====&lt;br /&gt;
&lt;br /&gt;
# Wire the ISA shunt to 12V+ and canbus input.&lt;br /&gt;
# Under shunt can in the web interface, select the canbus the shunt is connected to&lt;br /&gt;
# Hit save parameters to flash.&lt;br /&gt;
# Under Comms in the web interface, select ISAMode option. By default its set to &amp;quot;Normal&amp;quot; (Off)&lt;br /&gt;
# Select &amp;quot;Init&amp;quot;&lt;br /&gt;
# Hit save parameters to flash&lt;br /&gt;
# Power cycle the vcu and shunt at same time (they should be on same 12V feed anyway).&lt;br /&gt;
# The shunt will initialize.&lt;br /&gt;
# Select ISAMode &amp;quot;normal&amp;quot;&lt;br /&gt;
# Save to flash again&lt;br /&gt;
# Reboot the VCU&lt;br /&gt;
&lt;br /&gt;
The shunt should now be up and running.&lt;br /&gt;
&lt;br /&gt;
If the shunt doesn&#039;t initialize correctly, separate the shunt and VCU power supply, and power cycle the VCU two or three seconds after the shunt power is cycled. This has fixed an initialize issue for a number of ISA shunts.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
[[Zombieverter Parameters and Spot Values|page with ZombieVerter parameters and their value ranges, ZV pinmap etc.]]&lt;br /&gt;
&lt;br /&gt;
Source: https://www.youtube.com/watch?v=wjlucUWX_lc&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
===Serial Connection===&lt;br /&gt;
If you&#039;re having trouble connecting using the serial interface, note that the parameters are 115200 8-N-2, which is different from the conventional 115200 8-N-1.&lt;br /&gt;
&lt;br /&gt;
=== Recovering the ZombieVerter from a failed update ===&lt;br /&gt;
If the ZombieVerter fails in the middle of a software update and the Web User Interface is reporting &amp;quot;firmware: null&amp;quot; it&#039;s possible you&#039;ll need to re-flash the firmware, and bootloader via an STLink.&lt;br /&gt;
&lt;br /&gt;
I used a cheap STLink v2 clone without issue but it seems there is a mix of experiences with them.&lt;br /&gt;
&lt;br /&gt;
# Firstly, download the bootloader from [https://github.com/jsphuebner/tumanako-inverter-fw-bootloader/releases here] and latest ZombieVerter firmware from [https://github.com/damienmaguire/Stm32-vcu/releases/ here] as .hex files. This ensures you don&#039;t need to know the address of the file and avoids user error when flashing via STLink &lt;br /&gt;
# Download STMCubeProgrammer from [https://www.st.com/en/development-tools/stm32cubeprog.html#get-software here] (other STM flashing softwares are available but the following instructions are based on what has worked for me).&lt;br /&gt;
# Upgrade the firmware on your STLink dongle using STMCubeProgrammer. I&#039;m not sure if this is 100% necessary but seems prudent.&lt;br /&gt;
# Connect the Clock (SWclk), Gnd and Data (SWDio) of your STLink to the ZombieVerter test points. On the ZombieVerter Board, they are labelled C, G, D. &lt;br /&gt;
# Connect 12V and Gnd to the ZombieVerter main power pins and ensure your STMCubeprogrammer is able to connect to it. I also disconnected the wifi board just incase.&lt;br /&gt;
# Perform a &amp;quot;full chip erase&amp;quot;, then reflash the latest bootloader and firmware hex files.&lt;br /&gt;
# Remove your STLink from the ZombieVerter, connect the wifi board and check connectivity.&lt;br /&gt;
# Begin ZombieVerter-ing.&lt;br /&gt;
&lt;br /&gt;
=== ESP32 CanBus Web Interface ===&lt;br /&gt;
If the CanBus Web Interface is used it must be noted that the Node ID is hard coded to 3 (note Foccci default is 22)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:Inverter]] &lt;br /&gt;
[[Category:VCU]] &lt;br /&gt;
[[Category:ZombieVerter]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_Software_Overview&amp;diff=6121</id>
		<title>ZombieVerter Software Overview</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_Software_Overview&amp;diff=6121"/>
		<updated>2026-03-26T13:48:13Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Firmware Version 2.30A- ===&lt;br /&gt;
The ZombieVerter firmware is written in C and C++. The main control loop runs off a hardware timer that triggers every millisecond. It then decides whether to run 1ms, 10ms or 100ms routines. &lt;br /&gt;
&lt;br /&gt;
Support for different drive train components is provided through a number of base classes and derived &amp;quot;drivers&amp;quot; for specific components. Base classes include:&lt;br /&gt;
&lt;br /&gt;
* Vehicle&lt;br /&gt;
* Inverter&lt;br /&gt;
* Charger&lt;br /&gt;
* Shunt (limited support)&lt;br /&gt;
* Gear Lever&lt;br /&gt;
* Transmission&lt;br /&gt;
* BMS&lt;br /&gt;
* On Board Charger&lt;br /&gt;
* DC to DC Converter&lt;br /&gt;
&lt;br /&gt;
==== One Millisecond Routines ====&lt;br /&gt;
The 1ms routines are currently concerned with high speed software control of some drive-train components.&lt;br /&gt;
&lt;br /&gt;
==== Ten Millisecond Routines ====&lt;br /&gt;
The 10ms routines provide the main vehicle operating mode (opcode) state machine, see below. &lt;br /&gt;
&lt;br /&gt;
Calls are made here to the various supported components.&lt;br /&gt;
&lt;br /&gt;
==== One Hundred Millisecond Routines ====&lt;br /&gt;
The 100ms routines are mainly concerned with managing the charging of the vehicle&#039;s traction battery pack(s).&lt;br /&gt;
&lt;br /&gt;
Calls are made here to the various supported components.&lt;br /&gt;
&lt;br /&gt;
==== Operating Mode State Machine ====&lt;br /&gt;
The main vehicle operating mode is run from a 10ms timer (derived from the 1ms hardware timer). The vehicle states are:&lt;br /&gt;
&lt;br /&gt;
* MOD_OFF&lt;br /&gt;
* MOD_PRECHARGE&lt;br /&gt;
* MOD_PCHFAIL&lt;br /&gt;
* MOD_CHARGE&lt;br /&gt;
* MOD_RUN&lt;br /&gt;
&lt;br /&gt;
The state transitions follow the state diagram overview shown below (this is an overview and not meant to describe some of the intricacies of the software flow).&lt;br /&gt;
[[File:ZombieVerter State Machine 2026-03.png|thumb|800x800px|ZombieVerter firmware Operating Mode state machine overview|none]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Interface ====&lt;br /&gt;
The ZombieVerter firmware provides control and reporting on a serial UART interface. One use of this interface is to connect to a web-interface ESP8266 form factor daughter board (EPS32 boards are also supported).&lt;br /&gt;
&lt;br /&gt;
The serial interface provides a simple command and control protocol that includes:&lt;br /&gt;
&lt;br /&gt;
* JSON send/receive of ZombieVerter parameters&lt;br /&gt;
* CANBus mapping configuration&lt;br /&gt;
* Firmware updates&lt;br /&gt;
&lt;br /&gt;
[[Category:ZombieVerter]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6120</id>
		<title>ZombieVerter Timing Diagrams</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6120"/>
		<updated>2026-03-26T13:47:26Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Timing Diagrams ==&lt;br /&gt;
Shown below are some simple ZombieVerter scenarios as timing diagrams.&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Start.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Stop.svg|none|thumb|800x800px|Timing diagram showing ZombieVerter successfully moving from RUN to OFF mode.]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
[[File:Zombie Timing PreChargeFail.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ZombieVerter]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6119</id>
		<title>ZombieVerter Timing Diagrams</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_Timing_Diagrams&amp;diff=6119"/>
		<updated>2026-03-26T13:45:09Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: Created page with &amp;quot;== Timing Diagrams == Shown below are some simple ZombieVerter scenarios as timing diagrams.  === ZombieVerter successfully moving from OFF to RUN mode === 800x800px  === ZombieVerter successfully moving from RUN to OFF mode === Timing diagram showing ZombieVerter successfully moving from RUN to OFF mode.  === ZombieVerter failing to Precharge === File:Zombie Timing PreC...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Timing Diagrams ==&lt;br /&gt;
Shown below are some simple ZombieVerter scenarios as timing diagrams.&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Start.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Stop.svg|none|thumb|800x800px|Timing diagram showing ZombieVerter successfully moving from RUN to OFF mode.]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
[[File:Zombie Timing PreChargeFail.svg|800x800px]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_VCU&amp;diff=6118</id>
		<title>ZombieVerter VCU</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_VCU&amp;diff=6118"/>
		<updated>2026-03-26T13:44:36Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Zombie model.png|thumb|614x614px|ZombieVerter VCU board (NOTE: V1.2 is preproduction, V1.a is the current latest hardware revision)]]&lt;br /&gt;
==Introduction ==&lt;br /&gt;
&#039;&#039;&#039;An open-source EV conversion VCU (vehicle control unit) for controlling salvaged EV components!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Modern EV conversion projects often look to reuse salvaged parts from wrecked vehicles, such as the motors, batteries and chargers. &lt;br /&gt;
&lt;br /&gt;
The issue is that each of these components and manufacturers, use different methods of control and communication.  &lt;br /&gt;
&lt;br /&gt;
Developing controllers for these devices is complex, and time consuming and often require very dedicated communication protocols. Instead of making custom boards for every part that&#039;s been decoded, why not just make a general purpose VCU (vehicle control unit) with a verity of different types of inputs and outputs? &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Introducing: the &amp;quot;ZombieVerter&amp;quot; VCU - a general purpose EV conversion VCU.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With a large array of inputs/outputs, control logic, and a web interface for configuration and data logging. The ZombieVerter is a powerful, flexible and customizable VCU well suited for EV conversions.    &lt;br /&gt;
&lt;br /&gt;
It&#039;s also an open source project!    &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
==== Hardware: ====&lt;br /&gt;
&lt;br /&gt;
* On-board WiFi&lt;br /&gt;
* 3x high side PWM drivers&lt;br /&gt;
* 5x low side outputs&lt;br /&gt;
* 3x input pins (pull to ground only)&lt;br /&gt;
* 3x CANbus interfaces&lt;br /&gt;
* LIN bus&lt;br /&gt;
* sync serial interface&lt;br /&gt;
* OBD-II interface&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
==== Software: ====&lt;br /&gt;
&lt;br /&gt;
* Web based user interface&lt;br /&gt;
* Contactor control&lt;br /&gt;
* Charger control&lt;br /&gt;
* Charge timer&lt;br /&gt;
* Motor (inverter) control&lt;br /&gt;
* Heater control&lt;br /&gt;
* Water pump control&lt;br /&gt;
* Coolant fan control&lt;br /&gt;
* Throttle mapping&lt;br /&gt;
* Motor regen&lt;br /&gt;
* BMS limits&lt;br /&gt;
* IVT shunt initialization  &lt;br /&gt;
* Data logging and graphing&lt;br /&gt;
* etc.&lt;br /&gt;
=== Currently supported OEM hardware: ===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;This list is always growing and changing, and not everything is verified working &lt;br /&gt;
&lt;br /&gt;
==== Motors/Drive units: ====&lt;br /&gt;
&lt;br /&gt;
* [[Nissan leaf motors|Nissan Leaf Gen1/2/3 inverter/motor via CAN]] (180V minmum voltage)&lt;br /&gt;
* [[Lexus GS450h Drivetrain|Lexus GS450h inverter / L110 gearbox via sync serial]]&lt;br /&gt;
* Lexus GS300h inverter / L210 gearbox via sync serial&lt;br /&gt;
* Toyota Prius/Yaris/Auris Gen 3 inverters via sync serial&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Mitsubishi|Mitsubishi Outlander motors/inverter]]&lt;br /&gt;
* openinverter controller&lt;br /&gt;
&lt;br /&gt;
==== Chargers/DCDCs: ====&lt;br /&gt;
* [[Nissan leaf pdm|Nissan Leaf PDM (Charger and DCDC)]] Gen1,2 &amp;amp; 3&lt;br /&gt;
* [[Mitsubishi Outlander DCDC OBC|Mitsubishi Outlander OBC (charger/DCDC)]]&lt;br /&gt;
* [[Tesla Model S/X DC/DC Converter|tesla model S dcdc]]&lt;br /&gt;
* [[BMW I3 Fast Charging LIM Module|CCS DC fast charge via BMW i3 LIM]] - type 2 + type 1&lt;br /&gt;
* [[Chademo with Zombieverter|Chademo DC fast charging]]&lt;br /&gt;
* [[Foccci|Foccci CCS faster charger controller]]&lt;br /&gt;
* [https://citini.com/product/evs-charge-port-controller/ EVS-Charge Port Controller]&lt;br /&gt;
* Elcon charger&lt;br /&gt;
&lt;br /&gt;
==== Heaters: ====&lt;br /&gt;
*[[Volkswagen Heater|VAG/VW PTC water heater via LIN bus]]&lt;br /&gt;
*[[VAG PTC Air Heater|VAG/VW cabin heater via LIN bus]]&lt;br /&gt;
&lt;br /&gt;
* [[Chevrolet Volt Water Heater|Opel Ampera / Chevy Volt 6.5kW cabin heater]]&lt;br /&gt;
* [[Mitsubishi Outlander Water Heater|Mitsubishi outlander hybrid water heater]]&lt;br /&gt;
&lt;br /&gt;
==== BMS: ====&lt;br /&gt;
* [[Nissan Leaf BMS|Nissan leaf ZE1 BMS]] /battery pack&lt;br /&gt;
* [[Renault Kangoo 36|kangoo bms]]&lt;br /&gt;
*orion bms&lt;br /&gt;
*[https://github.com/Tom-evnut/SimpBMS SimpBMS]&lt;br /&gt;
*[[Isabellenhütte Heusler|ISA shunt]]&lt;br /&gt;
*[[BMW Hybrid Battery Pack#S-Box|BMW SBOX]]&lt;br /&gt;
*VW EBOX&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Integration (for CANbus control of dash, etc.): ====&lt;br /&gt;
* 1998-2005 BMW 3-series (E46) CAN support&lt;br /&gt;
* 1996-2003 BMW 5-series (E39) CAN support&lt;br /&gt;
* 2001-2008 BMW 7-series (E65) CAN Support&lt;br /&gt;
* BMW E9x CAN support&lt;br /&gt;
* Mid-2000s VAG CAN support&lt;br /&gt;
* Subaru CAN support&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://openinverter.org/forum/viewtopic.php?f=3&amp;amp;t=1277 Development thread]&lt;br /&gt;
* Purchasing:&lt;br /&gt;
** [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombieverter-vcu-built Fully-built VCU boards]&lt;br /&gt;
** [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombie-vcu Partially-built VCU boards]&lt;br /&gt;
* [https://github.com/damienmaguire/Stm32-vcu GitHub repo]&lt;br /&gt;
** Hardware: [https://github.com/damienmaguire/Stm32-vcu/tree/master/Hardware/Zombie ZombieVerter V1]*&lt;br /&gt;
** Software: [https://github.com/damienmaguire/Stm32-vcu/releases latest stable software release]&lt;br /&gt;
*[[pre-wired zombie wiring interface]]&lt;br /&gt;
*[[ZombieVerter Timing Diagrams]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; &#039;&#039;&#039;IMPORTANT NOTE: only design files for PCB V1 are publicly available on GitHub, design files for the latest PCB release (V1.a) are only available through [https://www.patreon.com/c/evbmw/posts Damien Maguire&#039;s Patreon] and require membership at the Design Files tier or higher.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Assembling the VCU ==&lt;br /&gt;
Looking to build a ZombieVerter VCU yourself or the kit is missing hardware? &lt;br /&gt;
&lt;br /&gt;
* [[Zombiverter hardware]] page for additional build instructions&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/damienmaguire/Stm32-vcu Github with PCB, schematic, pin-outs, etc]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The enclosure and header are required if you did not order a [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombieverter-vcu-built &#039;&#039;&#039;fully built board&#039;&#039;&#039;]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VCU boards from the webshop, &#039;&#039;&#039;&#039;&#039;come pre-programmed&#039;&#039;&#039;&#039;&#039; and &#039;&#039;&#039;do not require any additional steps taken to work&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
For programming a blank board see: [[zombieverter programing|ZombieVerter programming]]&lt;br /&gt;
===The enclosure kit options:===&lt;br /&gt;
&lt;br /&gt;
# [https://www.aliexpress.com/item/32857771975.html?spm=a2g0s.9042311.0.0.39f24c4dWOmGPE Enclosure Kit with Header, connector and pins]&amp;lt;ref&amp;gt;https://www.aliexpress.com/item/32857771975.html?spm=a2g0s.9042311.0.0.39f24c4dWOmGPE (Backup: [https://web.archive.org/web/20220524004318/https://www.aliexpress.com/item/32857771975.html Web Archive])&amp;lt;/ref&amp;gt; &lt;br /&gt;
#[https://www.aliexpress.com/item/32822692950.html Connector and pins]&amp;lt;ref&amp;gt;https://de.aliexpress.com/item/32822692950.html (Backup: [https://web.archive.org/web/20221119203700/https://www.aliexpress.us/item/2251832636378198.html?gatewayAdapt=glo2usa4itemAdapt&amp;amp;_randl_shipto=US Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
#[https://www.aliexpress.com/item/1005003512474442.html Pre-wired connector]  &amp;lt;ref&amp;gt;https://www.aliexpress.com/item/1005003512474442.html (Backup: [http://web.archive.org/web/20221120105651/https://www.aliexpress.us/item/3256803326159690.html?gatewayAdapt=glo2usa4itemAdapt&amp;amp;_randl_shipto=US Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The original connectors are from Aptiv (Delphi):&lt;br /&gt;
&lt;br /&gt;
* [https://www.aptiv.com/en/solutions/connection-systems/catalog/item?id=13669859_en Aptiv 56-pin connector]&lt;br /&gt;
* [https://www.aptiv.com/en/solutions/connection-systems/catalog/item?id=33511394_en Aptiv 56-pin header]&lt;br /&gt;
* [https://www.tti.com/content/ttiinc/en/apps/part-detail.html?partsNumber=210S048&amp;amp;mfgShortname=FCA&amp;amp;productId=161404611 Removal tool for connector terminals: Manufacturer: Aptiv (formerly Delphi)]  Part Number: 210S048&lt;br /&gt;
=== Videos on assembly, powering up, updating, etc: ===&lt;br /&gt;
https://www.youtube.com/watch?v=geZuIbGHh30&amp;amp;list=PLh-aHjjWGgLVCsAqaCL6_jmn_QqhVlRiG&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=_JRa_uFyVkY&amp;amp;list=PLh-aHjjWGgLUWaetAmShkv6gmvk7vLaHd&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
[[File:ZombieVerter VCU V1 cable side pinout2.jpg|thumb|alt=|VCU pinout diagram |513x513px]]Each device requires different wiring setups, settings and power requirements. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;cross referencing OEM wiring diagrams is highly recommended &lt;br /&gt;
&lt;br /&gt;
=== Vehicle-specific configurations ===&lt;br /&gt;
* [[GS450H with zombieverter|GS450H with ZombieVerter]]&lt;br /&gt;
* [[Leaf stack with zombiverter|Leaf stack with ZombiVerter]]&lt;br /&gt;
* [[Tesla SDU with Zombieverter|Tesla SDU with ZombieVerter]]&lt;br /&gt;
* [[Chademo with Zombieverter]]&lt;br /&gt;
&lt;br /&gt;
=== Power wiring ===&lt;br /&gt;
The ZombieVerter requires a permanent 12V supply. This is so it can manage charging, timers, and monitor systems when the car is at rest.  &lt;br /&gt;
&lt;br /&gt;
The average power draw, at idle, is 150 mA. &lt;br /&gt;
&lt;br /&gt;
* Pin 55 to 12V- ground&lt;br /&gt;
* Pin 56 to 12V+ positive&lt;br /&gt;
&lt;br /&gt;
The ZombieVerter controls power/&amp;quot;ignition&amp;quot; signals to other devices (inverters, chargers, and DCDC converters), powering those devices when required. This is done by triggering an external 12V relay. &#039;&#039;&#039;&#039;&#039;ZombieVerter controls the external relay using low-side switching&#039;&#039;, meaning that it pulls the ground pin of the relay to ground.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[File:Gernice-zombie.png|thumb|583x583px|general zombie and battery box wiring]]Pin 32 to ground pin on a 12V relay&lt;br /&gt;
* Relay positive pin to 12V+&lt;br /&gt;
* One of the relays switch pin to 12V+&lt;br /&gt;
&lt;br /&gt;
This effectively provides a switched 12V supply, controlled by the ZombieVerter.  &lt;br /&gt;
&lt;br /&gt;
Used to switch &amp;quot;enable&amp;quot; mode to devices via: &lt;br /&gt;
&lt;br /&gt;
* Leaf inverter enable pin&lt;br /&gt;
* Leaf PDM enable pin&lt;br /&gt;
* Mitsubisihi OBC enable pin&lt;br /&gt;
&lt;br /&gt;
=== Contactor wiring ===&lt;br /&gt;
The Zombieveter manages the Negative, Positive and PreCharge contactors in an EV conversion.&lt;br /&gt;
&lt;br /&gt;
This is done based off a series of voltage measurements (UDC), this voltage value (UDC) can be supplied from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* ISA IVT shunt&lt;br /&gt;
* Nissan leaf inverter&lt;br /&gt;
* BMW S-BOX&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Without a proper UDC measurement, the ZombieVerter &#039;&#039;&#039;will fail precharge and never go into run mode.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note the ISA Shunt requires permanent power as it continuously monitors UDC and reports this to the Zombieverter. If powered on with ignition for example, previous UDC readings can affect pre-charge operation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The contactor control pins on the ZombieVerter are &#039;&#039;low-side switching&#039;&#039;, meaning that they pull to ground.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The positive leads from the contactors need to be connected to 12V+ and the ground leads to:&lt;br /&gt;
&lt;br /&gt;
* Pin 31 for the negative contactor&lt;br /&gt;
* Pin 33 for the positive contactor&lt;br /&gt;
* Pin 34 for the pre-charge contactor&lt;br /&gt;
=== Throttle pedal wiring ===&lt;br /&gt;
The ZombieVerter supports dual-channel throttle. This redundancy is for safety in case one channel fails or drops out. It&#039;s highly recommended to use dual-channel throttle. Single-channel is an option.&lt;br /&gt;
&lt;br /&gt;
Connect the following to the ZombieVerter pins:&lt;br /&gt;
&lt;br /&gt;
* Pin 45 to throttle grounds&lt;br /&gt;
* Pin 46 to throttle channel 2&lt;br /&gt;
* Pin 47 to throttle channel 1&lt;br /&gt;
* Pin 48 to throttle positives&lt;br /&gt;
&lt;br /&gt;
=== Start, Run, and Direction wiring ===&lt;br /&gt;
The ZombieVerter requires 2 inputs to get into &amp;quot;drive&amp;quot; mode. &#039;&#039;&#039;These pins need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* Pin 15 to &amp;quot;on&amp;quot; switched input (key switched to &amp;quot;on&amp;quot;)&lt;br /&gt;
* Pin 52 to &amp;quot;start&amp;quot; momentary input  (momentary key switched &amp;quot;ignition&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==== Forward and Reverse ====&lt;br /&gt;
These pins need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +) &lt;br /&gt;
&lt;br /&gt;
* Pin 53 reverse&lt;br /&gt;
* Pin 54 forward&lt;br /&gt;
&lt;br /&gt;
==== Brake signal ====&lt;br /&gt;
&lt;br /&gt;
* Pin 49 need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +) when brake is pressed&lt;br /&gt;
&lt;br /&gt;
=== Input/output pins ===&lt;br /&gt;
The ZombieVerter has a number of selectable input/output pins that can be used for a number of functions. These pins are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Low side Outputs.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*GP Out 3&lt;br /&gt;
*GP Out 2&lt;br /&gt;
* Neg Contactor switch/GP Out 1&lt;br /&gt;
*Trans SL1- (If not using the GS450H)&lt;br /&gt;
*Trans SL2- (If not using the GS450H)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*Low side output connect to ground when activated.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The low side outputs in Zombie are ideal for switching relays, such as for coolant pumps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;High side PWM.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*PWM 3&lt;br /&gt;
*PWM 2&lt;br /&gt;
*PWM 1&lt;br /&gt;
*Pump PWM - Limited to GS450 Oil pump pwm or tacho pwm output&lt;br /&gt;
&lt;br /&gt;
These are high side 12V outputs, usually for controlling gauges or auxiliary items than need a pwm signals. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*not suitable for controlling relays.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Ground Input pins&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These pins pull down to ground only. &#039;&#039;&#039;Do not connect any voltage to these pins.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PB1&lt;br /&gt;
&lt;br /&gt;
PB2&lt;br /&gt;
&lt;br /&gt;
PB3&lt;br /&gt;
&lt;br /&gt;
=== Pin functions: ===&lt;br /&gt;
&#039;&#039;Note: While the web interface will allow you to select input pins or output pins, some will not actually work.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;example: a input switch wired but set to negContactor&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Pin&lt;br /&gt;
!IN/OUT/PWM&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|ChaDemoAIw&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when Chademo charger handshake initiates&lt;br /&gt;
|-&lt;br /&gt;
|OBCEnable&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates as part of the ExtCharger module&lt;br /&gt;
|-&lt;br /&gt;
|HeaterEnable&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates only in run mode and when coolant pump is on*&lt;br /&gt;
|-&lt;br /&gt;
|RunIndication&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when zombie is in run mode&lt;br /&gt;
|-&lt;br /&gt;
|WarnIndication&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when a error occurs with the ZombieVerter&lt;br /&gt;
|-&lt;br /&gt;
|CoolantPump&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates during precharge, usually used for coolant pumps&lt;br /&gt;
|-&lt;br /&gt;
|NegContactor&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when the negative contactor needs to be closed. ie precharge, run, charge mode, etc&lt;br /&gt;
|-&lt;br /&gt;
|BrakeLight&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when a set brake light on threshold value is met&lt;br /&gt;
|-&lt;br /&gt;
|ReverseLight&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when reverse direction is selected&lt;br /&gt;
|-&lt;br /&gt;
|CoolingFan&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when FanTemp setpoint is reached&lt;br /&gt;
|-&lt;br /&gt;
|HVActive&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when contactors are closed and VCU is in run or charge mode&lt;br /&gt;
|-&lt;br /&gt;
|BrakeVacPump&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when BrakeVacSensor threshold value is met&lt;br /&gt;
|-&lt;br /&gt;
|CpSpoof&lt;br /&gt;
|&#039;&#039;&#039;PWM OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|used to spoof CP signal to OBC when using a charging interface such as FOCCCI or I3LIM&lt;br /&gt;
|-&lt;br /&gt;
|GS450Hpump&lt;br /&gt;
|&#039;&#039;&#039;PWM OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|used to run GS450H oil pump&lt;br /&gt;
|-&lt;br /&gt;
|HeatReq&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HVRequest&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|NOT FUNCTIONING&lt;br /&gt;
|-&lt;br /&gt;
|DCFCRequest&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|Chademo Charge Interface enable contactors to charge&lt;br /&gt;
|-&lt;br /&gt;
|ProxPilot&lt;br /&gt;
|&#039;&#039;&#039;ANALOGUE INPUT&#039;&#039;&#039;&lt;br /&gt;
|detects when charge cable is plugged in&lt;br /&gt;
|-&lt;br /&gt;
|BrakeVacSensor&lt;br /&gt;
|&#039;&#039;&#039;ANALOGUE INPUT&#039;&#039;&#039;&lt;br /&gt;
|vacuum sensor input, use for triggering BrakeVacPump &#039;&#039;&#039;DIGITAL OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|PWMTim3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Proximity Pilot====&lt;br /&gt;
for proximity pilot spoofing for devices like the outlander OBC, (the leaf stack dose no require this as the charge port interface is dealt with the pdm internally), the zombie needs to detect is a plug has been inserted into the j1772 port to go into charge mod. a pull up resistor is used to interface into one of the zombieverters analogue pins in the diagram below: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This analogue input used to detect a charging cable is plugged in.&lt;br /&gt;
[[File:ZombiePP.png|none|thumb]]&lt;br /&gt;
A resistor to the 5v needs to be connected to the analogue in pin, 330 ohms in the spec, and R5 needs to be another resistor between analogue in pin and ground. Type 1 connectors should be a 2.7k ohm resistor and type 2 should be 4.7k ohm. Note the charging port may already have this resistor installed.&lt;br /&gt;
&lt;br /&gt;
Open up the Zombie UI and choose ProxPilot for the function of the analogue in pin. Then start plotting PPVal and then plug in, set the PPthreshold to a value higher than ppval is when a evse is pluged in. Bare in mind the resistance will vary on the cable plugged in depending on the Amps it can supply.&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/U3c4V8vMb6k?t=351 &amp;lt;br /&amp;gt;Video explaining the setup and demonstration.]&lt;br /&gt;
&lt;br /&gt;
== Initial start-up and testing ==&lt;br /&gt;
&lt;br /&gt;
=== Powering up and connecting to the web interface ===&lt;br /&gt;
&#039;&#039;&#039;The following is required&#039;&#039;&#039;&lt;br /&gt;
# A fully built ZombieVerter VCU&lt;br /&gt;
# Two wires for power&lt;br /&gt;
# 12V power supply&lt;br /&gt;
# Computer/tablet for accessing the web interface&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to access the web interface&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Provide stable 12V power to pins 55, 56 on the ZombieVerter&lt;br /&gt;
# The on-board LED light &amp;quot;acty&amp;quot; should be now flashing&lt;br /&gt;
# Using your computer, connect to the ZombieVerters WIFI access point.  &#039;&#039;&#039;SSID: &amp;quot;inverter&amp;quot; or &amp;quot;zom_vcu&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
# &#039;&#039;&#039;Password is: inverter123&#039;&#039;&#039;&lt;br /&gt;
# In a web browser navigate to: &#039;&#039;&#039;192.168.4.1&#039;&#039;&#039;&lt;br /&gt;
# The openinverter web interface should now load!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Recent units have a new WiFi module that isn&#039;t automatically assigning an IP via DHCP. See [https://openinverter.org/forum/viewtopic.php?f=5&amp;amp;t=2001 this thread] for details, and if you can help resolve the issue. Until then, you need to manually assign an IP of 192.168.4.2 (anything other than 192.168.4.1 on the 192.168.4.0/24 subnet) to your device.&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;work in progress*&lt;br /&gt;
&lt;br /&gt;
[[Zombieverter Parameters and Spot Values|full list and overview of ZombieVerter Parameters and Spot Values]]&lt;br /&gt;
&lt;br /&gt;
==== Basic parameters and spot values ====&lt;br /&gt;
&lt;br /&gt;
==== Throttle ====&lt;br /&gt;
You should see values &#039;&#039;&#039;pot&#039;&#039;&#039; change as the pedal is pressed.  &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;potmin&#039;&#039;&#039; should be set just above where your off-throttle position is&lt;br /&gt;
* &#039;&#039;&#039;potmax&#039;&#039;&#039; just below the value seen at maximum travel &lt;br /&gt;
* Same for &#039;&#039;&#039;pot2min&#039;&#039;&#039; and &#039;&#039;&#039;pot2max&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The resulting in a  0-100 &#039;&#039;&#039;potnom&#039;&#039;&#039; value.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;throtmin&#039;&#039;&#039; is the minimum (most negative) allowed &#039;&#039;&#039;&#039;&#039;potnom&#039;&#039;&#039;&#039;&#039; at all times&lt;br /&gt;
* &#039;&#039;&#039;throtmax&#039;&#039;&#039; is the maximum (most positive) allowed &#039;&#039;&#039;&#039;&#039;potnom&#039;&#039;&#039;&#039;&#039; request in forward&lt;br /&gt;
* &#039;&#039;&#039;throtramp&#039;&#039;&#039; is how much &#039;&#039;&#039;potnom&#039;&#039;&#039; ramps up with the pedal pushed (&#039;&#039;&#039;potnom&#039;&#039;&#039; change per %/10ms)&lt;br /&gt;
* &#039;&#039;&#039;throtramprpm&#039;&#039;&#039; stops applying &#039;&#039;&#039;throtramp&#039;&#039;&#039; above a set motor rpm&lt;br /&gt;
* &#039;&#039;&#039;revlim&#039;&#039;&#039; is a rev limiter &lt;br /&gt;
&lt;br /&gt;
==== Contactors ====&lt;br /&gt;
A set HV battery voltage value is required to run the precharge and main contactors. &lt;br /&gt;
&lt;br /&gt;
The voltage is measured using the UDC value. which is supplied from the &#039;&#039;&#039;shuntType:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ISA&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SBOX&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;VAG&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;LEAF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
these voltage(UDC) levels are set with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;udcmin&#039;&#039;&#039; is the minimum battery voltage derate&lt;br /&gt;
* &#039;&#039;&#039;udclim&#039;&#039;&#039; is maximum battery voltage derate&lt;br /&gt;
* &#039;&#039;&#039;udcsw&#039;&#039;&#039; is Voltage point at which precharge is considered finished, and the main contactor will close.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Forward/Reverse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
input options:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;switch&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;button&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;switchReversed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;buttomReversed&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Inverter ====&lt;br /&gt;
&#039;&#039;work in progress&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Charger ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;work in progress&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Input Values ====&lt;br /&gt;
Check that din_break does not show &amp;quot;on&amp;quot;, it must be off to allow potnom to be shown.&lt;br /&gt;
----&lt;br /&gt;
* Apply the &#039;&#039;&#039;Start&#039;&#039;&#039; 12V signal for a short time.  The pre-charge relay should turn on, and the voltage available at the inverter and the U1 input of the ISA shunt should quickly rise. If the &#039;&#039;&#039;udc&#039;&#039;&#039; reading goes above &#039;&#039;&#039;udcsw&#039;&#039;&#039; within 5 seconds then the main contactor(s) should close. If all is well, &#039;&#039;&#039;invstat&#039;&#039;&#039; should now be &amp;quot;on&amp;quot;, &#039;&#039;&#039;opmode&#039;&#039;&#039; should be &amp;quot;run&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If you do not see a good value at udc, it may be that your external shunt is not connected properly or is not initialised.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If you do not see a good value at Invudc, it may be that the inverter is not powered, or the communication signals are not correctly wired.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;if the status stays at &amp;quot;PRECHARGE&amp;quot; then you possibly didn&#039;t hold the start signal on for long enough!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Timing Diagrams ==&lt;br /&gt;
Shown below are some simple ZombieVerter scenarios as timing diagrams.&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Start.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Stop.svg|none|thumb|800x800px|Timing diagram showing ZombieVerter successfully moving from RUN to OFF mode.]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
[[File:Zombie Timing PreChargeFail.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Errors, Common issues ==&lt;br /&gt;
&lt;br /&gt;
==== Input Values: ====&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;din_break&amp;quot; does not show &amp;quot;on&amp;quot;, it must be off to allow potnom to be shown.&lt;br /&gt;
** check wiring setup&lt;br /&gt;
* UDC value updates during precharge.&lt;br /&gt;
** check that your UDC value source is configured correctly (shunt type, proper can bus, ect)&lt;br /&gt;
** check your contactor wiring. &lt;br /&gt;
*** some contactors are polarity sensitive &lt;br /&gt;
*** are they wired to be low side switched? &lt;br /&gt;
* check can H/ can L wiring&lt;br /&gt;
* is there too many devices sharing one can bus? (possible can id collision) &lt;br /&gt;
* check inverter power relay wiring&lt;br /&gt;
** is the inverter/charger/bms &amp;quot;ignition&amp;quot;/ &amp;quot;enable&amp;quot; pin driven via a zombie controlled relay?&lt;br /&gt;
** is the relay firing during preacharge?&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
VCU boards from the webshop, &#039;&#039;&#039;&#039;&#039;come pre-programed&#039;&#039;&#039;&#039;&#039; and &#039;&#039;&#039;do not require any additional septs taken to work&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
For programming a blank board see: [[zombiverter programing|ZombiVerter programing]]&lt;br /&gt;
&lt;br /&gt;
For re-flashing a bricked board refer to the Troubleshooting section below.&lt;br /&gt;
&lt;br /&gt;
For an overview of the software architecture see: [[ZombieVerter Software Overview]]&lt;br /&gt;
==== Initializing an ISA Shunt: ====&lt;br /&gt;
&lt;br /&gt;
# Wire the ISA shunt to 12V+ and canbus input.&lt;br /&gt;
# Under shunt can in the web interface, select the canbus the shunt is connected to&lt;br /&gt;
# Hit save parameters to flash.&lt;br /&gt;
# Under Comms in the web interface, select ISAMode option. By default its set to &amp;quot;Normal&amp;quot; (Off)&lt;br /&gt;
# Select &amp;quot;Init&amp;quot;&lt;br /&gt;
# Hit save parameters to flash&lt;br /&gt;
# Power cycle the vcu and shunt at same time (they should be on same 12V feed anyway).&lt;br /&gt;
# The shunt will initialize.&lt;br /&gt;
# Select ISAMode &amp;quot;normal&amp;quot;&lt;br /&gt;
# Save to flash again&lt;br /&gt;
# Reboot the VCU&lt;br /&gt;
&lt;br /&gt;
The shunt should now be up and running.&lt;br /&gt;
&lt;br /&gt;
If the shunt doesn&#039;t initialize correctly, separate the shunt and VCU power supply, and power cycle the VCU two or three seconds after the shunt power is cycled. This has fixed an initialize issue for a number of ISA shunts.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
[[Zombieverter Parameters and Spot Values|page with ZombieVerter parameters and their value ranges, ZV pinmap etc.]]&lt;br /&gt;
&lt;br /&gt;
Source: https://www.youtube.com/watch?v=wjlucUWX_lc&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
===Serial Connection===&lt;br /&gt;
If you&#039;re having trouble connecting using the serial interface, note that the parameters are 115200 8-N-2, which is different from the conventional 115200 8-N-1.&lt;br /&gt;
&lt;br /&gt;
=== Recovering the ZombieVerter from a failed update ===&lt;br /&gt;
If the ZombieVerter fails in the middle of a software update and the Web User Interface is reporting &amp;quot;firmware: null&amp;quot; it&#039;s possible you&#039;ll need to re-flash the firmware, and bootloader via an STLink.&lt;br /&gt;
&lt;br /&gt;
I used a cheap STLink v2 clone without issue but it seems there is a mix of experiences with them.&lt;br /&gt;
&lt;br /&gt;
# Firstly, download the bootloader from [https://github.com/jsphuebner/tumanako-inverter-fw-bootloader/releases here] and latest ZombieVerter firmware from [https://github.com/damienmaguire/Stm32-vcu/releases/ here] as .hex files. This ensures you don&#039;t need to know the address of the file and avoids user error when flashing via STLink &lt;br /&gt;
# Download STMCubeProgrammer from [https://www.st.com/en/development-tools/stm32cubeprog.html#get-software here] (other STM flashing softwares are available but the following instructions are based on what has worked for me).&lt;br /&gt;
# Upgrade the firmware on your STLink dongle using STMCubeProgrammer. I&#039;m not sure if this is 100% necessary but seems prudent.&lt;br /&gt;
# Connect the Clock (SWclk), Gnd and Data (SWDio) of your STLink to the ZombieVerter test points. On the ZombieVerter Board, they are labelled C, G, D. &lt;br /&gt;
# Connect 12V and Gnd to the ZombieVerter main power pins and ensure your STMCubeprogrammer is able to connect to it. I also disconnected the wifi board just incase.&lt;br /&gt;
# Perform a &amp;quot;full chip erase&amp;quot;, then reflash the latest bootloader and firmware hex files.&lt;br /&gt;
# Remove your STLink from the ZombieVerter, connect the wifi board and check connectivity.&lt;br /&gt;
# Begin ZombieVerter-ing.&lt;br /&gt;
&lt;br /&gt;
=== ESP32 CanBus Web Interface ===&lt;br /&gt;
If the CanBus Web Interface is used it must be noted that the Node ID is hard coded to 3 (note Foccci default is 22)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:Inverter]] &lt;br /&gt;
[[Category:VCU]] &lt;br /&gt;
[[Category:ZombieVerter]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_VCU&amp;diff=6113</id>
		<title>ZombieVerter VCU</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_VCU&amp;diff=6113"/>
		<updated>2026-03-26T12:48:50Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: Added ZombieVerter timing diagrams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Zombie model.png|thumb|614x614px|ZombieVerter VCU board (NOTE: V1.2 is preproduction, V1.a is the current latest hardware revision)]]&lt;br /&gt;
==Introduction ==&lt;br /&gt;
&#039;&#039;&#039;An open-source EV conversion VCU (vehicle control unit) for controlling salvaged EV components!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Modern EV conversion projects often look to reuse salvaged parts from wrecked vehicles, such as the motors, batteries and chargers. &lt;br /&gt;
&lt;br /&gt;
The issue is that each of these components and manufacturers, use different methods of control and communication.  &lt;br /&gt;
&lt;br /&gt;
Developing controllers for these devices is complex, and time consuming and often require very dedicated communication protocols. Instead of making custom boards for every part that&#039;s been decoded, why not just make a general purpose VCU (vehicle control unit) with a verity of different types of inputs and outputs? &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Introducing: the &amp;quot;ZombieVerter&amp;quot; VCU - a general purpose EV conversion VCU.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With a large array of inputs/outputs, control logic, and a web interface for configuration and data logging. The ZombieVerter is a powerful, flexible and customizable VCU well suited for EV conversions.    &lt;br /&gt;
&lt;br /&gt;
It&#039;s also an open source project!    &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
==== Hardware: ====&lt;br /&gt;
&lt;br /&gt;
* On-board WiFi&lt;br /&gt;
* 3x high side PWM drivers&lt;br /&gt;
* 5x low side outputs&lt;br /&gt;
* 3x input pins (pull to ground only)&lt;br /&gt;
* 3x CANbus interfaces&lt;br /&gt;
* LIN bus&lt;br /&gt;
* sync serial interface&lt;br /&gt;
* OBD-II interface&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
==== Software: ====&lt;br /&gt;
&lt;br /&gt;
* Web based user interface&lt;br /&gt;
* Contactor control&lt;br /&gt;
* Charger control&lt;br /&gt;
* Charge timer&lt;br /&gt;
* Motor (inverter) control&lt;br /&gt;
* Heater control&lt;br /&gt;
* Water pump control&lt;br /&gt;
* Coolant fan control&lt;br /&gt;
* Throttle mapping&lt;br /&gt;
* Motor regen&lt;br /&gt;
* BMS limits&lt;br /&gt;
* IVT shunt initialization  &lt;br /&gt;
* Data logging and graphing&lt;br /&gt;
* etc.&lt;br /&gt;
=== Currently supported OEM hardware: ===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;This list is always growing and changing, and not everything is verified working &lt;br /&gt;
&lt;br /&gt;
==== Motors/Drive units: ====&lt;br /&gt;
&lt;br /&gt;
* [[Nissan leaf motors|Nissan Leaf Gen1/2/3 inverter/motor via CAN]] (180V minmum voltage)&lt;br /&gt;
* [[Lexus GS450h Drivetrain|Lexus GS450h inverter / L110 gearbox via sync serial]]&lt;br /&gt;
* Lexus GS300h inverter / L210 gearbox via sync serial&lt;br /&gt;
* Toyota Prius/Yaris/Auris Gen 3 inverters via sync serial&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Mitsubishi|Mitsubishi Outlander motors/inverter]]&lt;br /&gt;
* openinverter controller&lt;br /&gt;
&lt;br /&gt;
==== Chargers/DCDCs: ====&lt;br /&gt;
* [[Nissan leaf pdm|Nissan Leaf PDM (Charger and DCDC)]] Gen1,2 &amp;amp; 3&lt;br /&gt;
* [[Mitsubishi Outlander DCDC OBC|Mitsubishi Outlander OBC (charger/DCDC)]]&lt;br /&gt;
* [[Tesla Model S/X DC/DC Converter|tesla model S dcdc]]&lt;br /&gt;
* [[BMW I3 Fast Charging LIM Module|CCS DC fast charge via BMW i3 LIM]] - type 2 + type 1&lt;br /&gt;
* [[Chademo with Zombieverter|Chademo DC fast charging]]&lt;br /&gt;
* [[Foccci|Foccci CCS faster charger controller]]&lt;br /&gt;
* [https://citini.com/product/evs-charge-port-controller/ EVS-Charge Port Controller]&lt;br /&gt;
* Elcon charger&lt;br /&gt;
&lt;br /&gt;
==== Heaters: ====&lt;br /&gt;
*[[Volkswagen Heater|VAG/VW PTC water heater via LIN bus]]&lt;br /&gt;
*[[VAG PTC Air Heater|VAG/VW cabin heater via LIN bus]]&lt;br /&gt;
&lt;br /&gt;
* [[Chevrolet Volt Water Heater|Opel Ampera / Chevy Volt 6.5kW cabin heater]]&lt;br /&gt;
* [[Mitsubishi Outlander Water Heater|Mitsubishi outlander hybrid water heater]]&lt;br /&gt;
&lt;br /&gt;
==== BMS: ====&lt;br /&gt;
* [[Nissan Leaf BMS|Nissan leaf ZE1 BMS]] /battery pack&lt;br /&gt;
* [[Renault Kangoo 36|kangoo bms]]&lt;br /&gt;
*orion bms&lt;br /&gt;
*[https://github.com/Tom-evnut/SimpBMS SimpBMS]&lt;br /&gt;
*[[Isabellenhütte Heusler|ISA shunt]]&lt;br /&gt;
*[[BMW Hybrid Battery Pack#S-Box|BMW SBOX]]&lt;br /&gt;
*VW EBOX&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Integration (for CANbus control of dash, etc.): ====&lt;br /&gt;
* 1998-2005 BMW 3-series (E46) CAN support&lt;br /&gt;
* 1996-2003 BMW 5-series (E39) CAN support&lt;br /&gt;
* 2001-2008 BMW 7-series (E65) CAN Support&lt;br /&gt;
* BMW E9x CAN support&lt;br /&gt;
* Mid-2000s VAG CAN support&lt;br /&gt;
* Subaru CAN support&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://openinverter.org/forum/viewtopic.php?f=3&amp;amp;t=1277 Development thread]&lt;br /&gt;
* Purchasing:&lt;br /&gt;
** [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombieverter-vcu-built Fully-built VCU boards]&lt;br /&gt;
** [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombie-vcu Partially-built VCU boards]&lt;br /&gt;
* [https://github.com/damienmaguire/Stm32-vcu GitHub repo]&lt;br /&gt;
** Hardware: [https://github.com/damienmaguire/Stm32-vcu/tree/master/Hardware/Zombie ZombieVerter V1]*&lt;br /&gt;
** Software: [https://github.com/damienmaguire/Stm32-vcu/releases latest stable software release]&lt;br /&gt;
*[[pre-wired zombie wiring interface]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; &#039;&#039;&#039;IMPORTANT NOTE: only design files for PCB V1 are publicly available on GitHub, design files for the latest PCB release (V1.a) are only available through [https://www.patreon.com/c/evbmw/posts Damien Maguire&#039;s Patreon] and require membership at the Design Files tier or higher.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Assembling the VCU ==&lt;br /&gt;
Looking to build a ZombieVerter VCU yourself or the kit is missing hardware? &lt;br /&gt;
&lt;br /&gt;
* [[Zombiverter hardware]] page for additional build instructions&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/damienmaguire/Stm32-vcu Github with PCB, schematic, pin-outs, etc]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The enclosure and header are required if you did not order a [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombieverter-vcu-built &#039;&#039;&#039;fully built board&#039;&#039;&#039;]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VCU boards from the webshop, &#039;&#039;&#039;&#039;&#039;come pre-programmed&#039;&#039;&#039;&#039;&#039; and &#039;&#039;&#039;do not require any additional steps taken to work&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
For programming a blank board see: [[zombieverter programing|ZombieVerter programming]]&lt;br /&gt;
===The enclosure kit options:===&lt;br /&gt;
&lt;br /&gt;
# [https://www.aliexpress.com/item/32857771975.html?spm=a2g0s.9042311.0.0.39f24c4dWOmGPE Enclosure Kit with Header, connector and pins]&amp;lt;ref&amp;gt;https://www.aliexpress.com/item/32857771975.html?spm=a2g0s.9042311.0.0.39f24c4dWOmGPE (Backup: [https://web.archive.org/web/20220524004318/https://www.aliexpress.com/item/32857771975.html Web Archive])&amp;lt;/ref&amp;gt; &lt;br /&gt;
#[https://www.aliexpress.com/item/32822692950.html Connector and pins]&amp;lt;ref&amp;gt;https://de.aliexpress.com/item/32822692950.html (Backup: [https://web.archive.org/web/20221119203700/https://www.aliexpress.us/item/2251832636378198.html?gatewayAdapt=glo2usa4itemAdapt&amp;amp;_randl_shipto=US Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
#[https://www.aliexpress.com/item/1005003512474442.html Pre-wired connector]  &amp;lt;ref&amp;gt;https://www.aliexpress.com/item/1005003512474442.html (Backup: [http://web.archive.org/web/20221120105651/https://www.aliexpress.us/item/3256803326159690.html?gatewayAdapt=glo2usa4itemAdapt&amp;amp;_randl_shipto=US Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The original connectors are from Aptiv (Delphi):&lt;br /&gt;
&lt;br /&gt;
* [https://www.aptiv.com/en/solutions/connection-systems/catalog/item?id=13669859_en Aptiv 56-pin connector]&lt;br /&gt;
* [https://www.aptiv.com/en/solutions/connection-systems/catalog/item?id=33511394_en Aptiv 56-pin header]&lt;br /&gt;
* [https://www.tti.com/content/ttiinc/en/apps/part-detail.html?partsNumber=210S048&amp;amp;mfgShortname=FCA&amp;amp;productId=161404611 Removal tool for connector terminals: Manufacturer: Aptiv (formerly Delphi)]  Part Number: 210S048&lt;br /&gt;
=== Videos on assembly, powering up, updating, etc: ===&lt;br /&gt;
https://www.youtube.com/watch?v=geZuIbGHh30&amp;amp;list=PLh-aHjjWGgLVCsAqaCL6_jmn_QqhVlRiG&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=_JRa_uFyVkY&amp;amp;list=PLh-aHjjWGgLUWaetAmShkv6gmvk7vLaHd&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
[[File:ZombieVerter VCU V1 cable side pinout2.jpg|thumb|alt=|VCU pinout diagram |513x513px]]Each device requires different wiring setups, settings and power requirements. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;cross referencing OEM wiring diagrams is highly recommended &lt;br /&gt;
&lt;br /&gt;
=== Vehicle-specific configurations ===&lt;br /&gt;
* [[GS450H with zombieverter|GS450H with ZombieVerter]]&lt;br /&gt;
* [[Leaf stack with zombiverter|Leaf stack with ZombiVerter]]&lt;br /&gt;
* [[Tesla SDU with Zombieverter|Tesla SDU with ZombieVerter]]&lt;br /&gt;
* [[Chademo with Zombieverter]]&lt;br /&gt;
&lt;br /&gt;
=== Power wiring ===&lt;br /&gt;
The ZombieVerter requires a permanent 12V supply. This is so it can manage charging, timers, and monitor systems when the car is at rest.  &lt;br /&gt;
&lt;br /&gt;
The average power draw, at idle, is 150 mA. &lt;br /&gt;
&lt;br /&gt;
* Pin 55 to 12V- ground&lt;br /&gt;
* Pin 56 to 12V+ positive&lt;br /&gt;
&lt;br /&gt;
The ZombieVerter controls power/&amp;quot;ignition&amp;quot; signals to other devices (inverters, chargers, and DCDC converters), powering those devices when required. This is done by triggering an external 12V relay. &#039;&#039;&#039;&#039;&#039;ZombieVerter controls the external relay using low-side switching&#039;&#039;, meaning that it pulls the ground pin of the relay to ground.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[File:Gernice-zombie.png|thumb|583x583px|general zombie and battery box wiring]]Pin 32 to ground pin on a 12V relay&lt;br /&gt;
* Relay positive pin to 12V+&lt;br /&gt;
* One of the relays switch pin to 12V+&lt;br /&gt;
&lt;br /&gt;
This effectively provides a switched 12V supply, controlled by the ZombieVerter.  &lt;br /&gt;
&lt;br /&gt;
Used to switch &amp;quot;enable&amp;quot; mode to devices via: &lt;br /&gt;
&lt;br /&gt;
* Leaf inverter enable pin&lt;br /&gt;
* Leaf PDM enable pin&lt;br /&gt;
* Mitsubisihi OBC enable pin&lt;br /&gt;
&lt;br /&gt;
=== Contactor wiring ===&lt;br /&gt;
The Zombieveter manages the Negative, Positive and PreCharge contactors in an EV conversion.&lt;br /&gt;
&lt;br /&gt;
This is done based off a series of voltage measurements (UDC), this voltage value (UDC) can be supplied from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* ISA IVT shunt&lt;br /&gt;
* Nissan leaf inverter&lt;br /&gt;
* BMW S-BOX&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Without a proper UDC measurement, the ZombieVerter &#039;&#039;&#039;will fail precharge and never go into run mode.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note the ISA Shunt requires permanent power as it continuously monitors UDC and reports this to the Zombieverter. If powered on with ignition for example, previous UDC readings can affect pre-charge operation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The contactor control pins on the ZombieVerter are &#039;&#039;low-side switching&#039;&#039;, meaning that they pull to ground.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The positive leads from the contactors need to be connected to 12V+ and the ground leads to:&lt;br /&gt;
&lt;br /&gt;
* Pin 31 for the negative contactor&lt;br /&gt;
* Pin 33 for the positive contactor&lt;br /&gt;
* Pin 34 for the pre-charge contactor&lt;br /&gt;
=== Throttle pedal wiring ===&lt;br /&gt;
The ZombieVerter supports dual-channel throttle. This redundancy is for safety in case one channel fails or drops out. It&#039;s highly recommended to use dual-channel throttle. Single-channel is an option.&lt;br /&gt;
&lt;br /&gt;
Connect the following to the ZombieVerter pins:&lt;br /&gt;
&lt;br /&gt;
* Pin 45 to throttle grounds&lt;br /&gt;
* Pin 46 to throttle channel 2&lt;br /&gt;
* Pin 47 to throttle channel 1&lt;br /&gt;
* Pin 48 to throttle positives&lt;br /&gt;
&lt;br /&gt;
=== Start, Run, and Direction wiring ===&lt;br /&gt;
The ZombieVerter requires 2 inputs to get into &amp;quot;drive&amp;quot; mode. &#039;&#039;&#039;These pins need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* Pin 15 to &amp;quot;on&amp;quot; switched input (key switched to &amp;quot;on&amp;quot;)&lt;br /&gt;
* Pin 52 to &amp;quot;start&amp;quot; momentary input  (momentary key switched &amp;quot;ignition&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==== Forward and Reverse ====&lt;br /&gt;
These pins need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +) &lt;br /&gt;
&lt;br /&gt;
* Pin 53 reverse&lt;br /&gt;
* Pin 54 forward&lt;br /&gt;
&lt;br /&gt;
==== Brake signal ====&lt;br /&gt;
&lt;br /&gt;
* Pin 49 need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +) when brake is pressed&lt;br /&gt;
&lt;br /&gt;
=== Input/output pins ===&lt;br /&gt;
The ZombieVerter has a number of selectable input/output pins that can be used for a number of functions. These pins are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Low side Outputs.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*GP Out 3&lt;br /&gt;
*GP Out 2&lt;br /&gt;
* Neg Contactor switch/GP Out 1&lt;br /&gt;
*Trans SL1- (If not using the GS450H)&lt;br /&gt;
*Trans SL2- (If not using the GS450H)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*Low side output connect to ground when activated.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The low side outputs in Zombie are ideal for switching relays, such as for coolant pumps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;High side PWM.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*PWM 3&lt;br /&gt;
*PWM 2&lt;br /&gt;
*PWM 1&lt;br /&gt;
*Pump PWM - Limited to GS450 Oil pump pwm or tacho pwm output&lt;br /&gt;
&lt;br /&gt;
These are high side 12V outputs, usually for controlling gauges or auxiliary items than need a pwm signals. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*not suitable for controlling relays.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Ground Input pins&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These pins pull down to ground only. &#039;&#039;&#039;Do not connect any voltage to these pins.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PB1&lt;br /&gt;
&lt;br /&gt;
PB2&lt;br /&gt;
&lt;br /&gt;
PB3&lt;br /&gt;
&lt;br /&gt;
=== Pin functions: ===&lt;br /&gt;
&#039;&#039;Note: While the web interface will allow you to select input pins or output pins, some will not actually work.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;example: a input switch wired but set to negContactor&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Pin&lt;br /&gt;
!IN/OUT/PWM&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|ChaDemoAIw&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when Chademo charger handshake initiates&lt;br /&gt;
|-&lt;br /&gt;
|OBCEnable&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates as part of the ExtCharger module&lt;br /&gt;
|-&lt;br /&gt;
|HeaterEnable&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates only in run mode and when coolant pump is on*&lt;br /&gt;
|-&lt;br /&gt;
|RunIndication&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when zombie is in run mode&lt;br /&gt;
|-&lt;br /&gt;
|WarnIndication&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when a error occurs with the ZombieVerter&lt;br /&gt;
|-&lt;br /&gt;
|CoolantPump&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates during precharge, usually used for coolant pumps&lt;br /&gt;
|-&lt;br /&gt;
|NegContactor&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when the negative contactor needs to be closed. ie precharge, run, charge mode, etc&lt;br /&gt;
|-&lt;br /&gt;
|BrakeLight&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when a set brake light on threshold value is met&lt;br /&gt;
|-&lt;br /&gt;
|ReverseLight&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when reverse direction is selected&lt;br /&gt;
|-&lt;br /&gt;
|CoolingFan&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when FanTemp setpoint is reached&lt;br /&gt;
|-&lt;br /&gt;
|HVActive&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when contactors are closed and VCU is in run or charge mode&lt;br /&gt;
|-&lt;br /&gt;
|BrakeVacPump&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when BrakeVacSensor threshold value is met&lt;br /&gt;
|-&lt;br /&gt;
|CpSpoof&lt;br /&gt;
|&#039;&#039;&#039;PWM OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|used to spoof CP signal to OBC when using a charging interface such as FOCCCI or I3LIM&lt;br /&gt;
|-&lt;br /&gt;
|GS450Hpump&lt;br /&gt;
|&#039;&#039;&#039;PWM OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|used to run GS450H oil pump&lt;br /&gt;
|-&lt;br /&gt;
|HeatReq&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HVRequest&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|NOT FUNCTIONING&lt;br /&gt;
|-&lt;br /&gt;
|DCFCRequest&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|Chademo Charge Interface enable contactors to charge&lt;br /&gt;
|-&lt;br /&gt;
|ProxPilot&lt;br /&gt;
|&#039;&#039;&#039;ANALOGUE INPUT&#039;&#039;&#039;&lt;br /&gt;
|detects when charge cable is plugged in&lt;br /&gt;
|-&lt;br /&gt;
|BrakeVacSensor&lt;br /&gt;
|&#039;&#039;&#039;ANALOGUE INPUT&#039;&#039;&#039;&lt;br /&gt;
|vacuum sensor input, use for triggering BrakeVacPump &#039;&#039;&#039;DIGITAL OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|PWMTim3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Proximity Pilot====&lt;br /&gt;
for proximity pilot spoofing for devices like the outlander OBC, (the leaf stack dose no require this as the charge port interface is dealt with the pdm internally), the zombie needs to detect is a plug has been inserted into the j1772 port to go into charge mod. a pull up resistor is used to interface into one of the zombieverters analogue pins in the diagram below: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This analogue input used to detect a charging cable is plugged in.&lt;br /&gt;
[[File:ZombiePP.png|none|thumb]]&lt;br /&gt;
A resistor to the 5v needs to be connected to the analogue in pin, 330 ohms in the spec, and R5 needs to be another resistor between analogue in pin and ground. Type 1 connectors should be a 2.7k ohm resistor and type 2 should be 4.7k ohm. Note the charging port may already have this resistor installed.&lt;br /&gt;
&lt;br /&gt;
Open up the Zombie UI and choose ProxPilot for the function of the analogue in pin. Then start plotting PPVal and then plug in, set the PPthreshold to a value higher than ppval is when a evse is pluged in. Bare in mind the resistance will vary on the cable plugged in depending on the Amps it can supply.&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/U3c4V8vMb6k?t=351 &amp;lt;br /&amp;gt;Video explaining the setup and demonstration.]&lt;br /&gt;
&lt;br /&gt;
== Initial start-up and testing ==&lt;br /&gt;
&lt;br /&gt;
=== Powering up and connecting to the web interface ===&lt;br /&gt;
&#039;&#039;&#039;The following is required&#039;&#039;&#039;&lt;br /&gt;
# A fully built ZombieVerter VCU&lt;br /&gt;
# Two wires for power&lt;br /&gt;
# 12V power supply&lt;br /&gt;
# Computer/tablet for accessing the web interface&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to access the web interface&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Provide stable 12V power to pins 55, 56 on the ZombieVerter&lt;br /&gt;
# The on-board LED light &amp;quot;acty&amp;quot; should be now flashing&lt;br /&gt;
# Using your computer, connect to the ZombieVerters WIFI access point.  &#039;&#039;&#039;SSID: &amp;quot;inverter&amp;quot; or &amp;quot;zom_vcu&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
# &#039;&#039;&#039;Password is: inverter123&#039;&#039;&#039;&lt;br /&gt;
# In a web browser navigate to: &#039;&#039;&#039;192.168.4.1&#039;&#039;&#039;&lt;br /&gt;
# The openinverter web interface should now load!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Recent units have a new WiFi module that isn&#039;t automatically assigning an IP via DHCP. See [https://openinverter.org/forum/viewtopic.php?f=5&amp;amp;t=2001 this thread] for details, and if you can help resolve the issue. Until then, you need to manually assign an IP of 192.168.4.2 (anything other than 192.168.4.1 on the 192.168.4.0/24 subnet) to your device.&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;work in progress*&lt;br /&gt;
&lt;br /&gt;
[[Zombieverter Parameters and Spot Values|full list and overview of ZombieVerter Parameters and Spot Values]]&lt;br /&gt;
&lt;br /&gt;
==== Basic parameters and spot values ====&lt;br /&gt;
&lt;br /&gt;
==== Throttle ====&lt;br /&gt;
You should see values &#039;&#039;&#039;pot&#039;&#039;&#039; change as the pedal is pressed.  &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;potmin&#039;&#039;&#039; should be set just above where your off-throttle position is&lt;br /&gt;
* &#039;&#039;&#039;potmax&#039;&#039;&#039; just below the value seen at maximum travel &lt;br /&gt;
* Same for &#039;&#039;&#039;pot2min&#039;&#039;&#039; and &#039;&#039;&#039;pot2max&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The resulting in a  0-100 &#039;&#039;&#039;potnom&#039;&#039;&#039; value.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;throtmin&#039;&#039;&#039; is the minimum (most negative) allowed &#039;&#039;&#039;&#039;&#039;potnom&#039;&#039;&#039;&#039;&#039; at all times&lt;br /&gt;
* &#039;&#039;&#039;throtmax&#039;&#039;&#039; is the maximum (most positive) allowed &#039;&#039;&#039;&#039;&#039;potnom&#039;&#039;&#039;&#039;&#039; request in forward&lt;br /&gt;
* &#039;&#039;&#039;throtramp&#039;&#039;&#039; is how much &#039;&#039;&#039;potnom&#039;&#039;&#039; ramps up with the pedal pushed (&#039;&#039;&#039;potnom&#039;&#039;&#039; change per %/10ms)&lt;br /&gt;
* &#039;&#039;&#039;throtramprpm&#039;&#039;&#039; stops applying &#039;&#039;&#039;throtramp&#039;&#039;&#039; above a set motor rpm&lt;br /&gt;
* &#039;&#039;&#039;revlim&#039;&#039;&#039; is a rev limiter &lt;br /&gt;
&lt;br /&gt;
==== Contactors ====&lt;br /&gt;
A set HV battery voltage value is required to run the precharge and main contactors. &lt;br /&gt;
&lt;br /&gt;
The voltage is measured using the UDC value. which is supplied from the &#039;&#039;&#039;shuntType:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ISA&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SBOX&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;VAG&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;LEAF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
these voltage(UDC) levels are set with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;udcmin&#039;&#039;&#039; is the minimum battery voltage derate&lt;br /&gt;
* &#039;&#039;&#039;udclim&#039;&#039;&#039; is maximum battery voltage derate&lt;br /&gt;
* &#039;&#039;&#039;udcsw&#039;&#039;&#039; is Voltage point at which precharge is considered finished, and the main contactor will close.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Forward/Reverse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
input options:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;switch&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;button&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;switchReversed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;buttomReversed&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Inverter ====&lt;br /&gt;
&#039;&#039;work in progress&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Charger ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;work in progress&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Input Values ====&lt;br /&gt;
Check that din_break does not show &amp;quot;on&amp;quot;, it must be off to allow potnom to be shown.&lt;br /&gt;
----&lt;br /&gt;
* Apply the &#039;&#039;&#039;Start&#039;&#039;&#039; 12V signal for a short time.  The pre-charge relay should turn on, and the voltage available at the inverter and the U1 input of the ISA shunt should quickly rise. If the &#039;&#039;&#039;udc&#039;&#039;&#039; reading goes above &#039;&#039;&#039;udcsw&#039;&#039;&#039; within 5 seconds then the main contactor(s) should close. If all is well, &#039;&#039;&#039;invstat&#039;&#039;&#039; should now be &amp;quot;on&amp;quot;, &#039;&#039;&#039;opmode&#039;&#039;&#039; should be &amp;quot;run&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If you do not see a good value at udc, it may be that your external shunt is not connected properly or is not initialised.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If you do not see a good value at Invudc, it may be that the inverter is not powered, or the communication signals are not correctly wired.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;if the status stays at &amp;quot;PRECHARGE&amp;quot; then you possibly didn&#039;t hold the start signal on for long enough!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Timing Diagrams ==&lt;br /&gt;
Shown below are some simple ZombieVerter scenarios as timing diagrams.&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from OFF to RUN mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Start.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter successfully moving from RUN to OFF mode ===&lt;br /&gt;
[[File:Zombie Timing Normal Stop.svg|none|thumb|800x800px|Timing diagram showing ZombieVerter successfully moving from RUN to OFF mode.]]&lt;br /&gt;
&lt;br /&gt;
=== ZombieVerter failing to Precharge ===&lt;br /&gt;
[[File:Zombie Timing PreChargeFail.svg|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Errors, Common issues ==&lt;br /&gt;
&lt;br /&gt;
==== Input Values: ====&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;din_break&amp;quot; does not show &amp;quot;on&amp;quot;, it must be off to allow potnom to be shown.&lt;br /&gt;
** check wiring setup&lt;br /&gt;
* UDC value updates during precharge.&lt;br /&gt;
** check that your UDC value source is configured correctly (shunt type, proper can bus, ect)&lt;br /&gt;
** check your contactor wiring. &lt;br /&gt;
*** some contactors are polarity sensitive &lt;br /&gt;
*** are they wired to be low side switched? &lt;br /&gt;
* check can H/ can L wiring&lt;br /&gt;
* is there too many devices sharing one can bus? (possible can id collision) &lt;br /&gt;
* check inverter power relay wiring&lt;br /&gt;
** is the inverter/charger/bms &amp;quot;ignition&amp;quot;/ &amp;quot;enable&amp;quot; pin driven via a zombie controlled relay?&lt;br /&gt;
** is the relay firing during preacharge?&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
VCU boards from the webshop, &#039;&#039;&#039;&#039;&#039;come pre-programed&#039;&#039;&#039;&#039;&#039; and &#039;&#039;&#039;do not require any additional septs taken to work&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
For programming a blank board see: [[zombiverter programing|ZombiVerter programing]]&lt;br /&gt;
&lt;br /&gt;
For re-flashing a bricked board refer to the Troubleshooting section below.&lt;br /&gt;
&lt;br /&gt;
For an overview of the software architecture see: [[ZombieVerter Software Overview]]&lt;br /&gt;
==== Initializing an ISA Shunt: ====&lt;br /&gt;
&lt;br /&gt;
# Wire the ISA shunt to 12V+ and canbus input.&lt;br /&gt;
# Under shunt can in the web interface, select the canbus the shunt is connected to&lt;br /&gt;
# Hit save parameters to flash.&lt;br /&gt;
# Under Comms in the web interface, select ISAMode option. By default its set to &amp;quot;Normal&amp;quot; (Off)&lt;br /&gt;
# Select &amp;quot;Init&amp;quot;&lt;br /&gt;
# Hit save parameters to flash&lt;br /&gt;
# Power cycle the vcu and shunt at same time (they should be on same 12V feed anyway).&lt;br /&gt;
# The shunt will initialize.&lt;br /&gt;
# Select ISAMode &amp;quot;normal&amp;quot;&lt;br /&gt;
# Save to flash again&lt;br /&gt;
# Reboot the VCU&lt;br /&gt;
&lt;br /&gt;
The shunt should now be up and running.&lt;br /&gt;
&lt;br /&gt;
If the shunt doesn&#039;t initialize correctly, separate the shunt and VCU power supply, and power cycle the VCU two or three seconds after the shunt power is cycled. This has fixed an initialize issue for a number of ISA shunts.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
[[Zombieverter Parameters and Spot Values|page with ZombieVerter parameters and their value ranges, ZV pinmap etc.]]&lt;br /&gt;
&lt;br /&gt;
Source: https://www.youtube.com/watch?v=wjlucUWX_lc&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
===Serial Connection===&lt;br /&gt;
If you&#039;re having trouble connecting using the serial interface, note that the parameters are 115200 8-N-2, which is different from the conventional 115200 8-N-1.&lt;br /&gt;
&lt;br /&gt;
=== Recovering the ZombieVerter from a failed update ===&lt;br /&gt;
If the ZombieVerter fails in the middle of a software update and the Web User Interface is reporting &amp;quot;firmware: null&amp;quot; it&#039;s possible you&#039;ll need to re-flash the firmware, and bootloader via an STLink.&lt;br /&gt;
&lt;br /&gt;
I used a cheap STLink v2 clone without issue but it seems there is a mix of experiences with them.&lt;br /&gt;
&lt;br /&gt;
# Firstly, download the bootloader from [https://github.com/jsphuebner/tumanako-inverter-fw-bootloader/releases here] and latest ZombieVerter firmware from [https://github.com/damienmaguire/Stm32-vcu/releases/ here] as .hex files. This ensures you don&#039;t need to know the address of the file and avoids user error when flashing via STLink &lt;br /&gt;
# Download STMCubeProgrammer from [https://www.st.com/en/development-tools/stm32cubeprog.html#get-software here] (other STM flashing softwares are available but the following instructions are based on what has worked for me).&lt;br /&gt;
# Upgrade the firmware on your STLink dongle using STMCubeProgrammer. I&#039;m not sure if this is 100% necessary but seems prudent.&lt;br /&gt;
# Connect the Clock (SWclk), Gnd and Data (SWDio) of your STLink to the ZombieVerter test points. On the ZombieVerter Board, they are labelled C, G, D. &lt;br /&gt;
# Connect 12V and Gnd to the ZombieVerter main power pins and ensure your STMCubeprogrammer is able to connect to it. I also disconnected the wifi board just incase.&lt;br /&gt;
# Perform a &amp;quot;full chip erase&amp;quot;, then reflash the latest bootloader and firmware hex files.&lt;br /&gt;
# Remove your STLink from the ZombieVerter, connect the wifi board and check connectivity.&lt;br /&gt;
# Begin ZombieVerter-ing.&lt;br /&gt;
&lt;br /&gt;
=== ESP32 CanBus Web Interface ===&lt;br /&gt;
If the CanBus Web Interface is used it must be noted that the Node ID is hard coded to 3 (note Foccci default is 22)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:Inverter]] &lt;br /&gt;
[[Category:VCU]] &lt;br /&gt;
[[Category:ZombieVerter]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=File:Zombie_Timing_PreChargeFail.svg&amp;diff=6112</id>
		<title>File:Zombie Timing PreChargeFail.svg</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=File:Zombie_Timing_PreChargeFail.svg&amp;diff=6112"/>
		<updated>2026-03-26T12:47:17Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This diagram illustrates the timing of ZombieVerter input and output signals leading to the precharge timeout ocurring and the system failing to start.&lt;br /&gt;
This example shows UDC rising but failing to reach UDCmin. The user deactivates T15.&lt;br /&gt;
Other scenarios such as a contactor failing to close may also cause this flow.&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=File:Zombie_Timing_Normal_Stop.svg&amp;diff=6111</id>
		<title>File:Zombie Timing Normal Stop.svg</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=File:Zombie_Timing_Normal_Stop.svg&amp;diff=6111"/>
		<updated>2026-03-26T12:43:44Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This diagram illustrates the timing of ZombieVerter input and output signals leading to a normal MOD_OFF state.&lt;br /&gt;
This example shows T15 going low, allowing the system to enter MOD_OFF successfully.&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=File:Zombie_Timing_Normal_Start.svg&amp;diff=6109</id>
		<title>File:Zombie Timing Normal Start.svg</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=File:Zombie_Timing_Normal_Start.svg&amp;diff=6109"/>
		<updated>2026-03-26T12:41:07Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This diagram illustrates the timing of ZombieVerter input and output signals leading to a normal start sequence.&lt;br /&gt;
This example shows UDC rising and reaching UDCmin within the precharge timeout period, allowing the system to enter MOD_RUN successfully.&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_Software_Overview&amp;diff=6080</id>
		<title>ZombieVerter Software Overview</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_Software_Overview&amp;diff=6080"/>
		<updated>2026-03-07T12:38:32Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: Added short description of serial interface&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Firmware Version 2.30A- ===&lt;br /&gt;
The ZombieVerter firmware is written in C and C++. The main control loop runs off a hardware timer that triggers every millisecond. It then decides whether to run 1ms, 10ms or 100ms routines. &lt;br /&gt;
&lt;br /&gt;
Support for different drive train components is provided through a number of base classes and derived &amp;quot;drivers&amp;quot; for specific components. Base classes include:&lt;br /&gt;
&lt;br /&gt;
* Vehicle&lt;br /&gt;
* Inverter&lt;br /&gt;
* Charger&lt;br /&gt;
* Shunt (limited support)&lt;br /&gt;
* Gear Lever&lt;br /&gt;
* Transmission&lt;br /&gt;
* BMS&lt;br /&gt;
* On Board Charger&lt;br /&gt;
* DC to DC Converter&lt;br /&gt;
&lt;br /&gt;
==== One Millisecond Routines ====&lt;br /&gt;
The 1ms routines are currently concerned with high speed software control of some drive-train components.&lt;br /&gt;
&lt;br /&gt;
==== Ten Millisecond Routines ====&lt;br /&gt;
The 10ms routines provide the main vehicle operating mode (opcode) state machine, see below. &lt;br /&gt;
&lt;br /&gt;
Calls are made here to the various supported components.&lt;br /&gt;
&lt;br /&gt;
==== One Hundred Millisecond Routines ====&lt;br /&gt;
The 100ms routines are mainly concerned with managing the charging of the vehicle&#039;s traction battery pack(s).&lt;br /&gt;
&lt;br /&gt;
Calls are made here to the various supported components.&lt;br /&gt;
&lt;br /&gt;
==== Operating Mode State Machine ====&lt;br /&gt;
The main vehicle operating mode is run from a 10ms timer (derived from the 1ms hardware timer). The vehicle states are:&lt;br /&gt;
&lt;br /&gt;
* MOD_OFF&lt;br /&gt;
* MOD_PRECHARGE&lt;br /&gt;
* MOD_PCHFAIL&lt;br /&gt;
* MOD_CHARGE&lt;br /&gt;
* MOD_RUN&lt;br /&gt;
&lt;br /&gt;
The state transitions follow the state diagram overview shown below (this is an overview and not meant to describe some of the intricacies of the software flow).&lt;br /&gt;
[[File:ZombieVerter State Machine 2026-03.png|thumb|800x800px|ZombieVerter firmware Operating Mode state machine overview|none]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Interface ====&lt;br /&gt;
The ZombieVerter firmware provides control and reporting on a serial UART interface. One use of this interface is to connect to a web-interface ESP8266 form factor daughter board (EPS32 boards are also supported).&lt;br /&gt;
&lt;br /&gt;
The serial interface provides a simple command and control protocol that includes:&lt;br /&gt;
&lt;br /&gt;
* JSON send/receive of ZombieVerter parameters&lt;br /&gt;
* CANBus mapping configuration&lt;br /&gt;
* Firmware updates&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_Software_Overview&amp;diff=6079</id>
		<title>ZombieVerter Software Overview</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_Software_Overview&amp;diff=6079"/>
		<updated>2026-03-07T12:23:14Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: New page giving an overview of the ZombieVerter firmware and OpMode state machine.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Firmware Version 2.30A- ===&lt;br /&gt;
The ZombieVerter firmware is written in C and C++. The main control loop runs off a hardware timer that triggers every millisecond. It then decides whether to run 1ms, 10ms or 100ms routines. &lt;br /&gt;
&lt;br /&gt;
Support for different drive train components is provided through a number of base classes and derived &amp;quot;drivers&amp;quot; for specific components. Base classes include:&lt;br /&gt;
&lt;br /&gt;
* Vehicle&lt;br /&gt;
* Inverter&lt;br /&gt;
* Charger&lt;br /&gt;
* Shunt (limited support)&lt;br /&gt;
* Gear Lever&lt;br /&gt;
* Transmission&lt;br /&gt;
* BMS&lt;br /&gt;
* On Board Charger&lt;br /&gt;
* DC to DC Converter&lt;br /&gt;
&lt;br /&gt;
==== One Millisecond Routines ====&lt;br /&gt;
The 1ms routines are currently concerned with high speed software control of some drive-train components.&lt;br /&gt;
&lt;br /&gt;
==== Ten Millisecond Routines ====&lt;br /&gt;
The 10ms routines provide the main vehicle operating mode (opcode) state machine, see below. &lt;br /&gt;
&lt;br /&gt;
Calls are made here to the various supported components.&lt;br /&gt;
&lt;br /&gt;
==== One Hundred Millisecond Routines ====&lt;br /&gt;
The 100ms routines are mainly concerned with managing the charging of the vehicle&#039;s traction battery pack(s).&lt;br /&gt;
&lt;br /&gt;
Calls are made here to the various supported components.&lt;br /&gt;
&lt;br /&gt;
==== Operating Mode State Machine ====&lt;br /&gt;
The main vehicle operating mode is run from a 10ms timer (derived from the 1ms hardware timer). The vehicle states are:&lt;br /&gt;
&lt;br /&gt;
* MOD_OFF&lt;br /&gt;
* MOD_PRECHARGE&lt;br /&gt;
* MOD_PCHFAIL&lt;br /&gt;
* MOD_CHARGE&lt;br /&gt;
* MOD_RUN&lt;br /&gt;
&lt;br /&gt;
The state transitions follow the state diagram overview shown below (this is an overview and not meant to describe some of the intricacies of the software flow).&lt;br /&gt;
[[File:ZombieVerter State Machine 2026-03.png|left|thumb|800x800px|ZombieVerter firmware Operating Mode state machine overview]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=File:ZombieVerter_State_Machine_2026-03.png&amp;diff=6078</id>
		<title>File:ZombieVerter State Machine 2026-03.png</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=File:ZombieVerter_State_Machine_2026-03.png&amp;diff=6078"/>
		<updated>2026-03-07T12:15:58Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZombieVerter Operating Mode sate machine for firmware 2.30A&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
	<entry>
		<id>https://openinverter.org/wiki/index.php?title=ZombieVerter_VCU&amp;diff=6077</id>
		<title>ZombieVerter VCU</title>
		<link rel="alternate" type="text/html" href="https://openinverter.org/wiki/index.php?title=ZombieVerter_VCU&amp;diff=6077"/>
		<updated>2026-03-07T12:01:56Z</updated>

		<summary type="html">&lt;p&gt;Purplemeanie: Adding link to a new page that will house the ZombieVerter state machine diagram and a short overview of the firmware.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Zombie model.png|thumb|614x614px|ZombieVerter VCU board (NOTE: V1.2 is preproduction, V1.a is the current latest hardware revision)]]&lt;br /&gt;
==Introduction ==&lt;br /&gt;
&#039;&#039;&#039;An open-source EV conversion VCU (vehicle control unit) for controlling salvaged EV components!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Modern EV conversion projects often look to reuse salvaged parts from wrecked vehicles, such as the motors, batteries and chargers. &lt;br /&gt;
&lt;br /&gt;
The issue is that each of these components and manufacturers, use different methods of control and communication.  &lt;br /&gt;
&lt;br /&gt;
Developing controllers for these devices is complex, and time consuming and often require very dedicated communication protocols. Instead of making custom boards for every part that&#039;s been decoded, why not just make a general purpose VCU (vehicle control unit) with a verity of different types of inputs and outputs? &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Introducing: the &amp;quot;ZombieVerter&amp;quot; VCU - a general purpose EV conversion VCU.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With a large array of inputs/outputs, control logic, and a web interface for configuration and data logging. The ZombieVerter is a powerful, flexible and customizable VCU well suited for EV conversions.    &lt;br /&gt;
&lt;br /&gt;
It&#039;s also an open source project!    &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
==== Hardware: ====&lt;br /&gt;
&lt;br /&gt;
* On-board WiFi&lt;br /&gt;
* 3x high side PWM drivers&lt;br /&gt;
* 5x low side outputs&lt;br /&gt;
* 3x input pins (pull to ground only)&lt;br /&gt;
* 3x CANbus interfaces&lt;br /&gt;
* LIN bus&lt;br /&gt;
* sync serial interface&lt;br /&gt;
* OBD-II interface&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
==== Software: ====&lt;br /&gt;
&lt;br /&gt;
* Web based user interface&lt;br /&gt;
* Contactor control&lt;br /&gt;
* Charger control&lt;br /&gt;
* Charge timer&lt;br /&gt;
* Motor (inverter) control&lt;br /&gt;
* Heater control&lt;br /&gt;
* Water pump control&lt;br /&gt;
* Coolant fan control&lt;br /&gt;
* Throttle mapping&lt;br /&gt;
* Motor regen&lt;br /&gt;
* BMS limits&lt;br /&gt;
* IVT shunt initialization  &lt;br /&gt;
* Data logging and graphing&lt;br /&gt;
* etc.&lt;br /&gt;
=== Currently supported OEM hardware: ===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;This list is always growing and changing, and not everything is verified working &lt;br /&gt;
&lt;br /&gt;
==== Motors/Drive units: ====&lt;br /&gt;
&lt;br /&gt;
* [[Nissan leaf motors|Nissan Leaf Gen1/2/3 inverter/motor via CAN]] (180V minmum voltage)&lt;br /&gt;
* [[Lexus GS450h Drivetrain|Lexus GS450h inverter / L110 gearbox via sync serial]]&lt;br /&gt;
* Lexus GS300h inverter / L210 gearbox via sync serial&lt;br /&gt;
* Toyota Prius/Yaris/Auris Gen 3 inverters via sync serial&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Mitsubishi|Mitsubishi Outlander motors/inverter]]&lt;br /&gt;
* openinverter controller&lt;br /&gt;
&lt;br /&gt;
==== Chargers/DCDCs: ====&lt;br /&gt;
* [[Nissan leaf pdm|Nissan Leaf PDM (Charger and DCDC)]] Gen1,2 &amp;amp; 3&lt;br /&gt;
* [[Mitsubishi Outlander DCDC OBC|Mitsubishi Outlander OBC (charger/DCDC)]]&lt;br /&gt;
* [[Tesla Model S/X DC/DC Converter|tesla model S dcdc]]&lt;br /&gt;
* [[BMW I3 Fast Charging LIM Module|CCS DC fast charge via BMW i3 LIM]] - type 2 + type 1&lt;br /&gt;
* [[Chademo with Zombieverter|Chademo DC fast charging]]&lt;br /&gt;
* [[Foccci|Foccci CCS faster charger controller]]&lt;br /&gt;
* [https://citini.com/product/evs-charge-port-controller/ EVS-Charge Port Controller]&lt;br /&gt;
* Elcon charger&lt;br /&gt;
&lt;br /&gt;
==== Heaters: ====&lt;br /&gt;
*[[Volkswagen Heater|VAG/VW PTC water heater via LIN bus]]&lt;br /&gt;
*[[VAG PTC Air Heater|VAG/VW cabin heater via LIN bus]]&lt;br /&gt;
&lt;br /&gt;
* [[Chevrolet Volt Water Heater|Opel Ampera / Chevy Volt 6.5kW cabin heater]]&lt;br /&gt;
* [[Mitsubishi Outlander Water Heater|Mitsubishi outlander hybrid water heater]]&lt;br /&gt;
&lt;br /&gt;
==== BMS: ====&lt;br /&gt;
* [[Nissan Leaf BMS|Nissan leaf BMS]]/battery pack&lt;br /&gt;
* [[Renault Kangoo 36|kangoo bms]]&lt;br /&gt;
*orion bms&lt;br /&gt;
*[https://github.com/Tom-evnut/SimpBMS SimpBMS]&lt;br /&gt;
*[[Isabellenhütte Heusler|ISA shunt]]&lt;br /&gt;
*[[BMW Hybrid Battery Pack#S-Box|BMW SBOX]]&lt;br /&gt;
*VW EBOX&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Integration (for CANbus control of dash, etc.): ====&lt;br /&gt;
* 1998-2005 BMW 3-series (E46) CAN support&lt;br /&gt;
* 1996-2003 BMW 5-series (E39) CAN support&lt;br /&gt;
* 2001-2008 BMW 7-series (E65) CAN Support&lt;br /&gt;
* BMW E9x CAN support&lt;br /&gt;
* Mid-2000s VAG CAN support&lt;br /&gt;
* Subaru CAN support&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://openinverter.org/forum/viewtopic.php?f=3&amp;amp;t=1277 Development thread]&lt;br /&gt;
* Purchasing:&lt;br /&gt;
** [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombieverter-vcu-built Fully-built VCU boards]&lt;br /&gt;
** [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombie-vcu Partially-built VCU boards]&lt;br /&gt;
* [https://github.com/damienmaguire/Stm32-vcu GitHub repo]&lt;br /&gt;
** Hardware: [https://github.com/damienmaguire/Stm32-vcu/tree/master/Hardware/Zombie ZombieVerter V1]*&lt;br /&gt;
** Software: [https://github.com/damienmaguire/Stm32-vcu/releases latest stable software release]&lt;br /&gt;
*[[pre-wired zombie wiring interface]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; &#039;&#039;&#039;IMPORTANT NOTE: only design files for PCB V1 are publicly available on GitHub, design files for the latest PCB release (V1.a) are only available through [https://www.patreon.com/c/evbmw/posts Damien Maguire&#039;s Patreon] and require membership at the Design Files tier or higher.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Assembling the VCU ==&lt;br /&gt;
Looking to build a ZombieVerter VCU yourself or the kit is missing hardware? &lt;br /&gt;
&lt;br /&gt;
* [[Zombiverter hardware]] page for additional build instructions&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/damienmaguire/Stm32-vcu Github with PCB, schematic, pin-outs, etc]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The enclosure and header are required if you did not order a [https://www.evbmw.com/index.php/evbmw-webshop/vcu-boards/zombieverter-vcu-built &#039;&#039;&#039;fully built board&#039;&#039;&#039;]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VCU boards from the webshop, &#039;&#039;&#039;&#039;&#039;come pre-programmed&#039;&#039;&#039;&#039;&#039; and &#039;&#039;&#039;do not require any additional steps taken to work&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
For programming a blank board see: [[zombieverter programing|ZombieVerter programming]]&lt;br /&gt;
===The enclosure kit options:===&lt;br /&gt;
&lt;br /&gt;
# [https://www.aliexpress.com/item/32857771975.html?spm=a2g0s.9042311.0.0.39f24c4dWOmGPE Enclosure Kit with Header, connector and pins]&amp;lt;ref&amp;gt;https://www.aliexpress.com/item/32857771975.html?spm=a2g0s.9042311.0.0.39f24c4dWOmGPE (Backup: [https://web.archive.org/web/20220524004318/https://www.aliexpress.com/item/32857771975.html Web Archive])&amp;lt;/ref&amp;gt; &lt;br /&gt;
#[https://www.aliexpress.com/item/32822692950.html Connector and pins]&amp;lt;ref&amp;gt;https://de.aliexpress.com/item/32822692950.html (Backup: [https://web.archive.org/web/20221119203700/https://www.aliexpress.us/item/2251832636378198.html?gatewayAdapt=glo2usa4itemAdapt&amp;amp;_randl_shipto=US Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
#[https://www.aliexpress.com/item/1005003512474442.html Pre-wired connector]  &amp;lt;ref&amp;gt;https://www.aliexpress.com/item/1005003512474442.html (Backup: [http://web.archive.org/web/20221120105651/https://www.aliexpress.us/item/3256803326159690.html?gatewayAdapt=glo2usa4itemAdapt&amp;amp;_randl_shipto=US Web Archive])&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The original connectors are from Aptiv (Delphi):&lt;br /&gt;
&lt;br /&gt;
* [https://www.aptiv.com/en/solutions/connection-systems/catalog/item?id=13669859_en Aptiv 56-pin connector]&lt;br /&gt;
* [https://www.aptiv.com/en/solutions/connection-systems/catalog/item?id=33511394_en Aptiv 56-pin header]&lt;br /&gt;
* [https://www.tti.com/content/ttiinc/en/apps/part-detail.html?partsNumber=210S048&amp;amp;mfgShortname=FCA&amp;amp;productId=161404611 Removal tool for connector terminals: Manufacturer: Aptiv (formerly Delphi)]  Part Number: 210S048&lt;br /&gt;
=== Videos on assembly, powering up, updating, etc: ===&lt;br /&gt;
https://www.youtube.com/watch?v=geZuIbGHh30&amp;amp;list=PLh-aHjjWGgLVCsAqaCL6_jmn_QqhVlRiG&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=_JRa_uFyVkY&amp;amp;list=PLh-aHjjWGgLUWaetAmShkv6gmvk7vLaHd&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
[[File:ZombieVerter VCU V1 cable side pinout2.jpg|thumb|alt=|VCU pinout diagram |513x513px]]Each device requires different wiring setups, settings and power requirements. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;cross referencing OEM wiring diagrams is highly recommended &lt;br /&gt;
&lt;br /&gt;
=== Vehicle-specific configurations ===&lt;br /&gt;
* [[GS450H with zombieverter|GS450H with ZombieVerter]]&lt;br /&gt;
* [[Leaf stack with zombiverter|Leaf stack with ZombiVerter]]&lt;br /&gt;
* [[Tesla SDU with Zombieverter|Tesla SDU with ZombieVerter]]&lt;br /&gt;
* [[Chademo with Zombieverter]]&lt;br /&gt;
&lt;br /&gt;
=== Power wiring ===&lt;br /&gt;
The ZombieVerter requires a permanent 12V supply. This is so it can manage charging, timers, and monitor systems when the car is at rest.  &lt;br /&gt;
&lt;br /&gt;
The average power draw, at idle, is 150 mA. &lt;br /&gt;
&lt;br /&gt;
* Pin 55 to 12V- ground&lt;br /&gt;
* Pin 56 to 12V+ positive&lt;br /&gt;
&lt;br /&gt;
The ZombieVerter controls power/&amp;quot;ignition&amp;quot; signals to other devices (inverters, chargers, and DCDC converters), powering those devices when required. This is done by triggering an external 12V relay. &#039;&#039;&#039;&#039;&#039;ZombieVerter controls the external relay using low-side switching&#039;&#039;, meaning that it pulls the ground pin of the relay to ground.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[File:Gernice-zombie.png|thumb|583x583px|general zombie and battery box wiring]]Pin 32 to ground pin on a 12V relay&lt;br /&gt;
* Relay positive pin to 12V+&lt;br /&gt;
* One of the relays switch pin to 12V+&lt;br /&gt;
&lt;br /&gt;
This effectively provides a switched 12V supply, controlled by the ZombieVerter.  &lt;br /&gt;
&lt;br /&gt;
Used to switch &amp;quot;enable&amp;quot; mode to devices via: &lt;br /&gt;
&lt;br /&gt;
* Leaf inverter enable pin&lt;br /&gt;
* Leaf PDM enable pin&lt;br /&gt;
* Mitsubisihi OBC enable pin&lt;br /&gt;
&lt;br /&gt;
=== Contactor wiring ===&lt;br /&gt;
The Zombieveter manages the Negative, Positive and PreCharge contactors in an EV conversion.&lt;br /&gt;
&lt;br /&gt;
This is done based off a series of voltage measurements (UDC), this voltage value (UDC) can be supplied from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* ISA IVT shunt&lt;br /&gt;
* Nissan leaf inverter&lt;br /&gt;
* BMW S-BOX&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Without a proper UDC measurement, the ZombieVerter &#039;&#039;&#039;will fail precharge and never go into run mode.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The contactor control pins on the ZombieVerter are &#039;&#039;low-side switching&#039;&#039;, meaning that they pull to ground.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The positive leads from the contactors need to be connected to 12V+ and the ground leads to:&lt;br /&gt;
&lt;br /&gt;
* Pin 31 for the negative contactor&lt;br /&gt;
* Pin 33 for the positive contactor&lt;br /&gt;
* Pin 34 for the pre-charge contactor&lt;br /&gt;
=== Throttle pedal wiring ===&lt;br /&gt;
The ZombieVerter supports dual-channel throttle. This redundancy is for safety in case one channel fails or drops out. It&#039;s highly recommended to use dual-channel throttle. Single-channel is an option.&lt;br /&gt;
&lt;br /&gt;
Connect the following to the ZombieVerter pins:&lt;br /&gt;
&lt;br /&gt;
* Pin 45 to throttle grounds&lt;br /&gt;
* Pin 46 to throttle channel 2&lt;br /&gt;
* Pin 47 to throttle channel 1&lt;br /&gt;
* Pin 48 to throttle positives&lt;br /&gt;
&lt;br /&gt;
=== Start, Run, and Direction wiring ===&lt;br /&gt;
The ZombieVerter requires 2 inputs to get into &amp;quot;drive&amp;quot; mode. &#039;&#039;&#039;These pins need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* Pin 15 to &amp;quot;on&amp;quot; switched input (key switched to &amp;quot;on&amp;quot;)&lt;br /&gt;
* Pin 52 to &amp;quot;start&amp;quot; momentary input  (momentary key switched &amp;quot;ignition&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==== Forward and Reverse ====&lt;br /&gt;
These pins need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +) &lt;br /&gt;
&lt;br /&gt;
* Pin 53 reverse&lt;br /&gt;
* Pin 54 forward&lt;br /&gt;
&lt;br /&gt;
==== Brake signal ====&lt;br /&gt;
&lt;br /&gt;
* Pin 49 need to be &#039;&#039;pulled high&#039;&#039; (connected to 12V +) when brake is pressed&lt;br /&gt;
&lt;br /&gt;
=== Input/output pins ===&lt;br /&gt;
The ZombieVerter has a number of selectable input/output pins that can be used for a number of functions. These pins are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Low side Outputs.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*GP Out 3&lt;br /&gt;
*GP Out 2&lt;br /&gt;
* Neg Contactor switch/GP Out 1&lt;br /&gt;
*Trans SL1- (If not using the GS450H)&lt;br /&gt;
*Trans SL2- (If not using the GS450H)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*Low side output connect to ground when activated.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The low side outputs in Zombie are ideal for switching relays, such as for coolant pumps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;High side PWM.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*PWM 3&lt;br /&gt;
*PWM 2&lt;br /&gt;
*PWM 1&lt;br /&gt;
*Pump PWM - Limited to GS450 Oil pump pwm or tacho pwm output&lt;br /&gt;
&lt;br /&gt;
These are high side 12V outputs, usually for controlling gauges or auxiliary items than need a pwm signals. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*not suitable for controlling relays.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Ground Input pins&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These pins pull down to ground only. &#039;&#039;&#039;Do not connect any voltage to these pins.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PB1&lt;br /&gt;
&lt;br /&gt;
PB2&lt;br /&gt;
&lt;br /&gt;
PB3&lt;br /&gt;
&lt;br /&gt;
=== Pin functions: ===&lt;br /&gt;
&#039;&#039;Note: While the web interface will allow you to select input pins or output pins, some will not actually work.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;example: a input switch wired but set to negContactor&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Pin&lt;br /&gt;
!IN/OUT/PWM&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|ChaDemoAIw&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when Chademo charger handshake initiates&lt;br /&gt;
|-&lt;br /&gt;
|OBCEnable&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates as part of the ExtCharger module&lt;br /&gt;
|-&lt;br /&gt;
|HeaterEnable&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates only in run mode and when coolant pump is on*&lt;br /&gt;
|-&lt;br /&gt;
|RunIndication&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when zombie is in run mode&lt;br /&gt;
|-&lt;br /&gt;
|WarnIndication&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when a error occurs with the ZombieVerter&lt;br /&gt;
|-&lt;br /&gt;
|CoolantPump&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates during precharge, usually used for coolant pumps&lt;br /&gt;
|-&lt;br /&gt;
|NegContactor&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when the negative contactor needs to be closed. ie precharge, run, charge mode, etc&lt;br /&gt;
|-&lt;br /&gt;
|BrakeLight&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when a set brake light on threshold value is met&lt;br /&gt;
|-&lt;br /&gt;
|ReverseLight&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when reverse direction is selected&lt;br /&gt;
|-&lt;br /&gt;
|CoolingFan&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when FanTemp setpoint is reached&lt;br /&gt;
|-&lt;br /&gt;
|HVActive&lt;br /&gt;
|&#039;&#039;&#039;OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when contactors are closed and VCU is in run or charge mode&lt;br /&gt;
|-&lt;br /&gt;
|BrakeVacPump&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|activates when BrakeVacSensor threshold value is met&lt;br /&gt;
|-&lt;br /&gt;
|CpSpoof&lt;br /&gt;
|&#039;&#039;&#039;PWM OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|used to spoof CP signal to OBC when using a charging interface such as FOCCCI or I3LIM&lt;br /&gt;
|-&lt;br /&gt;
|GS450Hpump&lt;br /&gt;
|&#039;&#039;&#039;PWM OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|used to run GS450H oil pump&lt;br /&gt;
|-&lt;br /&gt;
|HeatReq&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HVRequest&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|NOT FUNCTIONING&lt;br /&gt;
|-&lt;br /&gt;
|DCFCRequest&lt;br /&gt;
|&#039;&#039;&#039;DIGITAL INPUT&#039;&#039;&#039;&lt;br /&gt;
|Chademo Charge Interface enable contactors to charge&lt;br /&gt;
|-&lt;br /&gt;
|ProxPilot&lt;br /&gt;
|&#039;&#039;&#039;ANALOGUE INPUT&#039;&#039;&#039;&lt;br /&gt;
|detects when charge cable is plugged in&lt;br /&gt;
|-&lt;br /&gt;
|BrakeVacSensor&lt;br /&gt;
|&#039;&#039;&#039;ANALOGUE INPUT&#039;&#039;&#039;&lt;br /&gt;
|vacuum sensor input, use for triggering BrakeVacPump &#039;&#039;&#039;DIGITAL OUTPUT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|PWMTim3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Proximity Pilot====&lt;br /&gt;
for proximity pilot spoofing for devices like the outlander OBC, (the leaf stack dose no require this as the charge port interface is dealt with the pdm internally), the zombie needs to detect is a plug has been inserted into the j1772 port to go into charge mod. a pull up resistor is used to interface into one of the zombieverters analogue pins in the diagram below: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This analogue input used to detect a charging cable is plugged in.&lt;br /&gt;
[[File:ZombiePP.png|none|thumb]]&lt;br /&gt;
A resistor to the 5v needs to be connected to the analogue in pin, 330 ohms in the spec, and R5 needs to be another resistor between analogue in pin and ground. Type 1 connectors should be a 2.7k ohm resistor and type 2 should be 4.7k ohm. Note the charging port may already have this resistor installed.&lt;br /&gt;
&lt;br /&gt;
Open up the Zombie UI and choose ProxPilot for the function of the analogue in pin. Then start plotting PPVal and then plug in, set the PPthreshold to a value higher than ppval is when a evse is pluged in. Bare in mind the resistance will vary on the cable plugged in depending on the Amps it can supply.&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/U3c4V8vMb6k?t=351 &amp;lt;br /&amp;gt;Video explaining the setup and demonstration.]&lt;br /&gt;
&lt;br /&gt;
== Initial start-up and testing ==&lt;br /&gt;
&lt;br /&gt;
=== Powering up and connecting to the web interface ===&lt;br /&gt;
&#039;&#039;&#039;The following is required&#039;&#039;&#039;&lt;br /&gt;
# A fully built ZombieVerter VCU&lt;br /&gt;
# Two wires for power&lt;br /&gt;
# 12V power supply&lt;br /&gt;
# Computer/tablet for accessing the web interface&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to access the web interface&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Provide stable 12V power to pins 55, 56 on the ZombieVerter&lt;br /&gt;
# The on-board LED light &amp;quot;acty&amp;quot; should be now flashing&lt;br /&gt;
# Using your computer, connect to the ZombieVerters WIFI access point.  &#039;&#039;&#039;SSID: &amp;quot;inverter&amp;quot; or &amp;quot;zom_vcu&amp;quot;&#039;&#039;&#039; &lt;br /&gt;
# &#039;&#039;&#039;Password is: inverter123&#039;&#039;&#039;&lt;br /&gt;
# In a web browser navigate to: &#039;&#039;&#039;192.168.4.1&#039;&#039;&#039;&lt;br /&gt;
# The openinverter web interface should now load!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Recent units have a new WiFi module that isn&#039;t automatically assigning an IP via DHCP. See [https://openinverter.org/forum/viewtopic.php?f=5&amp;amp;t=2001 this thread] for details, and if you can help resolve the issue. Until then, you need to manually assign an IP of 192.168.4.2 (anything other than 192.168.4.1 on the 192.168.4.0/24 subnet) to your device.&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;work in progress*&lt;br /&gt;
&lt;br /&gt;
[[Zombieverter Parameters and Spot Values|full list and overview of ZombieVerter Parameters and Spot Values]]&lt;br /&gt;
&lt;br /&gt;
==== Basic parameters and spot values ====&lt;br /&gt;
&lt;br /&gt;
==== Throttle ====&lt;br /&gt;
You should see values &#039;&#039;&#039;pot&#039;&#039;&#039; change as the pedal is pressed.  &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;potmin&#039;&#039;&#039; should be set just above where your off-throttle position is&lt;br /&gt;
* &#039;&#039;&#039;potmax&#039;&#039;&#039; just below the value seen at maximum travel &lt;br /&gt;
* Same for &#039;&#039;&#039;pot2min&#039;&#039;&#039; and &#039;&#039;&#039;pot2max&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The resulting in a  0-100 &#039;&#039;&#039;potnom&#039;&#039;&#039; value.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;throtmin&#039;&#039;&#039; is the minimum (most negative) allowed &#039;&#039;&#039;&#039;&#039;potnom&#039;&#039;&#039;&#039;&#039; at all times&lt;br /&gt;
* &#039;&#039;&#039;throtmax&#039;&#039;&#039; is the maximum (most positive) allowed &#039;&#039;&#039;&#039;&#039;potnom&#039;&#039;&#039;&#039;&#039; request in forward&lt;br /&gt;
* &#039;&#039;&#039;throtramp&#039;&#039;&#039; is how much &#039;&#039;&#039;potnom&#039;&#039;&#039; ramps up with the pedal pushed (&#039;&#039;&#039;potnom&#039;&#039;&#039; change per %/10ms)&lt;br /&gt;
* &#039;&#039;&#039;throtramprpm&#039;&#039;&#039; stops applying &#039;&#039;&#039;throtramp&#039;&#039;&#039; above a set motor rpm&lt;br /&gt;
* &#039;&#039;&#039;revlim&#039;&#039;&#039; is a rev limiter &lt;br /&gt;
&lt;br /&gt;
==== Contactors ====&lt;br /&gt;
A set HV battery voltage value is required to run the precharge and main contactors. &lt;br /&gt;
&lt;br /&gt;
The voltage is measured using the UDC value. which is supplied from the &#039;&#039;&#039;shuntType:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ISA&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SBOX&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;VAG&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;LEAF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
these voltage(UDC) levels are set with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;udcmin&#039;&#039;&#039; is the minimum battery voltage derate&lt;br /&gt;
* &#039;&#039;&#039;udclim&#039;&#039;&#039; is maximum battery voltage derate&lt;br /&gt;
* &#039;&#039;&#039;udcsw&#039;&#039;&#039; is Voltage point at which precharge is considered finished, and the main contactor will close.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Forward/Reverse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
input options:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;switch&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;button&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;switchReversed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;buttomReversed&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Inverter ====&lt;br /&gt;
&#039;&#039;work in progress&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Charger ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;work in progress&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Input Values ====&lt;br /&gt;
Check that din_break does not show &amp;quot;on&amp;quot;, it must be off to allow potnom to be shown.&lt;br /&gt;
----&lt;br /&gt;
* Apply the &#039;&#039;&#039;Start&#039;&#039;&#039; 12V signal for a short time.  The pre-charge relay should turn on, and the voltage available at the inverter and the U1 input of the ISA shunt should quickly rise. If the &#039;&#039;&#039;udc&#039;&#039;&#039; reading goes above &#039;&#039;&#039;udcsw&#039;&#039;&#039; within 5 seconds then the main contactor(s) should close. If all is well, &#039;&#039;&#039;invstat&#039;&#039;&#039; should now be &amp;quot;on&amp;quot;, &#039;&#039;&#039;opmode&#039;&#039;&#039; should be &amp;quot;run&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If you do not see a good value at udc, it may be that your external shunt is not connected properly or is not initialised.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If you do not see a good value at Invudc, it may be that the inverter is not powered, or the communication signals are not correctly wired.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;if the status stays at &amp;quot;PRECHARGE&amp;quot; then you possibly didn&#039;t hold the start signal on for long enough!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Errors, Common issues ==&lt;br /&gt;
&lt;br /&gt;
==== Input Values: ====&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;din_break&amp;quot; does not show &amp;quot;on&amp;quot;, it must be off to allow potnom to be shown.&lt;br /&gt;
** check wiring setup&lt;br /&gt;
* UDC value updates during precharge.&lt;br /&gt;
** check that your UDC value source is configured correctly (shunt type, proper can bus, ect)&lt;br /&gt;
** check your contactor wiring. &lt;br /&gt;
*** some contactors are polarity sensitive &lt;br /&gt;
*** are they wired to be low side switched? &lt;br /&gt;
* check can H/ can L wiring&lt;br /&gt;
* is there too many devices sharing one can bus? (possible can id collision) &lt;br /&gt;
* check inverter power relay wiring&lt;br /&gt;
** is the inverter/charger/bms &amp;quot;ignition&amp;quot;/ &amp;quot;enable&amp;quot; pin driven via a zombie controlled relay?&lt;br /&gt;
** is the relay firing during preacharge?&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
VCU boards from the webshop, &#039;&#039;&#039;&#039;&#039;come pre-programed&#039;&#039;&#039;&#039;&#039; and &#039;&#039;&#039;do not require any additional septs taken to work&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
For programming a blank board see: [[zombiverter programing|ZombiVerter programing]]&lt;br /&gt;
&lt;br /&gt;
For re-flashing a bricked board refer to the Troubleshooting section below.&lt;br /&gt;
&lt;br /&gt;
For an overview of the software architecture see: [[ZombieVerter Software Overview]]&lt;br /&gt;
==== Initializing an ISA Shunt: ====&lt;br /&gt;
&lt;br /&gt;
# Wire the ISA shunt to 12V+ and canbus input.&lt;br /&gt;
# Under shunt can in the web interface, select the canbus the shunt is connected to&lt;br /&gt;
# Hit save parameters to flash.&lt;br /&gt;
# Under Comms in the web interface, select ISAMode option. By default its set to &amp;quot;Normal&amp;quot; (Off)&lt;br /&gt;
# Select &amp;quot;Init&amp;quot;&lt;br /&gt;
# Hit save parameters to flash&lt;br /&gt;
# Power cycle the vcu and shunt at same time (they should be on same 12V feed anyway).&lt;br /&gt;
# The shunt will initialize.&lt;br /&gt;
# Select ISAMode &amp;quot;normal&amp;quot;&lt;br /&gt;
# Save to flash again&lt;br /&gt;
# Reboot the VCU&lt;br /&gt;
&lt;br /&gt;
The shunt should now be up and running.&lt;br /&gt;
&lt;br /&gt;
If the shunt doesn&#039;t initialize correctly, separate the shunt and VCU power supply, and power cycle the VCU two or three seconds after the shunt power is cycled. This has fixed an initialize issue for a number of ISA shunts.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
[[Zombieverter Parameters and Spot Values|page with ZombieVerter parameters and their value ranges, ZV pinmap etc.]]&lt;br /&gt;
&lt;br /&gt;
Source: https://www.youtube.com/watch?v=wjlucUWX_lc&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
===Serial Connection===&lt;br /&gt;
If you&#039;re having trouble connecting using the serial interface, note that the parameters are 115200 8-N-2, which is different from the conventional 115200 8-N-1.&lt;br /&gt;
&lt;br /&gt;
=== Recovering the ZombieVerter from a failed update ===&lt;br /&gt;
If the ZombieVerter fails in the middle of a software update and the Web User Interface is reporting &amp;quot;firmware: null&amp;quot; it&#039;s possible you&#039;ll need to re-flash the firmware, and bootloader via an STLink.&lt;br /&gt;
&lt;br /&gt;
I used a cheap STLink v2 clone without issue but it seems there is a mix of experiences with them.&lt;br /&gt;
&lt;br /&gt;
# Firstly, download the bootloader from [https://github.com/jsphuebner/tumanako-inverter-fw-bootloader/releases here] and latest ZombieVerter firmware from [https://github.com/damienmaguire/Stm32-vcu/releases/ here] as .hex files. This ensures you don&#039;t need to know the address of the file and avoids user error when flashing via STLink &lt;br /&gt;
# Download STMCubeProgrammer from [https://www.st.com/en/development-tools/stm32cubeprog.html#get-software here] (other STM flashing softwares are available but the following instructions are based on what has worked for me).&lt;br /&gt;
# Upgrade the firmware on your STLink dongle using STMCubeProgrammer. I&#039;m not sure if this is 100% necessary but seems prudent.&lt;br /&gt;
# Connect the Clock (SWclk), Gnd and Data (SWDio) of your STLink to the ZombieVerter test points. On the ZombieVerter Board, they are labelled C, G, D. &lt;br /&gt;
# Connect 12V and Gnd to the ZombieVerter main power pins and ensure your STMCubeprogrammer is able to connect to it. I also disconnected the wifi board just incase.&lt;br /&gt;
# Perform a &amp;quot;full chip erase&amp;quot;, then reflash the latest bootloader and firmware hex files.&lt;br /&gt;
# Remove your STLink from the ZombieVerter, connect the wifi board and check connectivity.&lt;br /&gt;
# Begin ZombieVerter-ing.&lt;br /&gt;
&lt;br /&gt;
=== ESP32 CanBus Web Interface ===&lt;br /&gt;
If the CanBus Web Interface is used it must be noted that the Node ID is hard coded to 3 (note Foccci default is 22)&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:Inverter]] &lt;br /&gt;
[[Category:VCU]] &lt;br /&gt;
[[Category:ZombieVerter]]&lt;/div&gt;</summary>
		<author><name>Purplemeanie</name></author>
	</entry>
</feed>