| FastArduino v1.10
    C++ library to build fast but small Arduino/AVR projects | 
| ►Nanalog | Defines all API to manipulate analog input/output | 
| CAnalogComparator | Handler of the Analog Comparator feature | 
| CAnalogInput | API that handles a given analog input pin of the target MCU | 
| CPowerVoltage | API that uses bandgap feature to calculate current voltage fed to the MCU | 
| CPWMOutput | Construct a new handler for a PWM output pin | 
| Nbits | Defines utility methods for bits manipulation | 
| Nboard | Defines all types and constants specific to support a specific MCU target | 
| ►Ncontainers | Contains all FastArduino generic containers: | 
| Carray | Container that encapsulates a fixed size array | 
| CLink | A wrapper for items stored in a LinkedList | 
| CLinkedList | Linked list of type T_items | 
| CLinkWrapper | A wrapper for items stored in a LinkedList | 
| CQueue | Queue of type T_items | 
| ►Ndevices | Defines all API for all external devices supported by FastArduino | 
| ►Naudio | Defines API for audio tones (square waves) generation and simple melodies playing | 
| NSpecialTone | This namespace defines special "tones" which have an impact on how to play a melody | 
| CAbstractTonePlayer | This low-level API defines an abstract player of melodies (defined as a sequence of tones and durations) | 
| CAsyncTonePlayer | This API defines a player of melodies, defined as a sequence of tones and durations | 
| CBeat | This embeds minimum duration (duration of a 32nd note), in milliseconds, for a given tempo (beats per minute) | 
| CQTonePlay | An optimized surrogate to TonePlaystructure | 
| CToneGenerator | API class for tone generation to a buzzer (or better an amplifier) connected to pin OUTPUT | 
| CTonePlay | This struct is the unit data manipulated by TonePlayer: it describes oneTonealong with its duration in milliseconds | 
| CTonePlayer | This API defines a player of melodies, defined as a sequence of tones and durations | 
| ►Ndisplay | Defines generic API for all display devices | 
| CDefaultVerticalFont7x5 | |
| CDisplay | Class handling drawing primitives on any display device | 
| CDisplayDeviceTrait | Traits for display devices | 
| CDisplayDeviceTrait_impl | Default base class for all DisplayDeviceTrait | 
| CDrawContext | Drawing Context passed to display devices low-level primitives set_pixel()andwrite_char() | 
| CDrawMode | Drawing Mode to use for Displaydrawing primitives | 
| CFont | Generic font support class | 
| CLCD5110 | SPI device driver for Nokia 5110 display chip | 
| ►Nmagneto | Defines API for magnetic sensors for direction, speed and acceleration properties | 
| CAllSensors | Structure to store all MPU6050 sensors data (3 axis gyroscope and accelerometer, chip temperature) | 
| CFIFOEnable | Configuration for MPU6050 FIFO Enable register (register map §4.6) | 
| ►CHMC5883L | I2C device driver for the HMC5883L compass chip | 
| CBeginFuture | Create a future to be used by asynchronous method begin(BeginFuture&) | 
| CINTStatus | The structure of the Interrupt Status register (register map §4.16) | 
| ►CMPU6050 | I2C device driver for the MPU6050 gyroscope/accelerometer chip | 
| CBeginFuture | Create a future to be used by asynchronous method begin(BeginFuture&) | 
| CEndFuture | Create a future to be used by asynchronous method end(EndFuture&) | 
| CFifoBeginFuture | Create a future to be used by asynchronous method begin(FifoBeginFuture&) | 
| CResetFuture | Create a future to be used by asynchronous method reset(ResetFuture&) | 
| CSensor3D | Structure to store 3 axis data for one sensor (gyroscope or accelerometer) | 
| CStatus | The chip status, as defined in datasheet p16 | 
| ►Nmcp230xx | Defines the API for MCP23008/MCP23017 chips support | 
| ►CMCP23008 | I2C device driver for Microchip MCP23008 support | 
| CConfigureGPIOFuture | Create a future to be used by asynchronous method configure_gpio(ConfigureGPIOFuture&) | 
| CConfigureInterruptsFuture | Create a future to be used by asynchronous method configure_interrupts(ConfigureInterruptsFuture&) | 
| ►CMCP23017 | I2C device driver for Microchip MCP23017 support | 
| CBeginFuture | Create a future to be used by asynchronous method begin(BeginFuture&) | 
| CConfigureGPIOFuture | Create a future to be used by asynchronous method configure_gpio(ConfigureGPIOFuture | 
| CConfigureInterruptsFuture | Create a future to be used by asynchronous method configure_interrupts(ConfigureInterruptsFuture<P_>&) | 
| ►Nmcp3x0x | Defines the API for MicroChip ADC chips family support | 
| CMCP3x0x | Generic class to support (almost) any chip of the SPI-based MicroChip ADC chips family (MCP3001-2-4-8, MCP3201-2-4-8, MCP3301-2-4) | 
| ►Nprotocols | Defines utility classes to implement various protocols used in several devices, like Wiegand | 
| CWiegand | Supporting class for the Wiegand 26 bits protocol (used by many access control devices) | 
| ►Nrf | Defines the API for radio-frequency (wireless) communication support | 
| CIRQ_NRF24L01 | SPI device driver for Nordic Semiconductor nRF24L01+ support, with IRQ | 
| ►CNRF24L01 | SPI device driver for Nordic Semiconductor nRF24L01+ support, without IRQ support | 
| Caddr_t | Network address together with port | 
| Cfifo_status_t | Register FIFO_STATUS data type, transmission queue status | 
| Cobserve_tx_t | Register OBSERVE_TX data type, performance statistics | 
| Cstatus_t | Register STATUS data type | 
| ►Nrfid | This namespace contains classes to support various RFID devices | 
| CGrove125KHzRFIDReaderUART | Support for seeedstudio Grove 125KHz RFID Reader in UART mode | 
| CGrove125KHzRFIDReaderWiegandEXT | Support for seeedstudio Grove 125KHz RFID Reader in Wiegand mode | 
| CGrove125KHzRFIDReaderWiegandPCI | Support for seeedstudio Grove 125KHz RFID Reader in Wiegand mode | 
| ►Nrtc | Defines API for Real-Time Clock chips usage | 
| ►CDS1307 | I2C device driver for the DS1307 RTC chip | 
| CDisableOutputFuture | Create a future to be used by asynchronous method disable_output(DisableOutputFuture&) | 
| CEnableOutputFuture | Create a future to be used by asynchronous method enable_output(EnableOutputFuture&) | 
| CGetRam1Future | Create a future to be used by asynchronous method get_ram(GetRam1Future&) | 
| CGetRamFuture | Create a future to be used by asynchronous method get_ram(GetRamFuture<SIZE>&) | 
| CHaltClockFuture | Create a future to be used by asynchronous method halt_clock(HaltClockFuture&) | 
| CSetRam1Future | Create a future to be used by asynchronous method set_ram(SetRam1Future&) | 
| CSetRamFuture | Create a future to be used by asynchronous method set_ram(SetRamFuture<SIZE>&) | 
| Ctm | The datetime structure used by the RTC API | 
| ►Nservo | Defines the API for servomotor support | 
| CServo | This template class supports one servomotor connected to a PWM pin | 
| ►Nsonar | Defines the API for sonar support | 
| CAbstractSonar | An abstract base class for some sonar classes defined as part of this API | 
| CHCSR04 | |
| CMultiHCSR04 | This template class supports up to 8 HC-SR04 sonars (or equivalent sensors), with their trigger pins gathered and connected to only one MCU pin, and all echo pins connected to the same MCU board::Port | 
| CSonarEvent | This type holds information about events occurring within MultiHCSR04handler | 
| ►Nvl53l0x | Defines API for VL53L0X Time-of-Flight ranging sensor chip usage | 
| CDeviceStatus | Status of device as retrieved by VL53L0X::get_range_status() | 
| CFixPoint9_7 | Helper class to handle VL53L0X special fix-point 9.7 values | 
| CGPIOSettings | Settings for behavior of VL53L0X GPIO pin | 
| CSequenceSteps | Hold VL53L0X sequence steps to use for ranging | 
| CSequenceStepsTimeout | Hold VL53L0X sequence steps timeouts and other related settings used for ranging | 
| CSPADInfo | Hold SPAD information from VL53L0X device | 
| CSPADReference | Hold reference SPADs (Single Photon Avalanche Diode) | 
| ►CVL53L0X | I2C device driver for the VL53L0X ToF ranging chip | 
| CGetGPIOSettingsFuture | Future to get device current GPIO settings | 
| CSetGPIOSettingsFuture | Future to set device GPIO settings | 
| CSIPO | This template class supports one SIPO chip, connected to the MCU through 3 pins | 
| ►CWinBond | SPI device driver for WinBond flash memory chips, like W25Q80BV (8 Mbit flash) | 
| CDevice | Device information (§6.2.31) | 
| CStatus | This type maps WinBond Status register (§6.1) to more readable pieces | 
| ►Neeprom | Defines the API for accessing the EEPROM embedded in each AVR MCU | 
| CEEPROM | Collection of static methods to read or write the AVR EEPROM | 
| CQueuedWriter | API that allows asynchronous writing to EEPROM; this can be useful when you have large amount of data to write but cannot afford to wait until all bytes have been written | 
| Nerrors | This namespace defines common errors that can be returned by some FastArduino API methods, e.g | 
| ►Nevents | Defines all API to handle events within FastArduino programs | 
| NType | Defines pre-defined types of events gegenarted by FastArduino API | 
| CDispatcher | Utility to dispatch an event to a list of EventHandlers that are registered for its type | 
| CEvent | A standard Event as managed by FastArduino event API | 
| CEventHandler | Abstract event handler, used by Dispatcherto get called back when an event of the expected type is dispatched | 
| CJob | Abstract class holding some action to be executed at given periods of time | 
| CScheduler | Schedule jobs at predefined periods of time | 
| ►Nflash | Defines API to handle flash memory storage | 
| CFlashReader | Functor reading items from an address in AVR Flash memory (PROGMEM) | 
| ►Nfunctor | This namespace defines a few useful functors | 
| CCast | Cast functor: returns its argument of type ARGcasted to typeRES | 
| CChangeEndianness | Endianness change functor: will change from big to little or little to big endian format on integer types | 
| CCompose | Composition functor: applies 2 functors one after each other | 
| CConstant | Constant functor: always returns a constant value | 
| CFunctor | Utility to instantiate and execute a functor from its type | 
| CIdentity | Identity functor: always returns its argument, unchanged | 
| ►Nfuture | Contains the API around Future implementation | 
| CAbstractFakeFuture | Base class for all FakeFutures | 
| CAbstractFuture | Base class for all Futures | 
| CAbstractFuturesGroup | Abstract class to allow aggregation of several futures | 
| CFakeFuture | Actual FakeFuture, it has the exact same API as Future and can be used in lieu of Future | 
| CFuture | Represent a value to be obtained, in some asynchronous way, in the future | 
| ►Ngpio | Defines all API to manipulate general-purpose digital input/output pins | 
| CFastMaskedPort | API that manipulates a part of a digital IO port | 
| CFastPin | API that manipulates one digital IO pin of a given port | 
| CFastPinType | API that manipulates a given digital IO pin of a the target MCU | 
| CFastPort | API that manipulates a whole digital IO port | 
| ►Ni2c | Define API to define and manage I2C devices | 
| ►Ndebug | Defines API to ease I2C devices debugging | 
| CI2CDebugLiveLogger | Class tracing I2C debug notifications live to out | 
| CI2CDebugRecorder | Class recording I2C debug notifications for later output | 
| CI2CDebugStatusLiveLogger | Class tracing I2C status and debug notifications live to out | 
| CI2CDebugStatusRecorder | Class recording I2C debug and status notifications for later output | 
| ►Nstatus | Defines API to ease I2C manager status tracing and debugging | 
| CI2CLatestStatusHolder | Class holding the latest I2C status | 
| CI2CStatusLiveLogger | Class tracing I2C status notifications live to out | 
| CI2CStatusRecorder | Class recording I2C status notifications for later output | 
| CAbstractI2CAsyncManager | Abstract asynchronous I2C Manager | 
| CAbstractI2CSyncATmegaManager | Abstract synchronous I2C Manager for ATmega architecture | 
| CAbstractI2CSyncATtinyManager | Abstract synchronous I2C Manager for ATtiny architecture | 
| CAbstractI2CSyncManager | Abstract synchronous I2C Manager for all MCU architectures | 
| CI2CAsyncDebugManager | Asynchronous I2C Manager for ATmega architecture with debug facility | 
| CI2CAsyncManager | Asynchronous I2C Manager for ATmega architecture | 
| CI2CAsyncStatusDebugManager | Asynchronous I2C Manager for ATmega architecture with debug and status notification facilities | 
| CI2CAsyncStatusManager | Asynchronous I2C Manager for ATmega architecture with status notification facility | 
| CI2CCommand | Atomic I2C command as used internally by an asynchronous I2C Manager | 
| CI2CDevice | Base class for all I2C devices | 
| CI2CFuturesGroup | Abstract class to allow aggregation of several futures in relation to I2C transactions | 
| CI2CLightCommand | Light atomic I2C command as prepared by an I2C device | 
| CI2CSameFutureGroup | Class to allow dynamic creation of futures from values stored in flash memory, leading to launch of I2C transactions | 
| CI2CSyncDebugManager | Synchronous I2C Manager for ATmega architecture with debug facility | 
| CI2CSyncManager | Synchronous I2C Manager for ATmega architecture | 
| CI2CSyncStatusDebugManager | Synchronous I2C Manager for ATmega architecture with status notification and debug facility | 
| CI2CSyncStatusManager | Synchronous I2C Manager for ATmega architecture wit status notification facility | 
| CReadRegisterFuture | General Future that can be used to read an I2C device register | 
| CTReadRegisterFuture | Generic Future that can be used to read an I2C device register | 
| CTWriteMultiRegisterFuture | Generic Future that can be used to write to several I2C device registers | 
| CTWriteRegisterFuture | Generic Future that can be used to write to an I2C device register | 
| CWriteRegisterFuture | General Future that can be used to write to an I2C device register | 
| ►Ninterrupt | Defines API to handle AVR interruptions | 
| CINTSignal | Handler of an External Interrupt | 
| CPCISignal | Handler of a Pin Change Interrupt vector | 
| CPCIType | Helper class that easily converts a PINinto the rightPCISignal | 
| Nmemory | Contains a few utility method to deal with free SRAM memory | 
| ►Npower | Defines simple API to handle AVR power sleep modes | 
| CPower | This class contains the API for handling power sleep modes | 
| ►Nserial | Defines all API for UART features | 
| ►Nhard | Defines API types used by hardware UART features | 
| CUART | Hardware serial receiver/transceiver API | 
| CUARX | Hardware serial receiver API | 
| CUATX | Hardware serial transmitter API | 
| ►Nsoft | Defines API types used by software UART features | 
| CUART< board::ExternalInterruptPin, RX_, TX_ > | |
| CUART< board::InterruptPin, RX_, TX_ > | |
| CUARX< board::ExternalInterruptPin, RX_ > | |
| CUARX< board::InterruptPin, RX_ > | |
| CUATX | Software-emulated serial transmitter API | 
| CUARTErrors | Holder of latest UART errors | 
| ►Nspi | Define API to define and manage SPI devices | 
| CAbstractSPIDevice | Contain general payload transfer API for an SPI device | 
| CSPIDevice | Base class for any SPI slave device | 
| ►Nstd | Similar to standard C++ stdnamespace, this namespace is used by FastArduino library to implement various types of the standard C++ library when this is useful | 
| Cinitializer_list | C++ standard support for "initializer_list" | 
| ►Nstreams | Defines C++-like streams API, based on circular buffers for input or output | 
| Cios_base | Base class for formatted streams | 
| Cistream | Input stream wrapper to provide formatted input API, a la C++ | 
| Cistreambuf | Input API based on a ring buffer | 
| Cnull_ostream | Implements an empty formatted output that does nothing | 
| Costream | Output stream wrapper to provide formatted output API, a la C++ | 
| Costreambuf | Output API based on a ring buffer | 
| ►Ntime | Defines simple API to handle time and delays | 
| Cauto_delay | Set a new time::delayfunction for the duration of the current scope; when the scope is left, the previoustime::delayfunction is restored | 
| Cauto_millis | Set a new time::millisfunction for the duration of the current scope; when the scope is left, the previoustime::millisfunction is restored | 
| CRTTTime | Structure used to hold a time value with microsecond precision | 
| ►Ntimer | Defines all API to manipulate AVR Timers | 
| CCalculator | Defines a set of calculation methods for the given NTIMER_The behavior of these methods is specific to each AVR Timer are there can be many important differences between 2 timers on AVR | 
| CPulseTimer | Special kind of timer::Timer, specialized in emitting pulses with accurate width, according to a slow frequency | 
| CRTT | API to handle a real-time timer | 
| CRTTEventCallback | Utility to generate events from an RTTinstance at a given period | 
| CRTTRawTime | Utility class to avoid costly instantiation of time::RTTTimefrom an interrupt routine | 
| CSquareWave | Simple API to generate a square wave to an output pin | 
| CTimer | General API to handle an AVR timer | 
| ►Ntypes_traits | Defines traits and utility methods for standard types, like uint16_t | 
| Cderives_from | Utility class that checks, at compile-time, that type Tis a subtype of typeB | 
| Cremove_reference | Remove a reference from the given type | 
| CSmallestInt | Find the smallest integral types, signed and unsigned, tha can hold a given value | 
| CType_trait | This trait allows static checks (at compile-time) of properties of various types | 
| ►Nutils | Contains all generic utility methods | 
| Crange | Iterable class that can embed arrays or initializer lists through implicit conversion | 
| ►Nwatchdog | Defines the simple API for Watchdog timer management | 
| CWatchdog | Simple API to use watchdog timer as a clock for events generation | 
| CWatchdogRTT | Simple API to use watchdog timer as a real-time clock | 
| CWatchdogSignal | Simple API to handle watchdog signals |