Leanpub Header

Skip to main content

Topics

Embedded Systems and the Internet of Things

From microcontrollers and single-board computers to sensors, buses, firmware design and connected devices, embedded systems and the Internet of Things as told through the free samples of the Leanpub books about them.

Created from the free samples of 15 Leanpub books and the descriptions and tables of contents of 33 more, with every source cited.

An embedded system is a computer built into a device to do one job, or a few, rather than to run whatever its owner installs: the controller in a washing machine, a thermostat, a motor drive, a sensor node. One of the library's textbooks defines it as a computer system designed to perform one or a few dedicated functions, often under real-time constraints, and optimised for low power, small size, reliability and cost rather than generality.[10] At its centre is usually a microcontroller, a single chip holding a processor, memory and the peripherals that connect it to the world, and around that the sensors which, as another book puts it, give the system a glimpse of what is happening in the physical world, so that the microcontroller can decide what to do.[3] The Internet of Things (IoT) is the name for what such devices become once they are given a network connection and report to, or take orders from, something else.

The field has changed shape in a decade. One author recalls that embedded development once meant a control loop for a washing machine or a thermostat, small enough to hold in the head, and that the same thermostat now talks to the cloud, runs a Bluetooth stack, drives a display, manages a battery and takes over-the-air updates, often on one microcontroller.[9] The hardware has become cheap enough to change who does the work: the cheapest 32-bit STM32 parts cost about what an 8-bit chip does,[1] the ESP8266 cut the cost of putting a hobbyist's board on Wi-Fi from about sixty dollars to about six,[4] and a single-board computer the size of a credit card sells for around fifty dollars.[5] The constraints have not gone away. A typical microcontroller has a few hundred kilobytes of memory where a desktop has gigabytes, which is why an algorithm that runs happily on a laptop may be impossible on the device.[10]

This article follows the subject from the chip outward: where to begin, the history, microcontrollers and their boards, single-board computers and bare-metal programming, sensors, the buses that join the parts, the networks and protocols of the Internet of Things, the design of firmware, debugging and security, and the robots, control loops and instruments built with all of it. Its sources are the free samples of the Leanpub books listed at the end, with the descriptions and tables of contents of the books whose samples were not available, and every claim that rests on a source is cited to it. The best-selling books on this shelf, Neil Kolban's notes on the ESP32, the ESP8266 and the Raspberry Pi, publish no sample and no table of contents, so they are described here only as far as their own descriptions go.

Where to start

A reader with no background at all has two routes in. Computer Systems calls itself a journey that needs no experience: it begins with binary numbers and sets as its first goal lighting an LED on real hardware,[6] and its companion, Computer Systems Laboratory, turns each step into a laboratory exercise on a Raspberry Pi.[7] The other route is a kit or a project. A Gentle Introduction to Robotics (2017) is a series of projects for a small educational robot programmed with blocks,[28] and Malcolm Maclean's guides, which he says are not written for experts, take one board and one task at a time: Raspberry Pi Pico Tips and Tricks for the Raspberry Pi Pico and MicroPython,[20] and the Raspberry Pi Computing series, such as Raspberry Pi Computing: Temperature Measurement, for a Pi with a sensor attached.[21] ESP8266 Weather Station (2018) is a first Internet of Things project, a Wi-Fi weather display, written by the author of the code it explains.[4] Instant Raspberry Pi (2016) covers only the setting up of a Raspberry Pi and assumes a decent knowledge of computers,[5] and Build, Think, & Create with Raspberry Pi in the Classroom (2016) is addressed to teachers.[27]

Programmers can start from the language they have. Java Programming for Raspberry Pi drives LEDs, displays and sensors from Java, with a crash course in Linux commands and a good deal about Java itself;[25] Programming the Raspberry Pi with Perl (2018) is meant for Perl programmers expanding into hardware;[26] Nodebots - Javascript and robotics in the real world (2020) does it from Node.js;[12] and Using Sensors with the Raspberry Pi Pico asks for basic C or Python.[3] A reader who needs C first, the language most of this shelf assumes, could begin with C From Scratch, which teaches it from the start for people moving into embedded or safety-critical work.[44]

