foxBMS 2 Battery Management Development Platform

The foxBMS 2 Battery Management Development Platform lab immerses students in the configuration, operation, and testing of modular, automotive-grade battery management systems for electrochemical energy storage applications, including electric vehicle traction packs and stationary battery systems. Utilizing a distributed master-slave architecture built around safety-critical ARM Cortex-R lockstep microcontrollers, students interface master controllers across galvanic isolation barriers to multi-cell stack monitoring units using daisy-chained protocols like isoSPI. Learners measure cell voltages, pack currents, and thermal distributions, and evaluate real-time control algorithms for passive cell balancing, contactor sequencing, safety state machines, and fault diagnostics. Through hands-on integration with CAN bus network interfaces and automated hardware-in-the-loop test frameworks, students develop key competencies in safety-critical embedded firmware, industrial bus protocols, and high-voltage energy storage management.

Battery Management System (BMS) Lithium-ion Battery Electric Vehicle (EV) Powertrain Energy Storage Systems (ESS) Automotive Electronics Controller Area Network (CAN Bus) Hardware-in-the-Loop (HIL) Simulation Cell Balancing isoSPI Isolated Communications ARM Cortex-R TI TMS570 Hercules State of Charge (SOC) Galvanic Isolation Battery Stack Monitoring Embedded C Programming Code Composer Studio (CCS)

Uploaded by demo on 2026-09-03 · ready · Electronics · Original source ↗

Files: INSTALL.md · foxBMS_README.md · hardware_README.md · requirements.txt

Readiness checks

  • complete 2026-09-03 03:54 🛡 Cybersecurity: Review before networking · 15 findings 16 searches · 5 pages
    view · PDF

Latest report — 2026-09-03 03:54

Readiness: foxBMS 2 Battery Management Development Platform

Verdict: Ready with caveats · 2026-09-03 · est. parts cost $288–$352 (active silicon + one debug probe for one bench; discretes and PCB fabrication not priced) Cybersecurity — software & network: Review before networking

This is the cold check for this lab — there is no previous report, so it establishes the baseline every future check will measure drift against. foxBMS 2 is modular: a bench needs the BMS Master, one interface card and one slave family, not all three variants the bill of materials lists. One complete path is fully in stock today — TMS570LC4357 master, LTC6820 interface and LTC6811-1 12-cell slave are all Active with healthy stock. The caveats are real, though: the JTAG debug probe every bench needs shows zero stock at all three authorized distributors on a 12-week factory lead, the MAXIM interface line's part number does not resolve to any catalog product and the closest real part is a different package, the 18-cell LTC slave is discontinued at DigiKey in both temperature grades, and the NXP 14-cell slave is on Last Time Buy. Take the LTC 12-cell path, order probes a term ahead, and the lab runs.

Action required

Part Problem Recommended action
MAX17841BAGU/V+ (MAXIM interface U1) Part number returns no match at DigiKey and no ECIA-authorized distributor lists it. The only orderable MAX17841B variants are 16-TSSOP, while the snapshot requires a 28-pin TQFN-EP. Open the interface-maxim-max17841b-v1.0.0 board file and read U1's actual footprint before ordering anything. Simplest fix: build the LTC or NXP interface instead.
TMDSEMU110-U (XDS110 JTAG probe) Active but zero stock at DigiKey, Arrow and Mouser, all quoting a 12-week factory lead. Required for every bench — without it nothing can be flashed. Order roughly 3 months ahead of the term. The XDS200 is compatible but costs 2–3x and is equally out of stock; a TI LaunchPad with an onboard XDS110 is a plausible cheaper route (not checked this run).
LTC6813HLWE-1#3ZZPBF (18-cell LTC slave U1) "Discontinued at DigiKey"; only Rochester Electronics holds stock (3 units). DigiKey quotes a 13-week factory lead. The industrial-grade sibling is discontinued at DigiKey too. Prefer the 12-cell LTC6811-1 path. If 18-cell modules are required, buy the Rochester stock early or accept a 10–13 week lead.
MC33775ATA1AE (14-cell NXP slave U1) Status "Last Time Buy"; ECIA rates lifecycle risk High. The snapshot's own part number, MC33775ATE, is not orderable at all. Obtainable in volume today — Arrow holds 11,878 at $5.18. If this path is wanted, buy the lab's whole expected lifetime now, and plan a redesign.
MC33664ATL (NXP interface U1) Snapshot part number is not orderable as written; no ECIA-authorized distributor lists it. DigiKey's supply-voltage parameter (4.5–5.5 V) also disagrees with the snapshot's stated 3.15–5.5 V range. Order the full orderable part number (MC33664ATL1EG / MC33664ATL1EGR2) after confirming it against the board BOM and the MC33664 datasheet.

Cybersecurity — software & network

Review before networking — Fourteen pinned Python build dependencies carry known advisories (six rated high, including remote-code-execution class flaws in GitPython and click) and the documented toolchain install performs unverified binary downloads, though the target board itself exposes no network services.

