gavmac00/arduino-docs huggingface dataset:
architectures so you
          should be able to use it on the
          following Arduino boards:
Arduino Micro
Arduino Leonardo
Arduino Mega
Arduino Nano
Arduino Uno
Arduino Yún
Compatibility Note
Note: while the library is supposed to compile correctly on these architectures,
          it might require specific hardware features that may be available only on some boards.
        
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.4.7
            (latest)
          
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.3.1
1.2.0
1.1.1
1.0.1
1.0.0
0.9.2
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Adafruit am radio library
          
Adafruit AM radio library
Signal Input/Output
          Arduino library for AM radio on samd21 microcontroller
          
          Author: Adafruit
          Maintainer: Adafruit
Read the documentation
Compatibility
This library is compatible with the samd
          architecture so you
          should be able to use it on the
          following Arduino boards:
Arduino MKR FOX 1200
Arduino MKR GSM 1400
Arduino MKR NB 1500
Arduino MKR VIDOR 4000
Arduino MKR WAN 1300 (LoRa connectivity)
Arduino MKR WAN 1300 (LoRa connectivity)
Arduino MKR WAN 1310
Arduino MKR WiFi 1010
Arduino MKR ZERO (I2S bus & SD for sound, music & digital audio data)
Arduino MKR1000 WIFI
Arduino Nano 33 IoT
Arduino Zero
Compatibility Note
Note: while the library is supposed to compile correctly on these architectures,
          it might require specific hardware features that may be available only on some boards.
        
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.0.4
            (latest)
          
1.0.3
1.0.2
1.0.1
1.0.0
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Tm1637 driver
          
TM1637 Driver
Display
          Feature-full and simple TM1637 library with nonblocking animation support
          
          
          Features: -Display integers, float, string with only one function. -Nonblocking animation: Blink, scrollLeft, fadeIn, fadeOut -Customizable offset, pad, overflow. -Custom raw value display. -Tunable brightness. -Screen clearing and splitting. Visit https://github.com/AKJ7/TM1637 for more information.
          
        
          Author: AKJ
          Maintainer: AKJ
Read the documentation
Compatibility
Author: AKJ
          Maintainer: AKJ
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
2.1.2
            (latest)
          
2.1.1
2.1.0
2.0.2
2.0.1
1.1.2
1.1.1
1.1.0
1.0.0
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Gfx library for arduino
          
GFX Library for Arduino
Uncategorized
          Arduino_GFX is a GFX library for various color displays with various data bus interfaces
Arduino_GFX is a Arduino graphics library. Currently support GC9A01 round display, GC9106, GC9107, HX8347C, HX8347D, HX8352C, HX8357A, HX8357B, HX8369A, ILI9225, ILI9331, ILI9341, ILI9342(M5Stack, ESP32-S3-BOX), ILI9481, ILI9486, ILI9488, ILI9806, JBT6K71, NT35310, NT35510, NT39125, NV3041A, OTM8009A, R61529, RM67162, SEPS525, SSD1283A, SSD1331, SSD1351, ST7735, ST7789, ST7796 and virtually all Raspberry Pi DPI (RGB) display. Tested RGB
ST7789, ST7796 and virtually all Raspberry Pi DPI (RGB) display. Tested RGB display: GC9503V, ILI6485, ST7262, ST7701. Currently support software SPI (8-bit and 9-bit), hardware SPI (8-bit, ESP32 also support 9-bit), 8-bit parallel interface(AVR, ESP32, RPi Pico, RTL8720, STM32), 16-bit parallel interface(ESP32 and RPi Pico) and RGB Panel interface(ESP32S3).
Author: Moon On Our Nation
          Maintainer: Moon On Our Nation
Read the documentation
Compatibility
This library is compatible with the 
          architecture.
          
        Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.3.6
            (latest)
          
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.9
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.9
1.1.8
1.1.7
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Screenui
          
ScreenUi
Display
          ScreenUi is a simple user interface library for character based LCDs like those commonly used with Arduinos.
          
          
          It provides common user interface components such as labels, checkboxes, text fields, scrollable regions, spinners and buttons.
          
        
          Author: Jason von Nieda
          Maintainer: Jason von Nieda
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Beacon
          
