Grove ist Seeed Studios Plug-and-Play-System: ein vierpoliger Stecker, ein Kabel und ein paar hundert Module, die sich diesen Anschluss teilen. Ein Taster, ein Temperatursensor, ein Relais, ein OLED, eine Wärmebildkamera und ein LoRa-Funkmodul stecken alle in derselben Buchse — deshalb basieren so viele erste Projekte darauf.
Seit September 2026 laufen 222 der 279 Module aus Seeeds Grove-Katalog in Velxio. Jedes hat sein eigenes Bauteil auf der Arbeitsfläche, gezeichnet nach dem Produktfoto, eine Datenblatt-Karte mit dem Link zu Seeeds Shop und ein Galerie-Beispiel, das aus Seeeds eigenem Wiki übernommen und mit einem XIAO-Board verdrahtet wurde. Dieser Artikel führt durch das, was das in der Praxis bedeutet.
Wie ein Grove-Modul auf der Arbeitsfläche aussieht

Jedes Modul ist nach Seeeds Produktfoto gezeichnet, mit dem Stecker, den
Bauteilen und dem Bestückungsdruck an der Stelle, an der sie auf der Platine
sitzen, und es trägt Seeeds exakten Produktnamen. Die Pins sind die vier
Leitungen des Steckers, benannt wie der Bestückungsdruck sie benennt, sodass
ein Kabel von SIG oder SDA dort landet, wo es auch auf dem Labortisch
landen würde.
Das bekommst du mit jedem Bauteil:
- Eine Datenblatt-Karte. Klicke auf das Bauteil, und der Dialog zeigt, was das Modul ist, welchen Chip es trägt, seine I2C-Adresse, sofern es eine hat, und einen Button Produktseite zu Seeeds Shop.
- Die Bedienelemente, die ein echtes Modul bräuchte. Ein analoger Sensor bekommt einen Schieberegler für die Größe, die er misst. Ein Taster ist anklickbar. Ein Relais klickt und leuchtet seine LED. Ein Display malt, was der Sketch sendet. Ein Funkmodul bekommt ein Panel, das die andere Seite der Verbindung spielt.
- Ein Galerie-Beispiel. Jedes Modul wird mit einem Sketch ausgeliefert, der aus Seeeds Wiki übernommen und mit einem XIAO ESP32-C6 verdrahtet wurde, wobei die benötigten Bibliotheken bereits deklariert sind. Öffne ihn, drücke Run, und das Modul antwortet.
Um sie zu finden, öffne die Bauteilauswahl und tippe “Grove” ein, oder öffne die Beispielgalerie und filtere nach Seeed Studio.
Probiere drei davon aus
Die Schritte sind für jedes Beispiel dieselben:
- Öffne den Beispiel-Link. Du brauchst kein Konto.
- Drücke die Play-Taste in der Symbolleiste. Der Sketch wird auf Velxios Servern kompiliert, und das Board startet in deinem Browser.
- Bewege die Schieberegler des Moduls, klicke seine Taster oder schau ihm beim Zeichnen zu.
Eine Wärmebildkamera. Das MLX90640 ist ein 32 mal 24 großes Array aus Thermosäulen. Der Sketch liest das Kalibrierungs-EEPROM des Sensors aus, liest ein Bild aus und führt Melexis’ eigene radiometrische Berechnung durch, und gibt das Bild als ASCII-Kunst im seriellen Monitor aus. Das Bauteil zeigt dasselbe Bild als Heatmap; der Schieberegler legt fest, wo der heiße Punkt liegt und wie warm er ist.

Zwei Motoren an einem Treiber. Der I2C Motor Driver trägt einen TB6612FNG hinter einem kleinen STM32, der ein Kommandoprotokoll spricht. Das Beispiel betreibt zwei Gleichstrommotoren vorwärts, rückwärts und mit Bremse; die Rotoren auf der Arbeitsfläche drehen sich mit der befohlenen Drehzahl und Richtung, und die Bremse blockiert sie.

Ein OLED. Das 0,96” SSD1315 ist das Display, das die meisten Grove-Kits mitliefern. Das Beispiel ist Seeeds u8g2-Hallo-Welt: eine Textzeile und ein Zähler, über I2C bei 0x3C gesendet, gemalt von einem Modell des Controllers.

