This textbook provides practicing scientists and engineers a primer on the Atmel AVR microcontroller. Our approach is to provide the fundamental skills to quickly get up and operating with this internationally popular microcontroller. The Atmel ATmega16 is used as a representative sample of the AVR line. The knowledge you gain on the ATmega16 can be easily translated to every other microcontroller in the AVR line. We cover the main subsystems aboard the ATmega16, providing a short theory section followed by a description of the related microcontroller subsystem with accompanying hardware and software to exercise the subsytem. In all examples, we use the C programming language. We conclude with a detailed chapter describing how to interface the microcontroller to a wide variety of input and output devices.


This textbook provides practicing scientists and engineers an advanced treatment of the Atmel AVR microcontroller. This book is intended as a follow on to a previously published book, titled "Atmel AVR Microcontroller Primer: Programming and Interfacing." Some of the content from this earlier text is retained for completeness. This book will emphasize advanced programming and interfacing skills. We focus on system level design consisting of several interacting microcontroller subsystems. The first chapter discusses the system design process. Our approach is to provide the skills to quickly get up to speed to operate the internationally popular Atmel AVR microcontroller line by developing systems level design skills. We use the Atmel ATmega164 as a representative sample of the AVR line. The knowledge you gain on this microcontroller can be easily translated to every other microcontroller in the AVR line. In succeeding chapters, we cover the main subsystems aboard the microcontroller, providing a short theory section followed by a description of the related microcontroller subsystem with accompanying software for the subsystem. We then provide advanced examples exercising some of the features discussed. In all examples, we use the C programming language. The code provided can be readily adapted to the wide variety of compilers available for the Atmel AVR microcontroller line. We also include a chapter describing how to interface the microcontroller to a wide variety of input and output devices. The book concludes with several detailed system level design examples employing the Atmel AVR microcontroller.

This book provides a thorough introduction to the Texas Instruments MSP430™ microcontroller.

The MSP430 is a 16-bit reduced instruction set (RISC) processor that features ultra-low power consumption and integrated digital and analog hardware. Variants of the MSP430 microcontroller have been in production since 1993. This provides for a host of MSP430 products including evaluation boards, compilers, software examples, and documentation. A thorough introduction to the MSP430 line of microcontrollers, programming techniques, and interface concepts are provided along with considerable tutorial information with many illustrated examples. Each chapter provides laboratory exercises to apply what has been presented in the chapter. The book is intended for an upper level undergraduate course in microcontrollers or mechatronics but may also be used as a reference for capstone design projects. Also, practicing engineers already familiar with another microcontroller, who require a quick tutorial on the microcontroller, will find this book very useful. This second edition introduces the MSP–EXP430FR5994 and the MSP430–EXP430FR2433 LaunchPads. Both LaunchPads are equipped with a variety of peripherals and Ferroelectric Random Access Memory (FRAM). FRAM is a nonvolatile, low-power memory with functionality similar to flash memory.

Bad to the Bone

by Steven Barrett and Jason Kridner

Published 1 April 2013
BeagleBone Black is a low-cost, open hardware computer uniquely suited to interact with sensors and actuators directly and over the Web. Introduced in April 2013 by BeagleBoard.org, a community of developers first established in early 2008, BeagleBone Black is used frequently to build vision-enabled robots, home automation systems, artistic lighting systems, and countless other do-it-yourself and professional projects. BeagleBone variants include the original BeagleBone and the newer BeagleBone Black, both hosting a powerful 32-bit, super-scalar ARM Cortex A8 processor capable of running numerous mobile and desktop-capable operating systems, typically variants of Linux including Debian, Android, and Ubuntu. Yet, BeagleBone is small enough to fit in a small mint tin box. The "Bone" may be used in a wide variety of projects from middle school science fair projects to senior design projects to first prototypes of very complex systems. Novice users may access the power of the Bone through the user-friendly BoneScript software, experienced through a Web browser in most major operating systems, including Microsoft Windows, Apple Mac OS X, or the Linux operating systems. Seasoned users may take full advantage of the Bone's power using the underlying Linux-based operating system, a host of feature extension boards (Capes) and a wide variety of Linux community open source libraries. This book provides an introduction to this powerful computer and has been designed for a wide variety of users including the first time novice through the seasoned embedded system design professional. The book contains background theory on system operation coupled with many well-documented, illustrative examples. Examples for novice users are centered on motivational, fun robot projects while advanced projects follow the theme of assistive technology and image-processing applications.