Beacon
Communication
          An AMX-style Ethernet beacon, allowing for remote discovery.
          
          
          Supports the Ethernet (W5100) or, alternatively, the Ethernet2 (W5500) library.
          
        
          Author: Bengt Martensson
          Maintainer: Bengt Martensson
Read the documentation
Go to repository
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Fletcher
          
Fletcher
Signal Input/Output
          "Arduino Library for calculating Fletcher's checksum.
          
          Author: Rob Tillaart
          Maintainer: Rob Tillaart
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
0.1.8
            (latest)
          
0.1.7
0.1.6
0.1.5
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Adafruit mcp4725
          
Adafruit MCP4725
Signal Input/Output
          MCP4725 12-bit I2C DAC
          
          Author: Adafruit
          Maintainer: Adafruit
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
2.0.0
            (latest)
          
1.0.3
1.0.2
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Slight fade
          
slight_Fade
Timing
          timed value fading.
          
          
          fade a value over a given time duration.
          
        
          Author: Stefan Krüger (s-light)
          Maintainer: Stefan Krüger
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.0.0
            (latest)
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Siktec spi
          
SIKTEC_SPI
Signal Input/Output
          A Lightweight SPI wrapper for HW SPI and Software SPI
          
          
          A Better api to establish SPI comunication - supports hardware SPI and Software SPI - Auto toggling CS pins and transactions.
          
        
          Author: SIKTEC
          Maintainer: Shlomo
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Virtuino library for stm32 boards
          
Virtuino library for STM32 boards
Communication
          Required for communication with Virtuino app
          
          Author: 
          Maintainer: 
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.6.3
            (latest)
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Ps 33d i2c
          
PS-33D I2C
Sensors
          Arduino library to control Blue Sky PS-33D I2C
          
          Author: Neosarchizo
          Maintainer: Neosarchizo
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.0.0
            (latest)
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Reefwingfilter
          
ReefwingFilter
Data Processing
          A collection of filters & noise generators used in the Reefwing Flight Controller.
          
          
          Includes Simple Moving Average, Exponential Moving Average, Complementary & Simple Kalman Filters.
          
        
          Author: David Such
          Maintainer: David Such
Read the documentation
Go to repository
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Arduinotrace
          
ArduinoTrace
Other
          A dead-simple tracing library to debug your programs
          
          
          You'll never find a simpler tracing library! Just call TRACE() or DUMP(variable) and watch the result in the Serial...
          
        
          Author: Benoit Blanchon
          Maintainer: Benoit Blanchon
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Avr iot cellular
          
AVR-IoT-Cellular
Communication
          Library for the AVR-IoT Cellular Mini Board
          
          
          Supports HTTP(S), MQTT(S), Low Power and more. Dependent on AVR-IoT MCP9808, AVR-IoT VEML3328 and DxCore
          
        
          Author: Microchip Technology Inc.
          Maintainer: Microchip Technology Inc.
Read the documentation
Go to repository
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.3.7
            (latest)
          
1.3.6
1.3.5
1.3.4
1.3.3
1.3.1
1.3.0
1.2.3
1.2.2
1.2.1
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Gammacorrectionlib
          
GammaCorrectionLib
Other
          GammaCorrection Library
          
          
          The GammaCorrection library implements functions to perform gamma correction. The relationship between the intensity applied by a PWM to a LED and the perceived illumination is non-linear. With the GammaCorrection library we can correct the values so that the behavior is correct.
          
        
          Author: Luis Llamas
          Maintainer: Luis Llamas
Read the documentation
Go to repository
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Emotibit mlx90632
          
EmotiBit MLX90632
Sensors
          Library for using MLX90632 FIR sensor
          
          
          An Arduino Library for the MLX90632 FIR based non-contact temperature sensor. Measures surface temperatures with accuracy of 1 degree C.
          
        
          Author: SparkFun Electronics
          Maintainer: Connected Future Labs
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Smart motor driver sami
          