The step from hobby boards to professional microcontrollers is the one Mastering STM32 - Second Edition is written for: its ideal reader is a hobbyist or student who knows Arduino and wants a more powerful architecture, or a professional handed a microcontroller they do not know, and it assumes C and basic digital electronics.[1] Knowing the RP2040 describes itself as an intermediate book for a reader with a little microcontroller experience and the basics of C,[2] and Wired Protocols in Embedded Systems starts from voltage levels and is pitched at engineers, students and hobbyists alike.[8] For working firmware engineers the shelf's design books take over: Beyond Blinky assumes embedded C or C++ and addresses those ready, in its words, to grow past blinking LEDs;[9] Runtime Patterns for Embedded Systems is for projects that have outgrown a main loop and an interrupt routine or two;[37] and Security Architecture for Modern Embedded Systems is written for engineers, architects and technical leads who build real devices.[46]

History

Computers were being built into machines before there were personal computers: the guidance computer of the Apollo spacecraft, in the 1960s, is the usual first example. The microcontroller, a processor with its memory and its input and output on one chip, arrived in the early 1970s, and through the 1980s and 1990s 8-bit families such as Intel's 8051, Microchip's PIC and Atmel's AVR went into appliances, cars and toys by the billion. The phrase Internet of Things was coined in 1999 by Kevin Ashton, for goods tracked by radio tags. Two later events opened the field to people who were not electronics engineers: Arduino, begun in Italy in 2005 as a board and a simple programming environment for design students, and the 32-bit Arm Cortex-M cores, licensed to chip makers from the mid-2000s, which made a common architecture cheap.

The library's books pick up the story with the boards. A single-board computer, one says, is a complete computer on one printed circuit board; the first is taken to be the Dyna-Micro of 1976, built on an Intel 8080, many early home computers were single-board machines, and the form declined with the rise of the PC before returning after 2010 as production costs fell.[5] The Raspberry Pi Foundation was formed in 2009 to promote the teaching of computer science, and its first computer, released in 2012, sold more than two million units in two years.[5] The ESP8266, from the Chinese manufacturer Espressif, became popular at the end of 2014, first as a cheap Wi-Fi add-on for other boards; its development kit was poorly documented, enthusiasts worked it out for themselves, the NodeMCU firmware made the chip scriptable in Lua, and a few months later it could be programmed from the Arduino environment.[4] Kolban's notes on its successor, the ESP32, were written because he found only small pockets of knowledge in the community and official documents that were light on examples.[16]

The professional side moved as well. In 2015 a complete toolchain for the STM32 was hard to assemble without a paid compiler licence; by the time of the book's second edition the manufacturer had bought a tools company and released a free official environment, and the family had grown from nine lines and about 500 part numbers to eighteen lines and more than 1,200.[1] In January 2021 the Raspberry Pi Foundation announced the Pico, a microcontroller board built around a new chip, the RP2040, which partner companies put on boards of their own at the same time; more than a dozen such boards followed.[2]

Microcontrollers and their boards

A microcontroller differs from a computer in kind as well as in size, a distinction Raspberry Pi Pico Tips and Tricks gives a chapter to before it introduces its board.[20] The best-known name in the hobby is Arduino, which, as Mastering STM32 - Second Edition points out, is neither a chip family nor a manufacturer but a brand and an ecosystem: dozens of boards, some 8-bit and some 32-bit, a development environment and a large body of libraries. The board most people mean by the name is the UNO, built around the 8-bit ATmega328. The same author says Arduino is fit for professional products, having shipped boards developed that way, and that the reasons to move on are the wish for more than 8 bits and for a view of what the environment hides.[1]

STM32 and the Arm Cortex-M

Mastering STM32 - Second Edition is the largest book on the shelf with a sample, about 900 pages on programming STMicroelectronics' microcontrollers through the manufacturer's own tools: the STM32CubeIDE, the CubeMX configuration tool and the CubeHAL library, tried out on Nucleo development boards. Its chapter summaries read as a map of what a microcontroller contains. After the first blinking LED, which it calls the Hello World of hardware, come the general-purpose pins, the interrupt controller, the serial port, direct memory access, the clock tree, timers in their many modes, converters between analogue and digital, the I2C and SPI buses, watchdogs, the real-time clock and the low-power modes; then the memory layout and a linker script written from scratch, the flash memory, the boot sequence with a bootloader that takes encrypted firmware over the serial port, the FreeRTOS real-time operating system, USB, and the design of a custom circuit board. The author is clear that the book does not replace the manufacturer's datasheets, one of which, he notes, runs to nearly three thousand pages for a single device.[1]

