Arduino Boards

A Fundamental Implementation Change

Traditional Arduino boards, like the Uno R3 or Nano, are typically programmed using the Arduino Library functions. These conveniently present most of the microcontroller’s functionality to the hobbyist user. Books like my Far Inside The Arduino and the microcontroller’s documentation show how to access additional functionality not addressed by the Arduino Library. As more advanced …

The Map Function

The map function takes a long integer value, x, in the range in_min through in_max and maps it into the range out_min through out_max. It is very convenient for scaling measurements and the function is defined: It is important to realize some limitations of this function. Some Arduino models define a function mapResolution that does …

EEPROM “emulation” in Arduino UNO R4

The EEPROM library (https://docs.arduino.cc/learn/built-in-libraries/eeprom) has functions for reading and writing single bytes but no function for erasing. The EEPROM in the AVR microcontrollers are capable of erasing and writing single bytes and 100,000 erase/write cycles in a location is the design maximum before the EEPROM will wear out. To maintain compatibility, the EEPROM functions in …

The Main Difference of ARM-based Microcontrollers

As I’ve been going far inside the SAMD21 Arduino boards, I’ve realized the main distinction of the ARM-core SAMD21 compared to the AVR architecture ATMega microcontrollers, and indeed to other microcontrollers I’ve used in the past. The ARM-core microcontrollers are actually a two part design. There is the ARM designed processor core, and the vendor …