PREFACE

Since the first edition of this book was released in 2013, some things in the world of Arduino have stayed surprisingly constant and others have changed. The Arduino Uno is still most people’s idea of what an Arduino should be and the Arduino IDE has kept its simple interface, while adding some great new features such as the Library and Board Managers.

However, what has changed is that the word “Arduino” has come to denote a way of programming boards as much as the boards themselves. New Arduino-compatible boards provide a vast variety of hardware to choose from, all of which can be programmed using the Arduino IDE.

The main changes to this edition include the addition of two new chapters:

Chapter 3, “When Is an Arduino Not an Arduino?” This chapter shows you how to use the Arduino IDE with Arduino-compatible boards such as the ESP8266 and ESP32 boards as well as ARM m0 boards such as the Adafruit Circuit Playground Express and Trinket m0 boards.

Chapter 8, “Interfacing with Arduino” This chapter explains the theory behind interfacing with microcontrollers that you will need to understand when working with I2C, SPI, and UART serial.

The “Network Programming” chapter from the first edition (now Chapter 14, “Network and Internet of Things Programming”) has been extensively revised to include both official Arduino network programming and the more widely used ESP8266 and ESP32 WiFi programming. The chapter has also been extended to look at parsing JSON web services and use of the dweet.io IoT service.

Chapter 16, “Managing with One Process,” has gained a new section on designing programs using finite state machine diagrams.

The other chapters of the book have also been given a general update.

Simon Monk