Als je aan een embedded project begint, is een van de eerste beslissingen die je neemt welke microcontroller je gebruikt. Voor veel engineers en productontwikkelaars komt de keuze neer op twee families: de ESP32 van Espressif en de STM32 van STMicroelectronics. Beide zijn uitstekend, beide zijn breed verkrijgbaar en beide hebben enorme communities. Maar ze zijn ontworpen met verschillende prioriteiten, en de verkeerde kiezen kan je weken aan herwerk kosten.
In dit artikel deel ik een praktisch besliskader op basis van projecten waarin ik beide heb gebruikt. Geen uitputtende specificatievergelijking — alleen de factoren die er écht toe doen wanneer je een echt product bouwt.
De ESP32: connectiviteit voorop
De ESP32 is van de grond af ontworpen voor draadloze connectiviteit. WiFi en Bluetooth zijn geïntegreerd in de chip, wat betekent: geen externe modules, geen extra antennes (behalve een trace op de PCB) en een eenvoudige softwarestack voor het verbinden met netwerken. Als je product draadloos moet communiceren met het internet, een telefoon of andere apparaten, maakt de ESP32 dat bijna triviaal eenvoudig.
Het ecosysteem is beginnersvriendelijk. Het Arduino-framework wordt volledig ondersteund, en de ESP-IDF (Espressif's eigen framework) biedt meer controle wanneer je die nodig hebt. De community-ondersteuning is enorm — voor vrijwel elke sensor, elk display en elk protocol is er ergens op GitHub een werkend voorbeeld te vinden. Voor prototyping en proof-of-concept werk kun je in een dag van idee naar werkende demo gaan.
De afweging? De ESP32 is geen real-time platform in de traditionele zin. Het draait FreeRTOS, en de WiFi-stack neemt op onvoorspelbare momenten voorrang. Het stroomverbruik met actieve WiFi is aanzienlijk (80-240 mA). En de documentatie, hoewel verbeterend, kan inconsistent zijn tussen chipvarianten (ESP32, ESP32-S2, S3, C3, C6).
De STM32: precisie en controle
De STM32-familie is industrial-grade. Met honderden varianten, van kleine Cortex-M0 chips tot krachtige Cortex-M7 processors, is er een STM32 voor vrijwel elke toepassing. De nadruk ligt op deterministisch gedrag, laag stroomverbruik, rijke peripherals (ADC's, timers, DMA, CAN bus) en langdurige beschikbaarheid — eigenschappen die ertoe doen wanneer je een product ontwerpt dat 10+ jaar betrouwbaar moet werken.
De ontwikkelervaring is traditioneler. STM32CubeIDE en de HAL-bibliotheken geven je fijnmazige controle over elke peripheral. Je configureert clock trees, pinmappings en interruptprioriteiten expliciet. Dit betekent meer instellingswerk, maar ook voorspelbaarder gedrag. Wanneer timing ertoe doet — motorsturing, nauwkeurige sensorbemonstering, veiligheidskritische toepassingen — ga ik als eerste naar de STM32.
Het nadeel? Geen ingebouwde WiFi of Bluetooth (behalve de STM32WB- en STM32WL-families). Draadloze connectiviteit toevoegen betekent een externe module, wat kosten, bordoppervlak en complexiteit toevoegt. De leercurve is steiler, en de community, hoewel uitstekend, neigt meer naar het professionele dan het hobbymatige.
Directe vergelijking
Kies ESP32 wanneer
- WiFi of Bluetooth een kernvereiste is
- Snel prototypen en een snelle time-to-demo gewenst is
- IoT-producten die verbinden met cloudservices
- Kostengevoelige consumentenproducten
- Compatibiliteit met het Arduino-ecosysteem belangrijk is
- Het product geen harde real-time eisen heeft
Kies STM32 wanneer
- Deterministische timing en real-time besturing nodig is
- Ultra-laag stroomverbruik (batterijduur in jaren)
- Industriële interfaces (CAN, RS-485, industriële ADC)
- Lange productlevenscyclus en gegarandeerde beschikbaarheid
- Veiligheidskritische of gecertificeerde toepassingen
- Complexe peripheral-configuraties (multi-channel ADC, DMA)
Uit mijn eigen projecten
In mijn smart lamp project was de ESP32 de voor de hand liggende keuze: het product heeft WiFi nodig om via een telefoon-app bestuurd te worden, timing is niet kritisch, en het Arduino-ecosysteem had kant-en-klare bibliotheken voor de LED-driver. Van concept naar werkend prototype in twee dagen.
Voor een besturingskastproject met PLC-achtig gedrag — analoge sensoren uitlezen, relais aansturen, communiceren via RS-485 — gebruikte ik STM32-chips. De deterministische interruptafhandeling en robuuste ADC maakten de firmware rechttoe rechtaan en betrouwbaar, zelfs in een elektrisch ruisrijke industriële omgeving.
En soms gebruik ik beide in hetzelfde product: een STM32 die de real-time regelloop afhandelt, verbonden via UART met een ESP32 die WiFi en cloudcommunicatie verzorgt. Elke chip doet waar hij het beste in is.
De beslissing in 30 seconden
Stel jezelf één vraag: moet dit product draadloos verbinding maken met een netwerk?
Zo ja, begin met de ESP32. Zo nee, begin met de STM32. Zo ja maar je hebt ook harde real-time besturing nodig, overweeg dan beide te gebruiken. Deze eenvoudige vuistregel heeft me in de overgrote meerderheid van projecten de juiste richting gewezen. Je kunt de keuze altijd later verfijnen op basis van specifieke peripherals, stroombudgetten of certificeringseisen — maar hiermee begin je op het juiste spoor.
Hulp nodig bij het kiezen van de juiste microcontroller voor je product, of op zoek naar iemand om de firmware te ontwikkelen? Laten we praten — ik werk dagelijks met beide platformen en kan je helpen vroeg de juiste keuze te maken.