Nachdem der Arduino UNO Q schon ein echtes Highlight war und gezeigt hat, wie modern Microcontroller heute sein können, legt Arduino nun mit dem Nesso N1 noch einmal deutlich nach. Zum ersten Mal präsentiert Arduino einen kompakten Mikrocontroller im vollwertigen Gehäuse, der nicht nur schick aussieht, sondern auch technisch beeindruckt.
Der Nesso N1 kombiniert ein robustes, alltagstaugliches Case, moderne Anschlüsse und eine Leistung, die wir bisher nur von den größeren Arduino-Boards kannten. Damit rückt Arduino erstmals in einen Bereich vor, der sonst von ESP32-Modellen dominiert wurde – nur eben mit echter Arduino-Qualität, Langzeitunterstützung und einem professionellen Ökosystem.
Egal ob IoT-Projekte, Automationen, Sensorik oder smarte Geräte: Der Arduino Nesso N1 bringt genug Power, um anspruchsvolle Aufgaben zuverlässig zu meistern – und das alles im Hosentaschenformat.





Hinweis in eigener Sache: Den Arduino Nesso N1 habe ich mir komplett selbst gekauft. Dieses Review ist also nicht gesponsert und spiegelt meine persönliche, unabhängige Meinung wider.
Inhaltsverzeichnis
- Technische Daten des Arduino Nesso N1
- Programmierung & erster Start
- Fazit: Für wen lohnt sich der Arduino Nesso N1?
- Häufige Fragen zum Arduino Nesso N1
Technische Daten des Arduino Nesso N1
Bevor wir in die Praxis einsteigen, lohnt sich ein Blick auf die technischen Daten des Arduino Nesso N1. Auf dem Papier zeigt sich bereits, dass Arduino hier einiges an moderner Hardware in ein sehr kompaktes Gehäuse gepackt hat. Besonders spannend sind die vielfältigen Funkstandards und die Kombination aus Display, Sensoren und Erweiterungsschnittstellen – ideal für IoT- und Portable-Projekte.
| Kategorie | Details |
|---|---|
| Mikrocontroller | ESP32-C6 (32-Bit RISC-V, bis 160 MHz) |
| Arbeitsspeicher | 512 kB SRAM |
| Flash-Speicher | 16 MB externes NOR-Flash |
| Display | 1,14″ IPS Touch-LCD, 135×240 px, 262k Farben |
| Funktechnologien | WiFi 6 (2,4 GHz), Bluetooth 5.3, Thread/Zigbee (802.15.4), LoRa (850–960 MHz, SX1262) |
| Sensorik | 6-Achsen IMU (Beschleunigung + Gyroskop) |
| Audio/IR | Buzzer, IR-Transmitter |
| Anschlüsse | USB-C, Grove-Port, Qwiic-Schnittstelle, M5StickC-HAT-Header |
| Bedienelemente | 2 programmierbare Tasten, Power/Boot-Button, Status-LED |
| Stromversorgung | 5 V über USB-C, integrierter LiPo-Akku (ca. 250 mAh) |
| Abmessungen | 48 × 24 × 14 mm (ohne Antenne), 48 × 24 × 21,1 mm (mit Antenne) |
| Besonderheiten | Kompaktes Gehäuse, LoRa integriert, Touch-Display, Arduino-Ökosystem |
Arduino Nesso N1 im Detail
Schauen wir uns den Arduino Nesso N1 einmal genauer an. Direkt fällt auf, dass hier einige praktische Schnittstellen verbaut wurden – darunter Grove und Qwiic – sowie zwei frei programmierbare Taster. Insgesamt wirkt alles kompakt, funktional und durchdacht aufgebaut.
Im offiziellen PDF-Dokument zum Arduino Nesso N1 findest du noch weitere Details!
Programmierung & erster Start
Nach dem ersten Blick auf das Gerät wird es Zeit, den Arduino Nesso N1 in Betrieb zu nehmen. Die gute Nachricht: Die Einrichtung funktioniert – typisch Arduino – erstaunlich einfach. Bereits nach wenigen Minuten lässt sich das Board in der Arduino IDE ansprechen und erste Programme können hochgeladen werden. In diesem Abschnitt zeige ich dir Schritt für Schritt, wie der Einstieg funktioniert und was du beim Nesso N1 beachten musst.
Sobald du den kleinen Mikrocontroller mit dem PC verbunden hast, wird dieser als Serielles USB-Gerät erkannt.
Den Arduino Nesso N1 kannst du in diversen Entwicklungsumgebungen programmieren, zbsp. auch in der klassischen Arduino IDE.
Damit das Board ausgewählt werden kann, muss der Boardtreiber von Espressif Systems mindestens auf die Version 3.3.4 aktualisiert werden.
Nach dem Update kannst du nun über Werkzeuge > Board: xyz > esp32 > Arduino Nesso N1 auswählen.
Hinweis: Probleme bei unzureichender USB-Stromversorgung
Während meiner Tests ist mir ein Punkt aufgefallen, den man unbedingt erwähnen sollte:
Wird der Arduino Nesso N1 an einen USB-Port angeschlossen, der nicht genügend Leistung bereitstellt – etwa bei einer passiven Dockingstation oder sehr alten USB-Ports unterhalb von USB 2.0 –, kann es zu unerwarteten Fehlermeldungen kommen.
In meinem Fall erschien beim Upload der Sketches folgende Meldung:
„A serial exception error occurred: ClearCommError failed (PermissionError(13, ‚Das Gerät erkennt den Befehl nicht.‘, None, 22))“
Nach etwas Fehlersuche stellte sich heraus, dass der Nesso N1 schlicht nicht genug Strom bekam, um korrekt zu initialisieren. Die Lösung war überraschend einfach:
- ein aktiver USB-Hub, oder
- ein USB-Typ C Port vom PC
danach funktionierte der Upload sofort wieder problemlos.
Dieser kleine Hinweis kann viel Frust ersparen – vor allem, wenn man den Fehler zuerst bei der IDE oder den Treibern vermutet.
„Hallo Welt!“ auf dem Nesso N1
Starten wir mit dem Klassiker unter allen ersten Projekten: „Hallo Welt!“.
Der Arduino Nesso N1 verfügt über ein kompaktes 1,4″ IPS-Farbdisplay, das sich ideal dafür eignet, sofort sichtbare Ergebnisse zu erzeugen. Statt wie üblich eine LED blinken zu lassen, geben wir unseren Text direkt auf dem integrierten Display aus.
Das ist ein perfekter Einstieg, denn du bekommst sofort ein Gefühl dafür, wie schnell das Display reagiert, wie scharf die Schrift wirkt und wie einfach die ersten Schritte beim Programmieren des Boards sind. Schon mit wenigen Zeilen Code lässt sich der erste Text anzeigen – und genau das schauen wir uns jetzt an.
Damit wir das Display überhaupt ansteuern können, benötigen wir zuerst eine passende Bibliothek. Im offiziellen Tutorialbereich von Arduino zum Nesso N1 findet sich ein Beispiel, das auf M5GFX basiert – die gleiche Grafikbibliothek, die auch bei vielen M5Stack-Geräten zum Einsatz kommt.
Spätestens an dieser Stelle wird deutlich, dass hier sehr viel M5Stack-Technik unter der Haube steckt. Das erklärt auch, warum sich der Nesso N1 in der Bedienung und Struktur so vertraut anfühlt, wenn man bereits mit einem M5StickC oder ähnlichen M5-Geräten gearbeitet hat.
Der große Vorteil: Viele Funktionen des Nesso N1 sind bereits im Boardtreiber vordefiniert. Dadurch bleibt der eigentliche Sketch extrem schlank, weil wir kaum noch Hardware-Initialisierung selbst übernehmen müssen. Dieses Prinzip kennen wir bereits von den Arduino Modulinos, die ebenfalls nur ihren spezifischen Treiber benötigen – und sofort einsatzbereit sind.
Gerade die I2C-Kommunikation spielt hier eine entscheidende Rolle: Die entsprechenden Pins und Adressen sind fest zugeordnet und werden automatisch korrekt angesprochen. Das macht die Programmierung besonders einsteigerfreundlich und reduziert typische Fehlerquellen.
//einbinden der Bibliothek zum ansteuern des Displays am Arduino Nesso N1
//(ohne Touch Funktion!)
#include <M5GFX.h>
//Objektinstanz generieren
M5GFX display;
void setup() {
//starten der Kommunikation mit dem Display
display.begin();
//drehen des Displays - siehe https://docs.m5stack.com/en/arduino/m5gfx/m5gfx_sprite#setrotation
//0-3 im Uhrzeigersinn, 4-7 gegen den Uhrzeigersinn
display.setRotation(1);
//Ausrichtung des Textes festlegen - siehe https://docs.m5stack.com/en/arduino/m5gfx/m5gfx_appendix#enum-textdatum_t
display.setTextDatum(middle_center);
//setzen der Textfarbe Weiß und Hintergrundfarbe Schwarz - weitere Konstanten für Farbe siehe enum.hpp
//klick mit Strg+ Maustaste Links auf TFT_WHITE
display.setTextColor(TFT_WHITE, TFT_BLACK);
//größe der Schrift
display.setTextSize(2);
//Display löschen und mit der Farbe Schwarz füllen
display.clearDisplay(TFT_BLACK)
//schreiben des Textes "Hallo Welt!" in der Mitte des Displays
display.drawString("Hallo Welt!", display.width() / 2, display.height() / 2);
}
void loop() {
// bleibt leer
}
Im Code finden wir eine Stelle, die auf den ersten Blick etwas verwirrend wirken kann:
Zum einen legen wir mit display.setTextDatum() die Ausrichtung des Textes fest, und zum anderen geben wir beim Zeichnen des Textes dennoch eine Koordinate an:
display.drawString("Hallo Welt!", display.width() / 2, display.height() / 2);
Auflösung: setTextDatum() bestimmt ausschließlich, wie sich der Text innerhalb seines eigenen Textbereichs ausrichtet – also z. B. linksbündig, rechtsbündig oder zentriert.
Die Koordinaten bei drawString() brauchen wir trotzdem, denn sie geben an, wo auf dem Display dieser Textblock positioniert werden soll.
Mini-Projekt: Digitale Wasserwaage mit dem IMU-Sensor
Eine der spannendsten Funktionen des Arduino Nesso N1 ist die integrierte 6-Achsen IMU. Damit lassen sich Bewegungen, Neigungen und Ausrichtungen präzise erfassen. Als kleines Praxisbeispiel habe ich eine digitale Wasserwaage programmiert.
Die Idee ist simpel:
Ein kleiner Kreis wird auf dem Display dargestellt und bewegt sich nach links oder rechts, je nachdem, wie stark das Gerät geneigt wird. Zusätzlich wird der aktuelle Winkel in Grad angezeigt.
Das Projekt ist super kompakt, zeigt aber sofort, wie präzise der IMU-Sensor arbeitet – und wie einfach sich eigene kleine Tools auf dem Nesso N1 umsetzen lassen.
Für unser kleines Wasserwaagen-Projekt benötigen wir zusätzlich zur Display-Bibliothek noch eine passende Library für den integrierten 6-Achsen-Lagesensor (IMU). Auch diese lässt sich bequem über den Bibliotheksverwalter der Arduino IDE installieren. Suche dort einfach nach Arduino_BMI270_BMM150 und klicke auf „Installieren“ – schon steht der Sensor für unser Projekt zur Verfügung.
/*******************************************************
* Projekt: Digitale Wasserwaage auf dem Arduino Nesso N1
* Beschreibung:
* Dieses Beispiel nutzt die eingebaute IMU (BMI270),
* um die Neigung des Geräts zu ermitteln und eine
* digitale Wasserwaage mit Libelle und Winkelanzeige
* auf dem 1,4" IPS-Display darzustellen.
*
* Autor: Stefan Draeger
* Webseite: https://draeger-it.blog
* Blogartikel: https://draeger-it.blog/arduino-nesso-n1-review/
*
* Hinweise:
* - Für dieses Beispiel müssen die Bibliotheken
* "Arduino_BMI270_BMM150" und "M5GFX" installiert sein.
* - Der Code mittelt 20 Messwerte, um das Rauschen des
* Sensors zu reduzieren und eine stabile Anzeige zu erzeugen.
*******************************************************/
#include <Arduino_BMI270_BMM150.h> // IMU (6-Achsen Lagesensor)
#include <M5GFX.h> // Display-Bibliothek für das IPS-Panel
M5GFX display; // Displayobjekt erzeugen
float lastAngle = NAN; // zuletzt angezeigter Winkel (zum Vergleich)
/**
* Setup: Initialisierung von Serieller Ausgabe, IMU und Display
*/
void setup() {
Serial.begin(115200);
while (!Serial)
; // Warten, bis die serielle Verbindung steht
Serial.println("Initializing IMU...");
if (!IMU.begin()) {
Serial.println("Failed to initialize IMU!");
while (1)
; // Abbruch, wenn die IMU nicht gestartet werden kann
}
display.begin(); // Display starten
display.setRotation(1); // Displayausrichtung (1 = Querformat)
display.fillScreen(TFT_BLACK); // Startbildschirm löschen
}
/**
* Funktion zum Zeichnen der Winkelanzeige oben am Display
*/
void drawAngle(float angle) {
display.setTextDatum(baseline_left);
display.setTextColor(TFT_WHITE, TFT_BLACK);
display.setTextSize(2);
// Text in einen Buffer schreiben
char buf[32];
snprintf(buf, sizeof(buf), "Winkel: %.1f Grad", angle);
// Textbereich löschen
display.fillRect(0, 0, display.width(), 30, TFT_BLACK);
// Text ausgeben
display.drawString(buf, 10, 20);
}
/**
* Funktion zum Zeichnen der "Libelle" (Blase)
* Die Blase bewegt sich basierend auf dem gemessenen Winkel
*/
void drawSpiritLevel(float angle) {
const float maxAngle = 30.0; // maximaler Darstellbereich der Blase
// Winkel auf den Darstellbereich begrenzen
if (angle > maxAngle) angle = maxAngle;
if (angle < -maxAngle) angle = -maxAngle;
int centerX = display.width() / 2;
int centerY = display.height() / 2 + 20;
int bubbleRadius = 10;
// maximale Verschiebung abhängig vom Display
int maxOffsetX = (display.width() / 2) - bubbleRadius - 5;
// Umrechnung von Winkel auf Pixel-Position
int offsetX = (int)((angle / maxAngle) * maxOffsetX);
int bubbleX = centerX + offsetX;
// Bereich löschen, in dem die Blase angezeigt wird
display.fillRect(0, centerY - 20, display.width(), 40, TFT_BLACK);
// Referenzlinie zeichnen (horizontale Linie)
display.drawLine(10, centerY, display.width() - 10, centerY, TFT_DARKGREY);
// Blase zeichnen
display.fillCircle(bubbleX, centerY, bubbleRadius, TFT_GREENYELLOW);
display.drawCircle(bubbleX, centerY, bubbleRadius, TFT_WHITE);
}
/**
* Hauptprogramm (Loop)
* - 20 IMU-Messungen durchführen
* - Mittelwert bilden (Rauschen reduzieren)
* - Winkel berechnen
* - Anzeige nur aktualisieren, wenn sich der Winkel sichtbar geändert hat
*/
void loop() {
const int samples = 20; // Anzahl der IMU-Messungen
float sumAx = 0.0, sumAz = 0.0;
int validSamples = 0;
// 20 Messungen sammeln
for (int i = 0; i < samples; i++) {
if (IMU.accelerationAvailable()) {
float ax, ay, az;
IMU.readAcceleration(ax, ay, az);
sumAx += ax;
sumAz += az;
validSamples++;
}
delay(5); // kurze Pause zwischen den Messungen
}
if (validSamples == 0) {
// keine gültigen Messungen – nichts tun
return;
}
// Mittelwert bilden
float avgAx = sumAx / validSamples;
float avgAz = sumAz / validSamples;
// Neigungswinkel berechnen
float angle = atan2(avgAx, avgAz) * 180.0 / PI;
// Anzeige nur aktualisieren, wenn sich der Winkel ausreichend geändert hat
const float threshold = 0.5; // Empfindlichkeit in Grad
if (isnan(lastAngle) || fabs(angle - lastAngle) >= threshold) {
Serial.print("avgAx: ");
Serial.print(avgAx, 3);
Serial.print(" avgAz: ");
Serial.print(avgAz, 3);
Serial.print(" Winkel: ");
Serial.println(angle, 2);
drawAngle(angle); // Text aktualisieren
drawSpiritLevel(angle); // Libelle aktualisieren
lastAngle = angle; // letzten Wert speichern
}
delay(50); // kleine Pause für eine ruhige Anzeige
}
Fazit: Für wen lohnt sich der Arduino Nesso N1?
Der Arduino Nesso N1 ist ein spannender Schritt in eine neue Richtung: weg von nackten Dev-Boards, hin zu einem kompakten, alltagstauglichen Mikrocontroller im Gehäuse – mit Display, Akku, Tastern, IMU, LoRa, Grove und Qwiic direkt an Bord.
Was mir besonders gut gefallen hat:
- das wertige Gehäuse und die kompakte Bauform
- das integrierte IPS-Display mit Touch
- die 6-Achsen IMU, die sich perfekt für kleine Tools wie die digitale Wasserwaage eignet
- die Kombination aus WiFi 6, Bluetooth, Thread und LoRa
- die enge Integration in die Arduino-IDE inklusive vordefinierter Funktionen über den Boardtreiber
Auf der anderen Seite steht ganz klar der Preis:
Wer bereits einen M5StickC oder andere M5Stack-Geräte besitzt, bekommt technisch vieles, was sehr vertraut wirkt. Der Nesso N1 hebt sich vor allem durch LoRa, die Qwiic-Schnittstelle und die direkte Arduino-Integration ab – aber er ist eben kein Schnäppchen.
Mein Fazit:
- Für Einsteiger, die ein kompaktes, aber leistungsstarkes Board suchen und sich im Arduino-Ökosystem wohlfühlen, ist der Nesso N1 ein sehr attraktiver Einstieg in moderne IoT-Hardware.
- Für Maker und Fortgeschrittene, die bereits mit M5Stack & Co. arbeiten, lohnt sich der Blick vor allem dann, wenn LoRa, Arduino-Support und die Kombination aus Grove + Qwiic spannend sind.
- Wer einfach nur „irgendein ESP32-Board“ sucht, findet deutlich günstigere Alternativen – aber nicht in dieser Kombination aus Hardware, Gehäuse und Arduino-Unterstützung.
Unterm Strich ist der Arduino Nesso N1 für mich ein cooles, kompaktes Power-Tool, das sich besonders für kleine, interaktive Projekte und portable Tools anbietet.
Häufige Fragen zum Arduino Nesso N1
Ist der Arduino Nesso N1 ein ESP32-Board?
Ja. Im Inneren arbeitet ein ESP32-C6 mit RISC-V-Core. Damit bringt der Nesso N1 moderne Funkstandards wie WiFi 6, Bluetooth 5.3 und 802.15.4 (Thread/Zigbee) mit.
Hat das Display wirklich Touch-Funktion?
Ja, der Nesso N1 verfügt über ein 1,14″ IPS-Farbdisplay mit Touch-Unterstützung. Im Beitrag nutze ich für den Einstieg zunächst nur die Textausgabe, aber das Display lässt sich auch für Touch-Interaktionen verwenden.
Kann ich den Arduino Nesso N1 mit der klassischen Arduino IDE programmieren?
Ja. Im Beitrag zeige ich, wie du über den ESP32-Boardverwalter (ab Version 3.3.4) den Nesso N1 in der Arduino IDE auswählst und dann direkt Sketches hochlädst.
Welche Bibliotheken brauche ich für Display und IMU?
Für das Display kommt die M5GFX-Bibliothek zum Einsatz, die du über den Bibliotheksverwalter installieren kannst.
Für die IMU verwendest du Arduino_BMI270_BMM150, die ebenfalls direkt über die Arduino IDE verfügbar ist.
Warum bekomme ich manchmal eine „serial exception error“-Meldung beim Upload?
Wenn der Nesso N1 an einem USB-Port hängt, der nicht genug Strom liefert (z. B. passive Dockingstation oder sehr alte Ports), kann es zu Fehlern wie
„ClearCommError failed (PermissionError(13, ‚Das Gerät erkennt den Befehl nicht.‘))“ kommen.
Ein aktiver USB-Hub oder ein direkt am PC angeschlossener USB-C-Port hat dieses Problem in meinem Test zuverlässig gelöst.
Ist der Arduino Nesso N1 für absolute Anfänger geeignet?
Ja, mit einem kleinen Zusatz:
Wer bereits einmal einen Arduino UNO oder ein einfaches ESP32-Board programmiert hat, kommt sehr schnell zurecht. Komplett ohne Vorerfahrung ist der Nesso N1 eher „Level 2“ – machbar, aber man sollte keine Angst vor Bibliotheken und Boardtreibern haben.
Letzte Aktualisierung am: 25. November 2025







