.. include:: ./macros.txt
.. include:: ./units.txt

.. _THE_FOXBMS_2_DOCUMENTATION:

The foxBMS 2 Documentation
==========================

Welcome to the |foxbms| documentation. |foxbms| is the modular and open source
Battery Management System (BMS) development platform from `Fraunhofer IISB`_.
This is the second generation of foxBMS. Its is a free, open and flexible
development environment to design beyond state-of-the-art complex battery
management systems.

.. note::

   The present version of the |foxbms| documentation is |version_foxbms|. It is
   available in HTML. More detailed information on the version history can be
   found in the :ref:`RELEASES` section. This documentation was generated on
   |timestamp|.

.. warning::

   The |foxbms| hardware and software is under permanent development. The free
   and open research and development platform |foxbms| as presented in the
   documentation hereafter is not provided to be used without any adaptions
   (e.g., to fulfill mandatory regulations) in consumer products, electric
   vehicles, production environments or any similar usages: it is only
   intended to be used by skilled professionals trained in designing battery
   system prototypes.

The documentation is divided in the following parts:

#. :ref:`GENERAL_INFORMATION_OVERVIEW`
#. :ref:`DESIGN_CONSIDERATIONS`
#. :ref:`GETTING_STARTED_OVERVIEW`
#. :ref:`SOFTWARE_DOCUMENTATION_OVERVIEW`
#. :ref:`HARDWARE_DOCUMENTATION_OVERVIEW`
#. :ref:`SYSTEM_DOCUMENTATION_OVERVIEW`
#. :ref:`TOOLS_DOCUMENTATION_OVERVIEW`
#. :ref:`DEVELOPER_MANUAL`

In the first part of the documentation, general information about |foxbms|
can be found (:ref:`GENERAL_INFORMATION_OVERVIEW`):

- Information about the versions and the related release notes of |foxbms|
- Licenses of the hardware, software and documentation of |foxbms|
- Motivation behind the |foxbms| initiative
- Technology roadmap of the upcoming hardware and software components
- Team involved in the development of |foxbms|

The second parts gives an overview about battery systems and their design in
general (:ref:`DESIGN_CONSIDERATIONS`):

- Abbreviations and naming conventions used in the documentation
- Overview of the platform
- Use case on which the documentation is based

The third part of the documentation (:ref:`GETTING_STARTED_OVERVIEW`) acts as a
guide through the setup of the |foxbms| development environment:

- How to install the required software
- How to set a workspace to use the sources

To work on the software, the :ref:`SOFTWARE_DOCUMENTATION_OVERVIEW` presents
the structure of the software, how the basic tasks are running and how to call
user-defined functions. Further, a how-to is provided in order to answer the
most common questions. A detailed description of the embedded software is found
in the |doxygen| documentation.

Next, the :ref:`HARDWARE_DOCUMENTATION_OVERVIEW` gives the details needed to
understand the hardware platform developed for |foxbms|.

The :ref:`SYSTEM_DOCUMENTATION_OVERVIEW` provides information on the
integration of |foxbms| in an application.

Numerous tools have been developed or adapted to support developing with the
|foxbms| platform. These tools and their usage are described in
:ref:`TOOLS_DOCUMENTATION_OVERVIEW`.

Finally, the :ref:`DEVELOPER_MANUAL` explains which rules need to be applied
when developing for the |foxbms| platform.

All sections are listed here:

.. _GENERAL_INFORMATION_OVERVIEW:

.. toctree::
    :titlesonly:
    :numbered:
    :maxdepth: 1
    :caption: General Information

    ./general/releases.rst
    ./general/changelog.rst
    ./general/motivation.rst
    ./general/safety/safety.rst
    ./general/license.rst
    ./general/team.rst

.. _DESIGN_CONSIDERATIONS:

.. toctree::
    :titlesonly:
    :numbered:
    :maxdepth: 1
    :caption: Introduction

    ./introduction/abbreviations-definitions.rst
    ./introduction/naming-conventions.rst
    ./introduction/bms-overview.rst
    ./introduction/use-case.rst

.. _GETTING_STARTED_OVERVIEW:

.. toctree::
    :titlesonly:
    :numbered:
    :maxdepth: 1
    :caption: Getting Started

    ./getting-started/getting-started.rst
    ./getting-started/repository-structure.rst
    ./getting-started/software-installation.rst
    ./getting-started/workspace.rst
    ./getting-started/first-steps-on-hardware.rst

.. _SOFTWARE_DOCUMENTATION_OVERVIEW:

.. toctree::
    :titlesonly:
    :numbered:
    :maxdepth: 1
    :caption: Software Documentation

    ./software/configuration/configuration.rst
    ./software/build/build.rst
    ./software/overview/sw-overview.rst
    ./software/modules/modules.rst
    ./software/unit-tests/unit-tests.rst
    ./software/build-process/build-process.rst
    ./software/build-environment/build-environment.rst
    ./software/how-to/how-to.rst
    ./software/architecture/architecture.rst
    ./software/api/overview.rst

.. _HARDWARE_DOCUMENTATION_OVERVIEW:

.. toctree::
    :titlesonly:
    :numbered:
    :maxdepth: 1
    :caption: Hardware Documentation

    ./hardware/hardware.rst
    ./hardware/design-resources.rst
    ./hardware/connectors.rst

.. _SYSTEM_DOCUMENTATION_OVERVIEW:

.. toctree::
    :titlesonly:
    :numbered:
    :maxdepth: 1
    :caption: System Documentation

    ./system/system-introduction.rst
    ./system/system-voltage-and-current-monitoring.rst

.. _TOOLS_DOCUMENTATION_OVERVIEW:

.. toctree::
    :titlesonly:
    :numbered:
    :maxdepth: 1
    :caption: Tools Documentation

    ./tools/dbc.rst
    ./tools/log-parser.rst
    ./tools/waf-tools/waf-tools.rst
    ./tools/debugger/debug-application.rst
    ./tools/halcogen/halcogen.rst
    ./tools/static-analysis/axivion.rst
    ./tools/static-analysis/cppcheck.rst

.. _DEVELOPER_MANUAL:

.. toctree::
    :titlesonly:
    :numbered:
    :maxdepth: 1
    :caption: Developer Manual

    ./developer-manual/preface.rst
    ./developer-manual/style-guide/style-guide.rst
    ./developer-manual/software-developer-manual.rst
    ./developer-manual/hardware-developer-manual.rst

.. _MISCELLANEOUS_INFORMATION:

.. toctree::
    :titlesonly:
    :numbered:
    :maxdepth: 1
    :caption: Miscellaneous Information

    ./misc/acknowledgements.rst
    ./misc/indices-and-tables.rst
    ./misc/bibliography.rst