Smart Motor Driver - SAMI
Device Control
          Arduino library for SAMI the Smart Motor Driver by dannimakes.
          
          
          Making advanced robots has never been so easy to anyone!!! Just solder the module to your motor and use this Arduino library to take precise PID control over the motor speed and travel distance via I2C bus.
          
        
          Author: 2BRobots
          Maintainer: dannimakes
Read the documentation
Go to repository
Compatibility
This library is compatible with all architectures so you should be able to use
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Balboa spa communications
          
Balboa Spa communications
Uncategorized
          Use Arduino to control your BalBoa Spa Pack.
          
          
          Monitor and control your WiFi connected BalBoa spa.  This requires that your spa pack have the Balboa Wi-Fi module 50350 installed.  If you can use the  Balboa Worldwide App (bwa™) to control your spa, this should work as well. Tested on Arduino Uno, Arduino Mega 2560, Wemos D1 R1 (ESP8266) and Wemos D1 R32 (ESP32) boards.
Author: M Hotchin
          Maintainer: M Hotchin
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.0.3
            (latest)
          
1.0.2
1.0.1
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Adt7470
          
ADT7470
Device Control
          ADT7470 Library
          
          
          Arduino library for I2C ADT7470 Fan Monitoring
          
        
          Author: Rob Tillaart
          Maintainer: Rob Tillaart
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
0.1.4
            (latest)
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Wifi picker
          
WiFi Picker
Communication
          Allows an user to dynamically add and remove saved WiFi APs.
          
          
          When the device cannot connect to any saved WiFi networks, it will launch its own access point for a user to add a WiFi network.
          
        
          Author: Tvde1
          Maintainer: Tvde1
Read the documentation
Go to repository
Compatibility
This library is compatible with the 
          architecture.
          
        Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Mcp dac
          
MCP_DAC
Sensors
          Arduino library for Microchip SPI DAC, 8, 10, 12 bit; 1 or 2 channel.
          
          
          MCP4801, MCP4802, MCP4811,MCP4812, MCP4821, MCP4822, MCP4901, MCP4902, MCP4911, MCP4912, MCP4921, MCP4922.
          
        
          Author: Rob Tillaart
          Maintainer: Rob Tillaart
Read the documentation
Compatibility
Maintainer: Rob Tillaart
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
0.2.0
            (latest)
          
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Kai pro library
          
KAI Pro Library
Device Control
          Grants easy access to the various species of the Kai Pro.
          
          
          More information can be found at https://roninsrobotics.com
          
        
          Author: Mehmet Murat YILMAZ
          Maintainer: Ronin's Robotics
Read the documentation
Go to repository
Compatibility
This library is compatible with the avr
          architecture so you
          should be able to use it on the
          following Arduino boards:
Arduino Micro
Arduino Leonardo
Arduino Mega
Arduino Nano
Arduino Uno
Arduino Yún
Arduino Micro
Arduino Leonardo
Arduino Mega
Arduino Nano
Arduino Uno
Arduino Yún
Compatibility Note
Note: while the library is supposed to compile correctly on these architectures,
          it might require specific hardware features that may be available only on some boards.
        
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.0.3
            (latest)
          
1.0.2
1.0.1
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
Reference
            >  Libraries
            > Arduinoble
          
ArduinoBLE
Communication
          Enables Bluetooth® Low Energy connectivity on the Arduino MKR WiFi 1010, Arduino UNO WiFi Rev.2, Arduino Nano 33 IoT, Arduino Nano 33 BLE and Nicla Sense ME.
          
          
          This library supports creating a Bluetooth® Low Energy peripheral & central mode.
          
        
Go to repository
Compatibility
This library is compatible with the samd, megaavr, mbed, apollo3, mbed_nano, mbed_portenta, mbed_nicla, esp32, mbed_giga
          architectures so you
          should be able to use it on the
          following Arduino boards:
Arduino MKR FOX 1200
Arduino MKR GSM 1400
Arduino MKR FOX 1200
Arduino MKR GSM 1400
Arduino MKR NB 1500
Arduino MKR VIDOR 4000
Arduino MKR WAN 1300 (LoRa connectivity)
Arduino MKR WAN 1310
Arduino MKR WiFi 1010
Arduino MKR ZERO (I2S bus & SD for sound, music & digital audio data)
Arduino MKR1000 WIFI
Arduino Nano 33 BLE
Arduino Nano 33 IoT
Arduino Nano Every
Arduino Uno WiFi REV2
Arduino Zero
Portenta H7
Compatibility Note
Note: while the library is supposed to compile correctly on these architectures,
          it might require specific hardware features that may be available only on some boards.
        
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.3.4
            (latest)
1.3.4
            (latest)
          
1.3.3
1.3.2
1.3.1
1.3.0
1.2.2
1.2.1
1.2.0
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
0.1.2
0.1.1
0.1.0
Usage
This library supports all the Arduino boards that have the hardware enabled for Bluetooth® Low Energy and Bluetooth® 4.0 and above; these include Nano 33 BLE, Arduino NANO 33 IoT, Uno WiFi Rev 2, MKR WiFi 1010, Nicla Sense ME.
To use this library
#include <ArduinoBLE.h>
A quick introduction to BLE
Unlike standard Bluetooth® communication basically based on an asynchronous serial connection (UART) a Bluetooth® LE radio acts like a community bulletin board. The computers that connect to it are like community members that read the bulletin board. Each radio acts as either the bulletin board or the reader. If your radio is a bulletin board (called a peripheral device in Bluetooth® LE parlance) it posts data for all radios in the community to read. If your radio is a reader (called a central device in Blueooth LE terms) it reads from any of the bulletin boards (peripheral devices) that have information about which it cares. You can also think of peripheral devices as the servers in a client-server transaction, because they contain the information that reader radios ask for. Similarly, central devices are the clients of the Bluetooth® LE world because they read information available from the peripherals.
Think of a Bluetooth® LE peripheral device as a bulletin board and central devices as viewers of the board. Central devices view the services, get the data, then move on. Each transaction is quick (a few milliseconds), so multiple central devices can get data from one peripheral.
The information presented by a peripheral is structured as services, each of which is subdivided into characteristics. You can think of services as the notices on a bulletin board, and characteristics as the individual paragraphs of those notices. If you’re a peripheral device, you just update each service characteristic when it needs updating and don’t worry about whether the central devices read them or not. If you’re a central device, you connect to the peripheral then read the boxes you want. If a given characteristic is readable and writable, then the peripheral and central can both change it.
Notify
Notify
The Bluetooth® LE specification includes a mechanism known as notify that lets you know when data’s changed. When notify on a characteristic is enabled and the sender writes to it, the new value is automatically sent to the receiver, without the receiver explicitly issuing a read command. This is commonly used for streaming data such as accelerometer or other sensor readings. There’s a variation on this specification called indicate which works similarly, but in the indicate specification, the reader sends an acknowledgement of the pushed data.
The client-server structure of Bluetooth® LE, combined with the notify characteristic, is generally called a publish-and-subscribe model.
Update a characteristic
Your peripheral should update characteristics when there’s a significant change to them. For example, when a switch changes from off to on, update its characteristic. When an analog sensor changes by a significant amount, update its characteristic.
Just as with writing to a characteristic, you could update your characteristics on a regular interval, but this wastes processing power and energy if the characteristic has not changed.
Central and Peripheral Devices
Central devices are clients. They read and write data from peripheral devices. Peripheral devices are servers. They provide data from sensors as readable characteristics, and provide read/writable characteristics to control actuators like motors, lights, and so forth.
Services, characteristics, and UUIDs
A Bluetooth® Low Energy peripheral will provide services, which in turn provide characteristics. You can define your own services, or use standard services.
Services are identified by unique numbers known as UUIDs. You know about UUIDs from other contexts. Standard services have a 16-bit UUID and custom services have a 128-bit UUID. The ability to define services and characteristics depends on the radio you’re using and its firmware.
Service design patterns
Service design patterns
A characteristic value can be up to 512 bytes long. This is a key constraint in designing services. Given this limit, you should consider how best to store data about your sensors and actuators most effectively for your application. The simplest design pattern is to store one sensor or actuator value per characteristic, in ASCII encoded values.
Characteristic
Value
Accelerometer X
200
Accelerometer Y
134
Accelerometer Z
150
This is also the most expensive in memory terms, and would take the longest to read. But it’s the simplest for development and debugging.
You could also combine readings into a single characteristic, when a given sensor or actuator has multiple values associated with it.
Characteristic
Value
Motor Speed, Direction
150,1
Accelerometer X, Y, Z
200,133,150
150,1
Accelerometer X, Y, Z
200,133,150
This is more efficient, but you need to be careful not to exceed the 512-byte limit. The accelerometer characteristic above, for example, takes 11 bytes as a ASCII-encoded string.
Read/write/notify/indicate
There are 4 things a central device can do with a characteristic:
Read: ask the peripheral to send back the current value of the characteristic. Often used for characteristics that don’t change very often, for example characteristics used for configuration, version numbers, etc.
Write: modify the value of the characteristic. Often used for things that are like commands, for example telling the peripheral to turn a motor on or off.
Indicate and Notify: ask the peripheral to continuously send updated values of the characteristic, without the central having to constantly ask for it.
Advertising and GAP
Advertising and GAP
BLE devices let other devices know that they exist by advertising using the General Advertising Profile (GAP). Advertising packets can contain a device name, some other information, and also a list of the services it provides.
Advertising packets have a limited size. You will only be able to fit a single 128-bit service UUID in the packet. Make sure the device name is not too long, or you won’t even be able to fit that.
You can provide additional services that are not advertised. Central devices will learn about these through the connection/bonding process. Non-advertised services cannot be used to discover devices, though. Sometimes this is not an issue. For example, you may have a custom peripheral device with a custom service, but in your central device app you may know that it also provides the Battery Service and other services.
GATT
GATT
The Bluetooth LE protocol operates on multiple layers. General Attribute Profile (GATT) is the layer that defines services and characteristics and enables read/write/notify/indicate operations on them. When reading more about GATT, you may encounter GATT concepts of a “server” and “client”. These don’t always correspond to central and peripherals. In most cases, though, the peripheral is the GATT server (since it provides the services and characteristics), while the central is the GATT client.
Library structure
As the library enables multiple types of functionality, there are a number of different classes.
BLE used to enable the Bluetooth® Low Energy module.
BLEDevice used to get information about the devices connected or discovered while scanning.
BLEService used to enable the services board provides or interact with services a remote board provides.
BLECharacteristic used to enable the characteristics board offers in a service or interact with characteristics a remote board provides.
BLEDescriptor used to describe a characteristic the board offers.
BLE class
BLE.begin()
BLE.end()
BLE.poll()
BLE.setEventHandler()
BLE.connected()
BLE.disconnect()
BLE.address()
BLE.rssi()
BLE.setAdvertisedServiceUuid()
BLE.setAdvertisedService()
BLE.setManufacturerData()
BLE.setLocalName()
BLE.setDeviceName()
BLE.setAppearance()
BLE.addService()
BLE.advertise()
BLE.stopAdvertise()
BLE.central()
BLE.setAdvertisingInterval()
BLE.setConnectionInterval()
BLE.setConnectable()
BLE.scan()
BLE.scanForName()
BLE.scanForAddress()
BLE.scanForUuid()
BLE.stopScan()
BLE.available()
BLEDevice Class
bleDevice.poll()
bleDevice.connected()
bleDevice.disconnect()
bleDevice.address()
bleDevice.rssi()
bleDevice.characteristic()
bleDevice.address()
bleDevice.rssi()
bleDevice.characteristic()
bleDevice.discoverAttributes()
bleDevice.discoverService()
bleDevice.deviceName()
bleDevice.appearance()
bleDevice.serviceCount()
bleDevice.hasService()
bleDevice.service()
bleDevice.characteristicCount()
bleDevice.hasCharacteristic()
bleDevice.hasLocalName()
bleDevice.hasAdvertisedServiceUuid()
bleDevice.advertisedServiceUuidCount()
bleDevice.localName()
bleDevice.advertisedServiceUuid()
bleDevice.connect()
BLEService Class
BLEService()
bleService.uuid()
bleService.addCharacteristic()
bleService.characteristicCount()
bleService.hasCharacteristic()
bleService.characteristic()
BLECharacteristic Class
BLECharacteristic()
bleCharacteristic.uuid()
bleCharacteristic.properties()
bleCharacteristic.valueSize()
bleCharacteristic.value()
bleCharacteristic.valueLength()
bleCharacteristic.readValue()
bleCharacteristic.value()
bleCharacteristic.valueLength()
bleCharacteristic.readValue()
bleCharacteristic.writeValue()
bleCharacteristic.setEventHandler()
bleCharacteristic.broadcast()
bleCharacteristic.written()
bleCharacteristic.subscribed()
bleCharacteristic.addDescriptor()
bleCharacteristic.descriptorCount()
bleCharacteristic.hasDescriptor()
bleCharacteristic.descriptor()
bleCharacteristic.canRead()
bleCharacteristic.canWrite()
bleCharacteristic.canSubscribe()
bleCharacteristic.subscribe()
bleCharacteristic.canUnsubscribe()
bleCharacteristic.unsubscribe()
bleCharacteristic.valueUpdated()
BLEDescriptor Class
BLEDescriptor()
bleDescriptor.uuid()
bleDescriptor.valueSize()
bleDescriptor.valueLength()
bleDescriptor.value()
bleDescriptor.readValue()
bleDescriptor.read()
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Blenderservoanimation
          