This book provides a thorough introduction to the Texas Instruments MSP430 microcontroller. The MSP430 is a 16-bit reduced instruction set (RISC) processor that features ultra low power consumption and integrated digital and analog hardware. Variants of the MSP430 microcontroller have been in production since 1993. This provides for a host of MSP430 products including evaluation boards, compilers, and documentation. A thorough introduction to the MSP430 line of microcontrollers, programming techniques, and interface concepts are provided along with considerable tutorial information with many illustrated examples. Each chapter provides laboratory exercises to apply what has been presented in the chapter. The book is intended for an upper level undergraduate course in microcontrollers or mechatronics but may also be used as a reference for capstone design projects. Also, practicing engineers already familiar with another microcontroller, who require a quick tutorial on the microcontroller, will find this book very useful.

This book provides practicing scientists and engineers a tutorial on the fundamental concepts and use of microcontrollers. Today, microcontrollers, or single integrated circuit (chip) computers, play critical roles in almost all instrumentation and control systems. Most existing books arewritten for undergraduate and graduate students taking an electrical and/or computer engineering course. Furthermore, these texts have beenwritten with a particular model of microcontroller as the target discussion. These textbooks also require a requisite knowledge of digital design fundamentals. This textbook presents the fundamental concepts common to all microcontrollers. Our goals are to present the over–arching theory of microcontroller operation and to provide a detailed discussion on constituent subsystems available in most microcontrollers. With such goals, we envision that the theory discussed in this book can be readily applied to a wide variety of microcontroller technologies, allowing practicing scientists and engineers to become acquainted with basic concepts prior to beginning a design involving a specific microcontroller. We have found that the fundamental principles of a given microcontroller are easily transferred to other controllers. Although this is a relatively small book, it is packed with useful information for quickly coming up to speed on microcontroller concepts.

This book provides a thorough introduction to the Texas Instruments MPS432™ microcontroller. The MPS432 is a 32-bit processor with the ARM Cortex M4F architecture and a built-in floating point unit. At the core, the MSP432 features a 32-bit ARM Cortex-M4F CPU, a RISC-architecture processing unit that includes a built-in DSP engine and a floating point unit. As an extension of the ultra-low-power MSP microcontroller family, the MSP432 features ultra-low power consumption and integrated digital and analog hardware peripherals. The MSP432 is a new member to the MSP family. It provides for a seamless transition to applications requiring 32-bit processing at an operating frequency of up to 48 MHz. The processor may be programmed at a variety of levels with different programming languages including the user-friendly Energia rapid prototyping platform, in assembly language, and in C. A number of C programming options are also available to developers, starting with register-level access code where developers can directly configure the device's registers, to Driver Library, which provides a standardized set of application program interfaces (APIs) that enable software developers to quickly manipulate various peripherals available on the device. Even higher abstraction layers are also available, such as the extremely user-friendly Energia platform, that enables even beginners to quickly prototype an application on MSP432. The MSP432 LaunchPad is supported by a host of technical data, application notes, training modules, and software examples. All are encapsulated inside one handy package called MSPWare, available as both a stand-alone download package as well as on the TI Cloud development site: dev.ti.com The features of the MSP432 may be extended with a full line of BoosterPack plug-in modules. The MSP432 is also supported by a variety of third party modular sensors and software compiler companies. In the back, a thorough introduction to the MPS432 line of microcontrollers, programming techniques, and interface concepts are provided along with considerable tutorial information with many illustrated examples. Each chapter provides laboratory exercises to apply what has been presented in the chapter. The book is intended for an upper level undergraduate course in microcontrollers or mechatronics but may also be used as a reference for capstone design projects. Practicing engineers already familiar with another microcontroller, who require a quick tutorial on the microcontroller, will also find this book very useful. Finally, middle school and high school students will find the MSP432 highly approachable via the Energia rapid prototyping system.