The tools around such chips are a subject of their own. Cross-Platform Cortex-M Development (2020) argues that commercial development environments have become costly and slow to learn, and assembles a free one for Cortex-M work from Visual Studio Code, the Arm compiler tools, a make file and the OpenOCD debug server, on macOS, Linux and Windows.[41]

The RP2040 and the Raspberry Pi Pico

Knowing the RP2040 explains the chip inside the Raspberry Pi Pico subsystem by subsystem, on the grounds that the official documentation says what things are more than why they matter or how to use them. The sampled overview describes two Arm Cortex-M0+ cores with 264 kilobytes of memory; a block that gives both cores fast, deterministic access to the pins; two internal buses; a clock system fed by an imprecise internal oscillator or an external crystal; a small factory-programmed memory that makes the chip appear as a USB drive, so that software can be copied to it; and program storage in an external flash chip, from which code runs in place through a cache. The feature the author calls somewhat magical is the programmable input and output block: small state machines that run short programs alongside the processor, so that signalling which other chips must produce by toggling pins from software, known as bit-banging, is produced with precise timing and little processor effort.[2]

The same author's Using Sensors with the Raspberry Pi Pico notes that the chip is powerful enough to run MicroPython and CircuitPython as well as C and C++, and weighs them: C and C++ give performance and predictability at the cost of more code, MicroPython gives ease of use, and CircuitPython, a derivative of it, eases moving code between boards.[3] Raspberry Pi Pico Tips and Tricks (2024) takes the MicroPython route with the Thonny editor, one short chapter to each sensor, motor or display.[20]

The ESP8266 and ESP32

The two best-selling books on the shelf are Kolban's book on ESP32 (2018), more than 1,200 pages of one developer's collated notes on the ESP32 and its manufacturer's development kit,[16] and its predecessor on the ESP8266, Kolban's Book on the ESP32 & ESP8266 (2016).[17] Neither has a sample or a table of contents, so nothing more can be said of their contents here. ESP8266 Weather Station shows what the chip is used for. Its sample recommends a beginner's module with a USB connector already fitted, such as the NodeMCU, explains that what matters about a small display is its driver chip and whether it speaks I2C or SPI, installs the serial driver and the Arduino environment, and proves the setup by scanning for Wi-Fi networks; the rest of the book, by its contents, covers pins, interrupts, analogue readings, HTTP, a temperature and humidity sensor, and the weather station itself, which fetches its data from a weather service on the web.[4]

Single-board computers and the Raspberry Pi

Where a microcontroller runs one program, a single-board computer runs an operating system, usually Linux, and can be programmed in almost any language. Instant Raspberry Pi defines the type, a complete computer on one board with processor, memory and input and output and no room for upgrades, surveys the families that followed the Raspberry Pi, among them the Banana Pi, the Cubieboard and Intel's Galileo, and explains the system on a chip, the single integrated circuit holding all the components of a computer, on which such boards and mobile phones are built. Its description of the Pi as usable either as a general-purpose Linux computer or as a platform for the Internet of Things is the reason the board appears throughout this subject.[5] Kolban's Book on the Raspberry Pi (2016) is Kolban's reference notebook on the Raspberry Pi, 565 pages meant to be consulted rather than read through,[18] and Kolban's Book on C.H.I.P. (2016) his notes on C.H.I.P., a board he describes as among the cheapest on the market while still full featured.[19]

Much of the Raspberry Pi shelf is about reaching the pins from a language the reader already knows. Java Programming for Raspberry Pi (2026) uses the Pi4J library to drive LEDs, buttons, displays and sensors, builds user interfaces in JavaFX and web applications in Spring, and exchanges messages with Arduino boards over serial links and message queues.[25] Programming the Raspberry Pi with Perl works through the general-purpose pins and pulse-width modulation, servo control, the I2C and SPI buses and a GPS receiver on the serial port, and ends by opening a garage door over the network.[26] Build, Think, & Create with Raspberry Pi in the Classroom places the board in the maker movement in schools, with physical computing in Scratch and Python beside coding and Minecraft.[27]

Bare metal, programming without an operating system

The opposite approach is to run nothing but one's own code. Computer Systems calls the software that sits between hardware and applications system software, the part that talks to a device a driver, and the first attempt to run either on new hardware a bring-up; its opening argument is that hardware without software is so much hazardous waste, and software without hardware meaningless text. It builds upward from binary numbers through assembly language and C, and its contents continue to pin, timer and serial drivers, a bootloader, a small operating system and a video game.[6] The laboratory companion explains why the Raspberry Pi suits the exercise: the board starts whatever image it finds on a removable memory card, so a student's own program can be copied to the card under the name of the Linux kernel it replaces, and a second Pi running Linux serves as the workstation, wired to the first through the pin header with no soldering.[7] Bare Metal Computing X64 Edition (2026) applies the same idea to PC-class processors, from instruction encoding and processor modes to interrupts, timers and scheduling with no operating system underneath, which places it beside this subject rather than in it.[48]

