ZombieVerter Software Overview

From openinverter.org wiki
Revision as of 12:23, 7 March 2026 by Purplemeanie (talk | contribs) (New page giving an overview of the ZombieVerter firmware and OpMode state machine.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Firmware Version 2.30A-

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.

Support for different drive train components is provided through a number of base classes and derived "drivers" for specific components. Base classes include:

  • Vehicle
  • Inverter
  • Charger
  • Shunt (limited support)
  • Gear Lever
  • Transmission
  • BMS
  • On Board Charger
  • DC to DC Converter

One Millisecond Routines

The 1ms routines are currently concerned with high speed software control of some drive-train components.

Ten Millisecond Routines

The 10ms routines provide the main vehicle operating mode (opcode) state machine, see below.

Calls are made here to the various supported components.

One Hundred Millisecond Routines

The 100ms routines are mainly concerned with managing the charging of the vehicle's traction battery pack(s).

Calls are made here to the various supported components.

Operating Mode State Machine

The main vehicle operating mode is run from a 10ms timer (derived from the 1ms hardware timer). The vehicle states are:

  • MOD_OFF
  • MOD_PRECHARGE
  • MOD_PCHFAIL
  • MOD_CHARGE
  • MOD_RUN

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).

ZombieVerter firmware Operating Mode state machine overview