nanoFramework.Iot.Device.Axp192
1.2.696
Prefix Reserved
dotnet add package nanoFramework.Iot.Device.Axp192 --version 1.2.696
NuGet\Install-Package nanoFramework.Iot.Device.Axp192 -Version 1.2.696
<PackageReference Include="nanoFramework.Iot.Device.Axp192" Version="1.2.696" />
paket add nanoFramework.Iot.Device.Axp192 --version 1.2.696
#r "nuget: nanoFramework.Iot.Device.Axp192, 1.2.696"
// Install nanoFramework.Iot.Device.Axp192 as a Cake Addin #addin nuget:?package=nanoFramework.Iot.Device.Axp192&version=1.2.696 // Install nanoFramework.Iot.Device.Axp192 as a Cake Tool #tool nuget:?package=nanoFramework.Iot.Device.Axp192&version=1.2.696
AXP192 - Enhanced single Cell Li-Battery and Power System Management IC
Documentation
-Product documentation can be found here. -Registers can be found here (Chineese only, note: bing translator make miracle).
Usage
// Make sure you configure properly the I2C pins, here example for ESP32
Configuration.SetPinFunction(22, DeviceFunction.I2C1_CLOCK);
Configuration.SetPinFunction(21, DeviceFunction.I2C1_DATA);
I2cDevice i2cAxp192 = new(new I2cConnectionSettings(1, Axp192.I2cDefaultAddress));
Axp192 power = new Axp192(i2cAxp192);
Important: make sure you read th documentation of your battery and setup the proper charging values, stop current. Overcharging your battery may damage it.
Using the button
One button is available and can be setup to track short and long press:
// This part of the code will handle the button behavior
power.EnableButtonPressed(ButtonPressed.LongPressed | ButtonPressed.ShortPressed);
power.SetButtonBehavior(LongPressTiming.S2, ShortPressTiming.Ms128, true, SignalDelayAfterPowerUp.Ms32, ShutdownTiming.S10);
The status is kept in the registers up to the next status read. You can then have both a short and a long press, you can get the status like this:
var status = power.GetButtonStatus();
if ((status & ButtonPressed.ShortPressed) == ButtonPressed.ShortPressed)
{
Debug.WriteLine("Short press");
}
else if ((status & ButtonPressed.LongPressed) == ButtonPressed.LongPressed)
{
Debug.WriteLine("Long press");
}
Battery status
You can get various elements regarding the battery status:
Debug.WriteLine($"Battery:");
Debug.WriteLine($" Charge curr : {power.GetBatteryChargeCurrent().Milliamperes} mA");
Debug.WriteLine($" Status : {power.GetBatteryChargingStatus()}");
Debug.WriteLine($" Dicharge curr: {power.GetBatteryDischargeCurrent().Milliamperes} mA");
Debug.WriteLine($" Inst Power : {power.GetBatteryInstantaneousPower().Milliwatts} mW");
Debug.WriteLine($" Voltage : {power.GetBatteryVoltage().Volts} V");
Debug.WriteLine($" Is battery : {power.IsBatteryConnected()} ");
Advanced features
The AXP192 can charge the battery, get and set charging current, cut off voltage, has protection for temperature. Most feature can be access or setup. You can check out the sample to get more details on how to set those advance features.
Note: this binding uses UnitsNet for the units like Voltage, Amperes.
Here is an example reading the current, voltage:
Debug.WriteLine($"Temperature : {power.GetInternalTemperature().DegreesCelsius} °C");
Debug.WriteLine($"Input:");
// Note: the current and voltage will show 0 when plugged into USB.
// To see something else than 0, you should output those data on a serial port for example
// Or display on the screen.
Debug.WriteLine($" Current : {power.GetInputCurrent().Milliamperes} mA");
Debug.WriteLine($" Voltage : {power.GetInputVoltage().Volts} V");
Debug.WriteLine($" Status : {power.GetInputPowerStatus()}");
Debug.WriteLine($" USB volt : {power.GetUsbVoltageInput().Volts} V");
Debug.WriteLine($" USB Curr : {power.GetUsbCurrentInput().Milliamperes} mA");
Coulomb counter
The AXP192 has a Coulomb counter where the value is in mili Amperes per hour (this one is not yet using UnitsNet). You first have to enable the Counter and then you can read the value. It is recommended to let some time between the moment you enable and read the data. Features to reset, stop the count are available as well
power.EnableCoulombCounter();
// Do something here
// You can then read periodically the Coulomb counter:
Debug.WriteLine($"Coulomb: {power.GetCoulomb()} mA/h");
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net is compatible. |
-
- nanoFramework.CoreLibrary (>= 1.15.5)
- nanoFramework.Runtime.Events (>= 1.11.18)
- nanoFramework.System.Device.Gpio (>= 1.1.41)
- nanoFramework.System.Device.I2c (>= 1.1.16)
- UnitsNet.nanoFramework.ElectricCurrent (>= 5.61.0)
- UnitsNet.nanoFramework.ElectricPotential (>= 5.61.0)
- UnitsNet.nanoFramework.Power (>= 5.61.0)
- UnitsNet.nanoFramework.Temperature (>= 5.61.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on nanoFramework.Iot.Device.Axp192:
Package | Downloads |
---|---|
nanoFramework.M5Core2
This package includes the nanoFramework.M5Core2 assembly for .NET nanoFramework C# projects. |
|
nanoFramework.M5StickC
This package includes the nanoFramework.M5StickC assembly for .NET nanoFramework C# projects. |
|
nanoFramework.M5StickCPlus
This package includes the nanoFramework.M5StickCPlus assembly for .NET nanoFramework C# projects. |
|
nanoFramework.Tough
This package includes the nanoFramework.Tough assembly for .NET nanoFramework C# projects. |
GitHub repositories (3)
Showing the top 3 popular GitHub repositories that depend on nanoFramework.Iot.Device.Axp192:
Repository | Stars |
---|---|
nanoframework/Samples
🍬 Code samples from the nanoFramework team used in testing, proof of concepts and other explorational endeavours
|
|
nanoframework/nanoFramework.IoT.Device
📦 This repo includes .NET nanoFramework implementations for various sensors, chips, displays, hats and drivers
|
|
nanoframework/nanoFramework.M5Stack
:package: Board support package for M5Stack, M5StickC and M5StickCPlus for .NET nanoFramework
|
Version | Downloads | Last updated |
---|---|---|
1.2.696 | 249 | 12/16/2024 |
1.2.673 | 796 | 10/23/2024 |
1.2.656 | 818 | 10/3/2024 |
1.2.639 | 660 | 9/6/2024 |
1.2.631 | 310 | 8/28/2024 |
1.2.613 | 556 | 8/9/2024 |
1.2.601 | 269 | 7/26/2024 |
1.2.590 | 402 | 7/17/2024 |
1.2.573 | 669 | 6/19/2024 |
1.2.570 | 125 | 6/14/2024 |
1.2.560 | 376 | 5/29/2024 |
1.2.548 | 385 | 5/15/2024 |
1.2.536 | 606 | 4/15/2024 |
1.2.514 | 703 | 3/22/2024 |
1.2.494 | 501 | 2/28/2024 |
1.2.474 | 705 | 1/24/2024 |
1.2.462 | 248 | 1/5/2024 |
1.2.458 | 244 | 12/20/2023 |
1.2.436 | 704 | 11/10/2023 |
1.2.403 | 939 | 10/6/2023 |
1.2.396 | 413 | 9/27/2023 |
1.2.384 | 465 | 9/6/2023 |
1.2.378 | 643 | 8/16/2023 |
1.2.369 | 652 | 8/2/2023 |
1.2.363 | 347 | 7/28/2023 |
1.2.357 | 426 | 7/19/2023 |
1.2.354 | 415 | 7/14/2023 |
1.2.345 | 732 | 6/21/2023 |
1.2.341 | 472 | 6/14/2023 |
1.2.337 | 436 | 6/7/2023 |
1.2.335 | 210 | 6/2/2023 |
1.2.329 | 677 | 5/26/2023 |
1.2.313 | 735 | 5/12/2023 |
1.2.302 | 517 | 5/10/2023 |
1.2.297 | 522 | 5/3/2023 |
1.2.273 | 2,085 | 3/17/2023 |
1.2.267 | 1,186 | 3/10/2023 |
1.2.263 | 1,016 | 3/8/2023 |
1.2.259 | 1,107 | 2/27/2023 |
1.2.256 | 855 | 2/24/2023 |
1.2.253 | 818 | 2/22/2023 |
1.2.222 | 2,133 | 1/9/2023 |
1.2.219 | 361 | 1/9/2023 |
1.2.208 | 2,811 | 1/3/2023 |
1.2.203 | 1,320 | 12/28/2022 |
1.2.153 | 4,038 | 11/5/2022 |
1.2.141 | 3,989 | 10/25/2022 |
1.2.122 | 1,626 | 10/12/2022 |
1.2.114 | 1,550 | 10/8/2022 |
1.2.95 | 5,086 | 9/22/2022 |
1.2.87 | 4,811 | 9/15/2022 |
1.2.73 | 1,604 | 9/8/2022 |
1.2.63 | 2,596 | 9/3/2022 |
1.2.47 | 1,702 | 8/15/2022 |
1.2.40 | 1,937 | 8/6/2022 |
1.2.38 | 1,611 | 8/5/2022 |
1.2.28 | 4,792 | 8/1/2022 |
1.2.13 | 3,879 | 7/24/2022 |
1.2.10 | 1,630 | 7/23/2022 |
1.1.145.58726 | 3,009 | 7/7/2022 |
1.1.133.52556 | 5,801 | 6/30/2022 |
1.1.127.28388 | 2,746 | 6/28/2022 |
1.1.121.35854 | 1,945 | 6/26/2022 |
1.1.113.2032 | 2,744 | 6/23/2022 |
1.1.102.51394 | 2,525 | 6/15/2022 |
1.1.99.36719 | 1,632 | 6/14/2022 |
1.1.74.7591 | 8,408 | 5/31/2022 |
1.1.72.29765 | 1,047 | 5/31/2022 |
1.1.67.25390 | 1,741 | 5/27/2022 |
1.1.66.33470 | 1,392 | 5/26/2022 |
1.1.64.21380 | 1,426 | 5/26/2022 |
1.1.54.28879 | 2,825 | 5/23/2022 |
1.1.40 | 4,123 | 5/5/2022 |
1.1.1 | 13,188 | 4/14/2022 |
1.0.308 | 1,457 | 4/12/2022 |
1.0.302 | 4,624 | 3/31/2022 |
1.0.300 | 507 | 3/31/2022 |
1.0.288-preview.113 | 155 | 3/25/2022 |
1.0.288-preview.103 | 164 | 3/21/2022 |
1.0.288-preview.99 | 161 | 3/18/2022 |
1.0.288-preview.98 | 139 | 3/18/2022 |
1.0.288-preview.93 | 171 | 3/15/2022 |
1.0.288-preview.86 | 187 | 3/8/2022 |
1.0.288-preview.77 | 165 | 2/27/2022 |
1.0.288-preview.75 | 140 | 2/26/2022 |
1.0.288-preview.65 | 159 | 2/18/2022 |
1.0.288-preview.63 | 151 | 2/16/2022 |
1.0.288-preview.61 | 150 | 2/12/2022 |
1.0.288-preview.58 | 142 | 2/10/2022 |
1.0.288-preview.53 | 138 | 2/9/2022 |
1.0.288-preview.41 | 187 | 1/31/2022 |
1.0.288-preview.29 | 218 | 1/28/2022 |
1.0.288-preview.20 | 224 | 1/27/2022 |
1.0.288-preview.19 | 149 | 1/27/2022 |
1.0.288-preview.18 | 171 | 1/27/2022 |
1.0.288-preview.5 | 184 | 1/24/2022 |
1.0.288-preview.1 | 178 | 1/21/2022 |
1.0.272 | 259 | 1/10/2022 |
1.0.259 | 1,045 | 12/9/2021 |
1.0.258 | 351 | 12/7/2021 |
1.0.235 | 280 | 11/1/2021 |
1.0.234 | 198 | 11/1/2021 |
1.0.218 | 637 | 10/18/2021 |
1.0.191 | 393 | 9/29/2021 |
1.0.167 | 389 | 9/15/2021 |