ZombieVerter Software Overview: Difference between revisions

From openinverter.org wiki
Jump to navigation Jump to search
New page giving an overview of the ZombieVerter firmware and OpMode state machine.
 
m Added short description of serial interface
Line 37: Line 37:


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).
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).
[[File:ZombieVerter State Machine 2026-03.png|left|thumb|800x800px|ZombieVerter firmware Operating Mode state machine overview]]
[[File:ZombieVerter State Machine 2026-03.png|thumb|800x800px|ZombieVerter firmware Operating Mode state machine overview|none]]
 
==== Serial Interface ====
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).
 
The serial interface provides a simple command and control protocol that includes:
 
* JSON send/receive of ZombieVerter parameters
* CANBus mapping configuration
* Firmware updates

Revision as of 12:38, 7 March 2026

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

Serial Interface

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

The serial interface provides a simple command and control protocol that includes:

  • JSON send/receive of ZombieVerter parameters
  • CANBus mapping configuration
  • Firmware updates