Raspberry Pi IoT In Python Using Linux Drivers 2nd ed


Program Listings


First Edition Resources



ISBN: 978-1871962864

Buy from: Amazon

The Raspberry Pi makes an ideal match for the Internet of Things. To put it to good use in IoT you need two areas of expertise, electronics and programming, and this presents a barrier to getting started. However, there is an overlooked route that can provide a shortcut. Pi OS, the Raspberry Pi’s operating system, is Linux- based and Linux drivers are available for many off-the-shelf IoT devices. Using Linux drivers saves the effort of implementing low-level code and has the advantage of working the same on all versions of the Pi, including the recently launched Pi 5 which isn’t hardware compatible with earlier versions.

This Second Edition has been updated to cover the Pi 5 and also the Pi Zero 2W, which is an ideal candidate for use in IoT projects. It has also been updated to use the latest versions of Pi OS, Bullseye and Bookworm. Throughout this book you will find a practical approach to understanding electronic circuits and datasheets and translating this to code, specifically using Python and VS Code.

The first IoT program anyone writes is “Blinky” to flash an LED and this book is no exception, but it might not be quite what you expect. Instead of using a GPIO line driver, it uses the Linux LED driver. The GPIO isn’t left out, however, as the next three chapters focus on its use via the GPIO character driver, which replaces the old, but very common, sysfs GPIO driver. This is the way to do modern GPIO.

A key component in any look at Linux and its relationship to hardware is the relatively new Device Tree. While most accounts of this resource are aimed at device driver writers, this one is aimed at device driver users and to this end we look at several devices, including the DHT22 temperature and humidity sensor. After a brief detour into some basic electronics, we see how Pulse Width Modulation is supported via a driver. From here we tackle the two standard buses, I2C and SPI, first going through the basics and then looking at the two attempts to impose a higher organization, the hardware monitoring system, hwmon, and Industrial I/O, IIO. The 1-Wire bus is also covered in detail. The final chapter takes things to the next level and considers creating your own custom overlays by writing fragments to the device tree.

Harry Fairhead’s other books include Applying C For The IoT With LinuxProgramming the Raspberry Pi Pico/W, 2nd EdRaspberry Pi IoT in C, 3rd EdRaspberry Pi IoT in C Using Linux Drivers, 2nd EdProgramming the Raspberry Pi Pico/W, 2nd Ed and Programming the ESP32 in MicroPython.

Mike James is the author of the Programmer's Python: Something Completely Different series of books and several other programming and computer science titles in the I Programmer Library.


  • Publisher ‏ : ‎ I/O Press (January 23, 2024)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 284 pages
  • ISBN-10 ‏ : ‎ 1871962862
  • ISBN-13 ‏ : ‎ 978-1871962864
  • Item Weight ‏ : ‎ 1.38 pounds
  • Dimensions ‏ : ‎ 7 x 0.64 x 10 inches


  • Publisher ‏ : ‎ I/O Press (January 24, 2024)
  • Language ‏ : ‎ English
  • Hardcover ‏ : ‎ 284 pages
  • ISBN-10 ‏ : ‎ 187196217X
  • ISBN-13 ‏ : ‎ 978-1871962178
  • Item Weight ‏ : ‎ 1.38 pounds
  • Dimensions ‏ : ‎ 7 x 0.83 x 10 inches


  • ASIN ‏ : ‎ B0CT46R6LF
  • Publisher ‏ : ‎ I/O Press; 2nd edition (January 22, 2024)
  • Publication date ‏ : ‎ January 22, 2024
  • Language ‏ : ‎ English
  • File size ‏ : ‎ 15803 KB