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.