This book is about the Arduino microcontroller and the Arduino concept. The visionary Arduino team of Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis launched a new innovation in microcontroller hardware in 2005, the concept of open source hardware. Their approach was to openly share details of microcontroller-based hardware design platforms to stimulate the sharing of ideas and promote innovation. This concept has been popular in the software world for many years. This book is intended for a wide variety of audiences including students of the fine arts, middle and senior high school students, engineering design students, and practicing scientists and engineers. To meet this wide audience, the book has been divided into sections to satisfy the need of each reader.

The book contains many software and hardware examples to assist the reader in developing a wide variety of systems. The book covers two different Arduino products: the Arduino UNO R3 equipped with the Atmel ATmega328 and the Arduino Mega 2560 equipped with the Atmel ATmega2560. The third edition has been updated with the latest on these two processing boards, changes to the Arduino Development Environment and multiple extended examples.



This book is about the Arduino microcontroller and the Arduino concept. The visionary Arduino team of Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis launched a new innovation in microcontroller hardware in 2005, the concept of open source hardware. Their approach was to openly share details of microcontroller-based hardware design platforms to stimulate the sharing of ideas and promote innovation. This concept has been popular in the software world for many years. This book is intended for a wide variety of audiences including students of the fine arts, middle and senior high school students, engineering design students, and practicing scientists and engineers. To meet this wide audience, the book has been divided into sections to satisfy the need of each reader. The book contains many software and hardware examples to assist the reader in developing a wide variety of systems. For the examples, the Arduino Duemilanove and the Atmel ATmega328 is employed as the target processor.


This book is about the Arduino microcontroller and the Arduino concept. The visionary Arduino team of Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis launched a new innovation in microcontroller hardware in 2005, the concept of open source hardware. Their approach was to openly share details of microcontroller-based hardware design platforms to stimulate the sharing of ideas and promote innovation. This concept has been popular in the software world for many years. This book is intended for a wide variety of audiences including students of the fine arts, middle and senior high school students, engineering design students, and practicing scientists and engineers. To meet this wide audience, the book has been divided into sections to satisfy the need of each reader. The book contains many software and hardware examples to assist the reader in developing a wide variety of systems. For the examples, the Arduino Duemilanove and the Atmel ATmega328 is employed as the target processor.

This textbook provides practicing scientists and engineers an advanced treatment of the Atmel AVR microcontroller. This book is intended as a follow-on to a previously published book, titled Atmel AVR Microcontroller Primer: Programming and Interfacing. Some of the content from this earlier text is retained for completeness. This book will emphasize advanced programming and interfacing skills. We focus on system level design consisting of several interacting microcontroller subsystems. The first chapter discusses the system design process. Our approach is to provide the skills to quickly get up to speed to operate the internationally popular Atmel AVR microcontroller line by developing systems level design skills. We use the Atmel ATmega164 as a representative sample of the AVR line. The knowledge you gain on this microcontroller can be easily translated to every other microcontroller in the AVR line. In succeeding chapters, we cover the main subsystems aboard the microcontroller, providing a short theory section followed by a description of the related microcontroller subsystem with accompanying software for the subsystem. We then provide advanced examples exercising some of the features discussed. In all examples, we use the C programming language. The code provided can be readily adapted to the wide variety of compilers available for the Atmel AVR microcontroller line. We also include a chapter describing how to interface the microcontroller to a wide variety of input and output devices. The book concludes with several detailed system level design examples employing the Atmel AVR microcontroller.

This textbook provides practicing scientists and engineers a primer on the Microchip AVR® microcontroller.

The revised title of this book reflects the 2016 Microchip Technology acquisition of Atmel Corporation. In this third edition we highlight the popular ATmega164 microcontroller and other pin-for-pin controllers in the family with a complement of flash memory up to 128 KB. The third edition also provides an update on Atmel Studio, programming with a USB pod, the gcc compiler, the ImageCraft JumpStart C for AVR compiler, the Two-Wire Interface (TWI), and multiple examples at both the subsystem and system level. Our approach is to provide readers with the fundamental skills to quickly set up and operate with this internationally popular microcontroller. We cover the main subsystems aboard the ATmega164, providing a short theory section followed by a description of the related microcontroller subsystem with accompanying hardware and software to operate the subsystem. In all examples, we use the C programming language. We include a detailed chapter describing how to interface the microcontroller to a wide variety of input and output devices and conclude with several system level examples including a special effects light-emitting diode cube, autonomous robots, a multi-function weather station, and a motor speed control system.

