Raspberry Pi

Pico W vs. Pico 2 W für MQTT: RP2040 vs. RP2350 bei Leistung, Speicher und TLS

Der Pico 2 W behält Formfaktor und WLAN-Chip des Pico W, ersetzt aber den RP2040 durch den schnelleren RP2350. Dieser Vergleich zeigt, was das für MQTT-Geräte bedeutet: CPU, Speicher, TLS, Sicherheitsfunktionen, Softwareunterstützung und welches Board für welches Projekt.

Pico W und Pico 2 W nebeneinander, beide per WLAN mit einem MQTT-Broker verbunden
Probieren Sie es auf Ihrem eigenen MQTT-Broker ausHolen Sie sich im Free-Tarif einen privaten, verwalteten MQTT-Broker und starten Sie mit fertigen Codebeispielen.
Kostenlos testen Codebeispiele Keine Kreditkarte erforderlich

Pico W vs. Pico 2 W ist für die meisten MQTT-Projekte eine schnelle Entscheidung, doch die Gründe dahinter sollten Sie kennen, bevor Sie eine Schublade voller Boards kaufen. Beide haben denselben Formfaktor, dieselbe Pinbelegung und denselben WLAN-Chip Infineon CYW43439; der Unterschied ist der Mikrocontroller. Dieser Vergleich erklärt, was der Wechsel vom RP2040 zum RP2350 für vernetzte Geräte ändert, insbesondere bei Speicher und TLS, und liefert ein kleines Skript, mit dem Sie den Unterschied in Ihrem eigenen Netzwerk messen.

Die kurze Antwort

Für neue MQTT-Designs wählen Sie den Pico 2 W. Er hat etwa doppelt so viel RAM und Flash, schnellere Cortex-M33-Kerne mit Gleitkommaeinheit und Hardware-Sicherheitsfunktionen und führt denselben MicroPython-Code wie der Pico W nahezu unverändert aus. Bleiben Sie beim Pico W, wenn Sie bereits Bestand oder ein validiertes Design haben oder einen sehr einfachen Sensor betreiben, der in einem vertrauenswürdigen Netzwerk über unverschlüsseltes MQTT publiziert – dort bringen die zusätzlichen Reserven wenig.

Pico W vs. Pico 2 W: technische Daten

Raspberry Pi Pico W Raspberry Pi Pico 2 W
Mikrocontroller RP2040 RP2350 (Variante A)
CPU Dual Arm Cortex-M0+, 133 MHz Dual Arm Cortex-M33 mit 150 MHz oder Dual Hazard3 RISC-V (wählbar)
Gleitkomma Nur in Software Single-Precision-FPU und DSP-Befehle auf den M33-Kernen
SRAM 264 KB 520 KB
Flash auf dem Board 2 MB 4 MB
Funk CYW43439: 2,4-GHz-WLAN 802.11n, Bluetooth 5.2 Derselbe CYW43439
PIO 2 Blöcke, 8 State Machines 3 Blöcke, 12 State Machines
Sicherheit Nichts über das einfache Boot-ROM hinaus Arm TrustZone, signierter Boot, OTP-Speicher, SHA-256-Beschleuniger, Hardware-TRNG, Glitch-Erkennung
Formfaktor und Pinbelegung Pico-Standard Wie Pico W
MicroPython-Build RPI_PICO_W RPI_PICO2_W

Die Eckdaten stammen aus den veröffentlichten Datenblättern von Raspberry Pi; Details und aktuelle Errata finden Sie in der offiziellen Pico-Dokumentation.

Was die Unterschiede für MQTT-Geräte bedeuten

Das WLAN ist identisch

Da beide Boards den CYW43439 über dieselbe SPI-artige Schnittstelle nutzen, sind WLAN-Reichweite, unterstützte Bänder (nur 2,4 GHz) und Netzwerkdurchsatz im Wesentlichen gleich. Ein Pico 2 W verbindet sich weder aus größerer Entfernung noch mit einem 5-GHz-Netz. Drehen sich Ihre MQTT-Probleme um die Signalstärke, hilft kein neues Board; Antennenplatzierung und Position des Access Points schon.

Mehr Speicherreserve ist der größte praktische Gewinn