Component Version How known Support status
Host operating system (Windows or Linux) not determined not determined (INSTALL.md gives only install prefixes (C:\foxbms, /opt/devel/foxbms-2); no OS version is stated anywhere in the file) —
PowerShell not determined unpinned (INSTALL.md requires 'PowerShell 7 or later' - a minimum, not a pin) —
Git not determined unpinned (INSTALL.md links git-scm.com with no version) —
TI Code Composer Studio (CCS) 12.8.1 read from project (INSTALL.md (fetched/03-INSTALL.md) lines 117/126 pin CCS 12.8.1) —
TI HALCoGen 04.07.01 read from project (INSTALL.md (fetched/03-INSTALL.md) line 133 pins HALCoGen 04.07.01) —
Python 3.12.8 inferred (INSTALL.md requires 'exactly 3.12.x' (a range); 3.12.8 appears only as example python --version output, so the exact patch level is not pinned) supported until 2028-10-31
Ruby (RubyInstaller x64) 3.4.2 read from project (INSTALL.md (fetched/03-INSTALL.md) line 204 pins RubyInstaller-3.4.2-1 (x64)) supported until 2028-03-31
Ceedling (Ruby gem) 1.0.1 read from project (INSTALL.md (fetched/03-INSTALL.md) line 214 installs ceedling into C:\foxbms\Ceedling\1.0.1) —
MinGW-w64 toolchain (GCC) 8.1.0 read from project (INSTALL.md (fetched/03-INSTALL.md) lines 227-232 pin x86_64-8.1.0-release-posix-seh-rt_v6-rev0) —
7-Zip not determined unpinned (INSTALL.md links 7-zip.org with no version) —
Doxygen 1.14.0 read from project (INSTALL.md (fetched/03-INSTALL.md) lines 236/241 pin Doxygen 1.14.0) —
Graphviz 14.0.0 read from project (INSTALL.md (fetched/03-INSTALL.md) lines 247/252 pin Graphviz 14.0.0) —
draw.io Desktop 28.1.2 read from project (INSTALL.md (fetched/03-INSTALL.md) lines 258/263 pin drawio-desktop 28.1.2) —
Visual Studio Code not determined unpinned (INSTALL.md links code.visualstudio.com with no version) —
click 8.3.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
GitPython 3.1.45 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
lxml 6.0.2 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
pillow 11.3.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
pyarrow 21.0.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
urllib3 2.5.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
diskcache 5.6.3 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
filelock 3.19.1 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
fonttools 4.60.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
idna 3.10 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
requests 2.32.5 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
setuptools 80.9.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
virtualenv 20.34.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
Pygments 2.19.2 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
python-can 4.6.1 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
cantools 40.6.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
pymodbus 3.4.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
PyVISA 1.15.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
RsInstrument 1.102.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
paho-mqtt 2.1.0 read from project (requirements.txt (fetched/01-requirements.txt), pinned with ==) —
Component Finding Severity Fix available?
click 8.3.0 The pinned click has a command-injection flaw in its click.edit() helper, so a foxBMS command-line tool that opens an editor could be made to run arbitrary operating-system commands. — PYSEC-2026-2132 high Yes — update to 8.3.3
GitPython 3.1.45 The pinned GitPython can be tricked into running arbitrary shell commands through crafted git options, so any foxBMS build or CI script that passes untrusted input to a git call could execute attacker-chosen commands on the build machine. — GHSA-x2qx-6953-8485, GHSA-jm78-9fvv-mhgr, GHSA-wvpp-8hx9-p66j, GHSA-r9mr-m37c-5fr3 (+2 more) high Yes — update to 3.1.58
lxml 6.0.2 The pinned lxml parses XML with external-entity resolution enabled by default, so parsing an untrusted XML or SVG file could read local files off the build machine. — GHSA-vfmq-68hx-4jfw high Yes — update to 6.1.0
pillow 11.3.0 The pinned Pillow has several out-of-bounds write and decompression-bomb flaws, which matter when the documentation build processes image files that did not come from the project itself. — GHSA-xj96-63gp-2gmr, GHSA-pwv6-vv43-88gr, GHSA-jjj6-mw9f-p565, GHSA-6r8x-57c9-28j4 (+2 more) high Yes — update to 12.3.0
pyarrow 21.0.0 The pinned pyarrow can hit a use-after-free when reading an Arrow IPC file, which matters only if measurement data from an untrusted source is loaded in that format. — GHSA-rgxp-2hwp-jwgg high Yes — update to 23.0.1
urllib3 2.5.0 The pinned HTTP library mishandles compressed responses and leaks sensitive headers across origins on proxied redirects, which affects the toolchain and package downloads the install performs over HTTP(S). — GHSA-38jv-5279-wg99, GHSA-qccp-gfcp-xxvc, GHSA-2xpw-w6gg-jr37, GHSA-gm62-xv2j-4w53 high Yes — update to 2.7.0
diskcache 5.6.3 The pinned diskcache unpickles cached data unsafely, so anything able to write into the cache directory could run code as the user; no fixed release exists. — GHSA-w8v5-vhqr-4h9v moderate Mitigation only — no fixed version is published; keep the cache directory private to the user and never share or reuse one from another machine
filelock 3.19.1 The pinned filelock has symlink race conditions when creating lock files, which a local user on a shared lab machine could abuse to overwrite files. — GHSA-w853-jp5j-5j7f, GHSA-qmgc-5h2g-mvrw moderate Yes — update to 3.20.3
fonttools 4.60.0 The pinned fontTools can write arbitrary files when processing a crafted font, relevant only when building documentation with fonts from outside the project. — GHSA-768j-98cg-p3fv moderate Yes — update to 4.60.2
idna 3.10 The pinned idna can be fooled by crafted domain names into producing a different host than intended, which weakens the URL checks around the project's own downloads. — GHSA-65pc-fj4g-8rjx moderate Yes — update to 3.15
requests 2.32.5 The pinned requests reuses temporary files insecurely in one helper, which a local user on a shared machine could exploit. — GHSA-gc5v-m9x4-r6x2 moderate Yes — update to 2.33.0
setuptools 80.9.0 The pinned setuptools can include files that the packaging rules meant to exclude when building a source distribution on macOS. — GHSA-h35f-9h28-mq5c moderate Yes — update to 83.0.0
virtualenv 20.34.0 The pinned virtualenv has a race condition when creating directories, which a local user could abuse while the foxBMS environment is being built. — GHSA-597g-3phw-6986 moderate Yes — update to 20.36.1
Pygments 2.19.2 The pinned Pygments can be made very slow by a crafted input during documentation builds; the impact is a stalled build, not a compromise. — GHSA-5239-wwwm-4pmq low Yes — update to 2.20.0
Binary toolchain downloads (Ruby, MinGW-w64, Doxygen, Graphviz, draw.io) INSTALL.md tells the student to download binary toolchain archives from sourceforge.net, github.com and gitlab.com and extract them into C:\foxbms with no checksum or signature check anywhere in the file - its 'verify' steps only confirm the .exe file is present at the expected path. posture Mitigation only — download over HTTPS only, and compare each archive against the publisher's own published checksum before extracting

What this means for your lab

Everything checked this run runs on the instructor's or student's build PC, not on the battery-management board itself. The target board is flashed over JTAG and, per the snapshot, exposes no Ethernet, web interface or SSH login, so there is nothing on it for someone on the network to log into. The real exposure is the build machine: the project pins 114 Python packages, and fourteen of them have known security bugs, including a GitPython flaw that can turn a crafted git option into arbitrary commands and a click flaw that can do the same through an editor helper. These bite when the machine processes something from outside the project - an untrusted repository, image, font or XML file - so the practical risk is a compromised lab PC rather than a hijacked battery pack. The install instructions also download toolchains as binary archives without any checksum or signature check, which means a bad download or a tampered mirror would not be noticed. What to do: bump the flagged pins in requirements.txt (most have fixed versions available), check each downloaded archive against the publisher's checksum before extracting, and keep the CAN, Modbus and instrument links on an isolated bench network. One thing this check could not establish is the operating system: the documentation never states a Windows or Linux version, so whether the host OS is still receiving security updates is unknown and worth confirming with campus IT.

