Let's investigate the inner-workings of your Arduino. It appears to be a simple machine, but it is not. Much effort has been invested to make it easy to learn and use. Unfortunately, these good intentions can mask some of the Arduino's underlying capabilities. You suspected that there was more, much more, under the simplistic veneer.
You were right.
This book is about how Arduino actually works. The Arduino is a successful composite of design decisions that has evolved over time. By giving you a more in-depth understanding of the complex technologies involved, you will see the Arduino "internals" as elements to be changed and re-arranged to suit your design goals.
Arduino Internals guides you to the heart of the Arduino board. Author Dale Wheat shares his intimate knowledge of the Arduino board—its secrets, its strengths and possible alternatives to its constituent parts are laid open to scrutiny in this book. You'll learn to build new, improved Arduino boards and peripherals, while conforming to the Arduino reference design.
Arduino Internals begins by reviewing the current Arduino hardware and software landscape. In particular, it offers a clear analysis of how the ATmega8 board works and when and where to use its derivatives. The chapter on the "hardware heart" is vital for the rest of the book and should be studied in some detail.
Furthermore, Arduino Internals offers important information about the CPU running the Arduino board, the memory contained within it and the peripherals mounted on it. To be able to write software that runs optimally on what is a fairly small embedded board, one must understand how the different parts interact. Later in the book, you'll learn how to replace certain parts with more powerful alternatives and how to design Arduino peripherals and shields.
Since Arduino Internals addresses both sides of the Arduino hardware-software boundary, the author analyzes the compiler toolchain and again provides suggestions on how to replace it with something more suitable for your own purposes. You'll also learn about how libraries enable you to change the way Arduino and software interact, and how to write your own library implementing algorithms you've devised yourself. Arduino Internals also suggests alternative programming environments, since many Arduino hackers have a background language other than C or Java.
Of course, it is possible to optimize the way in which hardware and software interact—an entire chapter is dedicated to this field.
Arduino Internals doesn't just focus on the different parts of Arduino architecture, but also on the ways in which example projects can take advantage of the new and improved Arduino board. Wheat employs example projects to exemplify the hacks and algorithms taught throughout the book.
Arduino projects straddling the hardware-software boundary often require collaboration between people of different talents and skills which cannot be taken for granted. For this reason, Arduino Internals contains a whole chapter dedicated to collaboration and open source cooperation to make those tools and skills explicit.
One of the crowning achievements of an Arduino hacker is to design a shield or peripheral residing on the Arduino board, which is the focus of the following chapter. A later chapter takes specialization further by examining Arduino protocols and communications, a field immediately relevant to shields and the communication between peripherals and the board.
Finally, Arduino Internals integrates different skills and design techniques by presenting several projects that challenge you to put your newly-acquired skills to the test!
Please note: the print version of this title is black & white; the eBook is full color.