Project Files of 12V LiFePO4 Battery Library for Proteus Simulation
4cd0c575ff604feebcad1fa971443bfd.zip

12V LiFePO4 Battery Library for Proteus V1.0
12V LiFePO4 Battery Library for Proteus V1.0 comes as a ZIP archive of 13 files (1.5 MB, 3.3 MB unpacked) holding Proteus library files, simulation model DLLs, a Proteus simulation, an Arduino sketch and compiled HEX firmware.
- LIBProteus library
- DLLProteus model
- DSNProteus simulation
- INOArduino sketch
- HEXHEX firmware
Description
12V-LiFePO4-Battery-Library-for-Proteus-v1.0.zip with the 12.8 V 7 Ah LiFePO4 battery and its BMS for Proteus simulation (TEPLIFEPO4.LIB and TEPLIFEPO4.DLL), our hand crank generator as the charger, our Arduino UNO V4.0, the A3 demo with its sketch and a README.
File Structure
5.1 KB201.9 KB13.3 KB15.2 KB883.5 KB317 KB322.5 KB23 KB25.4 KB883.5 KB317 KB322.5 KB16.6 KBGallery12 images from the tutorialOpen the tutorial
The circuit, the board and the results as they appear in 12V LiFePO4 Battery Library for Proteus Simulation. Open an image for its full size.