Auf einem Pico W mit MicroPython reicht der nach dem Booten verfügbare Heap bequem für unverschlüsseltes MQTT, wird aber knapp, sobald TLS, JSON-Verarbeitung, ein paar Sensortreiber und gepufferte Messwerte hinzukommen. Eine TLS-Session allein braucht Dutzende Kilobyte für ihre Puffer, und Fragmentierung kann ENOMEM-Fehler auslösen, selbst wenn der gesamte freie Speicher ausreichend aussieht.

Der Pico 2 W verdoppelt den SRAM ungefähr. In der Praxis heißt das:

  • TLS-Verbindungen, die auf einem Pico W sporadisch mit Speicherfehlern scheitern, funktionieren meist einfach.
  • Sie können offline mehr Messwerte puffern und sie publizieren, sobald der Broker wieder erreichbar ist.
  • Größere JSON-Payloads und mehr Topics pro Gerät sind weniger problematisch.

Auch der Flash verdoppelt sich von 2 MB auf 4 MB, was mehr Platz für MicroPython-Bibliotheken, Zertifikatsdateien, Logs und Over-the-Air-Update-Verfahren lässt.

TLS-Handshake-Zeit

Auf dem RP2040 läuft jeder TLS-Handshake vollständig in Software auf Cortex-M0+-Kernen, denen die Befehle für schnelle Großzahlarithmetik fehlen. Der Handshake ist deutlich spürbar, und bei einem Batteriegerät, das sich bei jedem Aufwachen neu verbindet, kostet er real Zeit und Energie.

Die Cortex-M33-Kerne des RP2350 laufen mit höherem Takt, arbeiten pro Zyklus effizienter und bieten DSP-Befehle, sodass die Public-Key-Operationen im Handshake schneller abgeschlossen sind. Der RP2350 hat außerdem einen SHA-256-Beschleuniger und einen echten Zufallszahlengenerator. Ob Ihre Firmware die SHA-256-Hardware nutzt, hängt vom Build der TLS-Bibliothek ab, aber schon die CPU-Verbesserung verkürzt Handshakes. Statt fremden Zahlen zu vertrauen, messen Sie mit dem Skript unten in Ihrem eigenen Netzwerk.

Sicherheitsfunktionen

Der Pico W hat keinen Secure Boot und keinen geschützten Schlüsselspeicher; wer physischen Zugriff hat, kann den Flash auslesen, einschließlich WLAN-Passwörtern und MQTT-Zugangsdaten. Der Pico 2 W ergänzt signierten Boot und einmal programmierbaren Speicher für Schlüssel sowie Arm TrustZone zur Abschottung vertrauenswürdigen Codes. Diese Funktionen erfordern eine bewusste Einrichtung über das C-SDK und werden von MicroPython standardmäßig nicht aktiviert, machen aber für Produkte, die an Orten mit Diebstahl- oder Manipulationsrisiko eingesetzt werden, einen echten Unterschied – auch mit Blick auf den EU Cyber Resilience Act.

Softwarekompatibilität

Ihr Pico-W-MicroPython-Code läuft nach dem Flashen der Firmware RPI_PICO2_W fast immer unverändert auf dem Pico 2 W. Die APIs network, machine.Pin("LED"), umqtt.simple und ssl sind identisch. Für den internen Temperatursensor verwenden Sie machine.ADC(machine.ADC.CORE_TEMP) statt einer fest codierten Kanalnummer, um portabel zu bleiben. Das C/C++-SDK 2.x und der Arduino-Pico-Core unterstützen beide Chips.

Ein Hardware-Hinweis: Frühe RP2350-Chips hatten ein dokumentiertes Erratum (E9), das GPIO-Eingänge mit internen Pull-down-Widerständen betrifft. Spätere Chip-Revisionen beheben es. Hängt Ihr Design von internen Pull-downs ab, lesen Sie die aktuellen Errata im RP2350-Datenblatt und setzen Sie, wo empfohlen, externe Widerstände ein.

Beide Boards selbst benchmarken

Dieses MicroPython-Skript läuft auf beiden Boards. Es gibt CPU-Frequenz, freien Speicher und die Zeit für einen unverschlüsselten und einen TLS-MQTT-Verbindungsaufbau zu broker.connectmq.com aus. Kopieren Sie zuerst isrgrootx1.der auf das Board, wie in unserem Leitfaden Pico W MQTT TLS beschrieben.

