diff --git a/content/hardware/09.kits/maker/nesso-n1/compatibility.yml b/content/hardware/09.kits/maker/nesso-n1/compatibility.yml new file mode 100644 index 0000000000..f7e3920efd --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/compatibility.yml @@ -0,0 +1,18 @@ +software: + - arduino-ide + - arduino-cli + - cloud-editor +hardware: + boards: ~ + carriers: ~ + shields: ~ + accessories: + - modulino-buttons + - modulino-buzzer + - modulino-distance + - modulino-knob + - modulino-movement + - modulino-pixels + - modulino-thermo + + diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/TPX00227-pinout.png b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/TPX00227-pinout.png new file mode 100644 index 0000000000..e631bd7f71 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/TPX00227-pinout.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/featured.png b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/featured.png new file mode 100644 index 0000000000..41a14eee33 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/featured.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_display.png b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_display.png new file mode 100644 index 0000000000..ea31dbc4a8 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_display.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_grove_qwiic.png b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_grove_qwiic.png new file mode 100644 index 0000000000..19c57aa7b9 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_grove_qwiic.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_hat.png b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_hat.png new file mode 100644 index 0000000000..56b70183be Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_hat.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_lora_antenna.png b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_lora_antenna.png new file mode 100644 index 0000000000..4a21e124ab Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_lora_antenna.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_overview.png b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_overview.png new file mode 100644 index 0000000000..a3f24861ff Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_overview.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_power_options.png b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_power_options.png new file mode 100644 index 0000000000..6ca7839ea1 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_power_options.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_ui.png b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_ui.png new file mode 100644 index 0000000000..79e75438f3 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/n1_ui.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_antenna_md.svg b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_antenna_md.svg new file mode 100644 index 0000000000..2943277c2e --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_antenna_md.svg @@ -0,0 +1,3731 @@ + + + FreeCAD SVG Export + Drawing page: Page exported from FreeCAD document: n1_antenna_woStorage + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.66 mm + + + + + + + + + + + + 0.96 mm + + + + + + + + + + + + 45.5 mm + + + + + + + + + + + + 4.87 mm + + + + + + + + + + + + 9.61 mm + + + + + + + + + + + + 1.02 mm + + + + + + + + + + + + 3x R3 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.2 mm + + + + + + + + + + + + 4.8 mm + + + + + + + + + + + + 2.95 mm + + + + + + + + + + + + 3.78 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10.8 mm + + + + + + + + + + + + 1 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 mm x 45° + + + + + + + diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_block_diagram.png b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_block_diagram.png new file mode 100644 index 0000000000..f988b8535e Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_block_diagram.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_deviceStorage_md.svg b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_deviceStorage_md.svg new file mode 100644 index 0000000000..f16e7dda3a --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_deviceStorage_md.svg @@ -0,0 +1,4217 @@ + + + FreeCAD SVG Export + Drawing page: Page exported from FreeCAD document: n1_converted + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6.39 mm + + + + + + + + + + + + 10 mm + + + + + + + + + + + + 29.28 mm + + + + + + + + + + + + 2x R1.15 mm + + + + + + + + + 4.85 mm + + + + + + + + + + + + 7 mm + + + + + + + + + + + + 4.47 mm + + + + + + + + + + + + 4x R3 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 48 mm + + + + + + + + + + + + 21.1 mm + + + + + + + + + + + + 7.1 mm + + + + + + + + + + + + 0.9 mm + + + + + + + + + + + + 1.8 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 24 mm + + + + + + + + + + + + 11.3 mm + + + + + + + + + + + + 0.9 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_device_md.svg b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_device_md.svg new file mode 100644 index 0000000000..b8ed8aa695 --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_device_md.svg @@ -0,0 +1,4577 @@ + + + FreeCAD SVG Export + Drawing page: Page exported from FreeCAD document: n1_device + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 29.28 mm + + + + + + + + + + + + 4.85 mm + + + + + + + + + + + + 6.39 mm + + + + + + + + + + + + 10 mm + + + + + + + + + + + + 4x R3 mm + + + + + + + + + 7 mm + + + + + + + + + + + + 4.47 mm + + + + + + + + + + + + 2x R1.15 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 14 mm + + + + + + + + + + + + 1.8 mm + + + + + + + + + + + + 0.9 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 24 mm + + + + + + + + + + + + 11.3 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 48 mm + + + + + + + + + + + + 2x + + 2 mm + + + + + + + + + + + + + 12.2 mm + + + + + + + + + + + + 24 mm + + + + + + + + + + + + 3 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 mm x 45° + + + + + + + diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_power_tree.png b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_power_tree.png new file mode 100644 index 0000000000..51051ad910 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/datasheet/assets/nesso_n1_power_tree.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/datasheet/datasheet.md b/content/hardware/09.kits/maker/nesso-n1/datasheet/datasheet.md new file mode 100644 index 0000000000..de48899ef1 --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/datasheet/datasheet.md @@ -0,0 +1,505 @@ +--- +identifier: TPX00227 +title: Arduino® Nesso N1 +type: maker +--- + +![Arduino Nesso N1](assets/featured.png) + +# Description + +

Arduino® Nesso N1 (hereafter Nesso N1) is a compact, all-in-one IoT development kit powered by the ESP32-C6 microcontroller, a single-core 32-bit RISC-V CPU running at up to 160 MHz. Designed for remote monitoring and automation applications, Nesso N1 combines multiple wireless protocols, such as Wi-Fi® 6, Bluetooth® 5.3, and LoRa® into a sleek, portable form factor with an integrated 1.14" touch display and rechargeable 250 mAh battery. Built-in sensors include a 6-axis IMU, passive buzzer, and infrared transmitter, with expansion capabilities through Grove, Qwiic, and M5StickC HAT-compatible connectors.

+ +

Nesso N1 can be programmed using Arduino IDE, MicroPython, or UIFlow, and integrates seamlessly with Arduino Cloud for remote device management and data visualization. With comprehensive documentation, ready-to-use examples, and compatibility with Arduino Modulino® nodes and third-party accessories, Nesso N1 accelerates the development of connected devices for smart homes, industrial automation, and environmental monitoring.

+ +# Target Areas + +Smart home automation, remote monitoring, Industrial IoT (IIoT), environmental sensing, wearables, prototyping, STEM + +
+ +# CONTENTS + +## Application Examples + +

Nesso N1 combines multi-protocol wireless connectivity (Wi-Fi® 6, Bluetooth® 5.3, LoRa®) with integrated sensors, a touch display, and battery operation, making it a versatile platform for IoT applications. Alongside expansion via Grove, Qwiic, and HAT connectors, it supports Arduino Modulino® nodes and third-party Qwiic, Grove, and M5StickC HAT accessories for diverse connected device projects.

+ +- **Smart Home Hub:** Central control hub for smart home devices, integrating with platforms like Home Assistant via Wi-Fi®, or LoRa® connectivity. + +- **IR to IoT Gateway:** Transforms traditional infrared remote-controlled devices (TVs, air conditioners, fans) into smart, connected appliances controllable via Wi-Fi® or cloud platforms. + +- **Environmental Monitoring:** Remote weather stations and sensor nodes monitoring temperature, humidity, and air quality with external sensors, logging data to Arduino Cloud via LoRa®. + +- **Industrial IoT Edge Node:** Aggregates sensor data from factory equipment using multiple wireless protocols, transmitting real-time machine status and predictive maintenance alerts to cloud platforms. + +- **Asset Tracking:** Monitors equipment location and status in warehouses, construction sites, or logistics operations using integrated IMU and wireless connectivity. + +- **Agriculture Monitoring:** Connects soil moisture, weather, and irrigation sensors via LoRa® to optimize resource usage in precision agriculture applications. + +- **Education and Prototyping:** Hands-on learning platform for IoT protocols (Wi-Fi® 6, Bluetooth® 5.3, LoRa®) and rapid development of connected device proof-of-concepts with pre-configured hardware. + +- **Home Automation:** Custom automation systems including automated lighting, security systems, and environmental controls when combined with Modulino nodes or Grove sensors. + +
+ +## Features + +### General Specifications Overview + +![Nesso N1](assets/n1_overview.png) + +#### Processing and Memory + +| **Component** | **Details** | +|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Microcontroller | - ESP32-C6 RISC-V 32-bit single-core CPU @ 160 MHz
- Wi-Fi® 6 (802.11ax), Bluetooth® 5.3, 802.15.4 (Zigbee®)
- 16 MB external Flash (GD25Q128/W25Q128) | +| System Memory | - 1536 kB on-chip Flash
- 512 kB on-chip SRAM
- 16 MB external Flash for application storage | + +#### Connectivity and Wireless + +| **Component** | **Details** | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Wireless (ESP32-C6) | - 2.4 GHz Wi-Fi® 6 (802.11ax)
- Bluetooth® 5.3 LE
- 802.15.4 Zigbee®
- Dedicated FPC antenna | +| LoRa® Module | - SX1262 transceiver (850-960 MHz)
- Detachable external IPEX4 antenna
- FM8625H LNA for receive path
- SGM13005L4 amplifier for transmit path
- Antenna storage within enclosure | +| USB Interface | - USB-C connector
- 5V DC input for charging and programming
- USB 3.0 data interface | + +#### Display and User Interface + +| **Component** | **Details** | +|------------------|-------------------------------------------------------------------------------------------------------------------------| +| Display | - 1.14" IPS LCD
- ST7789P3 driver @ SPI communication
- Resolution: 135 × 240 pixels
- 262K colors (18-bit) | +| Touch Controller | - FT6336U capacitive touch controller
- I²C communication | +| User Buttons | - 2× programmable buttons (KEY1, KEY2)
- 1× power button (long-press reset function) | +| LEDs | - 1× green user programmable LED
- 1× blue power/status LED | +| Audio Feedback | - Passive buzzer (4 kHz)
- GPIO-controlled | +| Infrared | - IR LED transmitter
- Remote control and signal transmission capability | + +#### Sensors and Expansion + +| **Component** | **Details** | +|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------| +| IMU Sensor | - BMI270 6-axis IMU
- 3-axis accelerometer + 3-axis gyroscope
- I²C communication
- Motion and orientation detection | +| Expansion Ports | - Grove connector (HY2.0-4P): I²C, GPIO, power
- Qwiic connector (PH1.0-4P): I²C interface
- 8-pin HAT port: M5StickC HAT-compatible (GPIO, ADC, power) | + +#### Power System + +| **Component** | **Details** | +|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Battery | - 250 mAh lithium polymer battery (3.7 - 4.2 V)
- Integrated within enclosure | +| Power Management | - AW32001ECSR charge controller with power path management
- BQ27220YZFR battery fuel gauge (real-time capacity, voltage, current monitoring)
- Over-current and over-voltage protection | +| Voltage Regulation | - JW5712 DC-DC buck converter (battery to 3.3V system rail)
- SGM6603 boost converter (3.3V to 5V output for peripherals) | +| Input Voltage | - USB-C®: 5V DC input
- Battery nominal: 3.7 V (3.7 - 4.2 V range) | + +### Related Products + +- Arduino Modulino® Family +- Grove sensors and actuators (I²C, GPIO) +- Qwiic ecosystem modules +- M5StickC HAT accessories +- LoRa® antennas (850-960 MHz, IPEX4 connector) + +
+ +## Ratings + +### Input Power + +![Nesso N1 - Power Options](assets/n1_power_options.png) + +| **Source** | **Voltage Range** | **Maximum Current** | **Connector** | +|----------------|------------------:|--------------------:|------------------| +| USB-C® | 5 V | up to 1 A | USB-C® connector | +| Battery (LiPo) | 3.7 - 4.2 V | 250 mAh | Internal | + +