Sensors and measurement

Sensors are where most projects begin and where the difficulties are least expected. Using Sensors with the Raspberry Pi Pico divides sensor interfaces into analogue, a voltage that the microcontroller's converter turns into a number, and digital, anything from a single on-or-off line to an exchange of commands and data, and then spends a chapter on why a reading is not yet a measurement. Its example is the temperature sensor inside the RP2040 itself: it reports the temperature of the chip, well above that of the room and rising when the processor is busy, so placement decides what is being measured; and a sensor wired into a circuit to measure current or voltage changes the circuit. The book's plan is to explain how each sensor works, on the reasoning that parts come and go and the understanding carries over.[3]

Maclean's Raspberry Pi Computing books each take one kind of sensor through the same three stages, measure, record and explore, on a Pi that also runs the database and web server: a digital temperature probe in Raspberry Pi Computing: Temperature Measurement,[21] a light-dependent resistor read through an analogue-to-digital converter in Raspberry Pi Computing: Analog Measurement,[22] an ultrasonic distance sensor in Raspberry Pi Computing: Ultrasonic Distance Measurement,[23] and gas sensors in Raspberry Pi Computing: Gas Sensors.[24] A large share of each is the same account of setting up the Pi. Sensed: Accelerometers (2017) is a short guide to one sensor, built on recorded data from simple experiments, a push, a drop, a walk with the sensor in a pocket, and on the misconception that velocity and position can simply be read off an accelerometer.[30]

What to do with noisy readings is the subject of Kalman Filters Made Easy, on combining imperfect measurements with a model's predictions,[31] and AlgoEmbedded shows the cheapest remedy in code: a median taken over a rolling window of five samples, sorted with an insertion sort because, for so few values, the simplest method is the best.[10]

Buses, how the parts talk

Inside a device the microcontroller reaches its sensors, memory and radios over a handful of standard wired buses. Wired Protocols in Embedded Systems classifies them four ways: by medium; by whether traffic flows one way, both ways in turn or both at once; by whether a separate clock line marks when the data is valid; and by whether bits travel one at a time or several abreast. A UART, it explains, has no clock line and works only because both ends are set in advance to the same speed, and it is often run in one direction only, as a channel for debug output. Its worked example is a cargo tracker in which each part uses the bus that suits it: a temperature sensor on 1-Wire, a GPS module on a UART, flash memory on SPI for speed, and an accelerometer and gyroscope sharing an I2C bus. The book teaches 1-Wire first because the ideas it needs, addressing and arbitration, return in I2C and its successor I3C, and its contents continue outward to the links that leave the board: RS-485, CAN, USB and Ethernet.[8]

The other books meet the same buses from the programmer's side. Mastering STM32 - Second Edition gives a chapter each to the UART, I2C, SPI and USB;[1] the RP2040's programmable input and output exists to implement such protocols in hardware;[2] and Beyond Blinky builds its whole argument on the observation that the bus is not a property of the device: asked whether a temperature sensor is an I2C or an SPI part, the reader is meant to find the question wrong.[9]

Connecting devices, the Internet of Things

A device joins the Internet of Things when its readings leave the board. A beginner's booklet on the fourth industrial revolution, 4th Industrial Revolution (2020), lists the Internet of Things beside cloud computing, artificial intelligence and 5G and describes smart systems as built from sensors, databases and wireless access;[15] Sensing as a Service for Internet of Things: A Roadmap (2018) proposes going a step further and treating the sensing itself as a service offered on top of the device ecosystem.[29] The practical books divide by the kind of network.

Wi-Fi and long-range radio

The ESP8266 made Wi-Fi the default for hobby devices, and the weather station is the pattern: join the home network, fetch or post data over HTTP, show the result.[4] A board without a network interface can be given one, as Mastering STM32 - Second Edition does with an external network chip, serving web pages from it.[1] Where there is no Wi-Fi and little power, IoT Networks with LoRaWAN (2019) describes LoRa, a radio modulation that it says carries data very efficiently over distances of up to twelve kilometres, and LoRaWAN, the network built on it, with its nodes, gateways and application servers and code examples for Arduino and Arm boards.[34]