README
12V LIFEPO4 BATTERY LIBRARY FOR PROTEUS SIMULATION - V1.0 (the 12.8 V 7 Ah LiFePO4 battery with its BMS, with a pop-up)
Designed by The Engineering Projects
www.TheEngineeringProjects.com
IMPORTANT LINKS
Article (read it first - pictures, step by step, every feature explained):
https://www.theengineeringprojects.com/2026/11/12v-lifepo4-battery-library-for-proteus.html
Report a bug or suggest a feature (our forum):
https://www.theengineeringprojects.com/forum/category/motor-driver-proteus-library
The demo runs on our Arduino UNO V4.0 (included) - working LEDs, RESET and a
built-in serial monitor, no Virtual Terminal to wire - its own article:
https://www.theengineeringprojects.com/2026/10/arduino-uno-library-for-proteus-v40.html
The demo measures it with our INA219 library (installed from its own package - not in this zip):
https://www.theengineeringprojects.com/2026/10/ina219-current-sensor-library-for-proteus-v1-0.html
The demo's charger is our Hand Crank Generator (its LIB and DLL are in this zip; its own article):
https://www.theengineeringprojects.com/2026/11/hand-crank-generator-library-for-proteus.html
Support us (the libraries are free):
https://www.theengineeringprojects.com/donate
FILE STRUCTURE
LiFePO4-Battery-TEP-v1.0/
|-- Proteus Library Files/
| |-- ArduinoV4TEP.LIB 201.9 KB TEP Arduino boards V4.0 (UNO) -> LIBRARY
| |-- TEPCRANK.LIB 13.3 KB a part the demo uses -> LIBRARY folder
| |-- TEPLIFEPO4.LIB 15.2 KB the library -> LIBRARY folder
|-- Proteus Model Files/
| |-- TEPARDUINO.DLL 883.5 KB the Arduino board model -> MODELS folder
| |-- TEPCRANK.DLL 317.0 KB its model -> MODELS folder
| |-- TEPLIFEPO4.DLL 322.5 KB the model -> MODELS folder
|-- Proteus Simulation/
| |-- LiFePO4_Demo.hex 25.4 KB the demo firmware
| |-- LiFePO4-Battery-Crank-INA219-ArduinoUnoV4.pdsprj 23.0 KB the demo project
| |-- TEPARDUINO.DLL 883.5 KB copy of the board model
| |-- TEPCRANK.DLL 317.0 KB copy of its model
| |-- TEPLIFEPO4.DLL 322.5 KB copy of the model
|-- Arduino Code/
| |-- LiFePO4_Demo/LiFePO4_Demo.ino 5.1 KB the demo sketch (source of the .hex)
|-- README.txt ~17.7 KB this file
Total: 3.27 MB (unzipped). The C++ source code of the models is not included.
WHAT IS IT?
The 12.8 V 7 Ah lithium iron phosphate (LiFePO4) battery with its built-in BMS - the drop-in
replacement of the 12 V 7 Ah sealed
lead-acid battery - drawn at true scale from the front (the black case 151 x 94 mm, the blue label,
the two blade terminals on
top, a red and a black lead to the pins; our own drawing, no maker's mark). Four cells in series,
89.6 Wh:
* The voltage follows the charge left by the flat LiFePO4 curve: 13.6 V full, about 13.2 V from 90
% down to 30 %, 12.9 V at
20 %, 12.0 V at 10 % and 10.0 V empty, behind 80 mohm (more when nearly empty or cold) and a
slow polarisation.
* The charge is counted: every ampere second out or in moves it. SPEED runs that battery clock
faster (3600: an hour of
charging or discharging each simulated second), so a whole discharge fits into a few seconds of
simulation.
* Charging meets an extra resistance over the last 5 %: at 14.4 V the charge current tapers off by
itself, and a charger that
keeps pushing drives the voltage up until the BMS stops it.
* The BMS: the load is cut off under 10.0 V and comes back when the cells are charged to 12.0 V;
the charge is stopped when a
cell reaches 3.9 V (15.6 V) and allowed again when the cells and the charger are back under 3.6
V a cell (14.4 V); it opens at 20 A (at once at 60 A) and closes when the load is
gone; no charge below 0 C or above 45 C, nothing below -20 C or above 60 C. Each block is
one-way, as with a real BMS's two
MOSFETs: a battery cut off for a low voltage still takes a charge.
* On the sheet the battery writes its state and the charge left above itself and its volts, amps
and watts under itself at
Run. Click it at Run for the pop-up: the four cells and the BMS with the current's direction,
the voltage curve with the
limits and the working point, eight live values; graphs, an event log and a check page.
The body is drawn as on the real part and to true scale against our Arduino.
The TEP signature and the pop-up are TEP additions.
ONE DEVICE (search "LIFEPO4" in Pick Devices):
LIFEPO4BAT12V7TEP "LiFePO4 Battery 12.8 V 7 Ah V1.0" in TEPLIFEPO4.LIB (Electromechanical >
Batteries), prefix BAT, model
TEPLIFEPO4.DLL (analog). Pins + and - on the left (the red and black leads from
the terminals). The name
starts with L so that it sorts after the embedded ARDUINO UNO V4.0.
THE POP-UP
Click the part at Run. Tabs:
Battery chips: set the charge (Full, 50 %, 20 %, 5 %); the battery clock (x 1, x 60, x 3600);
Reset BMS. The four cells
filled to the charge left, each with its voltage; the BMS with its two switches
(charge, load) as lamps; the
current's direction and size; the pack's rest voltage against the charge left with
the three limits (10.0 V the
load is cut off, 14.4 V the charge voltage, 15.6 V the charge is stopped), the rest
point (ring) and the
terminals now (dot); eight live values: the charge left in % and Ah, the terminals'
volts, the current and its
direction, the power, the time left at this current, each cell's volts, the Ah out
and in so far, the BMS's two
switches.
Graphs the live values over the last 2, 6 or 15 s. Live / Freeze.
Event log every change and warning; filters All / Changes / Warnings, Pause, Clear
Check what the part is doing and what to look at, each with a verdict (green = fine, amber
= check, red = wrong)
Settings theme, text size, open at Run, window size
Help report a bug, suggest a feature, article, updates, donate, forum; Copy diagnostics
for a bug report
TEST STATUS
V1.0: verified in Proteus 8.5 on 16 Nov 2026 (the demo project as shipped: an A3 sheet, an Arduino UNO V4.0).
What the runs showed (the model's own numbers and the sketch's monitor):
The demo as shipped (LiFePO4_Demo, SOC 5 %, SPEED 3600, R1 22 ohm, HC1 CRANK DEMO), one run
(lffinal2), the model's own pauses:
* Almost empty (0.25 s): 3 % left (0.22 Ah), 10.91 V at 0.50 A out, 5.4 W, each cell 2.73 V; about
27 minutes to empty.
* DISCHARGE CUT OFF at 1.110 s: the pack fell to 10.00 V after 0.34 Ah - the BMS opened; the
terminals show 8.91 V (the hand crank
at 30 turns a minute alone feeds the load).
* The crank at 60 turns a minute (2.3 s): the cut-off pack takes a charge, 0.78 A in at 11.19 V
(2.75 s); the BMS closed again at
3.363 s, the cells back at 12.0 V (10 %).
* Charging: 0.64 A in at 12.40 V with 13 % (3.7 s); with the crank at the hand's limit (69 turns a
minute, 13.17 V 1.46 A 19.2 W)
0.86 A in at 13.08 V, 11.3 W, 29 % (5.2 s); with the crank at 60 turns a minute 0.55 A in at
13.19 V, 50 % (7.2 s). The log's
marks: 25 % charged at 4.884 s, 50 % at 7.251 s.
* The hand lets go at 8.3 s with 56 % in the battery: it feeds the load alone, 13.06 V at 0.59 A
out, 7.8 W, 49 % left (3.41 Ah) at
9.45 s, about 5 h 44 min to empty. In all 1.02 Ah (12.5 Wh) out and 4.08 Ah (52.0 Wh) in; one
cut-off; the lowest 8.91 V, the
highest 13.22 V at the terminals.
* The INA219 (U1) read 13.172 V on the bus, -86.00 mV on the shunt, -860.0 mA (a charge reads
negative); the monitor printed
"Battery 13.09 V 0.86 A 11.3 W in charging" and ended at "net +3.33 Ah". 171 s for the 9.4 s
of the run.
A second run with SOC 99 % (lfcheck2), the same circuit: the crank charges the nearly full pack, its
voltage climbs over the last
percent and at 4.737 s the BMS stops the charge - CHARGE CUT OFF, a cell at 3.91 V (15.6 V the
pack). The battery rests at 3.38 V a
cell; the bus, now fed by the crank alone, stands at 26.72 V. Once the hand lets go the battery
feeds the load (a discharge is still
allowed), and at 10.312 s the BMS allows a charge again.
INSTALLATION (about 2 minutes)
1. Close Proteus. Extract the WHOLE ZIP to a normal folder (e.g. Desktop).
2. Copy everything in "Proteus Library Files" (TEPLIFEPO4.LIB, TEPCRANK.LIB and our Arduino library
V4.0, ArduinoV4TEP.LIB, with the ARDUINO UNO V4.0 used by the demo) to the LIBRARY folder of
Proteus, for example:
C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY
(use the folder that already holds Proteus's own .LIB files).
3. Copy TEPLIFEPO4.DLL, TEPCRANK.DLL and TEPARDUINO.DLL from "Proteus Model Files" to the MODELS
folder (...\Proteus 8 Professional\MODELS).
4. Delete TEPLIFEPO4.IDX from the LIBRARY folder if it is there (Proteus makes a new index).
5. Start Proteus. In Pick Devices (P) search "LIFEPO4".
RUN THE DEMO
"Proteus Simulation\LiFePO4-Battery-Crank-INA219-ArduinoUnoV4.pdsprj" (an A3 sheet) - keep the .hex
file and the DLLs beside the project.
ARD1: Arduino UNO V4.0 running LiFePO4_Demo.hex, its serial monitor built in (window "TEP
Arduino UNO - ARD1").
U1: our INA219 (its pop-up version) between the battery's + (VIN+) and the bus (VIN-): a
current out of the battery
reads positive, a current into it negative; SDA A4, SCL A5.
BAT1: the battery, SOC 5 %, SPEED 3600 (an hour each simulated second), TEMP 25.
R1: 22 ohm on the bus, the load (a 12 V lamp of about 7 W).
HC1: our hand crank generator on the bus, CRANK DEMO: 30 turns a minute from 0.3 s, 60 from 2.3
s, 90 asked from 4.3 s,
60 again from 6.3 s, the hand lets go at 8.3 s. Its rectifier keeps the battery from
turning the handle.
The load empties the battery, the BMS cuts it off, the crank charges it and the BMS closes
again; the monitor prints
the battery's volts, amps and watts, what it is doing and the amp-hours lost or gained;
the UNO's LED lights while it
charges.
Closed the monitor? Click the UNO's USB port.
WIRING (the same in Proteus and on a real board)
+ and - like any 12 V battery. Put a fuse in the + lead on a real bench. For a charger use 14.4 V
with a current limit of
1.4 to 3.5 A; to measure the current both ways put a shunt (here the INA219) in the + lead.
REAL HARDWARE:
* Charge at 14.4 V (14.2 to 14.6 V), 1.4 A is kind to it, 3.5 A at most; a lead-acid charger with a
desulphation mode is
not suitable.
* Do not rely on the BMS to end every charge and every discharge: it is the last line of defence.
* A battery that shows 0 V has been cut off by its BMS: a charger wakes it up. Do not leave it
empty for weeks.
* Never charge it below 0 C. Never short the terminals: a real pack can give far more than 20 A for
a moment.
THE DEMO SKETCH ON THE SERIAL MONITOR (LiFePO4_Demo V1.0, 9600 baud)
The sketch reports every 500 ms. Type a command:
reset forget the amp-hours rate 1000 report every 1000 ms help
EXPECTED MONITOR OUTPUT
LiFePO4 Battery (12.8 V 7 Ah) demo - The Engineering Projects
Battery 10.28 V 0.16 A 1.6 W out discharging net -0.18 Ah
Battery 8.91 V 0.00 A the BMS has cut the load off - charge the battery net -0.24 Ah
Battery 13.09 V 0.86 A 11.3 W in charging net +1.79 Ah
Battery 13.07 V 0.59 A 7.8 W out discharging net +3.33 Ah
PROPERTIES (double-click the part > Edit Properties)
Charge at the start (SOC) %, 0 - 100 (80)
Battery clock (SPEED) 1 real time, 3600 an hour of charging or discharging each
simulated second, 1 - 7200 (1)
Temperature (TEMP) C, -30 - 70: a charge is allowed from 0 to 45 C, a discharge
from -20 to 60 C (25)
Every run starts again from the properties.
LINKS.INI (OPTIONAL)
The Help page cards of the pop-up open web pages. To point them somewhere else without a new DLL,
put a text file named links.ini next to TEPLIFEPO4.DLL with lines KEY=URL, for example:
ARTICLE=https://www.theengineeringprojects.com/...
Keys: WEBSITE, FORUM, BUG_REPORT, FEATURE_REQUEST, ARTICLE, USER_GUIDE,
UPDATE_CHECK, DONATE. Only http:// and https:// links are used; lines starting
with # are comments.
TROUBLESHOOTING
* 0 V at the terminals, BMS CUT OFF: the pack fell to 10.0 V. Charge it: the BMS closes again at
12.0 V (10 %).
* CHARGE CUT OFF: a cell reached 3.9 V - the charger's voltage is too high or it has no voltage
limit. Use 14.4 V.
* BMS: OVER CURRENT: more than 20 A flowed. Remove the load (or click Reset BMS in the pop-up).
* The charge hardly moves: at SPEED 1 a 7 Ah battery needs hours, as a real one does. Raise SPEED
(60 or 3600).
* The voltage stays at 13.2 V whatever the charge: that is LiFePO4 - read the charge in the pop-up
or count the amp-hours.
* It will not charge: TEMP is below 0 C or above 45 C.
* The part is not simulated: TEPLIFEPO4.DLL is missing from MODELS and from the project folder. No
UNO / no monitor window: TEPARDUINO.DLL is missing, or click the UNO's USB port.
BUG REPORTS AND FEATURE REQUESTS
Please post them in our forum with a screenshot, the Serial Monitor text, the
simulation log and the pop-up's Copy diagnostics text:
https://www.theengineeringprojects.com/forum/category/motor-driver-proteus-library
SUPPORT US
This library is free. If it saves you time, please support our work:
https://www.theengineeringprojects.com/donate
WEBSITE
https://www.theengineeringprojects.com/
LICENCES AND THIRD-PARTY NOTES
* The model (TEPLIFEPO4.DLL), the symbols and artwork, the other parts of ours in the demo and the
Arduino Library V4.0 (ArduinoV4TEP.LIB / TEPARDUINO.DLL, with its built-in TEP Serial Monitor
Advance) are made by The Engineering Projects. The models use only standard Windows libraries; no
Visual C++ redistributable is needed.
The C++ source code is not included.
* Arduino UNO V4.0 (ArduinoV4TEP.LIB / TEPARDUINO.DLL, our Arduino Library V4.0 - its
microcontroller is Proteus's own AVR model): The Engineering Projects,
https://www.theengineeringprojects.com/2026/10/arduino-uno-library-for-proteus-v40.html
* The .hex file is built from the demo sketch and the Arduino AVR core 1.8.6, which includes
LGPL-licensed code; its source code is available at
https://github.com/arduino/ArduinoCore-avr/tree/1.8.6
* Proteus is a product of Labcenter Electronics and is not included. Arduino is a trademark of Arduino SA.
This library is not made or endorsed by Arduino or Labcenter.
REBUILDING THE FIRMWARE (OPTIONAL)
The HEX file is supplied; Arduino IDE is not needed to run the demo. To edit the sketch, open
Arduino Code\LiFePO4_Demo\LiFePO4_Demo.ino, select Arduino Uno and use Sketch > Export Compiled
Binary. Replace the simulation's .hex with the exported HEX. The sketch needs 9,228 bytes of flash
and 504 bytes of RAM.
MODEL SCOPE AND LIMITS
Modelled: the rest voltage against the charge left (the sellers' charts: 13.6 V full, 13.2 V at 70
%, 12.9 V at 20 %, 12.0 V at
10 %, 10.0 V empty; straight lines between twelve points); the internal resistance (80 mohm - the
sheet says 100 mohm at most;
three times that when empty, 2 % more for every degree under 25 C - our figures); a polarisation of
30 mohm with 30 s (ours); the
charge counter with the battery clock; a charge taper over the last 5 % (ours); self-discharge 2 % a
month; the BMS's cut-offs
(10.0 V and 3.9 V a cell from the sheet; the releases 12.0 V and 3.6 V a cell, 20 A / 60 A and the
delays - one second of
battery time for the two voltages - are ours) as one-way
blocks; the temperature limits of the sheet.
Not modelled: ageing and cycle life, cells that drift apart (all four are equal), the heat the pack
makes, the BMS's own
supply current, the voltage's slow rise after a load is taken away beyond the one polarisation,
damage from a deep discharge.
VERSION
TEP LiFePO4 Battery library V1.0 (Nov 2026). Device LIFEPO4BAT12V7TEP (TEPLIFEPO4.LIB /
TEPLIFEPO4.DLL). Demo sketch LiFePO4_Demo V1.0 (the INA219 read straight with Wire). The demo also
uses our Hand Crank Generator (TEPCRANK), shipped in this package. Demo board: ARDUINO UNO V4.0 (TEP
Arduino Library V4.0) with its built-in serial monitor.Development1 release
-
V1.012V LiFePO4 Battery Library for Proteus V1.0this page
V1.0 is the only release in the Download Center so far. When a newer version is published, it appears above with its own download page.
Installation8 steps
From the download to a working project, in order. The steps follow what the package contains.
You will need
- Proteus Design SuiteProteus 8 or newer (Labcenter), on Windows
- Arduino IDE1.8 or 2.x, with the board of the tutorial chosen under Tools → Board
- Any archive toolWindows, macOS and Linux extract ZIP files on their own
Steps
- 1
Extract the archive
Right-click 4cd0c575ff604feebcad1fa971443bfd.zip and choose Extract All (or open it with 7-Zip or WinRAR) into a folder you can find again. Keep its folder structure (LiFePO4-Battery-TEP-v1.0) as it is.
- 2
Copy the library files into Proteus
Move ArduinoV4TEP.LIB, TEPCRANK.LIB and TEPLIFEPO4.LIB and the files into the LIBRARY folder of your Proteus installation: C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY for Proteus 8, or the matching Proteus 7 folder. Older versions keep it under ProgramData\Labcenter Electronics. If Proteus is open, close it first.
- 3
Add the simulation model
Copy TEPARDUINO.DLL, TEPCRANK.DLL and TEPLIFEPO4.DLL into the MODELS folder next to LIBRARY, so the component can run, not only be drawn.
- 4
Restart Proteus and place the component
Start Proteus, open a schematic, press P (Pick Devices) and search for the component by the name used in the tutorial. It appears with its pins ready to wire.
- 5
Open the sketch in the Arduino IDE
Open LiFePO4_Demo.ino, select your board and port under Tools, then Verify. Sketch → Export Compiled Binary writes the HEX file a simulation needs.
- 6
Load the HEX file
In Proteus double-click the microcontroller, set Program File to LiFePO4_Demo.hex and run the simulation. For real hardware, flash the same file with your programmer.
- 7
Open the example simulation
Open LiFePO4-Battery-Crank-INA219-ArduinoUnoV4.pdsprj in Proteus to see the wiring exactly as in the tutorial. Check the controller's Program File path, then press Play.
- 8
Follow the tutorial
12V LiFePO4 Battery Library for Proteus Simulation explains every connection and setting in order; keep it open beside the files while you build.
FAQs9 questionsContact TEP
How do I download 12V LiFePO4 Battery Library for Proteus V1.0?
Wait for the 30-second guest countdown on this page, then press the download button; the file comes straight from our storage. Members who are logged in skip the wait. If the browser opens the file instead of saving it, use its Save as option. The download link is made for you when the countdown ends and works for 15 minutes; a saved or shared link stops working, so share this page instead.
What is inside the archive?
12V LiFePO4 Battery Library for Proteus V1.0 comes as a ZIP archive of 13 files (1.5 MB, 3.3 MB unpacked) holding Proteus library files, simulation model DLLs, a Proteus simulation, an Arduino sketch and compiled HEX firmware. Open the File Structure tab for the full list of 13 files.
What should I do if the download does not start?
Check the browser's download list first; an ad blocker or a company firewall can also hold it back, so try another browser or network. If the file arrives incomplete, download it again. For an installation problem, read the Install tab or tell us in the comments with your software version and the exact error message.
Is this file free?
Yes. Every file in the TEP Download Center is free for learning, personal and student projects. If you share it, link back to this page or the tutorial so others find the latest version.
How do I check that the file arrived complete?
Compare its SHA-256 with the one on this page, e1c2c1960f7e5a6a8b0c6c86fe86e6ab97502bfa334ce6ad4ea9011875baf1a3. In PowerShell run Get-FileHash "4cd0c575ff604feebcad1fa971443bfd.zip"; on macOS or Linux run shasum -a 256 "4cd0c575ff604feebcad1fa971443bfd.zip". The same value means the file is exactly the one in our storage; a different one means the download broke off, so download it again.
Do I need WinRAR to open the ZIP file?
No. Windows, macOS and Linux open ZIP archives on their own (Extract All, or double-click). WinRAR and 7-Zip work too. Extract the whole archive before using the files.
Where do I put the LIB and IDX files?
Both files go into the LIBRARY folder of your Proteus installation (Proteus 8: C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY; Proteus 7 has the same folder under its own name). Restart Proteus afterwards and search for the component with P.
Which Proteus version does the library need?
The tutorial names the Proteus version the library was made and tested with. Most TEP libraries work in Proteus 7 and Proteus 8; if the component does not appear after a restart, check that both the LIB and the IDX file were copied and that Proteus was fully closed while copying.
How do I get the HEX file into the simulation?
Compile the sketch in the Arduino IDE (Sketch → Export Compiled Binary gives you the HEX next to the sketch), then in Proteus double-click the board, set Program File to that HEX and run.
Members skip the wait. Log in or join TEP.
- 0Total downloads
- 4%Popularity
- ProteusCategory
- 0Comments
- ssyedzainnasirUploaded by
- 15 Nov 2026Uploaded at
e1c2c1960f7e5a6a8b0c6c86fe86e6ab97502bfa334ce6ad4ea9011875baf1a3
















Comments
0