# bench.py - compare MQTT connect times on Pico W and Pico 2 W
import time, gc, ssl, network, machine, os, ubinascii
from umqtt.simple import MQTTClient

WIFI_SSID = "YOUR_WIFI_SSID"
WIFI_PASSWORD = "YOUR_WIFI_PASSWORD"
BROKER = "broker.connectmq.com"
CID = "bench-" + ubinascii.hexlify(machine.unique_id()).decode()
RUNS = 5

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
while not wlan.isconnected():
    time.sleep(0.2)

print("Board:", os.uname().machine)
print("CPU freq:", machine.freq() // 1_000_000, "MHz")
gc.collect()
print("Free heap:", gc.mem_free(), "bytes")
print("RSSI:", wlan.status("rssi"), "dBm")

ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
ctx.verify_mode = ssl.CERT_REQUIRED
with open("isrgrootx1.der", "rb") as f:
    ctx.load_verify_locations(cadata=f.read())


def timed_connect(port, use_tls):
    gc.collect()
    c = MQTTClient(CID, BROKER, port=port, keepalive=30, ssl=ctx if use_tls else None)
    t0 = time.ticks_ms()
    c.connect()
    dt = time.ticks_diff(time.ticks_ms(), t0)
    c.publish("connectmq/demo/bn4q7d/bench", "%s %d" % ("tls" if use_tls else "tcp", dt))
    c.disconnect()
    return dt


for label, port, tls in (("Plain TCP 1883", 1883, False), ("TLS 8883", 8883, True)):
    times = []
    for _ in range(RUNS):
        times.append(timed_connect(port, tls))
        time.sleep(1)
    times.sort()
    print(label, "connect ms - min:", times[0], "median:", times[len(times) // 2], "max:", times[-1])

Führen Sie es auf beiden Boards im selben Netzwerk an derselben Stelle aus und vergleichen Sie die Mediane. Die TCP-Werte zeigen Ihre Netzwerk-Basislinie; die Differenz zwischen TCP und TLS zeigt die kryptografischen Kosten auf jedem Chip. Das Skript publiziert jedes Ergebnis zusätzlich an den Öffentlichen MQTT-Broker, sodass Sie beide Boards nebeneinander melden sehen:

mosquitto_sub -h broker.connectmq.com -p 1883 -i watch-bn4q7d -v -t "connectmq/demo/bn4q7d/#"

Halten Sie die Zahl der Durchläufe moderat. Der öffentliche MQTT-Broker erlaubt 10 Nachrichten pro Sekunde und Client, und wiederholte schnelle Reconnects sind ohnehin keine realistische Last.

Welches Board für welches MQTT-Projekt

Projekt Empfohlenes Board Grund
MQTT lernen, Schulungssets Beide Gleicher Code, gleiche Tutorials; nutzen Sie, was Sie haben
Netzbetriebener Sensor, TLS, eine langlebige Verbindung Pico 2 W Mehr RAM-Reserve für TLS und Pufferung
Batteriegerät, das bei jedem Aufwachen neu verbindet Pico 2 W Kürzerer Handshake pro Aufwachzyklus
Gerät mit vielen Sensoren, JSON und Offline-Pufferung Pico 2 W Doppelter SRAM und Flash
Produkt mit Risiko physischer Manipulation Pico 2 W Signierter Boot und OTP-Schlüsselspeicher
Bestehende Pico-W-Flotte mit validierter Firmware Pico W Kein Grund zur Neuqualifizierung, solange Sie keine Grenzen erreichen
Viel TLS, BLE plus WLAN, Fokus auf Deep Sleep ESP32 in Betracht ziehen Krypto-Beschleunigung und ausgereifte Stromsparmodi

Die letzte Zeile erinnert daran, dass die Pico-Familie nicht die einzige Option ist. Unser Vergleich ESP32 vs. Raspberry Pi Pico W zeigt, wann ein ESP32 besser passt, und der Leitfaden Pico W im Batteriebetrieb mit MQTT geht tiefer auf Energiebudgets ein.

Beide Boards mit einem Produktions-Broker verbinden

Welches Board Sie auch wählen, die Broker-Seite ist dieselbe. Zum Testen nutzen Sie broker.connectmq.com anonym mit eindeutiger Client ID. Für echte Einsätze legen Sie einen privaten Broker bei ConnectMQ an und verwenden den generierten Benutzernamen, das Passwort und die Client ID über TLS auf Port 8883. Dank des Let's-Encrypt-Zertifikats funktioniert dieselbe Root-Zertifikatsdatei auf beiden Boards. Den Schritt-für-Schritt-Code für eine erste Verbindung finden Sie in unserem Tutorial Raspberry Pi Pico W und MQTT, und das umfassendere Raspberry-Pi-MQTT-Tutorial behandelt die großen Boards, die neben Pico-Geräten oft als Gateways dienen.

Ein verwalteter MQTT-Broker kümmert sich um Verfügbarkeit, Zertifikate und Verbindungslimits, sodass Ihr Aufwand in die Geräte-Firmware fließt. Im kostenlosen ConnectMQ-Plan Serverless (Free) erhalten Sie bis zu 25 Verbindungen, QoS bis 1 und Nachrichten bis 256 KB – reichlich für eine Flotte von Pico-Boards in der Entwicklung.

Ihre Pico-Boards mit ConnectMQ verbinden

Registrieren Sie sich unter app.connectmq.com für den kostenlosen Serverless-Plan, ohne Kreditkarte. Legen Sie einen Broker an, flashen Sie das jeweilige Board mit dem passenden MicroPython-Build und beobachten Sie im Live-Topic-Explorer des Portals, wie Ihr Pico W und Ihr Pico 2 W in Echtzeit melden.

Häufig gestellte Fragen

Ist der Pico 2 W mit Pico-W-Code kompatibel?

Größtenteils ja. Nach dem Flashen des MicroPython-Builds RPI_PICO2_W laufen WLAN-, GPIO-, umqtt.simple- und TLS-Code unverändert. Verwenden Sie machine.ADC(machine.ADC.CORE_TEMP) für den internen Temperatursensor, um portabel zu bleiben.

Hat der Pico 2 W besseres WLAN als der Pico W?

Nein. Beide nutzen denselben CYW43439-Chip mit 2,4-GHz-WLAN und Bluetooth 5.2, Reichweite und Durchsatz sind also im Wesentlichen gleich. Die Verbesserungen liegen im Mikrocontroller.

Ist TLS auf dem Pico 2 W schneller?

Ja, die Cortex-M33-Kerne des RP2350 schließen den Handshake schneller ab als die Cortex-M0+-Kerne des RP2040. Führen Sie das Benchmark-Skript aus diesem Artikel auf beiden Boards aus, um den Unterschied in Ihrem Netzwerk zu sehen.

Sollte ich ein bestehendes Pico-W-Projekt aufrüsten?

Nur wenn Sie an Speichergrenzen stoßen, schnellere Reconnects mit TLS oder Secure Boot benötigen. Ein funktionierendes Pico-W-Design in einem vertrauenswürdigen Netzwerk gewinnt durch einen Wechsel wenig.

Verwandte Artikel

Raspberry Pi RFID MQTT: Zutrittsprotokollierung mit dem RC522-Leser

Schließen Sie einen RC522-RFID-Leser an einen Raspberry Pi an, lesen Sie Tags mit Python, prüfen Sie sie gegen eine lokale Allowlist und veröffentlichen Sie jeden Zutrittsversuch als MQTT-Ereignis, das Logger, Dashboards und Alarmwerkzeuge verarbeiten können.

7 Min. Lesezeit

Mosquitto auf dem Raspberry Pi installieren: sicherer lokaler MQTT-Broker

Installieren Sie Mosquitto auf einem Raspberry Pi, sichern Sie ihn mit Passwörtern und einer durchdachten Listener-Konfiguration ab, testen Sie ihn mit mosquitto_pub und mosquitto_sub und erfahren Sie, wann ein lokaler Broker per Bridge an einen Cloud-MQTT-Broker angebunden werden sollte.

8 Min. Lesezeit

Alle Artikel →

Ihr privater MQTT-Broker ist nur wenige Klicks entfernt

Konto anlegen, Broker-Zugangsdaten erhalten und das erste Gerät verbinden — ohne Server, die installiert, gepatcht oder skaliert werden müssen.