You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/content.md
+17-76Lines changed: 17 additions & 76 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,6 +39,7 @@ This document serves as a comprehensive user manual for the Nesso N1, providing
39
39
40
40
-[Arduino IDE](https://www.arduino.cc/en/software) (v2.0 or higher recommended)
41
41
-[ESP32 Boards core by Espressif](https://github.com/espressif/arduino-esp32) (v3.3.3 or higher)
42
+
-*Note: Safe battery management requires version 3.3.5 or higher (pending release).*
42
43
43
44
## Product Overview
44
45
@@ -144,6 +145,7 @@ Because "Manual Devices" do not automatically generate a downloadable sketch, yo
144
145
145
146
```cpp
146
147
#include<ArduinoIoTCloud.h>
148
+
#include<Arduino_ConnectionHandler.h>
147
149
#include"arduino_secrets.h"
148
150
149
151
voidonLedChange();
@@ -222,18 +224,28 @@ For projects where a slimmer profile is desired, the included hexagon key can be
222
224
The Nesso N1 can be powered in three ways:
223
225
224
226
-**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.
227
+
-**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.)**
226
228
-**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.
227
229
228
230
***WARNING: Handle the internal LiPo battery with care. Do not puncture, short-circuit, or expose it to high temperatures.***
229
231
230
232
## Battery Management
231
233
232
-
The board incorporates a power management system featuring the **AW32001** power path management chip and the **BQ27220** battery monitoring chip. This system provides:
234
+
The board incorporates a power management system featuring the **AW32001** power path management chip and the **BQ27220** battery monitoring chip.
233
235
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.
236
+
### ⚠️ CRITICAL WARNING: Battery Software Support Pending
237
+
238
+
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.
239
+
240
+
**Do not attempt to enable battery charging with the current board package (version 3.3.4 or older).**
241
+
242
+
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.
243
+
244
+
**Recommendation:**
245
+
***Power the device exclusively via USB-C** until the software update is available.
246
+
***Do not** call `battery.enableCharge()` in your sketches.
247
+
248
+
Once the updated board package is released, this manual will be updated with instructions for safe battery management.
237
249
238
250
## Microcontroller (ESP32-C6)
239
251
@@ -498,77 +510,6 @@ void loop() {
498
510
```
499
511
500
512
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
-
572
513
## Buttons and LED
573
514
574
515
The Nesso N1 features several physical controls for user interaction.
0 commit comments