Not checked

  • Host operating system (Windows / Linux): no OS version is stated in INSTALL.md, so no end-of-life or support lookup is possible; the snapshot's suggested 'Windows 11 / Ubuntu 22.04' is not supported by the sources and was not assumed
  • PowerShell: unpinned - INSTALL.md requires only '7 or later', so there is no specific version to check
  • Git: unpinned - no version stated in INSTALL.md
  • 7-Zip: unpinned - no version stated in INSTALL.md
  • Visual Studio Code: unpinned - no version stated in INSTALL.md
  • TI Code Composer Studio 12.8.1: vendor IDE with no public advisory database indexed by OSV; version is pinned but not checkable
  • TI HALCoGen 04.07.01: vendor code generator with no public advisory database indexed by OSV; version is pinned but not checkable
  • MinGW-w64 8.1.0 (GCC 8.1.0): SourceForge toolchain builds are not an OSV ecosystem, and an endoflife.date lookup for product 'gcc' returned product_not_found, so its support state is unknown
  • Doxygen 1.14.0: upstream Doxygen releases are not covered by an OSV ecosystem
  • Graphviz 14.0.0: upstream Graphviz releases are not covered by an OSV ecosystem
  • draw.io Desktop 28.1.2: upstream drawio-desktop releases are not covered by an OSV ecosystem
  • pre-commit hook tools (.pre-commit-config.yaml): the hook config was not fetched this run; its tool versions are pinned separately from requirements.txt and were not checked
  • foxBMS 2 embedded firmware (target C source, FreeRTOS): source-only embedded code with no package registry or advisory database to check against
  • gcc 8.1.0: support status: endoflife.date has no such product

Parts

Hardware bill of materials and silicon elements

