Easy-to-use, low-cost, open-source solution that includes compatible hardware and software sets of tools. This comprehensive solution is designed to fulfill the need for firmware energy profiling, as well as State of Charge (SoC) and State of Health (SoH) algorithm evaluation for real LiPo battery-powered embedded devices.
Official youtube channel
- Features
- Building and Running the Energy Profiler Probe Firmware
- Contributor guide
- Documentation
- Acknowledgments
- Real-time Voltage and Current streaming
- High-speed data acquisition up to 1 MSPS
- Programmable load generation and custom waveform creation
- Graphical User Interface for data visualization and control
- Open source hardware
Label | Description | Label | Description |
---|---|---|---|
C1 | 5V Power Supply | C2 | Battery connectors |
C3 | Load connector | C4 | Charger connector |
C5 | Energy Debugging Interface | C6 | Nucleo USB Connector (visible from bottom side) |
C7 | RJ45 Connector | C8 | Load and Charger Ground |
T1 | ADC Test Points | ||
J2 | ADC Selector: Int or Ext (default) | J1 | Power supply selector: 5V (default) or 12V |
S2 | Power supply indicators | S1 | Protection and switches status |
To successfully build and run the EPP firmware, STM32CubeIDE must be installed and properly configured with the required dependencies. The following steps guide you through the full setup process.
The latest version of STM32CubeIDE should be downloaded from this link.
After downloading, install STM32CubeIDE on your machine by following the standard installation instructions provided by STMicroelectronics.
There are two main methods for downloading the project from the official GitHub repository:
- Method 1: Using a Git console, such as Git Bash, to clone the repository directly via the command line.
- Method 2: Navigate to the repository's GitHub page, click the green Code button, and select Download ZIP. This will download the project files as a compressed archive.
- Launch STM32CubeIDE and configure the workspace path.
- Navigate to File → Open Projects from File System (1 and 2 on the figure bellow).
When the Import Project from File System or Archive window opens, specify the directory where the project is located (in this case, Source/ADFirmware
).
To do so, click the Directory button (1 in Figure bellow).
After clicking Directory, the Browse for Folder window appears (see Figure bellow).
Navigate to the Source/ADFirmware
directory, select it (1 in FIgure bellow), and click Select Folder (2 in FIgure bellow).
If the project is successfully detected, the window (Figure bellow) will update to show the discovered project (as in Figure bellow).
To finalize the import, click the Finish button (1 in Figure bellow).
Once the project is imported, it will be visible in the Project Explorer panel (see Figure bellow).
The PROJECT_PATH
variable serves as a reference for many relative include paths in the project. Instead of hardcoding absolute paths, the source files and build configurations use this variable to dynamically resolve header and source file locations, improving portability and maintainability.
To define PROJECT_PATH
:
- Right-click on the project named ADFirmware_CM7 in the Project Explorer and select Properties.
- Navigate to C/C++ Build → Build Variables (see Figure bellow).
- Locate the variable
PROJECT_PATH
. Double-click it to open the Edit Existing Build Variable dialog (1 in Figure bellow). - Click Browse (step 1 in Figure bellow), navigate to the
Source/ADFirmware
directory, select it, and click OK.
After clicking OK, return to the Properties window and click Apply and Close to finalize the change.
If the path is set correctly, the include paths under ADFirmware_CM7 → Includes will update automatically.
The folder icon will change from a transparent folder with a yellow warning triangle to a solid blue folder, indicating successful path resolution.
Once the project is fully configured:
- In the Project Explorer, right-click on ADFirmware_CM7.
- It is recommended to perform a Clean Project first to remove any previously generated files.
- After cleaning, right-click again and select Build Project. This will compile the project using the defined settings and paths.
If the build is successful, the binary file ADFirmware_CM7.elf
will appear under ADFirmware_CM7 → Binaries.
To run and start debugging:
- Click on the bug icon in the toolbar (step 2 in Figure 5.11).
- This will start the first debug session, allowing you to flash the firmware onto the target board and begin testing.
To start contributing, fork the main repository to your own GitHub account:
- Navigate to the repository you want to contribute to.
- Click the Fork button in the upper-right corner. (This is an example for
OpenEPT/FEPLib
repo.) - This will create a copy of the repository under your GitHub account.
Once the repository is forked, clone it to your local machine:
# Replace <your-username> with your GitHub username
git clone https://github.com/<your-username>/<repository-name>.git
cd <repository-name>
Before making changes, create a new branch based on the type of contribution:
- For new features, name the branch
feature/<name>
. - For bug fixes, name the branch
bug/<name>
.
To create a branch:
# Replace <branch-name> with your branch name
# Example for a feature: feature/apard32690_lib
# Example for a bug fix: bug/fix_esp12e_lib
git checkout -b <branch-name>
Make the necessary changes to your branch. Test thoroughly to ensure your contribution does not introduce new issues.
Before any changes, please read developer Documentation
Once your changes are ready, stage and commit them:
git add .
# Write a descriptive commit message
git commit -m "Description of the changes made"
Push the changes to your forked repository:
# Push the branch to your fork
git push origin <branch-name>
- Navigate to your forked repository on GitHub.
- Switch to the branch you just pushed.
- Click the Compare & pull request button.
- Ensure the base repository is set to the main/master repository and the base branch is `main
- Provide a descriptive title and detailed description for your pull request.
- Add appropriate reviewers
- Submit the pull request.
Once the pull request is submitted:
- Wait for project maintainers to review your changes.
- Address any feedback provided by making additional commits to your branch.
- Once approved, the maintainers will merge your changes.
After your changes are merged, keep your fork updated with the main repository to avoid conflicts:
git remote add upstream https://github.com/<original-owner>/<repository-name>.git
git fetch upstream
git checkout main
git merge upstream/main
For detailed developer instructions and additional materials, please see the Documentation->Software under Materials on the offical project website.