Wie ein Modul emuliert wird
Nichts hier wird auf Bibliotheksebene vorgetäuscht. Der Sketch wird von einem
echten arduino-cli für das von dir gewählte Board kompiliert, die Firmware
läuft auf Velxios Emulator für diesen SoC, und das Modul antwortet auf der
Leitung so, wie es das Bauteil tun würde. Was sich von Modul zu Modul
unterscheidet, ist die Frage, was “die Leitung” ist:
- Analoge Module (32 davon: Licht, Schall, Feuchtigkeit, Gas, Strom,
Temperatur) legen eine Spannung an
SIGan, die vom Schieberegler festgelegt wird. Der Sketch liest sie mitanalogRead()über das ADC-Modell des Boards. - Digitale Ein- und Ausgänge sind ein Pegel auf
SIG: Taster, Schalter, PIR- und Touch-Sensoren auf der einen Seite, LEDs, Relais und Summer auf der anderen. - Puls- und Timing-Module wie der Ultrasonic Ranger und die DHT-Familie verwenden ein Leitungsmodell: Die Flanken werden auf der eigenen Uhr der emulierten CPU geplant, denn ein DHT22-Frame dauert Mikrosekunden und ein Browser-Frame sechzehn Millisekunden.
- NeoPixel- und PWM-Module dekodieren die Wellenform, die der Sketch erzeugt.
- I2C-, UART- und SPI-Module sind die größte Gruppe: 84 Module auf 78 Gerätemodellen, geschrieben in C und zu WebAssembly kompiliert. Jedes Modell beantwortet die Registerlesevorgänge und Kommandos, die der Treiber des Herstellers sendet, und derselbe C-Quellcode läuft sowohl im Browser als auch in Velxios Cloud-Emulatoren für die Boards, die dort laufen.
Die Gerätemodelle sind kurz, weil die meisten Bauteile einer von wenigen Formen folgen: eine Registerkarte mit einem sich selbst inkrementierenden Zeiger, ein Sensirion-artiges Kommandogerät mit CRC-8 auf jedem Wort, oder ein flaches Frame, das der Sensor streamt. Das SHT31-Modell ist der gesamte Temperatur- und Feuchtigkeitssensor von Seeed, abzüglich der Kommentare:
static uint32_t handle(sn_dev* d, uint16_t cmd, const uint16_t* args, uint32_t nargs, uint16_t* w) {
(void)d; (void)args; (void)nargs;
switch (cmd) {
case 0x306D: heater = true; return 0;
case 0x3066: heater = false; return 0;
case 0x30A2: heater = false; return 0; /* soft reset */
case 0x3093: return 0; /* break */
case 0x3041: return 0; /* clear status */
case 0xF32D: { /* status register */
uint16_t st = heater ? 0x2000 : 0x0000;
w[0] = st; return 1;
}
default: break;
}
/* Everything else is a measurement request (single shot, periodic, fetch). */
double t = vx_attr_read(A_temp) + (heater ? 2.0 : 0.0);
double h = vx_attr_read(A_hum);
w[0] = gc_u16((gc_clamp(t, -45, 130) + 45.0) * 65535.0 / 175.0);
w[1] = gc_u16(gc_clamp(h, 0, 100) * 65535.0 / 100.0);
return 2;
}
A_temp und A_hum sind die beiden Schieberegler. Die Umrechnung ist die
aus dem SHT31-Datenblatt, rückwärts gerechnet: Der Schieberegler sagt 25
Grad, das Modell erzeugt das Rohwort, das der Treiber wieder in 25 Grad
verwandeln wird, samt CRC.
Woher die Modelle stammen
Jedes Modell entsteht anhand eines Dokuments: das Datenblatt des Bauteils oder die Herstellerbibliothek, die mit ihm kommuniziert, Zeile für Zeile gelesen. Wenn keines von beiden existierte, wurde das Modul weggelassen statt geraten. Drei Fälle zeigen, was das bedeutete.
Die Wärmebildkameras mussten hergeleitet, nicht abgeschrieben werden. Ein Thermotreiber liest nie eine Temperatur. Er holt 832 Wörter EEPROM, extrahiert etwa zweihundert Kalibrierungskonstanten, liest 832 Wörter Bilddaten und führt das Modell des Herstellers aus. Das MLX90640-Modell liefert also eine degenerierte Kalibrierung, in der jeder Korrekturterm verschwindet, und rechnet von der Temperatur, die der Schieberegler anfordert, rückwärts auf das rohe Wort, das sie erzeugt. Es wurde gegen einen Port des Treibers geprüft, bevor irgendein C geschrieben wurde; ein Zielbereich von -20 bis 300 Grad läuft mit einer Abweichung von 0,02 Grad zurück. Das MLX90641 brauchte denselben Trick plus ein Hamming-kodiertes EEPROM, und das MLX90621, für das Seeed nichts veröffentlicht, stammt aus dem Referenztreiber von Melexis.
Das Motor-Treiber-Beispiel verwendet rohes Wire. Seeeds Bibliothek für
das TB6612FNG-Board enthält einen I2C-Helfer aus der AVR-Ära, der für einen
ESP32 nicht kompiliert, also spricht das Beispiel das Protokoll direkt an. Es
ist ein Befehl-Byte und seine Nutzlast:
const uint8_t ADDR = 0x14;
const uint8_t BRAKE = 0x00, CW = 0x02, CCW = 0x03;
const uint8_t STANDBY = 0x04, NOT_STANDBY = 0x05;
const uint8_t CHA = 0, CHB = 1;
void cmd(uint8_t c, const uint8_t* payload, uint8_t n) {
Wire.beginTransmission(ADDR);
Wire.write(c);
for (uint8_t i = 0; i < n; i++) Wire.write(payload[i]);
Wire.endTransmission();
delay(1);
}
void run(uint8_t channel, int speed) {
uint8_t p[2] = { channel, (uint8_t)(speed < 0 ? -speed : speed) };
cmd(speed >= 0 ? CW : CCW, p, 2);
}
Das CAN-BUS-Modul ist kein Seeed-Design. Es wurde zunächst weggelassen,
weil Seeed kein Protokoll und keine Bibliothek dafür veröffentlicht. Das Board
wird von Longan Labs hergestellt, die beides veröffentlichen, und das Modell
folgt deren Frame-Layout: 0xAA, eine Länge, ein Befehl, die Nutzlast und
eine MODBUS-CRC.
Jedes Modell hat einen Test, der es so ansteuert, wie sein Treiber es tut, Byte für Byte: 1.804 davon im gesamten Katalog im September 2026. Die Galerie-Beispiele wurden zudem in der bereitgestellten App ausgeführt, nicht nur in der Testsuite.
Was nicht im Katalog ist
Um ehrlich über die Lücken zu sein: 57 der 279 SKUs sind nicht modelliert, und drei Gruppen machen diejenigen aus, die es sein könnten.
- Das DMX512-Modul. Das Board ist ein Leitungstreiber; der schwierige Teil ist, dass keine Arduino-Bibliothek einen DMX-Frame auf einem XIAO so erzeugt, wie das Board es erwartet.
- Das 433-MHz-Simple-RF-Link-Kit. Seine Sketches verwenden VirtualWire, das nicht im Arduino-Bibliotheksindex steht, und die Empfangsseite würde erfordern, dass das Modul einen Bitstrom in das Board generiert, statt ihn zu beantworten.
- Drei Boards, die unter dem Namen Grove verkauft werden: das Grove Beginner Kit, das Arduino Sensor Kit Base und das GrovePi+. Sie sind Boards mit einem Mikrocontroller statt Module und benötigen eigene Board-Definitionen.
Der Rest sind Kabel, Montagematerial und Kits.
Wie es weitergeht
- Die Komponentenauswahl: Drücke Add Component auf der Arbeitsfläche und tippe “Grove”. Jede Karte ist ein Modul; die Beschreibung sagt, was es tut.
- Die Beispielgalerie auf velxio.dev/examples, gefiltert nach Seeed Studio, enthält ein Beispiel pro Modul.
- Die Module gibt es in Seeeds Shop unter Grove; die Datenblattkarte jedes Bauteils verlinkt auf seine Seite.
Die Modulgrafiken stammen aus den Produktfotos von Seeed Studio.