Industrial protocols

In factories and buildings the devices are already there and speak older protocols. PLUS for Node-RED - Contribution Modbus (2026) presents Modbus as an industrial Internet of Things protocol, widely used in automation, energy systems and buildings, and documents a package that brings it into Node-RED, a flow-based tool the authors recommend as a starting point that needs no code; the book is aimed at technicians giving existing machines new uses, and is pinned to one major version of the package, with a new book promised for the next.[11] Node-OPCUA by example Edition 2024 does the equivalent for OPC UA, the industrial standard with an address space, subscriptions, alarms and certificates, in JavaScript and TypeScript.[35]

Cloud platforms and fleets

At scale the problem becomes managing the devices rather than building one. Mastering AWS IoT Core: A Practical Guide to Connecting, Securing, and Managing IoT Devices at Scale (2026) works from a single Raspberry Pi up to a fleet on one cloud provider's platform: the common protocols, MQTT, HTTP and CoAP; an identity for each device; device shadows, the cloud's record of a device's last known and desired state; rules that route telemetry onward; and then provisioning in bulk, over-the-air updates, computing at the edge and security auditing.[36]

Designing firmware

David Clifton's short books treat firmware as a design problem. Runtime Patterns for Embedded Systems starts from the claim that four projects in five need only a main loop that calls functions and an interrupt routine or two, and catalogues eight patterns for the rest: a program that resets itself before every pass so that hidden faults cannot accumulate, as control software for surgical devices sometimes does; state machines for processes that outlast a single call; event lists and queues for things that happen at random or at different rates; a message pump; and fibers, a form of cooperative multitasking.[37] Embedded Software Architecture defines architecture as the work of selecting, adapting and packaging code that arrives from many places, vendor libraries, examples, earlier products, and illustrates it with three designs, among them a GPS tracker and a remote sensor on LoRa;[38] Embedded Software Design follows a temperature-sensing project from requirements to module diagrams and a design review;[39] and How To Develop Embedded Software takes one project, a digital trombone, through the whole process, including the estimating of effort.[40]

C++ and code generation

C remains the working language of microcontrollers, and the argument over C++ is carried on in the shelf's newest books. Beyond Blinky opens by dismantling the objections. Large C codebases, it shows with a board carrying four sensors, drift towards a structure of function pointers for each driver and an array of such structures to loop over, which is what a C++ virtual class compiles to; the slowness people remember is that of a convenience function on a hobby board, which the book puts at about a hundred times slower than writing the port register directly, not of the language; and dynamic memory is permitted by C++, not required, so drivers can be allocated statically. Its own rules are no standard template library, no exceptions and no heap in time-critical paths.[9] C++ for Embedded Systems (2026) covers the ground as a course, from hardware interfaces and interrupts to real-time operating systems, low power and connectivity, each subsection with a code sample and exercises.[42]

Mark E. Wilson's Designing Deterministic Systems with Modern C++ (2026) develops embedded software on an ordinary Linux machine before any hardware exists, aiming at bounded execution and explicit ownership, around a weather-reporting device that emits its data in three formats;[43] his shorter Raising the Level of Abstraction argues that modelling tools failed because they redrew the programming language in boxes, and proposes describing a system by its measurements, queues and processing stages and generating the C++ from that.[13] C From Scratch (2026) brings the discipline of aerospace and medical certification to plain C: define what correct means, design the data so that invalid states cannot be expressed, then write and test.[44]

Algorithms under constraints

AlgoEmbedded (2026) is a textbook of data structures and algorithms rewritten for the microcontroller, where each choice is judged by memory, power and worst-case timing as well as speed. Its opening examples make the case in numbers: on an 80 MHz processor a path across a fifty-by-fifty grid is found by A* search in under a millisecond; a control loop for a six-axis robot arm running a thousand times a second leaves 350 microseconds spare once the encoders are read, the kinematics computed and the motors commanded; and a waypoint list is a fixed array of 64 eight-byte entries, because a device with 192 kilobytes of memory cannot allocate as a desktop does.[10]

Debugging, testing and security