Arduino II

by Steven F Barrett

Published 4 August 2020
This book is about the Arduino microcontroller and the Arduino concept. The visionary Arduino team of Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis launched a new innovation in microcontroller hardware in 2005, the concept of open-source hardware. Their approach was to openly share details of microcontroller-based hardware design platforms to stimulate the sharing of ideas and promote innovation. This concept has been popular in the software world for many years. In June 2019, Joel Claypool and I met to plan the fourth edition of Arduino Microcontroller Processing for Everyone! Our goal has been to provide an accessible book on the rapidly evolving world of Arduino for a wide variety of audiences including students of the fine arts, middle and senior high school students, engineering design students, and practicing scientists and engineers. To make the book even more accessible to better serve our readers, we decided to change our approach and provide a series of smaller volumes. Each volume is written to a specific audience. This book, Arduino II: Systems, is a detailed treatment of the ATmega328 processor and an introduction to C programming and microcontroller-based systems design. Arduino I: Getting Started provides an introduction to the Arduino concept. Arduino III: the Internet of Things explores Arduino applications in the Internet of Things (IoT).

This textbook provides practicing scientists and engineers an advanced treatment of the Atmel AVR microcontroller. This book is intended as a follow-on to a previously published book, titled Atmel AVR Microcontroller Primer: Programming and Interfacing. Some of the content from this earlier text is retained for completeness. This book will emphasize advanced programming and interfacing skills. We focus on system level design consisting of several interacting microcontroller subsystems. The first chapter discusses the system design process. Our approach is to provide the skills to quickly get up to speed to operate the internationally popular Atmel AVR microcontroller line by developing systems level design skills. We use the Atmel ATmega164 as a representative sample of the AVR line. The knowledge you gain on this microcontroller can be easily translated to every other microcontroller in the AVR line. In succeeding chapters, we cover the main subsystems aboard the microcontroller, providing a short theory section followed by a description of the related microcontroller subsystem with accompanying software for the subsystem. We then provide advanced examples exercising some of the features discussed. In all examples, we use the C programming language. The code provided can be readily adapted to the wide variety of compilers available for the Atmel AVR microcontroller line. We also include a chapter describing how to interface the microcontroller to a wide variety of input and output devices. The book concludes with several detailed system level design examples employing the Atmel AVR microcontroller.

Table of Contents: Embedded Systems Design / Atmel AVR Architecture Overview / Serial Communication Subsystem / Analog to Digital Conversion (ADC) / Interrupt Subsystem / Timing Subsystem / Atmel AVR Operating Parameters and Interfacing / System Level Design

Arduino IV: DIY Robots

by Tyler Kerr and Steven Barrett

Published 8 September 2022
This book gives a step-by-step introduction to designing and building your own robots.  As with other books in the Arduino series, the book begins with a quick overview of the Arduino Integrated Development Environment (IDE) used to write sketches, and the hardware systems aboard the Arduino UNO R3 and the Mega 2560 Rev 3.  The level of the text makes it accessible for students, hobbyist and professionals' first introduction to both Arduino and Robotics.  
This book will be accessible by all levels of students, advanced hobbyists and engineering professionals, whether using as a self-reference or within a structure design laboratory. The text then examines the many concepts and characteristics common to all robots.  In addition, throughout the book , reasonably priced, easily accessible and available off-the-shelf robots are examined. Examples include wheeled robots, tracked robots and also a robotic arm.  
After a thorough and easy to follow  Arduino IDE and hardware introduction, the book launches into “do it yourself” or DIY concepts.  A unique feature of the book is to start with a hands-on introduction to low cost 3D printing.  These concepts will allow you to design and print your own custom robot parts and chassis.  We then explore concepts to sense a robot's environment, move the robot about and provide a portable power source.  We conclude with a several DIY robot projects.