Part Spec/Package Status Stock Price Source
TMS5704357BZWTQQ1 — BMS Master U1 (Hercules safety MCU) 337-NFBGA (16x16), supply 3 V ~ 3.6 V Active — readily available 944 $95.09 DigiKey
LTC6820HMS#PBF — LTC interface U1 (isoSPI transceiver) 16-MSOP / 16-TFSOP (3.00 mm), supply 2.7 V ~ 5.5 V Active — readily available 45 DigiKey; Mouser 351, Newark 283 $9.23 (Mouser $8.48) DigiKey + ECIA
MC33664ATL — NXP interface U1 (isolated transceiver) Snapshot: 16-pin SOIC, 150 mil. Catalog orderables are 16-SOIC (0.154") Not orderable as written — buy MC33664ATL1EGR2 / MC33664ATL1EG 1020 (MC33664ATL1EGR2) $8.35 · $4.88 DigiKey
MAX17841BAGU/V+ — MAXIM interface U1 (SPI to isolated UART) Snapshot: 28-TQFN-EP (4 mm x 4 mm) Not obtainable as specified — no catalog match anywhere checked — — —
LTC6811HG-1#PBF — LTC 12-cell slave U1 (stack monitor) 48-SSOP / 48-FSOP (5.30 mm) Active — readily available 750 $29.06 DigiKey
LTC6813HLWE-1#3ZZPBF — LTC 18-cell slave U1 (stack monitor) 64-LQFP-EP (10x10), -40 °C ~ 125 °C (TJ) Discontinued at DigiKey — hard to obtain 0 DigiKey (13-week lead); Rochester 3 Rochester $18.74 (qty break 25) ECIA (DigiKey link for reference)
MC33775ATE — NXP 14-cell slave U1 (cell controller) Snapshot: LQFP-64-EP (10x10). Orderable MC33775ATA1AE is 64-LQFP-EP (10x10) Not orderable as written; MC33775ATA1AE is Last Time Buy 53 DigiKey; Arrow 11,878, Mouser 191 $11.23 (Arrow $5.18) DigiKey + ECIA
TMDSEMU110-U — XDS110 JTAG debug probe (1 per bench) TI 14/20-pin JTAG, 3.3 V target I/O Active but no stock — 12-week lead everywhere 0 at DigiKey, Arrow, Mouser $218.30 (Arrow $155.35) DigiKey + ECIA

Substitutes

For part Substitute Differences Verified Judgment
MAX17841BAGU/V+ MAX17841BGUE/V+ — $11.88, 1439 in stock Same device family and the only MAX17841B orderable in stock. Package differs from the snapshot's requirement: 16-TSSOP (0.173", 4.40 mm) vs the stated 28-pin TQFN-EP (4 mm x 4 mm) — different pin count and different package family. Operating temp -40 °C ~ 105 °C (TA). verified: package/case and supplier device package (DigiKey parametrics); lifecycle and stock (DigiKey exact match). not verified: footprint compatibility with the foxBMS board — the catalog package contradicts the snapshot, and the ADI product page (fetch blocked) and datasheet PDF could not be read this run. Supply-voltage range not verified — no supply parameter returned. Not verified — plausible identity match, but not a drop-in claim. Check the board file and datasheet before ordering.
LTC6813HLWE-1#3ZZPBF LTC6813ILWE-1#3ZZPBF — industrial temperature grade Same device, same package: 64-LQFP-EP (10x10) on both. Temperature grade is narrower, -40 °C ~ 85 °C (TJ) vs -40 °C ~ 125 °C (TJ) — it falls short of the H grade rather than exceeding it, so it suits benchtop use well inside 85 °C only. verified: package/case and supplier device package match on both parts (DigiKey parametrics); operating temperature range for both (DigiKey parametrics). not verified: supply-voltage range — no supply parameter was returned for either grade, so the 11 V–82.8 V stack rail is unconfirmed. Not acceptable as an availability fix — it is also "Discontinued at DigiKey" with 0 stock at DigiKey (10-week lead), Richardson and Mouser. Recorded for baseline only.
TMDSEMU110-U TMDSEMU200-U — TI XDS200, $477.02 Named by the lab snapshot itself as an acceptable probe. Materially more expensive: $477.02 DigiKey (price break qty 6), $407.92 Mouser, $343.98 Arrow, against $155.35–$218.30 for the XDS110. Active. verified: CCS 12.8.1 compatibility (stated by the lab snapshot); lifecycle, price and stock (DigiKey exact match + ECIA distributor data). Acceptable on compatibility, but useless as an availability fix — DigiKey, Mouser and Arrow all report 0 stock on the same 12-week lead, at 2–3x the price.
TMDSEMU110-U MCU-LINK — NXP, $16.65, 753 in stock (DigiKey's own suggestion) DigiKey describes it as an "ARM Cortex-M debug probe". The lab's target is a TMS570LC4357, an ARM Cortex-R5F Hercules device, and the snapshot requires a probe supported by TI Code Composer Studio 12.8.1. verified: price and stock (DigiKey); its stated target architecture, Cortex-M, from the DigiKey description. not verified: any support for Cortex-R5F / Hercules or for TI CCS — no evidence gathered this run supports it. Rejected. Different debug architecture from the lab's MCU; DigiKey's "Similar" tag is a catalog category, not a compatibility claim.

Verify any substitute against its datasheet and against the board's own footprint before ordering.

Other dependencies

  • Source repository https://github.com/foxBMS/foxbms-2 — live and reachable this run; requirements.txt, pyproject.toml and INSTALL.md were all fetched successfully from the master branch.
  • Hardware release archives https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/hardware/release/ (master-v1.2.3, interface-*, slave-* zips) — not checked. These archives are the only source of the Altium schematics, layouts and the full discrete-component BOMs, so the entire fabrication path depends on that Fraunhofer server staying available. Worth confirming manually.
  • Project documentation site https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/latest/ — not checked this run.
  • TI tool download pages (Code Composer Studio 12.8.1, HALCoGen) — not checked this run; both require a TI account, which the lab setup assumes.
  • Fabrication — designed in Altium Designer, OSHWA certified under UID DE000128. Board dimensions, layer stackup, copper weights and surface finish are not stated in the uploaded materials; they live in the Gerber, ODB++ and .PcbDoc files inside the remote release archives, so fabrication cannot be quoted from what is here. Not checked.
  • Discrete components, connectors and isolation transformers — not priced; their line-by-line BOMs are inside those same remote archives.

Watch list

  • MC33775ATA1AE (NXP 14-cell slave) — Last Time Buy with ECIA lifecycle risk High. Channel stock is deep today (Arrow ~11.9k) but this line will disappear; expect it to be unobtainable at a future check.
  • LTC6813HLWE-1#3ZZPBF (18-cell LTC slave) — discontinued at DigiKey in both temperature grades, with a single distributor holding 3 units. The most likely part to become genuinely unobtainable next.
  • TMDSEMU110-U (XDS110 probe) — zero stock across all three authorized distributors on a 12-week lead. Watch whether stock returns or lead times stretch further.
  • MAX17841BAGU/V+ (MAXIM interface) — unresolved identity and footprint question. Until the board file is read, treat this whole interface variant as unbuildable.
  • LTC6820HMS#PBF — healthy overall, but DigiKey stock is thin at 45 units; Mouser and Newark carry the depth. Worth re-checking that the other two hold.
Snapshot What the lab depended on when it was uploaded — the baseline the readiness checks research against.

This snapshot documents the temporal dependencies, hardware components, software packages, build toolchains, and distribution endpoints for the foxBMS 2 Battery Management Development Platform based on the repository manifests, installation manuals, and hardware release specifications.

foxBMS 2 is an open-source, modular battery management development platform designed to monitor and manage electrochemical energy storage systems (Lithium-ion, Redox-Flow, Sodium-ion, and supercapacitors) ranging from low-voltage modules to high-voltage automotive traction packs (up to 800 V+ DC). The hardware architecture follows a master-slave topology: a central BMS Master board running an automotive-grade safety microcontroller controls external contactors and communicates across galvanic isolation barriers via plug-in BMS Interface cards to daisy-chained BMS Slave monitoring boards mounted directly on battery cell stacks. Logic and microcontroller digital domains run at 3.3 V I/O and 1.2 V core rails; interface transceivers operate across 3.3 V and 5.0 V isolated rails; battery slave monitoring ICs are powered directly from the individual series cell stacks (spanning approximately 10 V to 65 V DC on 12-cell and 14-cell modules, and up to 90 V DC on 18-cell modules).


Hardware Bill of Materials and Silicon Elements

The repository files provided in this workspace contain the system-level hardware release manifest (hardware_README.md), which registers versioned releases certified under OSHWA UID DE000128. The physical Altium Designer schematic files (.SchDoc), layout databases (.PcbDoc), and full line-by-line discrete component BOMs (resistors, capacitors, TVS diodes, isolated transformers, and connectors) are published as versioned release archives hosted on the Fraunhofer IISB distribution server. The hardware assemblies and essential active silicon components required to construct the platform are detailed below.

1. BMS Master Assembly: TI TMS570LC4357-based BMS-Master v1.2.3

  • Assembly Release Archive: master-v1.2.3.latest.zip (Version 1.2.3).
  • Primary Active Silicon (U1): Texas Instruments TMS570LC4357 (Hercules Safety MCU, dual-core ARM Cortex-R5F lockstep, 4 MB flash, 512 kB RAM).
    • Quantity: 1 per Master board.
    • Footprint / Package: 337-ball nFBGA (ZWT package, 16 mm × 16 mm, 0.8 mm ball pitch).
    • Electrical Constraints: VDD core supply 1.2 V nominal (1.14 V to 1.32 V); VDDIO I/O supply 3.3 V nominal (3.0 V to 3.6 V); VCCIOA ADC reference supply 3.3 V nominal.
    • Substitution Latitude: None. The HALCoGen hardware abstraction layer configuration (v04.07.01), TI ARM compiler toolchain, memory map, peripheral registers (DCAN, SPI, RTI), and embedded C source tree are hard-coded specifically for the TMS570LC4357 silicon.
    • Operated Control: No.
    • Sourcing Plan: distributor lookup: TMS5704357BZWTQQ1

2. BMS Interface Assembly: LTC Interface (LTC6820) v1.0.3

  • Assembly Release Archive: interface-ltc-ltc6820-v1.0.3.latest.zip (Version 1.0.3).
  • Primary Active Silicon (U1): Analog Devices / Linear Technology LTC6820 (isoSPI Isolated Communications Transceiver).
    • Quantity: 1 per LTC interface channel.
    • Footprint / Package: 16-lead MSOP (MSOP-16 / MSE) or 16-lead QFN (3 mm × 3 mm).
    • Electrical Constraints: Supply voltage VDD 2.7 V to 5.5 V (operates at 3.3 V from master rail); interface logic VDDIO 1.7 V to 5.5 V; drives differential isoSPI signals over isolated twisted pair cable.
    • Substitution Latitude: None. Firmware driver and physical interface rely specifically on the proprietary LTC isoSPI pulse encoding scheme to bridge MCU SPI to LTC6811/LTC6813 slave units.
    • Operated Control: No.
    • Sourcing Plan: distributor lookup: LTC6820HMS#PBF

3. BMS Interface Assembly: NXP Interface (MC33664) v1.0.2

  • Assembly Release Archive: interface-nxp-mc33664-v1.0.2.latest.zip (Version 1.0.2).
  • Primary Active Silicon (U1): NXP Semiconductors MC33664 (Isolated Network High Speed Transceiver).
    • Quantity: 1 per NXP interface card.
    • Footprint / Package: 16-pin SOIC (SOIC-16, 150 mil body width, e.g., SOIC-16EP / SOIC-16 narrow).
    • Electrical Constraints: 3.15 V to 5.5 V supply range (operates at 3.3 V logic); transforms MCU SPI into differential transformer-isolated bit streams for NXP daisy-chain communication.
    • Substitution Latitude: None. Firmware driver and physical isolated daisy-chain require NXP-specific transceiver signaling to talk to MC33775A slave devices.
    • Operated Control: No.
    • Sourcing Plan: distributor lookup: MC33664ATL

4. BMS Interface Assembly: MAXIM Interface (MAX17841B) v1.0.0

  • Assembly Release Archive: interface-maxim-max17841b-v1.0.0.latest.zip (Version 1.0.0).
  • Primary Active Silicon (U1): Analog Devices / Maxim Integrated MAX17841B (Automotive SPI to Isolated UART Interface Host Bridge).
    • Quantity: 1 per Maxim interface card.
    • Footprint / Package: 28-pin TQFN with exposed pad (4 mm × 4 mm, e.g., 28-TQFN-EP).
    • Electrical Constraints: Logic supply 3.0 V to 5.5 V (powered at 3.3 V); isolated differential UART physical layer across isolation transformers.
    • Substitution Latitude: None. The SPI-to-isolated-UART command parser in the foxBMS communication stack requires the exact MAX17841B register set.
    • Operated Control: No.
    • Sourcing Plan: distributor lookup: MAX17841BAGU/V+

5. BMS Slave Assembly: LTC 12-Cell Slave (LTC6811-1) v2.1.5 / v2.1.7

  • Assembly Release Archive: slave-12-ltc-ltc6811-1-v2.1.7.latest.zip (Version 2.1.7; previous release v2.1.5).
  • Primary Active Silicon (U1): Analog Devices / Linear Technology LTC6811-1 (12-Channel Multicell Battery Stack Monitor with isoSPI).
    • Quantity: 1 per 12-cell slave board.
    • Footprint / Package: 48-lead SSOP (SSOP-48).
    • Electrical Constraints: Total stack supply voltage V+ from 4.5 V to 55 V; individual cell inputs 0 V to 5 V; operates directly from monitored cell stack.
    • Substitution Latitude: None. Firmware driver strictly uses the LTC6811 command set, PEC15 cyclic redundancy checks, and internal ADC conversion registers.
    • Operated Control: No.
    • Sourcing Plan: distributor lookup: LTC6811HG-1#PBF

6. BMS Slave Assembly: LTC 18-Cell Slave (LTC6813-1) v1.1.3 / v1.1.5 / v1.1.6

  • Assembly Release Archive: slave-18-ltc-ltc6813-1-v1.1.6.latest.zip (Version 1.1.6; previous releases v1.1.3, v1.1.5).
  • Primary Active Silicon (U1): Analog Devices / Linear Technology LTC6813-1 (18-Channel Multicell Battery Stack Monitor with isoSPI).
    • Quantity: 1 per 18-cell slave board.
    • Footprint / Package: 64-lead eTQFP with exposed pad (LQFP-EP-64, 10 mm × 10 mm).
    • Electrical Constraints: Total stack supply voltage V+ from 11 V to 82.8 V (absolute maximum 90 V); individual cell inputs 0 V to 5 V; operates directly from battery stack.
    • Substitution Latitude: None. FoxBMS 18-cell driver requires LTC6813 register architecture and isoSPI daisy-chain handling.
    • Operated Control: No.
    • Sourcing Plan: distributor lookup: LTC6813HLWE-1#3ZZPBF

7. BMS Slave Assembly: NXP 14-Cell Slave (MC33775A) v1.0.3

  • Assembly Release Archive: slave-14-nxp-mc33775a-v1.0.3.latest.zip (Version 1.0.3).
  • Primary Active Silicon (U1): NXP Semiconductors MC33775A (14-Channel Li-Ion Battery Cell Controller IC).
    • Quantity: 1 per 14-cell slave board.
    • Footprint / Package: 64-pin LQFP with exposed pad (LQFP-64-EP, 10 mm × 10 mm).
    • Electrical Constraints: Total stack supply voltage 9.6 V to 65 V; cell measurement range up to 5 V per channel.
    • Substitution Latitude: None. Dedicated NXP daisy-chain register interface.
    • Operated Control: No.
    • Sourcing Plan: distributor lookup: MC33775ATE

8. Hardware Flashing and Debug Probe

  • Description: External JTAG hardware debug probe required to flash compiled binaries to the TI TMS570LC4357 MCU JTAG header (TI 14-pin or 20-pin compact JTAG).
    • Quantity: 1 per developer bench.
    • Electrical Constraints: 3.3 V target JTAG I/O level.
    • Substitution Latitude: Any debug probe supported by TI Code Composer Studio 12.8.1 (TI XDS110, TI XDS200, TI XDS560v2) or Lauterbach TRACE32 for Hercules ARM Cortex-R5.
    • Operated Control: No.
    • Sourcing Plan: retail shopping search: Texas Instruments TMDSEMU110-U XDS110 JTAG Debug Probe

Software and network dependencies

Host System and Native Build Toolchain

  • Host Operating System: Windows (tested installation prefix C:\foxbms) or Linux (/opt/devel/foxbms-2). Version: not stated. Where version came from: stated in documentation (INSTALL.md). Check plan: support-status lookup: Windows 11 / Ubuntu 22.04 LTS.
  • PowerShell: Version 7 or later (pwsh). Where version came from: stated in documentation (INSTALL.md, "All commands shall be run in PowerShell 7 or later"). Unpinned minimum version. Check plan: vulnerability lookup: powershell / GitHub / 7.4.0.
  • Git: Version not stated (latest release). Download: https://git-scm.com. Where version came from: stated in documentation (INSTALL.md). Unpinned. Check plan: not checkable: version not stated.
  • Texas Instruments Code Composer Studio (CCS): Version 12.8.1 (single file offline installer, Hercules Safety MCUs feature package, default path C:\ti\ccs1281). Source: https://www.ti.com/tool/download/CCSTUDIO/12.8.1. Where version came from: stated in documentation (INSTALL.md). Pinned. Check plan: not checkable: vendor standalone IDE without public CVE database.
  • Texas Instruments HALCoGen: Version 04.07.01 (installed to C:\ti\Hercules\HALCoGen\v04.07.01). Source: https://www.ti.com/tool/HALCOGEN. Where version came from: stated in documentation (INSTALL.md). Pinned. Check plan: not checkable: vendor code generator without public CVE database.
  • Python: Version 3.12.x (specifically tested and validated with 3.12.8). Source: https://www.python.org. Where version came from: stated in documentation (INSTALL.md). Virtual environment name pinned as 2025-11-pale-fox at C:\foxbms\envs\2025-11-pale-fox. Check plan: vulnerability lookup: python / Python / 3.12.8.
  • Ruby: Version 3.4.2-1 (x64). Source archive: https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.2-1/rubyinstaller-3.4.2-1-x64.7z (extracted to C:\foxbms\Ruby\Ruby34-x64). Where version came from: stated in documentation (INSTALL.md). Pinned. Check plan: vulnerability lookup: ruby / Ruby / 3.4.2.
  • Ceedling (Ruby Gem): Version 1.0.1 (installed via gem.cmd install --install-dir C:\foxbms\Ceedling\1.0.1 ceedling). Where version came from: stated in documentation (INSTALL.md). Pinned. Check plan: vulnerability lookup: ceedling / RubyGems / 1.0.1.
  • MinGW-w64 Toolchain: Version x86_64-8.1.0-release-posix-seh-rt_v6-rev0 (GCC 8.1.0 POSIX SEH 64-bit). Source archive: https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z (extracted to C:\foxbms\mingw-w64\x86_64-8.1.0-release-posix-seh-rt_v6-rev0). Where version came from: stated in documentation (INSTALL.md). Pinned. Check plan: vulnerability lookup: mingw-w64 / SourceForge / 8.1.0.
  • 7-Zip: Version not stated (downloaded from https://7-zip.org). Where version came from: stated in documentation (INSTALL.md). Unpinned. Check plan: not checkable: version not stated.
  • Doxygen: Version 1.14.0. Source archive: https://github.com/doxygen/doxygen/releases/download/Release_1_14_0/doxygen-1.14.0.windows.x64.bin.zip (installed to C:\foxbms\Doxygen\1.14.0). Where version came from: stated in documentation (INSTALL.md). Pinned. Check plan: vulnerability lookup: doxygen / GitHub / 1.14.0.
  • Graphviz: Version 14.0.0. Source archive: https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/14.0.0/windows_10_cmake_Release_Graphviz-14.0.0-win64.zip (installed to C:\foxbms\Graphviz\14.0.0). Where version came from: stated in documentation (INSTALL.md). Pinned. Check plan: vulnerability lookup: graphviz / GitLab / 14.0.0.
  • draw.io Desktop: Version 28.1.2. Source archive: https://github.com/jgraph/drawio-desktop/releases/download/v28.1.2/draw.io-28.1.2-windows.zip (installed to C:\foxbms\draw.io\28.1.2). Where version came from: stated in documentation (INSTALL.md). Pinned. Check plan: vulnerability lookup: draw.io / GitHub / 28.1.2.
  • Visual Studio Code: Version not stated. Source: https://code.visualstudio.com. Where version came from: stated in documentation (INSTALL.md). Unpinned. Check plan: not checkable: version not stated.

Python Manifest Dependencies (requirements.txt)

All 79 Python dependencies are strictly pinned using == operators in requirements.txt. Manifest path: ./requirements.txt. Where version came from: pinned in requirements.txt.

  1. alabaster==1.0.0 — vulnerability lookup: alabaster / PyPI / 1.0.0
  2. argparse-addons==0.12.0 — vulnerability lookup: argparse-addons / PyPI / 0.12.0
  3. astroid==3.3.11 — vulnerability lookup: astroid / PyPI / 3.3.11
  4. attrs==25.3.0 — vulnerability lookup: attrs / PyPI / 25.3.0
  5. babel==2.17.0 — vulnerability lookup: babel / PyPI / 2.17.0
  6. bitstruct==8.21.0 — vulnerability lookup: bitstruct / PyPI / 8.21.0
  7. build==1.3.0 — vulnerability lookup: build / PyPI / 1.3.0
  8. cantools==40.6.0 — vulnerability lookup: cantools / PyPI / 40.6.0
  9. certifi==2025.8.3 — vulnerability lookup: certifi / PyPI / 2025.8.3
  10. cfgv==3.4.0 — vulnerability lookup: cfgv / PyPI / 3.4.0
  11. charset-normalizer==3.4.3 — vulnerability lookup: charset-normalizer / PyPI / 3.4.3
  12. clang-format==21.1.1 — vulnerability lookup: clang-format / PyPI / 21.1.1
  13. click==8.3.0 — vulnerability lookup: click / PyPI / 8.3.0
  14. colorama==0.4.6 — vulnerability lookup: colorama / PyPI / 0.4.6
  15. colorlog==6.9.0 — vulnerability lookup: colorlog / PyPI / 6.9.0
  16. contourpy==1.3.3 — vulnerability lookup: contourpy / PyPI / 1.3.3
  17. coverage==7.10.7 — vulnerability lookup: coverage / PyPI / 7.10.7
  18. crccheck==1.3.1 — vulnerability lookup: crccheck / PyPI / 1.3.1
  19. cycler==0.12.1 — vulnerability lookup: cycler / PyPI / 0.12.1
  20. dill==0.4.0 — vulnerability lookup: dill / PyPI / 0.4.0
  21. diskcache==5.6.3 — vulnerability lookup: diskcache / PyPI / 5.6.3
  22. distlib==0.4.0 — vulnerability lookup: distlib / PyPI / 0.4.0
  23. docopt==0.6.2 — vulnerability lookup: docopt / PyPI / 0.6.2
  24. docutils==0.21.2 — vulnerability lookup: docutils / PyPI / 0.21.2
  25. filelock==3.19.1 — vulnerability lookup: filelock / PyPI / 3.19.1
  26. fonttools==4.60.0 — vulnerability lookup: fonttools / PyPI / 4.60.0
  27. gcovr==8.4 — vulnerability lookup: gcovr / PyPI / 8.4
  28. gitdb==4.0.12 — vulnerability lookup: gitdb / PyPI / 4.0.12
  29. GitPython==3.1.45 — vulnerability lookup: GitPython / PyPI / 3.1.45
  30. hatchling==1.27.0 — vulnerability lookup: hatchling / PyPI / 1.27.0
  31. identify==2.6.14 — vulnerability lookup: identify / PyPI / 2.6.14
  32. idna==3.10 — vulnerability lookup: idna / PyPI / 3.10
  33. imagesize==1.4.1 — vulnerability lookup: imagesize / PyPI / 1.4.1
  34. isort==6.0.1 — vulnerability lookup: isort / PyPI / 6.0.1
  35. Jinja2==3.1.6 — vulnerability lookup: Jinja2 / PyPI / 3.1.6
  36. joblib==1.5.2 — vulnerability lookup: joblib / PyPI / 1.5.2
  37. jsonschema==4.25.1 — vulnerability lookup: jsonschema / PyPI / 4.25.1
  38. jsonschema-specifications==2025.9.1 — vulnerability lookup: jsonschema-specifications / PyPI / 2025.9.1
  39. kiwisolver==1.4.9 — vulnerability lookup: kiwisolver / PyPI / 1.4.9
  40. latexcodec==3.0.1 — vulnerability lookup: latexcodec / PyPI / 3.0.1
  41. lauterbach-trace32-rcl==1.1.4 — vulnerability lookup: lauterbach-trace32-rcl / PyPI / 1.1.4
  42. lxml==6.0.2 — vulnerability lookup: lxml / PyPI / 6.0.2
  43. MarkupSafe==3.0.2 — vulnerability lookup: MarkupSafe / PyPI / 3.0.2
  44. matplotlib==3.10.6 — vulnerability lookup: matplotlib / PyPI / 3.10.6
  45. mccabe==0.7.0 — vulnerability lookup: mccabe / PyPI / 0.7.0
  46. mypy==1.18.2 — vulnerability lookup: mypy / PyPI / 1.18.2
  47. mypy_extensions==1.1.0 — vulnerability lookup: mypy_extensions / PyPI / 1.1.0
  48. nodeenv==1.9.1 — vulnerability lookup: nodeenv / PyPI / 1.9.1
  49. numpy==2.3.3 — vulnerability lookup: numpy / PyPI / 2.3.3
  50. packaging==25.0 — vulnerability lookup: packaging / PyPI / 25.0
  51. paho-mqtt==2.1.0 — vulnerability lookup: paho-mqtt / PyPI / 2.1.0
  52. pandas==2.3.2 — vulnerability lookup: pandas / PyPI / 2.3.2
  53. pandas-stubs==2.3.2.250827 — vulnerability lookup: pandas-stubs / PyPI / 2.3.2.250827
  54. pathspec==0.12.1 — vulnerability lookup: pathspec / PyPI / 0.12.1
  55. pillow==11.3.0 — vulnerability lookup: pillow / PyPI / 11.3.0
  56. pipdeptree==2.28.0 — vulnerability lookup: pipdeptree / PyPI / 2.28.0
  57. platformdirs==4.4.0 — vulnerability lookup: platformdirs / PyPI / 4.4.0
  58. pre_commit==4.3.0 — vulnerability lookup: pre_commit / PyPI / 4.3.0
  59. pyarrow==21.0.0 — vulnerability lookup: pyarrow / PyPI / 21.0.0
  60. pybtex==0.25.1 — vulnerability lookup: pybtex / PyPI / 0.25.1
  61. pybtex-docutils==1.0.3 — vulnerability lookup: pybtex-docutils / PyPI / 1.0.3
  62. Pygments==2.19.2 — vulnerability lookup: Pygments / PyPI / 2.19.2
  63. pykwalify==1.8.0 — vulnerability lookup: pykwalify / PyPI / 1.8.0
  64. pylint==3.3.8 — vulnerability lookup: pylint / PyPI / 3.3.8
  65. pymodbus==3.4.0 — vulnerability lookup: pymodbus / PyPI / 3.4.0
  66. pyparsing==3.2.5 — vulnerability lookup: pyparsing / PyPI / 3.2.5
  67. pyproject_hooks==1.2.0 — vulnerability lookup: pyproject_hooks / PyPI / 1.2.0
  68. pyright==1.1.405 — vulnerability lookup: pyright / PyPI / 1.1.405
  69. pyrsistent==0.20.0 — vulnerability lookup: pyrsistent / PyPI / 0.20.0
  70. pyserial==3.5 — vulnerability lookup: pyserial / PyPI / 3.5
  71. python-can==4.6.1 — vulnerability lookup: python-can / PyPI / 4.6.1
  72. python-dateutil==2.9.0.post0 — vulnerability lookup: python-dateutil / PyPI / 2.9.0.post0
  73. pytz==2025.2 — vulnerability lookup: pytz / PyPI / 2025.2
  74. PyVISA==1.15.0 — vulnerability lookup: PyVISA / PyPI / 1.15.0
  75. pywin32==311 (environment marker: platform_system == "Windows") — vulnerability lookup: pywin32 / PyPI / 311
  76. PyYAML==6.0.2 — vulnerability lookup: PyYAML / PyPI / 6.0.2
  77. referencing==0.36.2 — vulnerability lookup: referencing / PyPI / 0.36.2
  78. requests==2.32.5 — vulnerability lookup: requests / PyPI / 2.32.5
  79. roman-numerals-py==3.1.0 — vulnerability lookup: roman-numerals-py / PyPI / 3.1.0
  80. rpds-py==0.27.1 — vulnerability lookup: rpds-py / PyPI / 0.27.1
  81. RsInstrument==1.102.0 — vulnerability lookup: RsInstrument / PyPI / 1.102.0
  82. ruamel.yaml==0.18.15 — vulnerability lookup: ruamel.yaml / PyPI / 0.18.15
  83. ruamel.yaml.clib==0.2.14 — vulnerability lookup: ruamel.yaml.clib / PyPI / 0.2.14
  84. ruff==0.13.2 — vulnerability lookup: ruff / PyPI / 0.13.2
  85. SciencePlots==2.1.1 — vulnerability lookup: SciencePlots / PyPI / 2.1.1
  86. scipy==1.16.2 — vulnerability lookup: scipy / PyPI / 1.16.2
  87. setuptools==80.9.0 — vulnerability lookup: setuptools / PyPI / 80.9.0
  88. six==1.17.0 — vulnerability lookup: six / PyPI / 1.17.0
  89. smmap==5.0.2 — vulnerability lookup: smmap / PyPI / 5.0.2
  90. snowballstemmer==3.0.1 — vulnerability lookup: snowballstemmer / PyPI / 3.0.1
  91. Sphinx==8.2.3 — vulnerability lookup: Sphinx / PyPI / 8.2.3
  92. sphinx-rtd-theme==3.0.2 — vulnerability lookup: sphinx-rtd-theme / PyPI / 3.0.2
  93. sphinx-tabs==3.4.7 — vulnerability lookup: sphinx-tabs / PyPI / 3.4.7
  94. sphinxcontrib-applehelp==2.0.0 — vulnerability lookup: sphinxcontrib-applehelp / PyPI / 2.0.0
  95. sphinxcontrib-bibtex==2.6.5 — vulnerability lookup: sphinxcontrib-bibtex / PyPI / 2.6.5
  96. sphinxcontrib-devhelp==2.0.0 — vulnerability lookup: sphinxcontrib-devhelp / PyPI / 2.0.0
  97. sphinxcontrib-drawio==0.0.17 — vulnerability lookup: sphinxcontrib-drawio / PyPI / 0.0.17
  98. sphinxcontrib-htmlhelp==2.1.0 — vulnerability lookup: sphinxcontrib-htmlhelp / PyPI / 2.1.0
  99. sphinxcontrib-jquery==4.1 — vulnerability lookup: sphinxcontrib-jquery / PyPI / 4.1
  100. sphinxcontrib-jsmath==1.0.1 — vulnerability lookup: sphinxcontrib-jsmath / PyPI / 1.0.1
  101. sphinxcontrib-qthelp==2.0.0 — vulnerability lookup: sphinxcontrib-qthelp / PyPI / 2.0.0
  102. sphinxcontrib-serializinghtml==2.0.0 — vulnerability lookup: sphinxcontrib-serializinghtml / PyPI / 2.0.0
  103. textparser==0.24.0 — vulnerability lookup: textparser / PyPI / 0.24.0
  104. tomlkit==0.13.3 — vulnerability lookup: tomlkit / PyPI / 0.13.3
  105. types-colorama==0.4.15.20250801 — vulnerability lookup: types-colorama / PyPI / 0.4.15.20250801
  106. types-jsonschema==4.25.1.20250822 — vulnerability lookup: types-jsonschema / PyPI / 4.25.1.20250822
  107. types-pytz==2025.2.0.20250809 — vulnerability lookup: types-pytz / PyPI / 2025.2.0.20250809
  108. types-PyYAML==6.0.12.20250915 — vulnerability lookup: types-PyYAML / PyPI / 6.0.12.20250915
  109. typing_extensions==4.15.0 — vulnerability lookup: typing_extensions / PyPI / 4.15.0
  110. tzdata==2025.2 — vulnerability lookup: tzdata / PyPI / 2025.2
  111. uptime==3.0.1 — vulnerability lookup: uptime / PyPI / 3.0.1
  112. urllib3==2.5.0 — vulnerability lookup: urllib3 / PyPI / 2.5.0
  113. virtualenv==20.34.0 — vulnerability lookup: virtualenv / PyPI / 20.34.0
  114. wrapt==1.17.3 — vulnerability lookup: wrapt / PyPI / 1.17.3

Note on Unpinned Development Dependencies: The pre-commit framework is configured via .pre-commit-config.yaml (referenced in INSTALL.md), which automatically pulls unpinned or separately pinned tool hooks when invoked.

Network Exposure

  • Host Environment: The host build workflow communicates externally over HTTPS to clone https://github.com/foxBMS/foxbms-2, fetch Python packages from PyPI via pip, and download binary toolchains. Proxy configuration via http_proxy and https_proxy environment variables is documented in INSTALL.md.
  • Physical & Network Protocols on Target Hardware:
    • CAN Bus: The host tools interact with the target BMS controller over CAN using python-can==4.6.1 and cantools==40.6.0 (standard baud rates typically 500 kbps).
    • Hardware-in-the-Loop (HIL) / Industrial Protocols: Modbus communication is implemented via pymodbus==3.4.0 (annotated # HIL in requirements.txt).
    • Test Bench Instrumentation: SCPI / VISA instruments communicate via PyVISA==1.15.0 and RsInstrument==1.102.0 over USB, GPIB, or Ethernet.
    • Telemetry: MQTT telemetry is supported on the host side via paho-mqtt==2.1.0.
  • Target Listening Ports, Web Interfaces, and SSH: Not stated in the sources. The physical BMS target runs bare-metal / FreeRTOS embedded C without an integrated Ethernet web interface, SSH server, or default IP credentials documented in the provided workspace files. Target flashing is achieved exclusively via JTAG.

External Downloads and Distribution Endpoints

The project relies on external servers for toolchain archives and hardware releases:

  • Hardware release packages: https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/hardware/release/
    • master-v1.2.3.latest.zip
    • interface-ltc-ltc6820-v1.0.3.latest.zip
    • interface-nxp-mc33664-v1.0.2.latest.zip
    • interface-maxim-max17841b-v1.0.0.latest.zip
    • slave-12-ltc-ltc6811-1-v2.1.7.latest.zip
    • slave-18-ltc-ltc6813-1-v1.1.6.latest.zip
    • slave-14-nxp-mc33775a-v1.0.3.latest.zip
  • Main source repository: https://github.com/foxBMS/foxbms-2
  • Project online documentation: https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/latest/
  • Texas Instruments CCS: https://www.ti.com/tool/download/CCSTUDIO/12.8.1
  • Texas Instruments HALCoGen: https://www.ti.com/tool/HALCOGEN
  • RubyInstaller binary archive: https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.2-1/rubyinstaller-3.4.2-1-x64.7z
  • MinGW-w64 archive: https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z
  • Doxygen standalone release: https://github.com/doxygen/doxygen/releases/download/Release_1_14_0/doxygen-1.14.0.windows.x64.bin.zip
  • Graphviz release: https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/14.0.0/windows_10_cmake_Release_Graphviz-14.0.0-win64.zip
  • draw.io Desktop release: https://github.com/jgraph/drawio-desktop/releases/download/v28.1.2/draw.io-28.1.2-windows.zip

Fabrication Specifications

  • Design Environment: Altium Designer.
  • Certification: Open Source Hardware Association (OSHWA) UID DE000128.
  • Board Dimensions, Layer Stackup, and Copper Weights: Not stated in the uploaded workspace text files. Layer count, board outlines, copper weights (e.g., 35 µm vs 70 µm for high-current balancing paths), and surface finish (ENIG recommended for BGA/QFN packages) are defined inside the Gerber, ODB++, and .PcbDoc files distributed in the remote hardware release zip archives listed above.