Skip to content

Commit f293523

Browse files
committed
Merge branch 'feat/add_sensor_max17048' into 'master'
feat(sensor): add max17048 lithium battery monitor sensor Closes AEGHB-287 See merge request ae_group/esp-iot-solution!1189
2 parents b8f75dc + 4b47315 commit f293523

File tree

22 files changed

+1470
-1
lines changed

22 files changed

+1470
-1
lines changed

.github/workflows/upload_component.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ jobs:
6464
components/motor/esp_simplefoc;
6565
components/motor/servo;
6666
components/openai;
67+
components/sensors/battery_fuel_gauge/max17048;
6768
components/sensors/power_measure;
6869
components/sensors/gesture/apds9960;
6970
components/sensors/humiture/aht20;

.gitlab/ci/build.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1303,6 +1303,14 @@ build_components_sensors_power_measure_test_apps:
13031303
variables:
13041304
EXAMPLE_DIR: components/sensors/power_measure/test_apps
13051305

1306+
build_components_sensors_battery_fuel_gauge_max17048_test_apps:
1307+
extends:
1308+
- .build_examples_template
1309+
- .rules:build:components_sensors_battery_fuel_gauge_max17048_test_apps
1310+
- .build_idf_active_release_version
1311+
variables:
1312+
EXAMPLE_DIR: components/sensors/battery_fuel_gauge/max17048/test_apps
1313+
13061314
build_components_sensors_gesture_apds9960_test_apps:
13071315
extends:
13081316
- .build_examples_template

.gitlab/ci/rules.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,10 @@
202202
- "components/sensors/power_measure/**/*"
203203
- "components/tools/cmake_utilities/package_manager.cmake"
204204

205+
.patterns-components_sensors_battery_fuel_gauge_max17048: &patterns-components_sensors_battery_fuel_gauge_max17048
206+
- "components/sensors/battery_fuel_gauge/max17048/**/*"
207+
- "tools/cmake_utilities/package_manager.cmake"
208+
205209
.patterns-components_sensors_gesture_apds9960: &patterns-components_sensors_gesture_apds9960
206210
- "components/sensors/gesture/apds9960/**/*"
207211
- "tools/cmake_utilities/package_manager.cmake"
@@ -2016,6 +2020,17 @@
20162020
- <<: *if-dev-push
20172021
changes: *patterns-components_openai
20182022

