Errata

In both editions of the book the statement is made "This means with a 16MHz clock and the /8 prescaler we need 2000 counts per interrupt. With a 20MHz clock we need 2500 counts per interrupt." This is on page 69 of the printed book, in the section A Better Timer Setup. However I had made a code improvement that I didn't reflect in this statement. The values /8, 2000, and 2500 should be /2, 8000 and 10,000 respectively.

Errata for First Edition

On the Arduino Nano Every board, the first two digital pins are labeled TX and RX, rather than their digital pin numbers. I had assumed these were D0 and D1 respectively for consistent pin numbering. However I was wrong. These should be D1 and D0. This affects some illustrations and descriptions in the chapter on the USART, the one-wire USART example program, and the pins.h file. However everything is self-consistent. The error would cause a problem if the Arduino library digital pin functions are used for D0 and D1 as they would be backwards.

The second edition (now shipping) corrects this problem.

Instructions for modifying FreeRTOS to run on the Arduino Nano Every can be found here.

Example Programs for Far Inside The Arduino: Nano Every Supplement

Click on the link here to download the files for

The archive contains the 41 example programs, library modifications and the Pins library from the book.

The files with the D0/D1 error are available at this link if you want the original files.

Click on this link for a newer version of the Pins library. All pins are now declared unsigned which means the values of a pin will be 0 or 1 instead of 0 or -1. This is often more code efficient. Additionally there is support for ATmega32U4 based boards like the Arduino Leonardo or Micro. Pins named digital_MOSI, digital_MISO, digital_SCK, and digital_SS have been added since their positions are board dependent.