BlenderServoAnimation
Device Control
          Library to control servos based on an exported Blender animation.
          
          
          This library helps to control servos based on an exported Blender animation.
It is specifically designed to work with the Blender Servo Animation Add-on.
          
        
          Author: Tim Hendriks
          Maintainer: Tim Hendriks
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Egosmartheaterrs485
          
EgoSmartHeaterRS485
Device Control
          Controlling the EGO Smart Heater via RS485 using Modbus
          
          
          Works with SmartHeater product code 29.65335.000 and RS-485 module for Arduino (MAX485) on multiple architectures
          
        
          Author: Thomas Hock
          Maintainer: Thomas Hock
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Neteeprom
          
NetEEPROM
Communication
          A library that stores and retrieves network configuration from EEPROM.
          
          
          This allows the a network configuration to be stored once, efectively tying network information to the hardware. Once set up, multiple sketches running on the same hardware will retrieve the same network information and the same sketch running on multiple boards will receive a different network configuration for each board.
          
        
          Author: Greg Tan
          Maintainer: Greg Tan
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Energymeter
          
EnergyMeter
Signal Input/Output
          Arduino library to get data from energy meters in order to monitor them.
          
          
          This library is used to monitor energy meters. It uses callbacks to trigger actions each time the meter measures a certain kind of kilowatts-hour. By using this library, energy meters can be polled (less efficient approach) or can be interfaced through external interrupts (most efficient approach).
          
        
          Author: José Gabriel Companioni Benítez (elC0mpa)