Nesso N1 is powered via a USB-C® connector accepting 5 V DC input for charging and operation, or through the integrated 250 mAh lithium polymer battery. The AW32001 power management IC handles charge control and power path management, allowing simultaneous charging and operation. Use a USB power source rated for at least 5 V at 1 A to ensure proper charging and operation during peak power consumption (e.g., Wi-Fi® transmission, display backlight at maximum, LoRa® transmission).

+ +Two main power functions are performed as follows: + +-

Battery charging: The AW32001 provides intelligent charge management with over-current and over-voltage protection. Charge current is automatically regulated based on input power availability and battery state.

+ +-

Battery monitoring: The BQ27220 fuel gauge continuously monitors battery voltage, current, and remaining capacity. Battery status data is accessible via I²C interface for real-time reporting.

+ +### Recommended Operating Conditions + +Use the limits below to define the operating environment, thermal margins, and power source specifications: + +| **Parameter** | **Symbol** | **Minimum** | **Typical** | **Maximum** | **Unit** | +|-----------------------|-----------------|:-----------:|:-----------:|:-----------:|:--------:| +| USB-C® input | `V_USB` | 4.75 | 5.0 | 5.25 | V | +| Battery voltage | `V_BAT` | 3.0 | 3.7 | 4.2 | V | +| 3.3V system rail | `V_SYS` | 3.1 | 3.3 | 3.5 | V | +| Operating temperature | `T_OP` | 0 | - | 40 | °C | + +
+

Operating Conditions: Minimum values represent the lowest continuous operating point. Brief drops below these levels may cause a brownout or reset. Typical represents nominal design conditions. Maximum must not be exceeded to prevent damage. For battery voltage, 3.0 V represents the low-battery cutoff threshold, and 4.2 V is the fully charged state. The operating temperature range refers to the ambient air temperature near the device.

+
+ +### On-Board Voltage Rails + +| **Voltage** | **Rail** | **Origin / Regulator** | +|------------:|--------------|-----------------------------------------------------------------------| +| 5.0 V | `V_USB` | USB-C® input | +| 3.7 - 4.2 V | `V_BAT` | Internal lithium polymer battery | +| 3.3 V | `SYS_3.3V` | JW5712 buck converter from battery (main system rail) | +| 5.0 V | `INT_5VOUT` | SGM6603 boost converter from 3.3V rail (for peripherals requiring 5V) | + +
+ +## Functional Overview + +### Pinout + +![Nesso N1 Pinout - Simplified Version](assets/TPX00227-pinout.png) + +### Block Diagram + +![Nesso N1 Block Diagram](assets/nesso_n1_block_diagram.png) + +
+ +### Power Supply + +

Nesso N1 uses a power management architecture optimized for battery-powered IoT applications. The system takes 5 V DC input via the USB-C® connector, which provides the AW32001ECSR power management IC. This IC manages charge control for the 250 mAh lithium polymer battery (3.7 - 4.2 V nominal) and provides power path management, allowing simultaneous charging and operation.

+ +

The JW5712 DC-DC buck converter steps down the battery voltage to generate the main 3.3 V system rail (SYS_3.3V), which powers the ESP32-C6 microcontroller, sensors, display controller, and most system peripherals. For peripherals requiring 5 V operation (such as certain HAT accessories), the SGM6603 boost converter steps up the 3.3 V rail to provide a regulated 5V output (INT_5VOUT).

+ +

The BQ27220YZFR fuel gauge IC continuously monitors battery voltage, current, and state of charge through dedicated sense connections to the battery. Real-time battery status information is accessible via the I²C interface. The system includes comprehensive protection circuitry against over-current, over-voltage, and reverse polarity conditions.

+ +

When USB power is disconnected, the device operates entirely from battery power. The power management system automatically transitions between power sources without disrupting operations.

+ +![Nesso N1 Power Tree](assets/nesso_n1_power_tree.png) + +

The integrated 250 mAh lithium polymer battery (3.7 - 4.2 V nominal) provides portable operation for remote and mobile applications. The BQ27220 fuel gauge continuously monitors battery voltage, current, and remaining capacity in real-time, with status data accessible via I²C interface for integration into user applications. Typical runtime varies based on wireless activity (Wi-Fi®, Bluetooth®, LoRa® transmission frequency), display brightness settings, and connected peripheral power consumption.

+ +

To maximize battery life, leverage the ESP32-C6's deep sleep modes when inactive, reducing power consumption to minimal levels. Display backlight brightness can be reduced or disabled entirely when visual feedback is not required. Unused wireless radios (Wi-Fi®, Bluetooth®, or LoRa®) should be disabled to conserve power.

+ +

The BMI270 IMU's interrupt outputs enable motion-triggered wake-up, allowing the system to remain in low-power mode until physical movement is detected. For LoRa® applications, Class A operation provides the lowest power consumption profile, which is ideal for battery-powered sensor nodes with infrequent uplink transmissions.

+ +**Power Button Behavior:** +- **Single press:** Turns on the device if powered down or resets if done while operating +- **Double press:** Turns off the device +- **Long press:** Enters Download/Bootloader mode while operating + +
+ +## UI & Indicators + +![Nesso N1 - UI & Indicators](assets/n1_ui.png) + +- **Green User LED (LED1):** Programmable user LED controlled by ESP32-C6 GPIO. Available for custom application feedback and status indication. + +- **Blue Power LED (LED3):** Indicates power status. Illuminated when the device is powered on (tied to VBUS rail via current-limiting resistor). + +- **Programmable Buttons:** + - **KEY1 (S1):** User-programmable button connected to I/O expander P0 + - **KEY2 (S2):** User-programmable button connected to I/O expander P1 + +- **Power Button (SW_PWR):** Controls device power state. Single-press turns on the device if powered down or resets if done while operating. Double-press turns off the device. + +- **Buzzer (BZ1):** 4 kHz passive buzzer driven by `GPIO11` through transistor driver circuit. Provides audio feedback for alarms, notifications, and user interactions. + +- **Infrared Transmitter (LED4):** IR LED driven by `GPIO9` through transistor driver circuit. Enables remote control of IR-compatible devices (TVs, air conditioners, etc.). + +## Microcontroller and Processing + +### ESP32-C6 Microcontroller + +

The ESP32-C6 is a single-core 32-bit RISC-V microcontroller running at up to 160 MHz, designed specifically for IoT applications requiring multiple wireless protocols. It integrates 2.4 GHz Wi-Fi® 6 (802.11ax), Bluetooth® 5.3 LE, and IEEE 802.15.4 (Zigbee®) radios on a single chip, reducing component count and system complexity.

+ +**Key specifications:** +- 32-bit RISC-V single-core processor @ 160 MHz maximum +- 1536 kB on-chip Flash, 512 kB on-chip SRAM +- 16 MB external Flash (GD25Q128 / W25Q128) via SPI interface for application storage +- Hardware cryptographic accelerators (AES, SHA, RSA) +- Low-power modes for battery-operated applications + +**Wireless capabilities:** +- **Wi-Fi® 6 (802.11ax):** 2.4 GHz band, supports target wake time (TWT) for power savings +- **Bluetooth® 5.3 LE:** Low energy mode for peripheral and beacon applications +- **802.15.4 (Zigbee®):** Mesh networking capability for smart home and industrial applications + +
+ Note: The Wi-Fi® and Bluetooth® connectivity uses a dedicated FPC antenna integrated into the device. Removing or modifying the FPC antenna may cause wireless connectivity to stop working. +
+ +**Peripheral interfaces:** +- Multiple GPIO pins with configurable functions +- I²C, SPI, UART communication interfaces +- PWM outputs for LED control, servo motors +- ADC inputs for analog sensor reading +- Touch sensor support on select GPIO + +
+ +### LoRa® Configuration + +

The SX1262 LoRa® transceiver provides long-range, low-power wireless connectivity in the 850–960 MHz frequency range. It connects to the ESP32-C6 via SPI interface and includes a dedicated low-noise amplifier (SGM13005L4) on the receive path and RF switch (FM8625H) for antenna path selection. The module supports both LoRa® and FSK modulation with a detachable IPEX4 antenna that can be stored within the device enclosure when not in use.

+ +| **Parameter** | **Specification** | +|---------------------|-----------------------------------------| +| Maximum TX power | +22 dBm | +| RX sensitivity | -147 dBm @ SF12 (low data rate mode) | +| Frequency range | 850-960 MHz (region-dependent) | +| Modulation | LoRa® and FSK | + +

To use the LoRa® module, connect the detachable antenna to the IPEX4 connector on the device. For compact storage when the antenna is not needed, it can be detached and inserted into the dedicated storage slot within the enclosure, maintaining the device's sleek form factor.

+ +![Nesso N1 - LoRa® Antenna](assets/n1_lora_antenna.png) + +
+ Important: Always attach the LoRa® antenna before transmitting. Operating the LoRa® transmitter without an antenna can damage the SX1262 module due to reflected RF power. +
+ +

The SX1262 operates in region-specific frequency bands: 868 MHz for Europe (863–870 MHz), 915 MHz for North America and Australia (902–928 MHz), and 923 MHz for Asia (920–925 MHz). Proper frequency configuration is required based on your deployment region to comply with local regulations.

+ +

For LoRa® network connectivity, configure the appropriate frequency, spreading factor (SF7–SF12), bandwidth, and coding rate based on your application requirements. Software libraries are available for configuring and using the LoRa® transceiver with the SX1262 module.

+ +### I/O Expansion + +

Two PI4IOE5V6408 I²C I/O expanders provide additional GPIO pins for the system. These devices operate on the shared I²C bus with configurable addresses, allowing control of a wider range of peripherals while keeping the ESP32-C6's native GPIO resources for other functions.

+ +

The first expander manages display control signals, status indicators, and power monitoring functions. The second expander handles user interface elements such as programmable buttons, manages LoRa® transceiver control signals, and provides GPIO for external expansion connectors. The I/O expanders also offer interrupt capability for event detection.

+ +
+ +## Peripherals + +### Grove Connector (J2) + +![Nesso N1 - Grove and Qwiic Connector](assets/n1_grove_qwiic.png) + +**Grove HY2.0-4P Connector** connects Grove ecosystem sensors and actuators with a custom pinout. + +| **Pin** | **Signal** | **Description** | +|--------:|------------|---------------------------------| +| 1 | GND | Ground | +| 2 | 5VOUT | 5 V output from boost converter | +| 3 | GROVE_IO_0 | GPIO 5 | +| 4 | GROVE_IO_1 | GPIO 4 | + +

The Grove connector provides both power (5V from boost converter) and signal connections. IO_0 and IO_1 are controlled through the GPIO 5 and 4, accessible via I²C commands. Use this connector for Grove modules requiring 5V operation or GPIO control.

+ +
+ Note: This connector uses a custom pinout that differs from standard Grove connectors. Verify pin compatibility before connecting standard Grove modules. +
+ +### Qwiic Connector (J3) + +**Qwiic PH1.0-4P Connector** provides standardized I²C connectivity for Qwiic/Stemma QT ecosystem modules and Arduino Modulino nodes. + +| **Pin** | **Signal** | **Description** | +|--------:|------------|------------------------------| +| 1 | GND | Ground | +| 2 | 3.3V | 3.3 V system power | +| 3 | SDA | I²C data (shared bus) | +| 4 | SCL | I²C clock (shared bus) | + +

The Qwiic connector shares the main I²C bus with internal peripherals (BMI270 IMU, BQ27220 fuel gauge, touch controller, I/O expander). I²C pull-up resistors are provided on the SDA and SCL lines. Maximum I²C bus speed is 400 kHz (Fast Mode).

