Skip to content

Commit 2ddce4b

Browse files
authored
Merge pull request #2753 from arduino/91volt/nesso-n1-battery-warning
Nesso N1 - Update battery content
2 parents 2fde6ae + 7501683 commit 2ddce4b

File tree

1 file changed

+18
-76
lines changed
  • content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual

1 file changed

+18
-76
lines changed

content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/content.md

Lines changed: 18 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ This document serves as a comprehensive user manual for the Nesso N1, providing
4040
- [Arduino IDE](https://www.arduino.cc/en/software) (v2.0 or higher recommended)
4141
- [ESP32 Boards core by Espressif](https://github.com/espressif/arduino-esp32) (v3.3.3 or higher)
4242

43+
*Note: Safe battery management requires version 3.3.5 or higher (pending release).*
44+
4345
## Product Overview
4446

4547
The Nesso N1 packs a rich set of features into a compact and portable form factor. It includes an integrated color touchscreen, multiple sensors, programmable buttons, and extensive expansion options, all powered by a rechargeable LiPo battery with power management.
@@ -144,6 +146,7 @@ Because "Manual Devices" do not automatically generate a downloadable sketch, yo
144146

145147
```cpp
146148
#include <ArduinoIoTCloud.h>
149+
#include <Arduino_ConnectionHandler.h>
147150
#include "arduino_secrets.h"
148151

149152
void onLedChange();
@@ -222,18 +225,28 @@ For projects where a slimmer profile is desired, the included hexagon key can be
222225
The Nesso N1 can be powered in three ways:
223226

224227
- **USB-C® Connector**: Provide a regulated 5 V DC supply through the USB-C® port. This method also charges the internal battery.
225-
- **Built-in Battery**: The onboard 250 mAh LiPo battery allows the device to operate untethered, making it ideal for portable and remote monitoring applications.
228+
- **Built-in Battery**: The onboard 250 mAh LiPo battery allows the device to operate untethered. **(Note: Please see the Battery section below for critical safety information regarding battery usage with the current software version.)**
226229
- **VIN Pin**: You can use the `VIN` pin on the 8-pin expansion header to power the board from an external 5 V DC source.
227230

228231
***WARNING: Handle the internal LiPo battery with care. Do not puncture, short-circuit, or expose it to high temperatures.***
229232

230233
## Battery Management
231234

232-
The board incorporates a power management system featuring the **AW32001** power path management chip and the **BQ27220** battery monitoring chip. This system provides:
235+
The board incorporates a power management system featuring the **AW32001** power path management chip and the **BQ27220** battery monitoring chip.
236+
237+
### ⚠️ CRITICAL WARNING: Battery Software Support Pending
238+
239+
Full support for the Nesso N1 battery management system (BMS) requires the **esp32** board package version **3.3.5** (or newer), which is currently pending release.
240+
241+
**Do not attempt to enable battery charging with the current board package (version 3.3.4 or older).**
242+
243+
Allowing the battery to fully deplete while using the current software may cause the device to become unresponsive and fail to power on, even when connected to USB.
244+
245+
**Recommendation:**
246+
* **Power the device exclusively via USB-C** until the software update is available.
247+
* **Do not** call `battery.enableCharge()` in your sketches.
233248

234-
- **Automatic Charging**: The battery charges automatically when a 5 V source is connected via USB-C®.
235-
- **Real-Time Monitoring**: You can programmatically access battery voltage, current, and capacity to monitor the power status of your application.
236-
- **Over-Current & Over-Voltage Protection**: Ensures safe and stable operation during charging and discharging cycles.
249+
Once the updated board package is released, this manual will be updated with instructions for safe battery management.
237250

238251
## Microcontroller (ESP32-C6)
239252

@@ -498,77 +511,6 @@ void loop() {
498511
```
499512

500513

501-
## Battery
502-
503-
504-
To interact with the battery system from your sketch, the Nesso N1 board package provides a built-in `NessoBattery` object named `battery`. It is available for use in your sketch without needing to include a specific library.
505-
506-
507-
### Enable Charging
508-
509-
***WARNING: By default, the battery charging circuit is disabled. You must explicitly call `battery.enableCharge()` in your `setup()` function for the battery to charge when the device is powered via USB-C® or VIN.***
510-
511-
```arduino
512-
// The NessoBattery object is available by default
513-
NessoBattery battery;
514-
515-
void setup() {
516-
// Enable the charging circuit
517-
battery.enableCharge();
518-
}
519-
```
520-
521-
### Get Battery Voltage
522-
523-
Returns the current, instantaneous battery voltage in Volts. This is a direct electrical measurement.
524-
525-
```arduino
526-
float voltage = battery.getVoltage();
527-
Serial.print("Voltage: ");
528-
Serial.print(voltage);
529-
Serial.println(" V");
530-
```
531-
532-
### Get Charge Level
533-
534-
Returns the battery's estimated state of charge as a percentage (0-100%). This value is calculated by the BQ27220 fuel gauge IC.
535-
536-
```arduino
537-
uint16_t chargeLevel = battery.getChargeLevel();
538-
Serial.print("Charge Level: ");
539-
Serial.print(chargeLevel);
540-
Serial.println(" %");
541-
```
542-
543-
### Understanding Voltage vs. Charge Level
544-
545-
It is important to understand the difference between the two battery reading functions:
546-
547-
- **`getVoltage()`** provides a direct, real-time measurement of the battery's voltage. This value can fluctuate depending on whether the battery is charging or under load (e.g., when Wi-Fi® or the display is active). It's a good raw indicator of the battery's state but not a precise measure of remaining capacity.
548-
549-
- **`getChargeLevel()`** provides a much more accurate *estimate* of the remaining capacity. The BQ27220 fuel gauge uses a sophisticated algorithm that tracks the flow of energy into and out of the battery over time (a technique known as Coulomb counting).
550-
551-
***For the fuel gauge to become reliable, it needs a few full charge and discharge cycles. During the first few uses, you may observe the charge level staying low for a while before ramping up to a more accurate value. This is normal behavior as the IC calibrates itself.***
552-
553-
### Checking for External Power
554-
555-
You can determine if the device is running on external power by reading the `VIN_DETECT` expander pin. This is useful for adjusting your application's behavior, such as entering a low-power mode when on battery.
556-
557-
```arduino
558-
void setup() {
559-
pinMode(VIN_DETECT, INPUT);
560-
}
561-
562-
void loop() {
563-
if (digitalRead(VIN_DETECT) == HIGH) {
564-
Serial.println("Running on external power.");
565-
} else {
566-
Serial.println("Running on battery power.");
567-
}
568-
delay(5000);
569-
}
570-
```
571-
572514
## Buttons and LED
573515

574516
The Nesso N1 features several physical controls for user interaction.

0 commit comments

Comments
 (0)