Author: José Gabriel Companioni Benítez (elC0mpa)
          Maintainer: José Gabriel Companioni Benítez (elC0mpa)
Read the documentation
Go to repository
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.0.0
            (latest)
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Kmp rs485
          
KMP_RS485
Communication
          Library allows you send and receieve data using RS485 protocol
          
          
          You can communicate with devices support RS485 protocol
          
        
          Author: Plamen Kovandzhiev
          Maintainer: KMP Electronics
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.0.0
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > U8xlaserdistance
          
U8xLaserDistance
Sensors
          U8 series laser distance sensor Arduino library
          
          
          U8 series is an accurate LIDAR (ligth detection and ranging) sensor module with +/- 1 mm accuracy from JRT Meter Technology. This library support for U81x and other laser sensor module from JRT using U(S)ART interface.
          
        
          Author: Chandra Wijaya Sentosa
          Maintainer: Chandra Wijaya Sentosa
Read the documentation
Compatibility
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Bleserial
          
BLESerial
Communication
          A library to communicate with BLE Serial Modules
          
          
          Supports most Serial BLE modules, customizable.
          
        
          Author: Shrikant Patnaik
          Maintainer: Shrikant Patnaik
Read the documentation
Go to repository
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.1.0
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Ardtap
          
ArdTap
Communication
          A library to manage an Arduino board from a mobile in a couple of minutes. No coding, only configuration.
          
          
          Needs TapNLink hardware (standard or Primer) and IoTize Studio (free configuration software).
          
        
          Author: IoTize
          Maintainer: IoTize
