With Examples for Raspberry Pi Pico and ESP32
Creating and programming small electronic systems is now easier than ever before. With inexpensive development boards and modern software tools, anyone curious about embedded design can quickly move from an idea to a working piece of hardware. At the heart of this change is MicroPython—a clear, interactive, and beginner-friendly way to program microcontrollers while still remaining closely connected to the underlying electronics.
This book introduces embedded programming through MicroPython on popular platforms such as the Raspberry Pi Pico and the ESP32. You will discover how to use microcontrollers for reading inputs, processing data, and controlling outputs in a predictable, real-time loop. With just a few lines of code, you can blink LEDs, read sensors, drive motors, and communicate with the outside world. The interactive REPL programming interface encourages experimentation and fast learning, making concepts tangible from the very first chapter.
While different boards offer different capabilities, they all share the same core principles. Timers, GPIO, analog I/O, PWM, interrupts, and communication interfaces form the foundation of every embedded system.
By focusing on these universal building blocks, this book helps you build skills that transfer across platforms and scale naturally toward more advanced development. Whether you are a beginner or an experienced programmer entering embedded systems, you will find that working with MicroPython is both practical and genuinely enjoyable.
Programming the Finite State Machine with 8-Bit PICs in Assembly and C
Andrew Pratt provides a detailed introduction to programming PIC microcontrollers, as well as a thorough overview of the Finite State Machine (FSM) approach to programming. Most of the book uses assembly programming, but do not be deterred. The FSM gives a structure to a program, making it easy to plan, write, and modify. The last two chapters introduce programming in C, so you can make a direct comparison between the two techniques. The book references the relevant parts of the Microchip datasheet as familiarity with it is the best way to discover detailed information.
This book is aimed at Microsoft Windows and Linux users. To keep your costs to a minimum and to simplify the toolchain, specific applications are provided as a free download to enable you to use an FTDI serial lead as the programmer. The assembler used is the open-source "gpasm". All programming can be done in a text editor. There are detailed instructions on how to perform the necessary installations on Windows, Linux Debian, and derivatives such as Ubuntu and Fedora. For programming in C, Microchip's XC8 compiler is used from the command line. In addition to the programming applications, two serial read and serial write applications can be used for communicating with the PICs from a computer.
A voltmeter project including practical instructions on building a circuit board from scratch is included. All theory is covered beforehand, including how to do integer arithmetic in assembly.
Two PICs are covered: the PIC12F1822 and the PIC16F1823. Both can run at 32 MHz with an internal oscillator. You do not need to buy a factory-made development board and programmer. With relatively inexpensive parts including a serial lead, microcontroller, a few resistors, and LEDs, you can get started exploring embedded programming.
Links
Updated Programmer
This book details the use of the ARM Cortex-M family of processors and the Arduino Uno in practical CAN bus based projects. Inside, it gives a detailed introduction to the architecture of the Cortex-M family whilst providing examples of popular hardware and software development kits. Using these kits helps to simplify the embedded design cycle considerably and makes it easier to develop, debug, and test a CAN bus based project. The architecture of the highly popular ARM Cortex-M processor STM32F407VGT6 is described at a high level by considering its various modules. In addition, the use of the mikroC Pro for ARM and Arduino Uno CAN bus library of functions are described in detail.
This book is written for students, for practising engineers, for hobbyists, and for everyone else who may need to learn more about the CAN bus and its applications. The book assumes that the reader has some knowledge of basic electronics. Knowledge of the C programming language will be useful in later chapters of the book, and familiarity with at least one microcontroller will be an advantage, especially if the reader intends to develop microcontroller based projects using CAN bus.
The book should be useful source of reference to anyone interested in finding an answer to one or more of the following questions:
What bus systems are available for the automotive industry?
What are the principles of the CAN bus?
What types of frames (or data packets) are available in a CAN bus system?
How can errors be detected in a CAN bus system and how reliable is a CAN bus system?
What types of CAN bus controllers are there?
What are the advantages of the ARM Cortex-M microcontrollers?
How can one create a CAN bus project using an ARM microcontroller?
How can one create a CAN bus project using an Arduino microcontroller?
How can one monitor data on the CAN bus?
Deze complete microcontroller-programmeercursus op basis van de Raspberry Pi Pico bevat een leerboek, een componentenkit, praktische projecten en een uitgebreide online cursus met simulaties. Ideaal om embedded systems stap voor stap te leren programmeren met Arduino via een praktische hands-on aanpak.
Een praktische introductie tot embedded systems met de Raspberry Pi Pico
Deze cursus is ontworpen voor beginners in embedded systems die op zoek zijn naar een gestructureerde en voorbeeldgerichte start.
Een kit met LED’s en weerstanden, schakelaars, sensoren en actuatoren, displays, een breadboard en draden is inbegrepen. Deze worden in de cursus gebruikt om voorbeeldtoepassingen te demonstreren.
Er is geen voorkennis van Arduino of embedded ontwikkeling vereist. Elke sectie bevat praktische voorbeelden en mini-projecten om belangrijke concepten te versterken en verdere verkenning te stimuleren. Aan het einde van de cursus kunt u niet alleen de voorbeelden reproduceren, maar ook uitbreiden met uw eigen ideeën en toepassingen.
Wat leert u?
Microcontroller programmeren in C/C++ met de Raspberry Pi Pico met behulp van de Arduino IDE
Werken met digitale I/O, knoppen en encoders uitlezen, LED’s en relais aansturen
Analoge ingangen, spanningen en sensoren uitlezen
Genereren van analoge uitgangssignalen en PWM
Gebruik van seriële communicatie zoals UART, I²C en SPI om displays aan te sturen en digitale sensoren en SD-kaarten uit te lezen
Tijdbeheer
Werken met interrupts
Realtime sensorinput en besturing via knoppen, LED’s en displays
Aansturen van actuatoren zoals relais en servomotoren
Voor wie is dit?
Studenten en zelflerenden die embedded systems willen ontdekken
Makers en IoT-enthousiastelingen die hun hardwarevaardigheden willen verbeteren
Docenten en trainers die kant-en-klaar lesmateriaal zoeken
Wat zit er in de doos?
Toegang tot de volledige cursus op het Elektor Academy Pro leerplatform
Raspberry Pi Pico microcontrollerboard + USB-kabel
Boek: Programming Microcontrollers in C/C++ Using Arduino
Downloadbare projectbestanden voor elke module
Componentenkit:
2× LED, rood, 5 mm
LED, groen, 5 mm
3× weerstand, 470 Ω, 0,25 W
LDR
Potentiometer, 10 kΩ, lineair
Drukknop
Rotary encoder module
Relaismodule
DHT22 temperatuur- en vochtigheidssensor
TM1637-compatibel 4-digit 7-segment display
MPU-6050 IMU met headers
SSD1306-compatibel I²C OLED display
Micro SD-kaartadapter met header
Buzzer
SG90 micro servo
ILI9341-compatibel SPI 240×320 TFT display
20× jumper wires
Breadboard
Alle programmeercursussen (en verschillen in inhoud)
Cursus
Arduino
Raspberry Pi Pico with Arduino C/C++
ESP32 with Arduino C/C++
Raspberry Pi Pico with MicroPython
ESP32 with MicroPython
Online cursus
Access to Arduino Course
Access to Pico with Arduino C/C++ Course
Access to ESP32 with Arduino C/C++ Course
Access to Pico with MicroPython Course
Access to ESP32 with MicroPython Course
Board
Uno R3
Raspberry Pi Pico
ESP32
Raspberry Pi Pico
ESP32
Boek
Programming Microcontrollers in C/C++ Using Arduino
Programming Microcontrollers in C/C++ Using Arduino
Programming Microcontrollers in C/C++ Using Arduino
Programming Microcontrollers in MicroPython
Programming Microcontrollers in MicroPython
Kit
40-delige componenten-kit
40-delige componenten-kit
40-delige componenten-kit
40-delige componenten-kit
40-delige componenten-kit
Learning circuit design the fun way
Welcome to the world of electronics!
Getting started in electronics is not as difficult as you may think. Using this book, you will explore and learn the most important electrical and electronics engineering concepts in a fun way by doing various experiments and by simulating circuits. It will teach you electronics practically without getting into complex technical jargon and long calculations. As a result, you will be creating your own projects soon.
No prior knowledge of electronics is required, only some basic algebra is used in a few simple calculations. Many tested and working projects and simulations are presented to familiarise yourself with the construction of electronic circuits. Circuit simulation is introduced at an early stage to enable you to experiment with circuits easily without breaking anything.
You will learn:
The concepts of voltage, current, and power
AC and DC
Basic lamp circuits with switches
Passive components: resistors, capacitors & inductors
RC & RCL circuits
Electromagnetism
Loudspeakers, relays, buzzers, and transformers
Active components: diodes & LEDs, bipolar transistors & MOSFETs
Transistor-based switching circuits
Optocoupler circuits
Astable & monostable multivibrators
Using the 555 timer IC
The operational amplifier
Digital logic
Advanced examples: amplifiers, oscillators, filters, and sensors
Test and measurement tools
Microcontrollers: Arduino UNO, ESP32, Raspberry Pi Pico, and Raspberry Pi
Reading datasheets and best practices for selecting components
EMC & EMI and norms & regulations
Elektor GREEN and GOLD members can download their digital edition here.
Not a member yet? Click here.
PbMonitor v2.0 UpdateBattery Monitoring with Improved Analog Design
Audio Latency MeasurementA Standalone Tool for Evaluating Errors and Latency in Audio Transmission
Square Wave vs. Bode PlotChecking the Performances of an Audio Device
embedded world 2026
Clever Coding with AIAI in Software Development for Electronics Engineers
QA403 Audio AnalyzerAffordable Precision for Audio Professionals and Hobbyists
EasyGimbalAutonomous Camera Tracking with AI, Stepper and Servo Motors
Sigfox Breakout Board (2)Sending Messages
Circuit ProtectionControlling Overvoltages with TVS Diodes
Emerging Battery Testing ApproachesA New Era of Diagnostics
AudiotronicsA First Preamplifier
CANopenTermAn Open-Source Tool That Brings CAN to Makers and Engineers Alike
Stabilization of Operational AmplifiersAvoiding Feedback Instability
Err-lectronicsCorrections, Updates, and Readers’ Letters
Signal ConditioningTips and Tricks to Fit Voltage Ranges
TDR Attachment for OscilloscopesLength, Short Circuit, Mismatch: Measure Cables Using Reflections!
From Life's ExperienceLED It Be
Speaker Oscillator and Resonance TesterA Fully Experimental Project for Your Speakers
Elektor Community Perspectives on Test and Measurement
ESP32 Audio Transceiver Board (Part 5)Audio Processing and Remote Control
2026: An AI OdysseyAI Has a Context Problem
Battery Storage for Balcony Power PlantsSmall Batteries, Big Impact
Elektor GREEN en GOLD leden kunnen deze uitgave hier downloaden.
Nog geen lid? Klik hier om een lidmaatschap af te sluiten.
De ESP-BLASTEen mini ESP32 raketdrone die ruim 100 km/u vliegt
STM32Cube Innovation-ChallengeDoe mee met je beste STM32C5-ontwerp
Wireless workshop (1)Radiomodules uitgelegd: 433 MHz CC1101 sub-GHz-transceiver
AM-zenderMet sinus- en blokgolfgenerator op Raspberry Pi Pico
AudiotronicaDe vervormingsfactor
CoffeeCallerOmroepsysteem met mesh-netwerk en Zephyr gebaseerde software
Elektor wordt 65Projecten uit voorgaande september- en oktobermaanden
Bluetooth Channel Sounding voor het volgen van objectenAfstandsmeting met centimeterprecisie voor het IoT van de volgende generatie
2026: Een AI-odysseeKwantumcomputing is geen volgende GPU
Om de cloud te beveiligen, is edge-beveiliging nodig
Eerste ervaringen met de HackRF ProPraktische tests met de nieuwe SDR-hardware
Modemupgrade van GPRS/2G naar LTE/4GEen draadloos alarmsysteem als voorbeeld
Lusvormige antenne met RF-bouwstenenDeel 1: Een zelfbouw kortegolfantenne met instelbare richtingsgevoeligheid
Internetradio naar AM-converterMet een ESP32-S3 als zender
Err-lectronics
Mioty, een overzichtFraunhofer's aanpak van LPWAN
WerkbankwijsheidPraktische tips van experts
Walter, de compacte IoT-moduleDeel 2: Toegang tot weer- en datadiensten
Elektor GREEN en GOLD leden kunnen deze uitgave hier downloaden.Nog geen lid? Klik hier om een lidmaatschap af te sluiten.
Super-servotestervoor vier servo’s – stand-alone of in-system
Analoge signalen en microcontrollersADC’s, DAC’s, stroommeting en meer
embedded world 2023
Sub-Nyquist-sampling in de praktijkhogere frequenties betrouwbaar bemonsteren met subsampling
Met Android-smartphone, spreek ik met ESP32?praktisch project met behulp van de Android WiFi-API
Actief 1kHz-filter voor vervormingsmetingmeet beter door het het meetsignaal te optimaliseren
Alle begin......multivibreert verder!
Project 2.0correcties, updates en brieven van lezers
Het nieuwe I3C-protocoleen waardig opvolger van I2C – of gebakken lucht?
BlueRC: IR-afstandsbediening met smartphone en ESP32universeel en aanpasbaar
Microcontroller-documentatie verklaarddeel 2: registers en blokschema’s
Automatisering van testen en metentestapparatuur programmeren om je te dienen
Elektor Infographicstesten en meten
Overspanningsbeveiliging voor veilige werkingtransiëntbescherming voor niet-geïsoleerde DC/DC-voedingsmodules
Meetapparatuur van het merk Wihatesters en meters voor installaties waar u op kunt bouwen
Automatisch testen en samenwerken aan testresultaten
Uit het leven gegrepenelektronica op hoog niveau
Energieloggermeet en registreert het stroomverbruik
Montage van de M.A.R.S. Rover Kit van 4tronix
Parkeerschijf met e-papier displayinnovatief digitaal alternatief
eCO2 Telegram-botmeet de luchtkwaliteit via Telegram
Achter de schermen van DHZ high-end audioTon Giesberts van Elektor over de fijne kneepjes van het analoog ontwerpen
Oost West Lab Bestwerk in uitvoering...
RFID-tag’s lezen, en een RFID-deurslotvoorbeeldprojecten uit de Elektor Arduino Experimenteerbundel
HF-stroomprobe voor oscilloscoopHF-stroommetingen gemakkelijk gemaakt
Niet voor watjes – Makerfabs Robot Arm Kitmet de Raspberry Pi Pico en MicroPython
Generatieve KIwie heeft dit eigenlijk gemaakt?
Hexadokupuzzelen voor elektronici
Hoogwaardig LoRa-communicatieapparaat
De Elecrow ThinkNode M5 is een compact, draagbaar LoRa-communicatieapparaat dat is ontworpen voor berichtenverkeer en het delen van locaties buiten het bereik van mobiele netwerken (off-grid) en voor gebruik in de buitenlucht. Het apparaat wordt aangestuurd door een ESP32-S3-processor en een SX1262 LoRa-chip, is voorzien van vooraf geïnstalleerde Meshtastic-firmware en kan eenvoudig via Bluetooth worden geconfigureerd met de officiële Meshtastic-app.
De geïntegreerde multi-GNSS-module ondersteunt GPS, GLONASS, BeiDou en QZSS voor betrouwbare positionering en het delen van locaties. Berichten en apparaatgegevens worden weergegeven op het energiezuinige 1,54-inch e-paper-scherm, terwijl de ingebouwde oplaadbare accu van 1.200 mAh zorgt voor langdurig mobiel gebruik.
Dankzij de geïntegreerde LoRa-antenne, de compacte behuizing, de RTC en de ondersteuning voor zowel Meshtastic- als MeshCore-firmware is de ThinkNode M5 een praktische communicatieoplossing voor wandelen, kamperen, afgelegen locaties en noodsituaties waarin conventionele mobiele netwerken niet beschikbaar zijn.
Kenmerken
LoRa-communicatie
Multi-GNSS-positionering
Oplaadbare accu van 1200 mAh
1,54-inch e-paper-display
Ingebouwde RTC
Compatibel met MeshCore
Compatibel met Meshtastic
Specificaties
Hoofdprocessor (ESP32-S3)
CPU/SoC
Xtensa 32-bit LX7 dual-core processor, geklokt op maximaal 240 MHz
Systeemgeheugen
512 KB SRAM, 8 MB PSRAM
Opslag
4 MB Flash, 384 KB ROM
Firmware
Volledig compatibel met Meshtastic-firmware; signaaloverdracht via LoRa-modus
EPD (Electronic Paper Display)
Displaygrootte
1,54-inch EPD (monochroom E-Ink-scherm)
Displaymateriaal
E-Ink (Electronic Ink)
Resolutie
200 x 200
Driver-chip
SSD1681 (via SPI- of I²C-interface)
Volledige verversingstijd
2 s
Draadloze communicatie
Bluetooth
Bluetooth Low Energy en Bluetooth 5.0 (configuratie via telefoon)
LoRa
SX1262 LoRa-module, EU 868 MHz (externe antenne)
Hardware
Interfaces
USB-C, RP-SMA
Functies
GPS-locatie (GPS, GLONASS, BeiDou, QZSS), EPD-scherm, RTC, USB 2.0, PMU-energiebeheer (ingebouwde 1200 mAh-lithiumaccu), zoemer, enz.
Knoppen
Draaischakelaar, functieknop, paginaknop, GPS-schakelaar, resetknop
LED-indicator
Voeding, GPS/LoRa-indicatie
Overige
Voeding
5 V/1 A, ondersteunt voeding via USB of lithiumbatterij
Stroomverbruik
De maximale bedrijfsstroom bedraagt ongeveer 340 mA (CPU + LoRa-module); het verbruik in de energiezuinige modus bedraagt ongeveer 34 uA
Bedrijfstemperatuur
-10~50°C
Opslagtemperatuur
-20~60°C
Relatieve luchtvochtigheid
10-95% bij 40°C (niet-condenserend)
Behuizing
ABS-kunststof
Afmetingen
82 x 51,6 x 26,3 mm
Gewicht
81 g
Inbegrepen
1x Elecrow ThinkNode M5
1x LoRa-antenne
1x USB-C kabel
1x Manual
Downloads
Manual
Eerste stappen met een ESP32-C3 en het IoTWiFi-knop en -relais IoT Cloud à la Arduino
Arduino-shield met dubbele Geiger-Müller buisuiterst gevoelige en zeer zuinige stralingssensor
CO2-wachterluchtkwaliteit bewaken – doe het zelf!
MonkMakes Air Quality Kit voor de Raspberry Pimeet temperatuur en eCO2
Alle begin......verwelkomt de diode
Tips & trucs voor het testen van componentenzonder kostbare apparatuur
Reduceer het stroomverbruik van uw mollenverjagerATtiny13 in plaats van 555
Lichtschakelaar DeLuxuiterst nauwkeurig lichtgestuurd schakelen
Uitdagingen bij het op de markt brengen van IoT-oplossingenzorgen over veiligheid, schaalbaarheid en de concurrentie Elektor Infographics
Toch beter bedraadTips voor het ontwikkelen van een 1 Gbit/s interface in de industriële omgeving
Edge Impulse FOMOreal-time objectdetectie voor MCU’s
Lopende-golfbuisVreemde onderdelen, de serie
Smalband-Internet of Thingsstandaarden, dekking, overeenkomsten en modules
Dragino LPS8 indoor-gatewayLoRaWAN-gateway snel geïnstalleerd
Ontdek ATtiny-microcontrollers met behulp van C en assemblervoorbeeldhoofdstuk: ATtiny I/O-poorten
Project 2.0correcties, updates en brieven van lezers
LoRa GPS-tracker updateontvang en toon de locatie met een Raspberry Pi
Schakelingen simuleren met TINA Design Suite & TINACloudvoorbeeldhoofdstuk: sinusoscillatoren
Uit het leven gegrepenlopendebandwerk
Het WinUI grafische framework voor Windows-appseen kleine demo-applicatie
GUI's maken met Python's Werelds slechtste GUI
Off-grid PV-systeemelektrische energie onafhankelijk van het net
De 10-jaar-smartphonestel uw verwachtingen bij Hexadoku
A Project-Based Introduction to Microcontrollers and Drone Control
A Practical Introduction to Embedded Systems with the ESP32
This book is intended for readers who are new to embedded systems and looking for a structured, example-driven way to begin. If you’ve explored general-purpose electronics or Arduino-based resources but found them too broad or lacking in practical application, this guide offers a more focused alternative.
With a small, affordable set of components – such as LEDs, sensors, an OLED screen and a motion sensor – you’ll build and work with the same hardware setup throughout the book. This allows you to focus on learning and experimenting without constant reconfiguration.
Topics include:
Understanding and programming the ESP32 microcontroller
Using the Arduino IDE to write and deploy code
Exploring cyber-physical systems, culminating in basic drone control
No prior experience with Arduino or embedded development is required. Each section includes hands-on examples and mini-projects designed to reinforce core concepts and encourage deeper exploration. By the end, you’ll be equipped not only to reproduce the book’s examples, but also to extend them toward your own ideas and applications.
Whether your interest is in learning embedded programming, building interactive systems, or exploring educational drone control, this book provides a clear and practical path to getting started.