+ +
+ I²C Bus Considerations: Multiple devices share the same I²C bus. Ensure connected modules use unique I²C addresses to avoid conflicts. The system I²C addresses include: BMI270 (0x68/0x69), BQ27220 (0x55), FT6336U (0x38), PI4IOE5V6408 (0x20/0x21 selectable). +
+ +### HAT Connector (J4) + +**8-Pin HAT Connector** compatible with M5StickC HAT accessory ecosystem. Provides GPIO, ADC, and power connections for stackable expansion modules. + +![Nesso N1 - HAT Connector](assets/n1_hat.png) + +| **Pin** | **Signal** | **Function** | +|--------:|------------|-----------------------------------------------------------| +| 1 | GND | Ground | +| 2 | 5VOUT | 5V boost converter output (INT_5VOUT) | +| 3 | D1 | GPIO7 (ADC capable, HAT_IO3) | +| 4 | D3 | GPIO6 (ADC capable, HAT_IO2) | +| 5 | D2 | GPIO2 (ADC capable, HAT_IO1) | +| 6 | VBAT | Battery voltage (SYS_VBAT) | +| 7 | 3V3 | 3.3V system power output (SYS_3.3V) | +| 8 | 5VIN | Input voltage from external source (SYS_VIN) | + +

The HAT connector provides access to battery voltage, regulated power rails, and GPIO/ADC capable pins for connecting M5StickC-compatible accessories. GPIO2, GPIO6, and GPIO7 are ESP32-C6 pins capable of analog-to-digital conversion for sensor applications.

+ +### Display and Touch Interface + +![Nesso N1 - Display and Touch Interface](assets/n1_display.png) + +

The integrated 1.14" IPS LCD features a 135 × 240 pixel resolution with 262K color depth (18-bit color), driven by the ST7789P3 controller. The display connects via SPI interface, which is shared with external Flash memory and the LoRa® module. Dedicated control signals include LCD_CS (chip select), LCD_RS (register select), and LCD_BL (backlight enable). The backlight is GPIO-controlled and supports PWM dimming for adjustable brightness levels.

+ +

The FT6336U capacitive touch controller allows single-point touch detection on the display. It communicates via the shared I²C bus alongside other internal peripherals. It provides an interrupt output (INT_LINE) for touch event notification, allowing power management through event-driven wake-up.

+ +
+ SPI Bus Sharing: The display controller shares the SPI bus with external Flash memory and LoRa® module. Chip select lines ensure only one device communicates at a time. Use appropriate delays and CS control in firmware to prevent bus conflicts. +
+ +### IMU Sensor + +

The BMI270 enables motion and orientation detection, gesture recognition, and activity tracking applications. Interrupt outputs can wake the ESP32-C6 from sleep mode when motion events occur, enabling ultra-low-power monitoring applications. Its characteristics are:

+ +- 3-axis accelerometer (±2 g, ±4 g, ±8 g, ±16 g ranges) +- 3-axis gyroscope (±125°/s to ±2000°/s ranges) +- I²C interface (address 0x68 or 0x69 selectable) +- Interrupt outputs (INT1, INT2) for motion detection, tap detection, orientation change +- Low-power modes for battery conservation +- Motion-triggered wake-up capability + +### Audio and Infrared + +

The onboard passive buzzer operates at 4 kHz and is GPIO-controlled via a transistor driver circuit. It provides audible feedback for notifications, alarms, and user interactions, allowing applications that require audio alerts or confirmation tones.

+ +

An infrared LED transmitter enables remote control applications for IR-compatible consumer devices such as TVs, air conditioners, and fans. The IR transmitter is GPIO-controlled via a transistor driver. It supports standard infrared remote control protocols, allowing the Nesso N1 to function as a universal remote or IoT gateway for traditional IR-based devices.

+ +
+ +## Device Operation + +### Getting Started - IDE + +If you want to program your Nesso N1 while offline you need to install the Arduino® Desktop IDE **[1]**. To connect the Nesso N1 to your computer, you will need a Type-C® USB cable, which can also provide power to the board, as indicated by the green power LED (LED1). + +### Getting Started - Arduino Cloud Editor + +All Arduino boards, including this one, work out-of-the-box on the Arduino® Cloud Editor **[2]**, by just installing a simple plugin. + +The Arduino Cloud Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow **[2]** to start coding on the browser and upload your sketches onto your board. + +### Getting Started - Arduino Cloud + +All Arduino IoT enabled products are supported on Arduino Cloud which allows you to log, graph and analyze sensor data, trigger events, and automate your home or business. + +### Online Resources + +Now that you have gone through the basics of what you can do with the board you can explore the endless possibilities it provides by checking existing projects on Arduino Project Hub **[4]**, the Arduino Library Reference **[5]**, and the online store **[6]**; where you will be able to complement your board with sensors, actuators and more. + +
+ +## Mechanical Information + +

Nesso N1 features a compact, ergonomic design optimized for portable IoT applications. The device measures 48 mm × 24 mm × 14 mm (without antenna storage) or 48 mm × 24 mm × 21.1 mm (with antenna stored in integrated slot). The pre-assembled enclosure eliminates the need for additional mechanical design, allowing immediate deployment in prototypes and final products.

+ +**Device Dimensions (without antenna storage):** +- Length: 48 mm +- Width: 24 mm +- Height: 14 mm + +![Nesso N1](assets/nesso_n1_device_md.svg) + +
+ +**Device Dimensions (with antenna storage):** +- Length: 48 mm +- Width: 24 mm +- Height: 21.1 mm + +![Nesso N1 - with Antenna Storage](assets/nesso_n1_deviceStorage_md.svg) + +
+ +**LoRa® Antenna Dimensions (detachable):** +- Length: 45.5 mm +- Width: 10.8 mm +- Height: 4.8 mm +- Connector: IPEX4 standard + +![Nesso N1 - LoRa® Antenna](assets/nesso_n1_antenna_md.svg) + +
+ +## Certifications + +### Declaration of Conformity CE DoC (EU) + +English: We declare under our sole responsibility that the products above are in conformity with the essential requirements of the following EU Directives and therefore qualify for free movement within markets comprising the European Union (EU) and European Economic Area (EEA). + +French: Nous déclarons sous notre seule responsabilité que les produits indiqués ci-dessus sont conformes aux exigences essentielles des directives de l'Union européenne mentionnées ci-après, et qu'ils remplissent à ce titre les conditions permettant la libre circulation sur les marchés de l'Union européenne (UE) et de l'Espace économique européen (EEE). + +### Declaration of Conformity to EU RoHS & REACH + +

Arduino boards are in compliance with Directive 2011/65/EU of the European Parliament and Directive 2015/863/EU of the Council of 4 June 2015 on the restriction of the use of certain hazardous substances in electrical and electronic equipment.

+ +| **Substance** | **Maximum Limit (ppm)** | +|----------------------------------------|-------------------------| +| Lead (Pb) | 1000 | +| Cadmium (Cd) | 100 | +| Mercury (Hg) | 1000 | +| Hexavalent Chromium (Cr6+) | 1000 | +| Poly Brominated Biphenyls (PBB) | 1000 | +| Poly Brominated Diphenyl ethers (PBDE) | 1000 | +| Bis(2-Ethylhexyl) phthalate (DEHP) | 1000 | +| Benzyl butyl phthalate (BBP) | 1000 | +| Dibutyl phthalate (DBP) | 1000 | +| Diisobutyl phthalate (DIBP) | 1000 | + +Exemptions: No exemptions are claimed. + +