Read the documentation
Compatibility
This library is compatible with the avr, sam, stm32
          architectures so you
          should be able to use it on the
          following Arduino boards:
Arduino Micro
Arduino Leonardo
Arduino Mega
Arduino Due
following Arduino boards:
Arduino Micro
Arduino Leonardo
Arduino Mega
Arduino Due
Arduino Nano
Arduino Uno
Arduino Yún
Compatibility Note
Note: while the library is supposed to compile correctly on these architectures,
          it might require specific hardware features that may be available only on some boards.
        
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.1.1
            (latest)
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Adafruit tca8418
          
Adafruit TCA8418
Signal Input/Output
          Arduino library for the TCA8418 Matrix Keypad Drivers in the Adafruit shop
          
          Author: Adafruit
          Maintainer: Adafruit
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.0.1
            (latest)
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > High performance imu bmi085
          
High Performance IMU BMI085
Sensors
          Library for communicating with the Bosch BMI085 6 axis IMU.
          
          
          This library supports both I2C and SPI communication with the BMI085 along with accessing the BMI085 advanced features, such as synchronized output.
          
        
          Author: Nanhe Chen
          Maintainer: Nanhe Chen
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
          boards.
Releases
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Wificonnect lite
          
WiFiConnect Lite
Communication
          A simple WiFi Connection Manager (captive portal) for the ESP8266 or ESP32.
          
          
          This project is a fork of the 'WiFiConnect' library, which itself was based upon the largely defunct WiFiManager. It includes a number of captive portal user interface improvements and bug fixes.
          
        
          Author: Stuart Blair
          Maintainer: Faptastic
Read the documentation
Go to repository
Compatibility
This library is compatible with the esp8266, esp32
          architectures.
          
        Releases
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Webserial
          
WebSerial
Communication
          A Web based Serial Monitor for ESP8266 & ESP32 to debug your code remotely.
          
          
          WebSerial is a webpage based Serial Monitor to log, monitor, or debug your code remotely.
          
        
          Author: Ayush Sharma
          Maintainer: Ayush Sharma
Read the documentation
Compatibility
This library is compatible with the esp8266, esp32
          architectures.
          
        Releases
To use this library, open the Library Manager in
          the
          Arduino IDE and install it from there.
1.4.0
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Clusterduck protocol
          
ClusterDuck Protocol
Uncategorized
          Mesh communication protocol.
          
          
          The ClusterDuck Protocol is an open souce project maintained by Project OWL. It uses a combination of WiFi and LoRa technologies to make simple mobile communications accessable to communities when cellualr and internet are unavailable. Currently supports hardware architectures that use the ESP32 and SX1276.
          
        
          Author: Project OWL
          Maintainer: Project OWL
Read the documentation
Compatibility
This library is compatible with all architectures so you should be able to use
          it on all the Arduino
Language
functions
variables
structure
Libraries
IoT Cloud API
Glossary
        Find anything that can be improved? Suggest corrections and new documentation via GitHub.
        Doubts on how to use Github? Learn everything you need to know in this tutorial.
    
Reference
            >  Libraries
            > Noblockeeprom
          
NoBlockEEPROM
Other
          Non Blocking EEPROM Library for Arduino
          
          
          Library that does not use blocking methods to write/read to eeprom
          
        
          Author: Victor Chavez
          Maintainer: Victor Chavez
Read the documentation
Compatibility
This library is compatible with the avr
          architecture so you
          should be able to use it on the
          following Arduino boards:
Arduino Micro
Arduino Leonardo
Arduino Mega
Arduino Nano
Arduino Uno
Arduino Yún
Compatibility Note
Note: while the library is supposed to compile correctly on these architectures,