A program on a microcontroller cannot print to a screen that is not there. The standard way in is JTAG, the subject of Diving into JTAG (2026): the test access port and its state machine defined by the IEEE 1149.1 standard, the instructions that identify a chip and scan the pins at its boundary, debugging a real microcontroller through it, and the use of the same port by attackers and the ways of closing it. The author states that the same material is free in his published articles.[45] The chip books cover the everyday tools: Mastering STM32 - Second Edition redirects the C library's input and output to a serial port, and later reads the processor's fault registers to trace a crash to its source,[1] and the RP2040's serial wire debug port lets an external probe load code, control execution and inspect memory.[2]

Testing can also be moved off the hardware. Nodebots - Javascript and robotics in the real world treats a hardware project as a software project, with a test suite and continuous integration servers checking every change on Linux, macOS and Windows;[12] Beyond Blinky counts firmware that can be unit-tested on a PC before the board exists among its aims,[9] and that is the whole method of Designing Deterministic Systems with Modern C++.[43]

Security is the newest concern. Security Architecture for Modern Embedded Systems (2026) holds that it cannot be added afterwards, because embedded products live for years, have little spare capacity, can be handled physically by an attacker and are hard to patch; it teaches a threat model of assets, attacker capabilities and trust boundaries first, and its description goes on to secure boot, keys, updates and debug access, though the chapters published so far stop at threat modelling.[46] For the owner of such devices rather than the maker, Safer @ Home with pfSense® (2026) includes, among its recipes for a home firewall, one for isolating Internet of Things devices from the rest of the network.[47]

Robots, control and instruments

Embedded boards are also how software first moves something. A Gentle Introduction to Robotics builds up from switching LEDs through sensors and motors to a line follower, a sumo robot and a maze solver, with chapters on the development process along the way.[28] Nodebots - Javascript and robotics in the real world drives an Arduino from Node.js through the Firmata protocol and the Johnny-Five library, and connects sensor events to web services.[12] The theory behind motion is in Control Systems Made Easy (2026), from feedback loops and PID tuning to digital control, with applications to robot arms, self-balancing robots and quadrotors,[32] and AlgoEmbedded prints the corresponding code, a PID loop for six joints with a clamp on the integral term and a check that the calculation met its deadline.[10] Battery Management Systems Made Easy (2026) concerns the microcontroller that guards a lithium-ion pack, estimating charge and health and balancing cells.[33]

Several of the shelf's examples are musical. Getting Started with Axoloti (2016) introduces an open-source board on which synthesisers, drum machines and effects are assembled by connecting objects on screen and uploading the result, with a last chapter on wiring controls and sensors;[14] Clifton's worked projects are a digital trombone and a digital theremin on STM32 boards;[40][41] and the robot book includes a theremin played through an ultrasonic sensor.[28]

Sources

