nanoFramework.Iot.Device.Bq2579x
1.0.589
Prefix Reserved
See the version list below for details.
dotnet add package nanoFramework.Iot.Device.Bq2579x --version 1.0.589
NuGet\Install-Package nanoFramework.Iot.Device.Bq2579x -Version 1.0.589
<PackageReference Include="nanoFramework.Iot.Device.Bq2579x" Version="1.0.589" />
<PackageVersion Include="nanoFramework.Iot.Device.Bq2579x" Version="1.0.589" />
<PackageReference Include="nanoFramework.Iot.Device.Bq2579x" />
paket add nanoFramework.Iot.Device.Bq2579x --version 1.0.589
#r "nuget: nanoFramework.Iot.Device.Bq2579x, 1.0.589"
#:package nanoFramework.Iot.Device.Bq2579x@1.0.589
#addin nuget:?package=nanoFramework.Iot.Device.Bq2579x&version=1.0.589
#tool nuget:?package=nanoFramework.Iot.Device.Bq2579x&version=1.0.589
BQ2579x/BQ25792/BQ25798 - Buck-boost battery charger
This library supports several Bq2579x devices, namely:
- The BQ25798 is an I²C controlled, 1-4-cell, 5-A buck-boost solar battery charger with dual-input selector and MPPT.
- The BQ25792 is an I²C controlled, 5-A, 1-4 cell buck-boost charger with dual-input selector and USB PD 3.0 OTG output.
Documentation
Device & EVM
| VQFN 29 pins chip package |
| Simplified schematic |
| Evaluation Module |
Usage
Warning: If using an ESP32, make sure to properly setup the I2C pins before creating the
I2cDevice. Add a reference tonanoFramework.Hardware.ESP32NuGet package and add the following code lines:
//////////////////////////////////////////////////////////////////////
// when connecting to an ESP32 device, need to configure the I2C GPIOs
// used for the bus
Configuration.SetPinFunction(21, DeviceFunction.I2C1_DATA);
Configuration.SetPinFunction(22, DeviceFunction.I2C1_CLOCK);
For other devices like STM32, please make sure you're using the preset pins for the I2C bus you want to use.
Hardware Required
- BQ25798 EVM
- Male/Female Jumper Wires
Circuit
- SCL - SCL
- SDA - SDA
- VCC - 5V
- GND - GND
Code
The following code creates an I2C configuration and instantiates a Bq25798 object. Then it prints the Minimum System Voltage detected by the device at boot. Last it enters a loop where it prints the current Vbus voltage each second.
I2cConnectionSettings settings = new I2cConnectionSettings(1, Bq25798.DefaultI2cAddress);
I2cDevice device = I2cDevice.Create(settings);
using (Bq25798 charger = new Bq25798(device))
{
Debug.WriteLine("");
Debug.WriteLine($"BQ25798 connected to I2C{device.ConnectionSettings.BusId}");
Debug.WriteLine("");
Debug.WriteLine($"Minimum System Voltage is config @ {charger.MinimalSystemVoltage.Volts:N3}V");
while (true)
{
Debug.WriteLine($"Current Vbus: {charger.Vbus.Volts:N3}V");
Debug.WriteLine("");
Thread.Sleep(1000);
}
}
Acknowledgments
The development of this library was kindly sponsored by OrgPal.IoT!
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net is compatible. |
-
- nanoFramework.CoreLibrary (>= 1.17.11)
- nanoFramework.System.Device.I2c (>= 1.1.29)
- nanoFramework.System.Device.Model (>= 1.2.862)
- nanoFramework.UnitsNet.ElectricCurrent (>= 5.76.15)
- nanoFramework.UnitsNet.ElectricPotential (>= 5.76.15)
- nanoFramework.UnitsNet.Temperature (>= 5.76.15)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0-preview.85 | 45 | 6/1/2026 |
| 2.0.0-preview.80 | 58 | 5/27/2026 |
| 2.0.0-preview.73 | 53 | 5/20/2026 |
| 2.0.0-preview.62 | 53 | 5/13/2026 |
| 2.0.0-preview.45 | 57 | 4/29/2026 |
| 2.0.0-preview.32 | 57 | 4/20/2026 |
| 2.0.0-preview.16 | 65 | 3/10/2026 |
| 1.0.589 | 129 | 3/4/2026 |
| 1.0.568 | 295 | 11/10/2025 |
| 1.0.544 | 254 | 10/2/2025 |
| 1.0.526 | 246 | 7/28/2025 |
| 1.0.506 | 327 | 4/2/2025 |
| 1.0.501 | 286 | 4/2/2025 |
| 1.0.489 | 319 | 3/11/2025 |
| 1.0.483 | 324 | 3/10/2025 |
| 1.0.459 | 245 | 2/26/2025 |
| 1.0.435 | 270 | 2/11/2025 |
| 1.0.412 | 238 | 2/4/2025 |
| 1.0.409 | 252 | 2/4/2025 |
| 1.0.392 | 236 | 1/31/2025 |