2023+
.rules:build:components_sensors_battery_fuel_gauge_max17048_test_apps:
2024+
rules:
2025+
- <<: *if-protected
2026+
- <<: *if-label-build
2027+
- <<: *if-label-target_test
2028+
- <<: *if-trigger-job
2029+
- <<: *if-dev-push
2030+
changes: *patterns-build_system
2031+
- <<: *if-dev-push
2032+
changes: *patterns-components_sensors_battery_fuel_gauge_max17048
2033+
20192034
.rules:build:components_sensors_gesture_apds9960_test_apps:
20202035
rules:
20212036
- <<: *if-protected

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ The registered components in ESP-IoT-Solution are listed below:
113113
| [led_indicator](https://components.espressif.com/components/espressif/led_indicator) | [![Component Registry](https://components.espressif.com/components/espressif/led_indicator/badge.svg)](https://components.espressif.com/components/espressif/led_indicator) |
114114
| [lightbulb_driver](https://components.espressif.com/components/espressif/lightbulb_driver) | [![Component Registry](https://components.espressif.com/components/espressif/lightbulb_driver/badge.svg)](https://components.espressif.com/components/espressif/lightbulb_driver) |
115115
| [lis2dh12](https://components.espressif.com/components/espressif/lis2dh12) | [![Component Registry](https://components.espressif.com/components/espressif/lis2dh12/badge.svg)](https://components.espressif.com/components/espressif/lis2dh12) |
116+
| [max17048](https://components.espressif.com/components/espressif/max17048) | [![Component Registry](https://components.espressif.com/components/espressif/max17048/badge.svg)](https://components.espressif.com/components/espressif/max17048) |
116117
| [mcp23017](https://components.espressif.com/components/espressif/mcp23017) | [![Component Registry](https://components.espressif.com/components/espressif/mcp23017/badge.svg)](https://components.espressif.com/components/espressif/mcp23017) |
117118
| [mvh3004d](https://components.espressif.com/components/espressif/mvh3004d) | [![Component Registry](https://components.espressif.com/components/espressif/mvh3004d/badge.svg)](https://components.espressif.com/components/espressif/mvh3004d) |
118119
| [ntc_driver](https://components.espressif.com/components/espressif/ntc_driver) | [![Component Registry](https://components.espressif.com/components/espressif/ntc_driver/badge.svg)](https://components.espressif.com/components/espressif/ntc_driver) |

README_CN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ ESP-IoT-Solution 中注册的组件如下:
113113
| [led_indicator](https://components.espressif.com/components/espressif/led_indicator) | [![Component Registry](https://components.espressif.com/components/espressif/led_indicator/badge.svg)](https://components.espressif.com/components/espressif/led_indicator) |
114114
| [lightbulb_driver](https://components.espressif.com/components/espressif/lightbulb_driver) | [![Component Registry](https://components.espressif.com/components/espressif/lightbulb_driver/badge.svg)](https://components.espressif.com/components/espressif/lightbulb_driver) |
115115
| [lis2dh12](https://components.espressif.com/components/espressif/lis2dh12) | [![Component Registry](https://components.espressif.com/components/espressif/lis2dh12/badge.svg)](https://components.espressif.com/components/espressif/lis2dh12) |
116+
| [max17048](https://components.espressif.com/components/espressif/max17048) | [![Component Registry](https://components.espressif.com/components/espressif/max17048/badge.svg)](https://components.espressif.com/components/espressif/max17048) |
116117
| [mcp23017](https://components.espressif.com/components/espressif/mcp23017) | [![Component Registry](https://components.espressif.com/components/espressif/mcp23017/badge.svg)](https://components.espressif.com/components/espressif/mcp23017) |
117118
| [mvh3004d](https://components.espressif.com/components/espressif/mvh3004d) | [![Component Registry](https://components.espressif.com/components/espressif/mvh3004d/badge.svg)](https://components.espressif.com/components/espressif/mvh3004d) |
118119
| [ntc_driver](https://components.espressif.com/components/espressif/ntc_driver) | [![Component Registry](https://components.espressif.com/components/espressif/ntc_driver/badge.svg)](https://components.espressif.com/components/espressif/ntc_driver) |
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# ChangeLog
2+
3+
## v0.1.0 - 2024-12-28
4+
5+
### Enhancements:
6+
7+
* Initial version: Provide the basic functionality of the MAX17048/MAX17049 sensor.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
idf_component_register(SRCS "max17048.c"
2+
INCLUDE_DIRS include)
3+
4+
include(package_manager)
5+
cu_pkg_define_version(${CMAKE_CURRENT_LIST_DIR})
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# MAX17048/MAX17049
2+
3+
The MAX17048/MAX17049 ICs are tiny, micropower current fuel gauges for lithium-ion (Li+) batteries in handheld and portable equipment. The MAX17048 operates with a single lithium cell and the MAX17049 with two lithium cells in series. The ICs use the sophisticated Li+ battery-modeling algorithm ModelGauge™ to track the battery relative state-of-charge (SOC) continuously over widely varying charge and discharge conditions. The ModelGauge algorithm eliminates current-sense resistor and battery-learn cycles required in traditional fuel gauges. Temperature compensation is implemented using the system microcontroller.
4+
5+
More detailed data can be found in the [MAX17048/MAX17049 Datasheet](https://www.analog.com/media/en/technical-documentation/data-sheets/MAX17048-MAX17049.pdf).
6+
7+
## Example of MAX17048/MAX17049 usage
8+
9+
```c
10+
i2c_bus_handle_t i2c_bus = NULL;
11+
max17048_handle_t max17048 = NULL;
12+
13+
//Step1: Init I2C bus
14+
i2c_config_t conf = {
15+
.mode = I2C_MODE_MASTER,
16+
.sda_io_num = I2C_MASTER_SDA_IO,
17+
.sda_pullup_en = GPIO_PULLUP_ENABLE,
18+
.scl_io_num = I2C_MASTER_SCL_IO,
19+
.scl_pullup_en = GPIO_PULLUP_ENABLE,
20+
.master.clk_speed = 400 * 1000,
21+
};
22+
i2c_bus = i2c_bus_create(I2C_NUM_0, &conf);
23+
24+
//Step2: Init max17048
25+
max17048 = max17048_create(i2c_bus, MAX17048_I2CADDR_DEFAULT);
26+
27+
// Step2: Get voltage and battery percentage
28+
float voltage = 0, percent = 0;
29+
max17048_get_cell_voltage(max17048, &voltage);
30+
max17048_get_cell_percent(max17048, &percent);
31+
```
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: "0.1.0"
2+
description: I2C driver for MAX17048/MAX17049 micropower current fuel gauges
3+
url: https://github.com/espressif/esp-iot-solution/tree/master/components/sensors/battery_fuel_gauge/max17048
4+
repository: https://github.com/espressif/esp-iot-solution.git
5+
documentation: https://docs.espressif.com/projects/esp-iot-solution/en/latest/sensors/battery_fuel_gauge.html
6+
issues: https://github.com/espressif/esp-iot-solution/issues
7+
dependencies:
8+
espressif/i2c_bus: "1.1.*"
9+
idf: '>=4.4'
10+
cmake_utilities: "0.*"

0 commit comments

Comments
 (0)