Every source is a Leanpub book. The note after each says which part of it was read; where no sample was available, only the public description and table of contents were used.

  1. 1.
    Mastering STM32 - Second Edition, Carmine Noviello: A step-by-step guide to the most complete ARM Cortex-M platform, using the official STM32Cube development environment Free sample: the preface, the intended reader, the aside on Arduino, one-paragraph summaries of all 28 chapters and the notes on the second edition. 2025. Free sample: PDF · EPUB
  2. 2.
    Knowing the RP2040, Daniel Quadros: A Guide for Programmers Free sample: the introduction and the architecture overview, processor subsystem, buses, address map, clocks, memory, programmable input and output and peripherals; later chapters are headings only. 2023. Free sample: PDF · EPUB
  3. 3.
    Using Sensors with the Raspberry Pi Pico, Daniel Quadros Free sample: the introduction to the Pico and its languages, the opening of the chapter on using sensors and the general view of analogue and digital interfaces; most other sections are withheld. 2023. Free sample: PDF · EPUB
  4. 4.
    ESP8266 Weather Station, Daniel Eichhorn: Getting Started Guide Free sample: the introduction on the ESP8266's history, the required hardware and the tool setup up to the Wi-Fi scanner test. 2018. Free sample: PDF · EPUB
  5. 5.
    Instant Raspberry Pi, Ashwin Pajankar: The Beginner's Guide to Raspberry Pi setup Free sample: the preface, chapter one on single-board computers and the system on a chip, and the start of chapter two on the Raspberry Pi models. 2016. Free sample: PDF · EPUB
  6. 6.
    Computer Systems, Sean Lawless: Incremental Systems Engineering Free sample: the opening of chapter one, the introduction to system software and the sections on binary and hexadecimal numbers. 2019. Free sample: PDF · EPUB
  7. 7.
    Computer Systems Laboratory, Sean Lawless: for Raspberry Pi Free sample: Lab 1 on why the Raspberry Pi is used, its hardware, protecting and powering it, and the start of Lab 2 on the command shell. 2019. Free sample: PDF · EPUB
  8. 8.
    Wired Protocols in Embedded Systems, Aliaksandr Kavalchuk: A Comprehensive Guide to Wired Embedded Protocols Free sample: the chapter openers, the introduction classifying communication protocols, the cargo-tracker example and the start of the chapter on logic levels. 2026. Free sample: PDF · EPUB
  9. 9.
    Beyond Blinky, Nguyen Hoan Hoang: Object-Oriented C++ Programming for Embedded Systems Free sample: the table of contents, the preface and chapter one on four myths about C++ in embedded systems, with its C and C++ sensor examples. 2025. Free sample: PDF
  10. 10.
    AlgoEmbedded, Tri-Vien Vu: Data Structures and Algorithms for Embedded Systems Free sample: the preface and the introductory chapter, four worked examples of why algorithm choice matters on a microcontroller, the fundamentals and the robotics examples. 2026. Free sample: PDF
  11. 11.
    PLUS for Node-RED - Contribution Modbus, Klaus Landsdorf (Iniationware, P4NR), Kay Grewe, Mohammed Yachou, JohnOtten: The Open Source Modbus Tools Free sample: the edition note, the introduction to Modbus and the package, the intended reader and the update policy; later chapters are mostly headings. 2026. Free sample: PDF · EPUB
  12. 12.
    Nodebots - Javascript and robotics in the real world, Wilson Mendes Free sample: the introduction and a section on continuous integration across operating systems; no hardware chapter. 2020. Free sample: PDF · EPUB
  13. 13.
    Raising the Level of Abstraction, Mark E. Wilson: Deterministic Code Generation for C++ Free sample: one chapter, on why UML failed as a development abstraction and what a system-level model looks like. 2026. Free sample: PDF
  14. 14.
    Getting Started with Axoloti, Jan Vantomme Free sample: the preface and chapter one, building a monophonic synthesiser patch step by step. 2016. Free sample: PDF · EPUB
  15. 15.
    4th Industrial Revolution, Ahmad Manzoor Free sample: the title pages, the contents list and two short definitions; the Internet of Things section itself is not in it. 2020. Free sample: PDF
  16. 16.
    Kolban's book on ESP32, Neil Kolban No sample: from the description alone; the table of contents is empty. 2018.
  17. 17.
    Kolban's Book on the ESP32 & ESP8266, Neil Kolban No sample: from the description alone, which covers only the ESP8266; the table of contents is empty. 2016.
  18. 18.
    Kolban's Book on the Raspberry Pi, Neil Kolban No sample: from the description alone; the table of contents is empty. 2016.
  19. 19.
    Kolban's Book on C.H.I.P., Neil Kolban No sample: from the description alone; the table of contents is empty. 2016.
  20. 20.
    Raspberry Pi Pico Tips and Tricks, Malcolm Maclean No sample: from the description and table of contents. 2024.
  21. 21.
    Raspberry Pi Computing: Temperature Measurement, Malcolm Maclean: Measure, record and display temperatures with a Raspberry Pi computer No sample: from the description and table of contents. 2021.
  22. 22.
    Raspberry Pi Computing: Analog Measurement, Malcolm Maclean: Measure, record and present data using analog sensors with a Raspberry Pi computer No sample: from the description and table of contents. 2020.
  23. 23.
    Raspberry Pi Computing: Ultrasonic Distance Measurement, Malcolm Maclean: Measure, record and present distance using an ultrasonic distance sensor with a Raspberry Pi computer No sample: from the description and table of contents. 2020.
  24. 24.
    Raspberry Pi Computing: Gas Sensors, Malcolm Maclean No sample: from the description and table of contents. 2020.
  25. 25.
    Java Programming for Raspberry Pi, Frank Delporte: A Hands-On Guide to Electronics and IoT Projects (2026 edition) No sample: from the description and table of contents. 2026.
  26. 26.
    Programming the Raspberry Pi with Perl, Timm Murray, Steve Bertrand No sample: from the description and table of contents. 2018.
  27. 27.
    Build, Think, & Create with Raspberry Pi in the Classroom, Michael C. Renne: A Teacher Toolkit Full Of Practical Advice and Curriculum Connections No sample: from the description and table of contents. 2016.
  28. 28.
    A Gentle Introduction to Robotics, Charles McKnight: Volume 1 : mBlock and the mBot No sample: from the description and table of contents. 2017.
  29. 29.
    Sensing as a Service for Internet of Things: A Roadmap, Charith Perera No sample: from a two-sentence description; the table of contents is empty. 2018.
  30. 30.
    Sensed: Accelerometers, Hamid Mokhtarzadeh: An Understanding for Farms, Phones, and Drones No sample: from the description and table of contents. 2017.
  31. 31.
    Kalman Filters Made Easy, Alex Morgan: A Practical, Intuitive Guide to Noise, Uncertainty, and Sensor Fusion for Engineers, Makers, and Robotics Developers No sample: from the description alone; the table of contents is empty. 2026.
  32. 32.
    Control Systems Made Easy, Alex Morgan : A Practical Engineer's Guide to Feedback, Stability, PID Control, State Space Systems, and Real-World Automation No sample: from the description and a table of contents that still carries template placeholder sections. 2026.
  33. 33.
    Battery Management Systems Made Easy, Alex Morgan : A Practical Engineer's Guide to Designing, Building, and Validating Lithium-Ion Battery Management Systems No sample: from the description alone; the table of contents is empty. 2026.
  34. 34.
    IoT Networks with LoRaWAN, Bernd Wiegmann No sample: from the description and table of contents. 2019.
  35. 35.
    Node-OPCUA by example Edition 2024, Etienne Rossignon: Node-OPCUA From Basics to Expertise - Crafting Effective Client and Server Applications in Industrial Communication with JavaScript and TypeScript No sample: from the description and table of contents. 2025.
  36. 36.
    Mastering AWS IoT Core: A Practical Guide to Connecting, Securing, and Managing IoT Devices at Scale, BELKALEM Jugurtha No sample: from the description and table of contents. 2026.
  37. 37.
    Runtime Patterns for Embedded Systems, David Clifton: Modules and Examples with Complete Source Code for STM32F7 Discovery Board and ARM Cortex-M7 No sample: from the description and table of contents. 2023.
  38. 38.
    Embedded Software Architecture, David Clifton No sample: from the description and table of contents. 2023.
  39. 39.
    Embedded Software Design, David Clifton: with Remote Temperature Sensing Example No sample: from the description and table of contents. 2023.
  40. 40.
    How To Develop Embedded Software, David Clifton: A Case Study No sample: from the description and table of contents. 2023.
  41. 41.
    Cross-Platform Cortex-M Development, David Clifton: With Visual Studio Code No sample: from the description and table of contents. 2020.
  42. 42.
    C++ for Embedded Systems, gareth thomas: With Exercises and Code Samples for Intermediate Developers No sample: from the description and table of contents. 2026.
  43. 43.
    Designing Deterministic Systems with Modern C++, Mark E. Wilson: Host-First Development on Linux No sample text: the sample could not be downloaded, so from the description and table of contents. 2026. Free sample: PDF
  44. 44.
    C From Scratch, William Murray: Prove it works before you write it. No sample: from the description and table of contents. 2026.
  45. 45.
    Diving into JTAG, Aliaksandr Kavalchuk: A Comprehensive Guide to Debugging, Testing, and Securing Embedded Systems with JTAG Protocol No sample: from the description and table of contents. 2026.
  46. 46.
    Security Architecture for Modern Embedded Systems, Matteo Trovo: A Design-First Approach to Embedded Cybersecurity No sample: from the description and a table of contents that so far covers Part I. 2026.
  47. 47.
    Safer @ Home with pfSense®, Michael Lines: Recipes to secure your home and family's internet experience No sample: from the description and its list of recipes. 2026.
  48. 48.
    Bare Metal Computing X64 Edition, gareth thomas: Low Level Coding of Native Instructions No sample: from the description and table of contents. 2026.

Further reading

Other books in the library on the same ground, not cited above.

This is an article created from the free samples of 15 Leanpub books and the descriptions and tables of contents of 33 more. We're building these articles to provide you, the Leanpub reader, with a good jumping-off point to discover more Leanpub books that are interesting and relevant to you. We never use material which is paid-only when building these articles: we only use material which is already free on Leanpub. However, Leanpub authors can opt out from inclusion in articles from their book settings page.

Updated November 2026.

In the Leanpub store: 73 books in the Embedded Systems category · also filed under Internet of Things, Arduino, Raspberry Pi, Raspberry Pi, Home Automation, Smart Home, Gadgets

All topics