Arduino boards are fully compliant with the related requirements of European Union Regulation (EC) 1907/2006 concerning the Registration, Evaluation, Authorization and Restriction of Chemicals (REACH). We declare none of the SVHCs (https://echa.europa.eu/web/guest/candidate-list-table), the Candidate List of Substances of Very High Concern for authorization currently released by ECHA, is present in all products (and also package) in quantities totaling in a concentration equal or above 0.1%. To the best of our knowledge, we also declare that our products do not contain any of the substances listed on the "Authorization List" (Annex XIV of the REACH regulations) and Substances of Very High Concern (SVHC) in any significant amounts as specified by the Annex XVII of Candidate list published by ECHA (European Chemical Agency) 1907/2006/EC.

+ +### Conflict Minerals Declaration + +

As a global supplier of electronic and electrical components, Arduino is aware of our obligations with regards to laws and regulations regarding Conflict Minerals, specifically the Dodd-Frank Wall Street Reform and Consumer Protection Act, Section 1502. Arduino does not directly source or process conflict minerals such as Tin, Tantalum, Tungsten, or Gold. Conflict minerals are contained in our products in the form of solder, or as a component in metal alloys. As part of our reasonable due diligence Arduino has contacted component suppliers within our supply chain to verify their continued compliance with the regulations. Based on the information received thus far we declare that our products contain Conflict Minerals sourced from conflict-free areas.

+ +## FCC Caution + +Any Changes or modifications not expressly approved by the party responsible for compliance could void the user's authority to operate the equipment. + +This device complies with part 15 of the FCC Rules. Operation is subject to the following two conditions: + +(1) This device may not cause harmful interference + +(2) this device must accept any interference received, including interference that may cause undesired operation. + +**FCC RF Radiation Exposure Statement:** + +1. This Transmitter must not be co-located or operating in conjunction with any other antenna or transmitter. + +2. This equipment complies with RF radiation exposure limits set forth for an uncontrolled environment. + +3. This equipment should be installed and operated with a minimum distance of 20 cm between the radiator & your body. + +English: +

User manuals for licence-exempt radio apparatus shall contain the following or equivalent notice in a conspicuous location in the user manual or alternatively on the device or both. This device complies with Industry Canada licence-exempt RSS standard(s). Operation is subject to the following two conditions:

+ +(1) this device may not cause interference + +(2) this device must accept any interference, including interference that may cause undesired operation of the device. + +French: +

Le présent appareil est conforme aux CNR d'Industrie Canada applicables aux appareils radio exempts de licence. L'exploitation est autorisée aux deux conditions suivantes:

+ +(1) l'appareil ne doit pas produire de brouillage + +(2) l'utilisateur de l'appareil doit accepter tout brouillage radioélectrique subi, même si le brouillage est susceptible d'en compromettre le fonctionnement. + +**IC SAR Warning:** + +English: +This equipment should be installed and operated with a minimum distance of 20 cm between the radiator and your body. + +French: +Lors de l'installation et de l'exploitation de ce dispositif, la distance entre le radiateur et le corps est d'au moins 20 cm. + +**Important:** The operating temperature of the EUT can't exceed 40°C and shouldn't be lower than 0°C. + +Hereby, Arduino S.r.l. declares that this product is in compliance with essential requirements and other relevant provisions of Directive 2014/53/EU. This product is allowed to be used in all EU member states. + +## Company Information + +| Company name | Arduino S.r.l. | +|--------------|--------------------------------------------| +| Address | Via Andrea Appiani 25, 20900 Monza (Italy) | + +## Documentation Reference + +| No. | Reference | Link | +|:---:|--------------------------------|------------------------------------------------------------------------------------------| +| 1 | Arduino IDE (Desktop) | [https://www.arduino.cc/en/Main/Software](https://www.arduino.cc/en/Main/Software) | +| 2 | Arduino IDE (Cloud) | [https://create.arduino.cc/editor](https://create.arduino.cc/editor) | +| 3 | Arduino Nesso N1 Documentation | [https://docs.arduino.cc/hardware/nesso-n1/](https://docs.arduino.cc/hardware/nesso-n1/) | +| 4 | Project Hub | [https://create.arduino.cc/projecthub](https://create.arduino.cc/projecthub) | +| 5 | Library Reference | [https://github.com/arduino-libraries/](https://github.com/arduino-libraries/) | +| 6 | Arduino Store | [https://store.arduino.cc/](https://store.arduino.cc/) | + +## Document Revision History + +| **Date** | **Revision** | **Changes** | +|:----------:|:------------:|---------------| +| 14/10/2025 | 1 | First release | \ No newline at end of file diff --git a/content/hardware/09.kits/maker/nesso-n1/downloads/TPX00227-full-pinout.pdf b/content/hardware/09.kits/maker/nesso-n1/downloads/TPX00227-full-pinout.pdf new file mode 100644 index 0000000000..59aed82894 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/downloads/TPX00227-full-pinout.pdf differ diff --git a/content/hardware/09.kits/maker/nesso-n1/essentials.md b/content/hardware/09.kits/maker/nesso-n1/essentials.md new file mode 100644 index 0000000000..f90f481cc1 --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/essentials.md @@ -0,0 +1,23 @@ +--- +productsLibrariesMap: + - m5gfx + - nimble-arduino + - arduino-modulino + - radiolib + - wire + - arduino_bmi270_bmm150 + - irremote +--- + + + + + A simple interface to control the Arduino Modulino family of products via the Qwiic connector. + + + + The standard library for communicating with I2C devices connected via the Grove or Qwiic ports. + + + + diff --git a/content/hardware/09.kits/maker/nesso-n1/features.md b/content/hardware/09.kits/maker/nesso-n1/features.md new file mode 100644 index 0000000000..b069df143a --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/features.md @@ -0,0 +1,45 @@ + + +Powered by M5Stack, this sleek, compact device delivers power, versatility, and ease of use. Its ESP32-C6 core allows seamless, long-range connectivity for smart home devices, industrial automation tools, and wearables. Enjoy instant interaction with its touch display, programmable buttons, and built-in sensors, and expand possibilities with Grove, Qwiic, and M5StickC HAT-compatible connectors. + + + + + + +Seamlessly connect your projects with multiple protocols, including Wi-Fi® 6, Bluetooth® LE 5.3, 802.15.4 (Zigbee®), and LoRa®, enabling versatile and reliable communication for any IoT application. + + + +The detachable LoRa® antenna can be securely stored within the device enclosure when not in use, maintaining a portable form factor for on-the-go projects. + + + +The onboard 1.14-inch color touchscreen provides a clear and intuitive way to display data and create user interfaces directly on your device. + + + +Easily integrate a wide range of sensors and peripherals from the Arduino Modulino family and third-party modules using the built-in Grove, Qwiic, and 8-pin HAT connectors for plug-and-play expansion. + + + +The integrated BMI270 Inertial Measurement Unit (IMU) offers precise motion and posture detection, perfect for wearables, gesture control, and orientation-aware projects. + + + +A built-in 250 mAh LiPo battery and advanced power management chip provide portability and real-time monitoring of battery status, with over-current and over-voltage protection. + + + +The Nesso N1 features a modern USB-C® connector for streamlined power delivery, battery charging, and data transfer. + + + +Transform traditional appliances into smart devices using the onboard infrared (IR) transmitter to create custom remote controls and IoT gateways. + + + +Three programmable buttons and an onboard buzzer offer flexible control and audible feedback for your applications. + + + \ No newline at end of file diff --git a/content/hardware/09.kits/maker/nesso-n1/image.svg b/content/hardware/09.kits/maker/nesso-n1/image.svg new file mode 100644 index 0000000000..a0c676fdbb --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/image.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/hardware/09.kits/maker/nesso-n1/interactive/TPX00227-pinout.png b/content/hardware/09.kits/maker/nesso-n1/interactive/TPX00227-pinout.png new file mode 100644 index 0000000000..e631bd7f71 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/interactive/TPX00227-pinout.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/product.md b/content/hardware/09.kits/maker/nesso-n1/product.md new file mode 100644 index 0000000000..93425a3aed --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/product.md @@ -0,0 +1,11 @@ +--- +title: Nesso N1 +url_shop: https://store.arduino.cc/products/nesso-n1 +primary_button_url: /tutorials/nesso-n1/user-manual +primary_button_title: User Manual +core: RISC-V +forumCategorySlug: '/hardware/kits/nesso-n1' +sku: [TPX00227] +--- + +The **Arduino Nesso N1** is a high-performance, all-in-one development board for remote monitoring and automation. Powered by an **ESP32-C6** SoC, it integrates **Wi-Fi® 6**, **Bluetooth® LE 5.3**, **Zigbee®**, and **LoRa®** communication protocols. Featuring a **1.14" color touchscreen**, built-in **IMU sensor**, **programmable buttons**, and a rechargeable **battery**, the Nesso N1 is the ultimate tool for developing sophisticated IoT solutions. \ No newline at end of file diff --git a/content/hardware/09.kits/maker/nesso-n1/suggestions.md b/content/hardware/09.kits/maker/nesso-n1/suggestions.md new file mode 100644 index 0000000000..4ad7321884 --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/suggestions.md @@ -0,0 +1,18 @@ + + + + Get started with the Arduino Cloud + + + + + + Built-in Examples are sketches included in the Arduino IDE and demonstrate all basic Arduino commands. + + + Discover interesting articles, principles and techniques related to the Arduino ecosystem. + + + Arduino programming language can be divided in three main parts: functions, values (variables and constants), and structure. + + diff --git a/content/hardware/09.kits/maker/nesso-n1/tech-specs.md b/content/hardware/09.kits/maker/nesso-n1/tech-specs.md new file mode 100644 index 0000000000..8c20c1eef4 --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/tech-specs.md @@ -0,0 +1,5 @@ +Here you will find the technical specifications for the Arduino Nesso N1. + +**Note on Connectors:** The Qwiic, and 8-pin expansion port connectors operate at **3.3 V**. Connecting modules or devices that use higher logic levels, such as 5 V, may permanently damage the board. + +**Note on GPIO Current:** Be mindful of the current limits for the GPIO pins. Exceeding the specifications in the ESP32-C6 datasheet may damage the pin or the board. diff --git a/content/hardware/09.kits/maker/nesso-n1/tech-specs.yml b/content/hardware/09.kits/maker/nesso-n1/tech-specs.yml new file mode 100644 index 0000000000..bb88fd72be --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/tech-specs.yml @@ -0,0 +1,60 @@ +Board: + Name: Arduino Nesso N1 + SKU: TPX00227 + +Microcontroller: + SoC: ESP32-C6 + Architecture: Single-core 32-bit RISC-V CPU + Clock Speed: up to 160 MHz + +Wireless Communication: + Wi-Fi: 2.4 GHz Wi-Fi® 6 + Bluetooth: Bluetooth® LE 5.3 + 802.15.4: Zigbee® + LoRa®: SX1262 module (850–960 MHz) + +Memory: + Flash: 16 MB external + SRAM: 512 kB (Internal) + +Power: + Input Voltage: 5 V (via USB-C®) + Power Source: USB DC-5V input or built-in battery power + Battery: 250 mAh LiPo (rechargeable) + Power Management: AW32001 (power path management, charge control, and over-current & over-voltage protection) + Battery Monitoring: BQ27220 (real-time monitoring of battery capacity, voltage, and current) + +Interfaces: + USB: 1× USB-C® (Programming / Power) + Grove: 1× Standard Grove interface + Qwiic: 1× Qwiic interface standard + Expansion Port: 1× 8-pin (M5StickC HAT compatible) + +Onboard Peripherals: + Display: 1.14" IPS LCD touchscreen (135×240 px, 262K colors, ST7789P3 driver, FT6336U capacitive touch) + IMU: BMI270 (6-axis) + Infrared: 1× IR transmitter (IR LED, connected to GPIO9 pin) + Audio: 1× Buzzer (connected to GPIO11 pin) + User Buttons: 2× programmable (KEY1/KEY2) + 1× Power/Reset/Bootloader button + User LEDs: 1× Green programmable (LED_BUILTIN) + 1× Blue (status indications) + +Operating Temperature: 0–40 °C + +Antennas: + ESP32-C6: on-board FPC antenna (dedicated) + LoRa®: detachable external antenna + +Dimensions (Device without antenna storage): + Width: 24 mm + Length: 48 mm + Height: 14 mm + +Dimensions (Device with antenna storage): + Width: 24 mm + Length: 48 mm + Height: 21.1 mm + +Dimensions (LoRa® antenna): + Width: 10.8 mm + Length: 45.5 mm + Height: 4.8 mm diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/antenna-mounted.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/antenna-mounted.png new file mode 100644 index 0000000000..a086921df4 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/antenna-mounted.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/antenna-storage-removable.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/antenna-storage-removable.png new file mode 100644 index 0000000000..ab8fe6db1b Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/antenna-storage-removable.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/bmi_accel.gif b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/bmi_accel.gif new file mode 100644 index 0000000000..203c259812 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/bmi_accel.gif differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/bmi_gyro.gif b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/bmi_gyro.gif new file mode 100644 index 0000000000..2e5803dde7 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/bmi_gyro.gif differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/board-manager.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/board-manager.png new file mode 100644 index 0000000000..7b206d2647 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/board-manager.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/built-in-led.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/built-in-led.png new file mode 100644 index 0000000000..27923062c9 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/built-in-led.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/display-example-1.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/display-example-1.png new file mode 100644 index 0000000000..a96c5d7d2c Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/display-example-1.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/display-example-2.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/display-example-2.png new file mode 100644 index 0000000000..7b8bf3484b Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/display-example-2.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/display-example-3.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/display-example-3.png new file mode 100644 index 0000000000..89d5db3ebd Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/display-example-3.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/expansion-port.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/expansion-port.png new file mode 100644 index 0000000000..3bd0e2775f Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/expansion-port.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/grove-connector.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/grove-connector.png new file mode 100644 index 0000000000..1ecc9768ca Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/grove-connector.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/hero-banner.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/hero-banner.png new file mode 100644 index 0000000000..b8d86041ec Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/hero-banner.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/lora-antenna.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/lora-antenna.png new file mode 100644 index 0000000000..a5376bcc3e Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/lora-antenna.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/modulino.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/modulino.png new file mode 100644 index 0000000000..f916c80d89 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/modulino.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/power-button.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/power-button.png new file mode 100644 index 0000000000..fcf8922c0a Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/power-button.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/programmable-buttons.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/programmable-buttons.png new file mode 100644 index 0000000000..e38a71702c Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/programmable-buttons.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/qwiic-connector.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/qwiic-connector.png new file mode 100644 index 0000000000..5a5caabd87 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/qwiic-connector.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/simple-pinout.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/simple-pinout.png new file mode 100644 index 0000000000..e631bd7f71 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/simple-pinout.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/unboxing.png b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/unboxing.png new file mode 100644 index 0000000000..3dfcc627e1 Binary files /dev/null and b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/assets/unboxing.png differ diff --git a/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/content.md b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/content.md new file mode 100644 index 0000000000..f2458139ee --- /dev/null +++ b/content/hardware/09.kits/maker/nesso-n1/tutorials/user-manual/content.md @@ -0,0 +1,1281 @@ +--- +title: 'Nesso N1 User Manual' +difficulty: beginner +compatible-products: [nesso-n1] +description: 'Learn how to set up and use the Arduino Nesso N1, a ready to use IoT development board.' +tags: + - User Manual + - Cheat sheet + - ESP32-C6 + - Bluetooth + - Wi-Fi 6 + - LoRa + - Zigbee® + - Matter +author: 'Ernesto Voltaggio' +hardware: + - hardware/09.kits/maker/nesso-n1 +software: + - ide-v1 + - ide-v2 + - iot-cloud + - web-editor +--- + +The **Arduino® Nesso N1** is an all-in-one enclosed development board. Based on the ESP32-C6 System on Chip (SoC), it integrates a suite of communication protocols, including 2.4 GHz Wi-Fi® 6, Bluetooth® 5.3 LE, 802.15.4 (Zigbee®), and long-range LoRa®. It also includes a 1.14" color touchscreen, buttons, and a built-in LiPo battery for immediate user interaction in portable applications. + +This document serves as a comprehensive user manual for the Nesso N1, providing technical specifications, set up guides, and detailed explanations of its features to help you bring your projects to life. + +![ ](assets/hero-banner.png) + +## Hardware and Software Requirements + +### Hardware Requirements + +- [Nesso N1](https://store.arduino.cc/products/nesso-n1) (x1) +- [USB-C® cable](https://store.arduino.cc/products/usb-cable2in1-type-c) (x1) + +### Software Requirements + +- [Arduino IDE](https://www.arduino.cc/en/software) or [Arduino Cloud Editor](https://app.arduino.cc/sketches) +- [ESP32 Boards core by Espressif](https://github.com/espressif/arduino-esp32) + +## Product Overview + +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. + +### Product Architecture + +- **ESP32-C6 SoC**: A powerful single-core RISC-V microcontroller with integrated Wi-Fi® 6, Bluetooth® 5.3 LE, and an 802.15.4 radio supporting Zigbee® for low-power mesh networking. +- **SX1262 LoRa® Module**: A long-range, low-power LoRa® transceiver for communication in remote or challenging environments. +- **1.14" Color Touchscreen**: An intuitive IPS display for user interaction and data visualization. +- **BMI270 IMU**: A 6-axis Inertial Measurement Unit for precise motion and orientation sensing. +- **Rechargeable Battery**: A built-in 250 mAh LiPo battery with a sophisticated power management system for portable applications. +- **Expansion Connectors**: Standard Grove and Qwiic interfaces, plus an 8-pin port compatible with the M5StickC HAT series for easy hardware expansion. +- **Onboard Peripherals**: Includes an infrared (IR) transmitter, a buzzer for audio feedback, a built-in LED, and two programmable user buttons. + +### Pinout + +![Arduino Nesso N1 Pinout](assets/simple-pinout.png) + +The full pinout is available and downloadable as a PDF from the link below: + +- [Nesso N1 pinout](../../downloads/TPX00227-full-pinout.pdf) + +### Datasheet + +The full datasheet is available as a downloadable PDF from the link below: + +- [Nesso N1 datasheet](/resources/datasheets/TPX00227-datasheet.pdf) + + +## Installation + +The Nesso N1 can be programmed using the Arduino IDE or the Arduino Cloud Editor. To get started, you will need to install the appropriate board package. + +### Arduino IDE + +To use the board in the Arduino IDE, you need to install the latest version of the **esp32 by Espressif Systems** package from the boards manager. + +1. Open the Arduino IDE. +2. Navigate to **Boards Manager** (**Tools > Board > Boards Manager...**). +3. Search for **"esp32"** and find the package by **Espressif Systems**. +4. Click the **Install** button. +5. Once installed, select **Arduino Nesso N1** from the **Tools > Board > esp32** menu. + +![Installing the esp32 Boards core in the Arduino IDE](assets/board-manager.png) + +### Arduino Cloud Editor + +The Arduino Cloud Editor is an online IDE that supports the Nesso N1 without requiring manual installation of the board package. + +Read more in the [Getting Started with the Cloud Editor](https://docs.arduino.cc/arduino-cloud/guides/editor/) guide. + +## First Use + +### Unboxing the Product + +When opening the Nesso N1 box, you will find the device and a hexagon key. The device comes pre-assembled in a sleek enclosure. + +![Nesso N1 form factor](assets/unboxing.png) + +The detachable LoRa® antenna is conveniently stored in a compartment on the back of the device. You can slide it out to connect it to the MMCX connector for long-range communication. + +![Nesso N1 LoRa® antenna](assets/lora-antenna.png) + +For projects where a slimmer profile is desired, the included hexagon key can be used to remove the antenna storage compartment, making the device thinner. + +![Removable Antenna Storage](assets/antenna-storage-removable.png) + +***The Nesso N1 does not include a USB-C® cable, which is required to connect the board to your computer. A compatible cable is [available separately here](https://store.arduino.cc/products/usb-cable2in1-type-c).*** + +## Power Supply + +The Nesso N1 can be powered in three ways: + +- **USB-C® Connector**: Provide a regulated 5 V DC supply through the USB-C® port. This method also charges the internal battery. +- **Built-in Battery**: The onboard 250 mAh LiPo battery allows the device to operate untethered, making it ideal for portable and remote monitoring applications. +- **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. + +***WARNING: Handle the internal LiPo battery with care. Do not puncture, short-circuit, or expose it to high temperatures.*** + +## Battery Management + +The board incorporates a power management system featuring the **AW32001** power path management chip and the **BQ27220** battery monitoring chip. This system provides: + +- **Automatic Charging**: The battery charges automatically when a 5 V source is connected via USB-C®. +- **Real-Time Monitoring**: You can programmatically access battery voltage, current, and capacity to monitor the power status of your application. +- **Over-Current & Over-Voltage Protection**: Ensures safe and stable operation during charging and discharging cycles. + +## Microcontroller (ESP32-C6) + +At the core of the Nesso N1 is the **ESP32-C6**, a highly integrated SoC from Espressif. + +### Key Features + +- **CPU**: Single-core 32-bit RISC-V, up to 160 MHz. +- **Memory (on-chip)**: 512 kB SRAM. +- **Memory (external)**: 16 MB Flash. + +The ESP32-C6 features a comprehensive set of connectivity options: + +- 2.4 GHz Wi-Fi® 6 (802.11ax). +- Bluetooth® 5.3 Low Energy. +- 802.15.4 radio and Zigbee® protocols. +- Support for the Matter protocol. + +***WARNING: All GPIO pins are 3.3 V logic only and are not 5 V tolerant.*** + +## Pins + +The Nesso N1 exposes a variety of pins for interacting with internal and external hardware. Some pins are connected directly to the ESP32-C6, while others are managed by two PI4IOE5V6408 I/O expanders to provide additional functionality. + +### Direct ESP32-C6 Pins + +These pins are directly controlled by the main microcontroller. + +| Pin Name | GPIO | Function | +| :----------- | :--- | :----------------------------------------- | +| `SDA` | 10 | I2C Data | +| `SCL` | 8 | I2C Clock | +| `MOSI` | 21 | SPI Master Out Slave In | +| `MISO` | 22 | SPI Master In Slave Out | +| `SCK` | 20 | SPI Serial Clock | +| `IR_TX_PIN` | 9 | Infrared Transmitter Output | +| `BEEP_PIN` | 11 | Buzzer Output | +| `GROVE_IO_0` | 5 | Grove Connector I/O | +| `GROVE_IO_1` | 4 | Grove Connector I/O | +| `LORA_IRQ` | 15 | LoRa® Module Interrupt Request | +| `LORA_CS` | 23 | LoRa® Module Chip Select (SPI) | +| `LORA_BUSY` | 19 | LoRa® Module Busy Indicator | +| `SYS_IRQ` | 3 | System Interrupt (from IMU & I/O expander) | +| `LCD_CS` | 17 | LCD Chip Select (SPI) | +| `LCD_RS` | 16 | LCD Register Select | +| `D1` | 7 | 8-pin Header Digital I/O | +| `D2` | 2 | 8-pin Header Digital I/O | +| `D3` | 6 | 8-pin Header Digital I/O | + +### I/O Expander Pins + +The Nesso N1 uses two PI4IOE5V6408 I/O expanders (addresses `0x43` and `0x44`) to manage additional pins over the I2C bus. These pins are accessed in code using special `ExpanderPin` objects, which are pre-defined as part of the Nesso N1 board package. You do not need to include any extra libraries to use them. + +| Pin Object | Expander Port | Function | +| :-------------------- | :------------ | :------------------------------- | +| `KEY1` | E0.P0 | Programmable Button 1 | +| `KEY2` | E0.P1 | Programmable Button 2 | +| `LORA_LNA_ENABLE` | E0.P5 | LoRa® Low-Noise Amplifier Enable | +| `LORA_ANTENNA_SWITCH` | E0.P6 | LoRa® RF Antenna Switch Control | +| `LORA_ENABLE` | E0.P7 | LoRa® Module Reset/Enable | +| `POWEROFF` | E1.P0 | System Power Off Control | +| `LCD_RESET` | E1.P1 | LCD Reset | +| `GROVE_POWER_EN` | E1.P2 | Grove Connector Power Enable | +| `VIN_DETECT` | E1.P5 | External Power (VIN) Detection | +| `LCD_BACKLIGHT` | E1.P6 | LCD Backlight Control | +| `LED_BUILTIN` | E1.P7 | Onboard Status LED (Green) | + + +The configuration of a digital pin is done in the `setup()` function with the `pinMode()` function: + +```arduino +// Pin configured as an input +pinMode(D1, INPUT); + +// Pin configured as an output +pinMode(D1, OUTPUT); + +// Pin configured as an input with internal pull-up resistor enabled +pinMode(D1, INPUT_PULLUP); +``` + +The state of a digital pin configured as an input can be read using `digitalRead()`: + +```arduino +// Read pin state and store it in a variable +int buttonState = digitalRead(KEY1); +``` + +The state of a digital pin configured as an output can be changed using `digitalWrite()`: + +```arduino +// Set pin HIGH +digitalWrite(D1, HIGH); + +// Set pin LOW +digitalWrite(D1, LOW); +``` + +### PWM Pins + +The Nesso N1 has three PWM (Pulse Width Modulation) capable pins, accessible via the **8-pin expansion header**: + +| Pin Name | GPIO | Function | +| :------- | :--- | :---------------- | +| `D1` | 7 | Digital I/O / PWM | +| `D2` | 2 | Digital I/O / PWM | +| `D3` | 6 | Digital I/O / PWM | + +This functionality can be used with the built-in `analogWrite()` function. By default, the resolution is 8-bit (value 0-255), but it can be configured up to 16-bit using `analogWriteResolution()`. + +```arduino +// Set PWM resolution to 10-bit (0-1023) +analogWriteResolution(10); + +// Set pin D1 to a 50% duty cycle +analogWrite(D1, 512); +``` + +### Analog Pins (ADC) + +The Nesso N1 provides access to two analog input pins through its onboard **Grove connector**. These pins, `GROVE_IO_0` (GPIO5) and `GROVE_IO_1` (GPIO4), are connected to the ESP32-C6's 12-bit Analog-to-Digital Converter (ADC). + +***Please note that these analog inputs are not available on the standard pin headers and must be accessed using a Grove-compatible cable.*** + +The `analogRead()` function will return a value between 0 and 4095, corresponding to an input voltage range of 0 V to 3.3 V. + +```arduino +// Read the analog value from the Grove connector pin +int sensorValue = analogRead(GROVE_IO_0); +``` + +## Communication + +The Nesso N1 supports several wired communication protocols for interfacing with sensors, displays, and other devices. + +### I2C + +The Nesso N1 supports I2C communication, which allows data transmission between the board and other I2C-compatible devices. The pins used for the I2C communication protocol are the following: + +| Microcontroller Pin | Arduino Pin Mapping | +| :------------------ | :------------------ | +| GPIO8 | `SCL` | +| GPIO10 | `SDA` | + +To use I2C communication, include the `Wire` library at the top of your sketch. The `Wire` library provides functions for I2C communication: + +```cpp +#include +``` + +In the `setup()` function, initialize the I2C library. On the Nesso N1, all I2C communication, including the Qwiic connector, is handled by the primary `Wire` object. + +```cpp +// Initialize the primary I2C bus +Wire.begin(); +``` + +To scan for connected I2C devices and verify their addresses, you can use the following example sketch. This is a useful utility to ensure your hardware is connected and recognized correctly. + +```cpp +#include + +void setup() { + // Initialize the I2C bus + Wire.begin(); + + // Initialize Serial for printing the results + Serial.begin(115200); + while (!Serial); // Wait for Serial to be ready + + Serial.println("\nI2C Scanner"); + Serial.println("Scanning for I2C devices..."); +} + +void loop() { + byte error, address; + int nDevices; + + nDevices = 0; + for (address = 1; address < 127; address++) { + // The i2c_scanner uses the return value of + // the Write.endTransmisstion to see if + // a device did acknowledge to the address. + Wire.beginTransmission(address); + error = Wire.endTransmission(); + + if (error == 0) { + Serial.print("I2C device found at address 0x"); + if (address < 16) { + Serial.print("0"); + } + Serial.println(address, HEX); + nDevices++; + } else if (error == 4) { + Serial.print("Unknown error at address 0x"); + if (address < 16) { + Serial.print("0"); + } + Serial.println(address, HEX); + } + } + if (nDevices == 0) { + Serial.println("No I2C devices found\n"); + } else { + Serial.println("Scan complete.\n"); + } + + delay(5000); // Wait 5 seconds before scanning again +} +``` + + +### SPI + +The board features one Serial Peripheral Interface (SPI) bus, which is used internally to communicate with the LoRa® module and the color display. + +- **MOSI**: GPIO21 +- **MISO**: GPIO22 +- **SCK**: GPIO20 + +While these pins are primarily used by onboard components, they can be shared with external SPI devices if you use a separate, available digital pin as a Chip Select (CS). + +### UART + +The Nesso N1 has two hardware UART (Serial) ports. + +- **`Serial`**: This object corresponds to the primary UART, which is connected to the USB-C® port. It is used for programming the board and for communication with the Arduino IDE's Serial Monitor. It is not connected to any external pins. + +- **`Serial1`**: This is a secondary hardware UART that can be mapped to any available GPIO pins. This allows you to establish serial communication with external devices like GPS modules or other microcontrollers using pins on the **8-pin expansion header** or the **Grove connector**. + +To use `Serial1`, you must specify the RX and TX pins in the `Serial1.begin()` function. The following example shows how to set up a UART on pins `D1` (TX) and `D2` (RX). + +```arduino +// D1 (GPIO7) will be TX1 +// D2 (GPIO2) will be RX1 + +void setup() { + // Initialize USB Serial for debugging + Serial.begin(115200); + + // Initialize Serial1 on D1 and D2 + // Format: Serial1.begin(baudrate, config, rxPin, txPin); + Serial1.begin(9600, SERIAL_8N1, D2, D1); + + Serial.println("UART communication example started."); + Serial.println("Anything you type here will be sent from D1."); +} + +void loop() { + // If data is available from USB Serial, send it to Serial1 (D1) + if (Serial.available()) { + char c = Serial.read(); + Serial1.print(c); + } + + // If data is available from Serial1 (D2), send it to USB Serial + if (Serial1.available()) { + char c = Serial1.read(); + Serial.print(c); + } +} +``` + + +## Battery + + +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. + + +### Enable Charging + +***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.*** + +```arduino +// The NessoBattery object is available by default +NessoBattery battery; + +void setup() { + // Enable the charging circuit + battery.enableCharge(); +} +``` + +### Get Battery Voltage + +Returns the current, instantaneous battery voltage in Volts. This is a direct electrical measurement. + +```arduino +float voltage = battery.getVoltage(); +Serial.print("Voltage: "); +Serial.print(voltage); +Serial.println(" V"); +``` + +### Get Charge Level + +Returns the battery's estimated state of charge as a percentage (0-100%). This value is calculated by the BQ27220 fuel gauge IC. + +```arduino +uint16_t chargeLevel = battery.getChargeLevel(); +Serial.print("Charge Level: "); +Serial.print(chargeLevel); +Serial.println(" %"); +``` + +### Understanding Voltage vs. Charge Level + +It is important to understand the difference between the two battery reading functions: + +- **`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. + +- **`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). + +***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.*** + +### Checking for External Power + +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. + +```arduino +void setup() { + pinMode(VIN_DETECT, INPUT); +} + +void loop() { + if (digitalRead(VIN_DETECT) == HIGH) { + Serial.println("Running on external power."); + } else { + Serial.println("Running on battery power."); + } + delay(5000); +} +``` + +## Buttons and LED + +The Nesso N1 features several physical controls for user interaction. + +### Power Button + +The Nesso N1 has a multi-function button for power control: + +- **Click (from off state)**: Power on. +- **Click (from on state)**: Reset the device. +- **Double-click (from on state)**: Power off. +- **Press and hold (from on state)**: Enter Download/Bootloader mode. + +![Power Button](assets/power-button.png) + + +Additionally, the `POWEROFF` expander pin allows you to shut down the device programmatically. + + +### User Buttons + +The board has two physical buttons, **KEY1** and **KEY2**, that are connected to the I/O expander. These can be read using `digitalRead()`. + +![User Buttons](assets/programmable-buttons.png) + +```arduino +void setup() { + Serial.begin(115200); + pinMode(KEY1, INPUT_PULLUP); + pinMode(KEY2, INPUT_PULLUP); +} + +void loop() { + if (digitalRead(KEY1) == LOW) { + Serial.println("Button 1 pressed!"); + delay(200); // Simple debounce + } + if (digitalRead(KEY2) == LOW) { + Serial.println("Button 2 pressed!"); + delay(200); // Simple debounce + } +} +``` + +### Built-in Programmable LED + +The board has an onboard green LED that can be controlled using the `LED_BUILTIN` object. It is visible on the side of the board through the power button gaps. + +![Built-in LED](assets/built-in-led.png) + +```arduino +void setup() { + // Configure the built-in LED as an output + pinMode(LED_BUILTIN, OUTPUT); +} + +void loop() { + // Blink the LED + digitalWrite(LED_BUILTIN, LOW); // Turn LED ON + delay(500); + digitalWrite(LED_BUILTIN, HIGH); // Turn LED OFF + delay(500); +} +``` + +***Please note that `LED_BUILTIN` uses inverted logic. Writing `LOW` to the pin turns the LED on, while writing `HIGH` turns it off.*** + + +## Display & Touchscreen + +The Nesso N1 features a 1.14-inch IPS color touchscreen with a resolution of 135 x 240 pixels, providing a vibrant and intuitive interface for your projects. + +- **Display Controller**: ST7789, controlled via SPI. +- **Touch Controller**: FT6336U, controlled via I2C. + +The display can be programmed using the [**M5GFX**](https://github.com/m5stack/M5GFX) library, which is a powerful graphics library that simplifies drawing text, shapes, and images. You can install it from the Arduino IDE Library Manager by searching for "M5GFX". + +### Basic Text Display + +The following example initializes the display and prints a simple text string. + +![Display Touch Coordinates](assets/display-example-1.png) + +```arduino +#include + +M5GFX display; // Create a display instance + +void setup() { + display.begin(); + display.setRotation(1); // Set to landscape mode + + // Set text properties + display.setTextDatum(MC_DATUM); // Middle-Center datum for text alignment + display.setTextColor(TFT_WHITE, TFT_BLACK); // White text, black background + display.setTextSize(2); + + // Clear the screen and draw the string + display.fillScreen(TFT_BLACK); + display.drawString("Hello, Nesso N1!", display.width() / 2, display.height() / 2); +} + +void loop() { + // Nothing to do in the loop +} +``` + +### Drawing Shapes and Colors + +The M5GFX library includes functions for drawing basic geometric shapes. You can use predefined color constants (e.g., `TFT_RED`, `TFT_GREEN`, `TFT_BLUE`) or specify 16-bit RGB565 color values. + +![Display Touch Coordinates](assets/display-example-2.png) + +```arduino +#include + +M5GFX display; + +void setup() { + display.begin(); + display.setRotation(1); + display.fillScreen(TFT_BLACK); + + // Draw a red rectangle outline + display.drawRect(10, 10, 100, 50, TFT_RED); + + // Draw a filled green circle + display.fillCircle(180, 60, 30, TFT_GREEN); + + // Draw a blue diagonal line + display.drawLine(0, 0, display.width(), display.height(), TFT_BLUE); +} + +void loop() { +} +``` + +### Handling Touch Input + +This example demonstrates how to read touch coordinates. It displays an initial message in the center of the screen. When you touch the screen, a "cursor" (a small circle) will appear at the point of contact, and the X/Y coordinates will be displayed in a fixed position at the center of the screen, updating in real-time as you move your finger. + +![Display Touch Coordinates](assets/display-example-3.png) + +```arduino +#include + +M5GFX display; + +void setup() { + display.begin(); + display.setRotation(1); // Set to landscape mode + display.fillScreen(TFT_BLACK); + + // Set text properties that will be used for all text in this sketch + display.setTextDatum(MC_DATUM); // Middle-Center datum for text alignment + display.setTextColor(TFT_WHITE); + display.setTextSize(2); + + // Display the initial message centered on the screen + display.drawString("Touch the screen", display.width() / 2, display.height() / 2); +} + +void loop() { + // Create a structure to hold touch data + lgfx::touch_point_t tp; + + // Check if the screen is being touched + if (display.getTouch(&tp)) { + // Clear the screen to update both the circle and the text + display.fillScreen(TFT_BLACK); + + // Draw a white circle at the current touch coordinates + display.fillCircle(tp.x, tp.y, 5, TFT_WHITE); + + // Create a string with the updated coordinates + String coords = "X:" + String(tp.x) + " Y:" + String(tp.y); + + // Draw the coordinates string at the FIXED center of the screen + display.drawString(coords, display.width() / 2, display.height() / 2); + } + + delay(20); // Small delay for responsiveness +} +``` + + +#### Finding More Examples + +The M5GFX library is incredibly versatile and supports advanced features like displaying images (JPG/PNG), using custom fonts, and creating complex animations with sprites. The best way to learn these techniques is by exploring the official examples provided with the library. + +You can find a comprehensive collection of examples covering all major features in the [**M5GFX GitHub repository**](https://github.com/m5stack/M5GFX/tree/master/examples/Basic). These examples can be opened directly in the Arduino IDE after you have installed the library. + + +## Connectivity + +The Nesso N1 is a versatile IoT device, equipped with a comprehensive suite of wireless protocols to suit a wide range of applications, from local device communication to long-range data transmission. + +### Wi-Fi® + +The ESP32-C6 features **Wi-Fi® 6 (802.11ax)**, offering higher efficiency, lower latency, and improved performance in dense wireless environments compared to older standards. This makes it ideal for applications requiring a reliable and fast connection to a local network or the internet. + +#### Wi-Fi® Connection Example + +This example demonstrates the most basic Wi-Fi® functionality: connecting to a network. It initializes the Wi-Fi® module, attempts to connect to a specified network, and prints the assigned IP address to the Serial Monitor once connected. + +```arduino +#include + +// Replace with your network credentials +const char* ssid = "YOUR_SSID"; +const char* password = "YOUR_PASSWORD"; + +void setup() { + Serial.begin(115200); + delay(1000); // Give serial a moment to initialize + + Serial.println("Connecting to Wi-Fi..."); + + // Start Wi-Fi connection + WiFi.begin(ssid, password); + + // Wait until the connection is established + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + + Serial.println("\nConnected!"); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); +} + +void loop() { + // Nothing to do in the loop for this basic example + delay(1000); +} +``` + +### Bluetooth® Low Energy + +The Nesso N1 supports **Bluetooth® 5.3 Low Energy (LE)**, enabling efficient, short-range communication with smartphones, sensors, and other BLE-enabled devices. + +***WARNING: The ESP32 board package includes its own library for Bluetooth® that conflicts with the standard `ArduinoBLE` library. If you have the `ArduinoBLE` library installed in your IDE, you may encounter compilation errors. To resolve this, you must uninstall the `ArduinoBLE` library from the Library Manager before compiling sketches for the Nesso N1.*** + +#### Simple BLE Server Example + +This basic example turns your Nesso N1 into a simple Bluetooth® peripheral. It creates a BLE server that advertises a specific name ("Nesso N1 BLE Server"). You can use a free BLE scanner app on your phone to verify that your Nesso N1 appears in the list of nearby devices. + +```arduino +#include +#include +#include + +// See https://www.uuidgenerator.net/ to create your own unique UUIDs +#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b" + +void setup() { + Serial.begin(115200); + Serial.println("Starting BLE Server..."); + + // 1. Initialize the BLE device and set its name + BLEDevice::init("Nesso N1 BLE Server"); + + // 2. Create the BLE Server + BLEServer *pServer = BLEDevice::createServer(); + + // 3. Create a BLE Service using the UUID + BLEService *pService = pServer->createService(SERVICE_UUID); + + // 4. Start the service. A service must be started before it can be advertised. + pService->start(); + + // 5. Get the advertising object and add the service UUID to the advertisement + BLEAdvertising *pAdvertising = BLEDevice::getAdvertising(); + pAdvertising->addServiceUUID(SERVICE_UUID); + + // 6. Start advertising + BLEDevice::startAdvertising(); + + Serial.println("Device is now advertising. Check for 'Nesso N1 BLE Server' on your phone."); +} + +void loop() { + // The main work is done in the setup; the loop can be empty for this example. + delay(2000); +} +``` + +### Zigbee® + +The Nesso N1's 802.15.4 radio allows it to act as a **Zigbee® End Device**, enabling it to join existing Zigbee® mesh networks. This is ideal for creating low-power devices like sensors or light controllers that integrate with popular smart home hubs. + +To compile this example, you must configure the following settings in the Arduino IDE: +- Navigate to **Tools > Zigbee Mode** and select **End device**. +- Navigate to **Tools > Partition Scheme** and select **Zigbee SPIFF 4MB**. + +#### Zigbee® Light Bulb Example + +This example configures the Nesso N1 to act as a simple Zigbee® On/Off light bulb. It cannot be tested with a second Nesso N1 running the same code. Instead, it is designed to be added to an existing Zigbee® network controlled by a central hub. + +```arduino +#ifndef ZIGBEE_MODE_ED +#error "Zigbee end device mode is not selected in Tools->Zigbee mode" +#endif + +#include "Zigbee.h" + +// Define the Zigbee endpoint for the light +#define ZIGBEE_LIGHT_ENDPOINT 10 + +// Create a ZigbeeLight object +ZigbeeLight zbLight = ZigbeeLight(ZIGBEE_LIGHT_ENDPOINT); + +// Callback function to control the LED +void setLED(bool value) { + // The built-in LED is active-low, so we invert the logic + digitalWrite(LED_BUILTIN, !value); +} + +void setup() { + Serial.begin(115200); + + // Initialize the built-in LED + pinMode(LED_BUILTIN, OUTPUT); + digitalWrite(LED_BUILTIN, HIGH); // Start with LED OFF + + // Set a manufacturer and model name for the Zigbee device + zbLight.setManufacturerAndModel("Arduino", "Nesso-Light"); + + // Set the callback function that gets called when a command is received + zbLight.onLightChange(setLED); + + // Add the light endpoint to the Zigbee core + Zigbee.addEndpoint(&zbLight); + + // Start the Zigbee stack + if (!Zigbee.begin()) { + Serial.println("Zigbee failed to start! Rebooting..."); + ESP.restart(); + } + + Serial.println("Zigbee started. Waiting to connect to a network..."); +} + +void loop() { + // The Zigbee stack runs in the background. + // The main loop can be used for other tasks or left empty. + delay(1000); +} +``` + +#### How to Test + +1. Upload the sketch to your Nesso N1. +2. You will need a **Zigbee® Hub/Coordinator**. Many popular smart home devices have this functionality built-in, such as the Amazon Echo (4th Gen, Plus, Studio, Show 10), Philips Hue Bridge, or Samsung SmartThings Hub. +3. Open the companion app for your hub (e.g., Amazon Alexa app, Philips Hue app). +4. Put your hub into pairing or "discover devices" mode. +5. The hub should discover a new light bulb named "Arduino Nesso-Light". +6. Once paired, you can add the device to a room and control the Nesso N1's built-in LED by toggling the light on and off in the app. + +### Matter over Wi-Fi® + +**Matter** is a smart home connectivity standard that unifies the ecosystem, allowing devices from different brands to work together seamlessly. The Nesso N1 can act as a Matter device over its Wi-Fi® connection. + +#### Matter On/Off Light Example + +This example turns your Nesso N1 into a simple On/Off light device. After commissioning it into your smart home network, you can control the Nesso N1's built-in LED from your preferred smart home app (e.g., Google Home, Apple Home). + +```arduino +#include +#include + +// --- Wi-Fi Configuration --- +const char* ssid = "YOUR_SSID"; +const char* password = "YOUR_PASSWORD"; +// --------------------------- + +// Create an On/Off Light Endpoint +MatterOnOffLight OnOffLight; + +// This callback function is executed when a Matter controller sends a command +bool setLightOnOff(bool state) { + Serial.printf("Received Matter command: Light %s\r\n", state ? "ON" : "OFF"); + + // Control the built-in LED (inverted logic: LOW is ON) + digitalWrite(LED_BUILTIN, state ? LOW : HIGH); + + return true; // Return true to confirm the command was successful +} + +void setup() { + pinMode(LED_BUILTIN, OUTPUT); + digitalWrite(LED_BUILTIN, HIGH); // Start with the LED off + Serial.begin(115200); + delay(1000); + + // Connect to Wi-Fi + Serial.printf("Connecting to %s ", ssid); + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(" Connected"); + + // Initialize the OnOffLight endpoint with an initial state of OFF + OnOffLight.begin(false); + // Attach the callback function to handle state changes + OnOffLight.onChange(setLightOnOff); + + // Start the Matter service. + Matter.begin(); + + // If the device was already commissioned, sync its LED state on boot + if (Matter.isDeviceCommissioned()) { + Serial.println("Matter Node is already commissioned. Ready for use."); + setLightOnOff(OnOffLight.getOnOff()); + } +} + +void loop() { + // This block periodically prints the pairing information until the device is commissioned + if (!Matter.isDeviceCommissioned()) { + static unsigned long lastPrintTime = 0; + if (millis() - lastPrintTime > 5000) { + Serial.println("\n----------------------------------------------------"); + Serial.println("Matter Node not commissioned. Waiting for pairing..."); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.println("----------------------------------------------------"); + lastPrintTime = millis(); + } + } + + // A small delay is needed to allow background tasks to run + delay(100); +} +``` + +#### How to Test Your Matter Device + +1. **Configure Wi-Fi® Credentials:** In the sketch, replace `"YOUR_SSID"` and `"YOUR_PASSWORD"` with your Wi-Fi® network details. +2. **Upload the Sketch:** Connect your Nesso N1 to your computer and upload the sketch using the Arduino IDE. +3. **Get the Pairing Code:** Open the Serial Monitor (**Tools > Serial Monitor**) and set the baud rate to **115200**. After connecting to Wi-Fi®, a manual pairing code will be printed every few seconds. +4. **Start Commissioning:** Open your Matter Controller app (e.g., Google Home, Apple Home) and choose to add a new device. +5. **Enter Pairing Code:** When prompted, enter the manual pairing code from the Serial Monitor to complete the setup. Your Nesso N1 and your smartphone must be on the same Wi-Fi® network. +6. **Control the Device:** Once commissioned, a new "On/Off light" device will appear in your app. You can now toggle it to control the Nesso N1's built-in green LED. + +### LoRa® + +The onboard **SX1262** module provides long-range, low-power communication capabilities, operating in the 850–960 MHz frequency range. It comes with a detachable external antenna that connects via an MMCX connector. + +![LoRa® Antenna Attached](assets/antenna-mounted.png) + +***WARNING: To avoid damage to your board, always use the LoRa® module with the antenna attached.*** + +The LoRa® module is controlled via SPI and several dedicated pins on both the ESP32-C6 and the I/O expander. + +| Pin Name | GPIO | Expander Port | Function | +| :-------------------- | :--- | :------------ | :------------------------------- | +| `MOSI` | 21 | | SPI Master Out Slave In | +| `MISO` | 22 | | SPI Master In Slave Out | +| `SCK` | 20 | | SPI Serial Clock | +| `LORA_IRQ` | 15 | | LoRa® Module Interrupt Request | +| `LORA_CS` | 23 | | LoRa® Module Chip Select (SPI) | +| `LORA_BUSY` | 19 | | LoRa® Module Busy Indicator | +| `LORA_LNA_ENABLE` | | E0.P5 | LoRa® Low-Noise Amplifier Enable | +| `LORA_ANTENNA_SWITCH` | | E0.P6 | LoRa® RF Antenna Switch Control | +| `LORA_ENABLE` | | E0.P7 | LoRa® Module Reset/Enable | + +#### LoRa® Peer-to-Peer (P2P) Examples + +The following examples demonstrate basic LoRa® peer-to-peer (P2P) communication using the [RadioLib](https://github.com/jgromes/RadioLib) library. This is the foundational step for testing your hardware and building more complex network applications. + +**LoRa® Transmitter Example** + +This example configures the Nesso N1 to send a "Hello World!" packet every five seconds. + +***WARNING: You must configure the LoRa® frequency (`LORA_FREQUENCY`) variable to match your geographical region. to a value that is legal for your geographical region. Transmitting on an unauthorized frequency can result in fines. Common frequencies are 915.0 MHz for North America/Australia, 868.0 MHz for Europe, and 433.0 MHz for Asia.*** + +```arduino +#include + +// LoRa® frequency regions +// Europe: 868.0 +// North America: 915.0 +// Australia: 915.0 +// Asia: 433.0 + +const float LORA_FREQUENCY = ; // Set the LoRa® frequency based on your region + +// Initialize the radio module, passing RADIOLIB_NC for the reset pin. +// The reset will be handled manually. +SX1262 radio = new Module(LORA_CS, LORA_IRQ, RADIOLIB_NC, LORA_BUSY); + +// Counter for transmitted packets +int packetCounter = 0; + +void setup() { + Serial.begin(115200); + + // Manually reset the LoRa module using the expander pin for reliability. + pinMode(LORA_ENABLE, OUTPUT); + digitalWrite(LORA_ENABLE, LOW); + delay(10); + digitalWrite(LORA_ENABLE, HIGH); + delay(10); + + // Initialize the LoRa® module + Serial.print(F("[SX1262] Initializing... ")); + int state = radio.begin(LORA_FREQUENCY); + if (state != RADIOLIB_ERR_NONE) { + Serial.print(F("failed, code ")); + Serial.println(state); + while (true); + } + Serial.println(F("success!")); +} + +void loop() { + Serial.print(F("[SX1262] Transmitting packet... ")); + + // Create a packet with a counter + String packet = "Hello from Nesso N1! #" + String(packetCounter++); + int state = radio.transmit(packet); + + if (state == RADIOLIB_ERR_NONE) { + Serial.println(F("success!")); + } else { + Serial.print(F("failed, code ")); + Serial.println(state); + } + + delay(5000); // Wait 5 seconds between transmissions +} +``` + +**LoRa® Receiver Example** + +This example configures a second Nesso N1 to listen for LoRa® packets and print them to the Serial Monitor. It uses a simple polling method where the main loop waits until a packet is received. + +```arduino +#include + +// LoRa® frequency regions +// Europe: 868.0 +// North America: 915.0 +// Australia: 915.0 +// Asia: 433.0 + +const float LORA_FREQUENCY = ; // Set the LoRa® frequency based on your region + +// Initialize the radio module, passing RADIOLIB_NC for the reset pin. +SX1262 radio = new Module(LORA_CS, LORA_IRQ, RADIOLIB_NC, LORA_BUSY); + +void setup() { + Serial.begin(115200); + + // Manually reset the LoRa module. + pinMode(LORA_ENABLE, OUTPUT); + digitalWrite(LORA_ENABLE, LOW); + delay(10); + digitalWrite(LORA_ENABLE, HIGH); + delay(10); + + // Initialize the LoRa® module. + Serial.print(F("[SX1262] Initializing... ")); + int state = radio.begin(LORA_FREQUENCY); + if (state != RADIOLIB_ERR_NONE) { + Serial.print(F("failed, code ")); + Serial.println(state); + while (true); + } + + // Start listening for LoRa packets. + Serial.print(F("[SX1262] Starting to listen... ")); + state = radio.startReceive(); + if (state != RADIOLIB_ERR_NONE) { + Serial.print(F("failed, code ")); + Serial.println(state); + while (true); + } + Serial.println(F("success!")); +} + +void loop() { + // Create a string to store the received message. + String str; + + // Try to receive a packet. + int state = radio.receive(str); + + if (state == RADIOLIB_ERR_NONE) { + // Packet was received successfully. + Serial.print(F("\n[SX1262] Received packet: ")); + Serial.println(str); + + // Print packet statistics. + Serial.print(F("[SX1262] RSSI: ")); + Serial.print(radio.getRSSI()); + Serial.print(F(" dBm, SNR: ")); + Serial.print(radio.getSNR()); + Serial.println(F(" dB")); + + } else if (state == RADIOLIB_ERR_CRC_MISMATCH) { + Serial.println(F("[SX1262] CRC error!")); + } else if (state != RADIOLIB_ERR_RX_TIMEOUT) { + // Some other error occurred. Timeout is expected and ignored. + Serial.print(F("[SX1262] Failed, code ")); + Serial.println(state); + } +} +``` + +***Please note: because the `LORA_ENABLE` pin is on an I/O expander, it cannot be passed directly to the RadioLib library constructor. The library must be initialized with the reset pin set to `RADIOLIB_NC` and it is best practice to perform a manual reset in setup.*** + +#### Configuring for Public LoRa® Networks + +The onboard SX1262 module can be configured to communicate on public LoRa® networks such as [**The Things Network (TTN)**](https://www.thethingsnetwork.org/) or [**Helium**](https://helium.com/). These networks operate on specific frequencies and use defined radio parameters based on regional plans (e.g., `EU868`, `US915`, `AU915`). To ensure your device can be heard by gateways in your area, you must first configure your LoRa® radio to match your region's frequency. + +## Onboard Sensors & Peripherals + +### 6-Axis IMU + +The **BMI270** is a high-performance 6-axis Inertial Measurement Unit (IMU) that combines a 3-axis accelerometer and a 3-axis gyroscope. It connects to the ESP32-C6 via the I2C bus (`SCL` on GPIO8, `SDA` on GPIO10) and provides an interrupt signal on `SYS_IRQ` (GPIO3). It is ideal for motion tracking, gesture recognition, and orientation sensing. + +Here is a minimal example using the [Arduino_BMI270_BMM150](https://github.com/arduino-libraries/arduino_bmi270_bmm150) library: + +```arduino +#include + +void setup() { + Serial.begin(115200); + while (!Serial); // Wait for serial port to connect + + Serial.println("Initializing IMU..."); + if (!IMU.begin()) { + Serial.println("Failed to initialize IMU!"); + while (1); + } + + Serial.print("Accel Rate: "); + Serial.print(IMU.accelerationSampleRate()); + Serial.println(" Hz"); + + Serial.print("Gyro Rate: "); + Serial.print(IMU.gyroscopeSampleRate()); + Serial.println(" Hz"); + + Serial.println("X\tY\tZ\t\t| X\tY\tZ"); + Serial.println("Accel (g)\t\t| Gyro (°/s)"); +} + +void loop() { + float ax, ay, az; + float gx, gy, gz; + + if (IMU.accelerationAvailable() && IMU.gyroscopeAvailable()) { + IMU.readAcceleration(ax, ay, az); + IMU.readGyroscope(gx, gy, gz); + + Serial.print("aX:"); + Serial.print(ax, 2); + Serial.print(" aY:"); + Serial.print(ay, 2); + Serial.print(" aZ:"); + Serial.print(az, 2); + Serial.print("\t gX:"); + Serial.print(gx, 2); + Serial.print(" gY:"); + Serial.print(gy, 2); + Serial.print(" gZ:"); + Serial.println(gz, 2); + } + + delay(100); +} +``` + +#### Visualizing the Output + +After uploading the sketch, open the **Serial Plotter** (**Tools > Serial Plotter**) in the Arduino IDE. As you move the Nesso N1, you will see the sensor data graphed in real-time. + +By using the checkboxes in the Serial Plotter window, you can isolate different data streams. The animation below shows the accelerometer data (`aX`, `aY`, `aZ`) as the device is tilted. + +![Accelerometer Data in Serial Plotter](assets/bmi_accel.gif) + +Similarly, you can deselect the accelerometer variables and view only the gyroscope data (`gX`, `gY`, `gZ`) to visualize the rate of rotation, as shown here. + +![Gyroscope Data in Serial Plotter](assets/bmi_gyro.gif) + + +### Buzzer + +A passive buzzer connected to `BEEP_PIN` (GPIO11) provides audible feedback. You can generate simple tones using the standard `tone()` function. + +```arduino +void setup() { + // No setup needed for tone() +} + +void loop() { + // Play a 1 kHz tone for 500 ms + tone(BEEP_PIN, 1000, 500); + delay(2000); +} +``` + +### Infrared (IR) Transmitter + +An onboard IR LED connected to `IR_TX_PIN` (GPIO9) allows the Nesso N1 to function as a remote control for various electronic devices. + +Here is an example using the [IRremote](https://github.com/Arduino-IRremote/Arduino-IRremote) library to send a NEC command: + +```arduino +#include + +void setup() { + Serial.begin(115200); + IrSender.begin(IR_TX_PIN); +} + +void loop() { + Serial.println("Sending IR signal..."); + // Send a NEC command: Address 0x01, Command 0x04 + IrSender.sendNEC(0x01, 0x04, 1); + delay(2000); +} +``` + +***Please note: There is a known hardware timer conflict between the `tone()` function and the IRremote library. To use both features in the same sketch, you must fully reset the pin and re-initialize the IR sender before each transmission. First, set the pin mode to INPUT to release it from the timer, then call `IrSender.begin()` to reconfigure it for IR.*** + +## Expansion Ports + +### Voltage Compatibility Considerations + +Before connecting any external components to your Nesso N1, it is important to understand its voltage characteristics to prevent damage to your sensors and modules: + +**The Nesso N1 operates at 3.3 VDC**, which means: + +- All digital I/O pins use 3.3 VDC logic levels (HIGH = 3.3 VDC, LOW = 0 VDC). +- Analog inputs can safely accept 0 to 3.3 VDC. +- Communication pins (I2C, SPI, UART) operate at 3.3 VDC logic levels. + +**For 5 VDC components**, you must add **external level shifters** for digital communication pins. + +Always check your component's datasheet for voltage specifications before connecting. When in doubt, use a multimeter to verify voltage levels or add protective level shifting. + +### Qwiic Connector + +The Nesso N1 features an onboard Qwiic connector that provides a simple, tool-free solution for connecting I2C devices. The Qwiic ecosystem, developed by SparkFun, has become an industry standard for rapid prototyping, allowing you to connect sensors, displays, and other peripherals without soldering or complex wiring. + +![Qwiic Connector](assets/qwiic-connector.png) + +The Qwiic system’s key advantages include: + +- **Plug-and-play connectivity**: No breadboards, jumper wires, or soldering required. +- **Polarized connectors**: Prevents accidental reverse connections. +- **Daisy-chain capability**: Connect multiple devices in series. +- **Standard pinout**: Compatible across all Qwiic ecosystem devices. + +***The Qwiic connector on the Nesso N1 is connected to the primary I2C bus, which uses the standard `Wire` object. The connector provides a 3.3 V supply, making it ideal for modern sensors.*** + +The Qwiic connector allows you to interface with our Modulino family for developing soldering-free projects. + +![Modulino nodes](assets/modulino.png) + +You can check our [Modulino family](https://store.arduino.cc/collections/modulino) where you will find a variety of **sensors** and **actuators** to expand your projects. + + +### Grove Connector + +The Nesso N1 also includes one standard **Grove** connector. It provides a 5 V interface with two digital I/O pins (`GROVE_IO_0` on GPIO5, `GROVE_IO_1` on GPIO4), making it compatible with the extensive ecosystem of [Grove modules](https://search.arduino.cc/search?q=grove%20module&tab=store), including those from [M5Stack](https://shop.m5stack.com/pages/search-results-page?q=grove&page=1&rb_tags=ACTUATORS%7CSENSOR) and [Arduino Sensor Kit](https://store.arduino.cc/products/sensor-kit-base). + +![Grove Connector](assets/grove-connector.png) + +### 8-Pin Expansion Port + +An 8-pin female header provides access to additional I/O and power pins. It is designed to be fully compatible with the **M5StickC HAT** series of expansion boards, allowing you to easily add functionality with modules for everything from sensors to communication. You can explore the range of compatible HATs on the [M5Stack store](https://shop.m5stack.com/collections/for-stick). + + +![8 pins Expansion Port](assets/expansion-port.png) + +| # | Pin Name | GPIO | Function | +| :--- | :------------ | :--- | :---------------------------- | +| 1 | `GND` | - | Ground | +| 2 | `+5V OUT` | - | 5 V Output | +| 3 | `D1` | 7 | Digital PWM I/O | +| 4 | `D3` | 6 | Digital PWM I/O | +| 5 | `D2` | 2 | Digital PWM I/O | +| 6 | `BATTERY OUT` | - | Direct Battery Voltage Output | +| 7 | `+3V3 OUT` | - | 3.3 V Output | +| 8 | `+5V IN` | - | 5 V Input (VIN) | + +***The `BATTERY OUT` pin provides the direct, unregulated voltage from the LiPo battery. Be cautious when using this pin, as the voltage will vary depending on the charge level.*** + +## Support + +If you encounter any issues or have questions while working with the Arduino Nesso N1, we provide various support resources to help you find answers and solutions. + +### Help Center + +Explore our [Help Center](https://support.arduino.cc/hc/en-us), which offers a comprehensive collection of articles and guides for the Nesso N1. The Arduino Help Center is designed to provide in-depth technical assistance and help you make the most of your device. + +- [Nesso N1 Help Center page](https://support.arduino.cc/hc/en-us/sections/) + +### Forum + +Join our community forum to connect with other Nesso N1 users, share your experiences, and ask questions. The forum is an excellent place to learn from others, discuss issues, and discover new ideas and projects related to the Nesso N1. + +- [Nesso N1 category in the Arduino Forum](https://forum.arduino.cc/c/official-hardware/kits/nesso-n1/225) + +### Contact Us + +Please get in touch with our support team if you need personalized assistance or have questions not covered by the help and support resources described before. We are happy to help you with any issues or inquiries about the Nesso N1. + +- [Contact us page](https://www.arduino.cc/en/contact-us/) + +