# Arduino Documentation — Full Reference > Complete technical documentation for Arduino hardware, software, cloud platform, and programming. Contains detailed descriptions of all Arduino products with specifications, guides, and tutorials for accurate technical answers about the Arduino ecosystem. ## About this file This file lists Arduino documentation pages with their introductory content (typically the first 1–2 paragraphs). For complete page content, follow the URL associated with each entry. Generated on 2026-08-17 from the docs.arduino.cc source repository. ## Hardware Products ### 4 Relays Shield URL: https://docs.arduino.cc/hardware/4-relays-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/shields/4-relays-shield/product.md The Arduino 4 Relays Shield allows your Arduino to drive high power loads. ### 9 Axis Motion Shield URL: https://docs.arduino.cc/hardware/9-axis-motion-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/shields/9-axis-motion-shield/product.md Allow your Arduino to measure movement: orientation, acceleration and magnetic field! ### Alvik URL: https://docs.arduino.cc/hardware/alvik/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/08.edu/solution-and-kits/alvik/product.md Arduino Alvik is a powerful and versatile robot specifically designed for programming and robotics education. Powered by the Arduino Nano ESP32, Arduino Alvik offers diverse learning paths through different programming languages, including MicroPython, Arduino C, and block-based coding, enabling different possibilities to explore robotics, IoT and AI. ### Braccio Carrier URL: https://docs.arduino.cc/hardware/braccio-carrier/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/08.edu/carriers/braccio-carrier/product.md The Arduino® Braccio Carrier enables you to quickly and efficiently pursue your projects and ideas within e.g. robotics and automation with the Braccio ++. The carrier is equipped with connectors, a display and joystick to enhance the experience. ### Bughopper URL: https://docs.arduino.cc/hardware/bughopper/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/13.accessories/accessories/bughopper/product.md The Arduino Bughopper is a compact USB-to-UART debug accessory designed to bring remote debugging capabilities to compatible target boards via their JCTL 2.54 mm debug connector. Built around the FT230XQ USB-to-UART bridge, it provides a reliable serial link between your development machine and the target board without occupying the board's main USB port. An onboard level translator automatically adapts signal levels between the Bughopper and the target board, ensuring compatibility regardless of the target's operating voltage. ### DIN Celsius URL: https://docs.arduino.cc/hardware/din-celsius/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/08.edu/solution-and-kits/din-celsius/product.md The Arduino DIN Celsius offers you a all-in-one temperature laboratory with two independent heater and a temperature sensors. A practical solution for industrial and automation projects, to be complemented with Arduino Opta® family. ### DIN Simul8 URL: https://docs.arduino.cc/hardware/din-simul8/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/08.edu/solution-and-kits/din-simul8/product.md The Arduino DIN Simul8 offers you eight handy switches ready to be link to one of the board of the Opta family. Thanks to its power distribution connectors it can be the source of power to the PLC Starter Kit. ### Due URL: https://docs.arduino.cc/hardware/due/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/10.mega/boards/due/product.md The Arduino Due is the first Arduino board based on a 32-bit ARM core microcontroller. With 54 digital input/output pins, 12 analog inputs, 2 DAC and 2 CAN it is the perfect board for powerful larger scale Arduino projects. ### Edge Control URL: https://docs.arduino.cc/hardware/edge-control/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/05.pro-solutions/solutions-and-kits/edge-control/product.md A remote monitoring and control solution, optimized for outdoor environments. Collect real-time data from smart sensors and leverage all on the edge. ### Edge Control Enclosure Kit URL: https://docs.arduino.cc/hardware/enclosure-kit/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/05.pro-solutions/solutions-and-kits/enclosure-kit/product.md The Edge Control Enclosure Kit provides a full enclosure for the Edge Control. ### Ethernet Shield Rev2 URL: https://docs.arduino.cc/hardware/ethernet-shield-rev2/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/shields/ethernet-shield-rev2/product.md Have an idea for a network project? Connect your Arduino to an ethernet shield and you will quickly be able to start sending sensor data to your network to interact with other gadgets in your home. ### GIGA Display Shield URL: https://docs.arduino.cc/hardware/giga-display-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/10.mega/shields/giga-display-shield/product.md The GIGA Display Shield is a touch screen solution for quickly and easily deploying UI and visual solutions to your GIGA R1 WiFi projects, with a 800x480 RGB touch display and support for several UI building frameworks. 3D printable enclosure for Arduino GIGA R1 WiFi and GIGA Display Shield can be found here. ### GIGA R1 WiFi URL: https://docs.arduino.cc/hardware/giga-r1-wifi/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/10.mega/boards/giga-r1-wifi/product.md The GIGA R1 WiFi is a powerful, feature-packed board with a large amount of GPIOs and dedicated connectors. Based on the STM32H747XI micro based on the Mbed OS, the GIGA R1 WiFi features 76 GPIOs, a dual core processor, advanced ADC/DAC features as well as camera & display connectors. It also has a rich USB interface with support for HID via USB-C® and USBHost (keyboard, mass storage) via a dedicated USB-A connector. ### IoT Bundle URL: https://docs.arduino.cc/hardware/iot-bundle/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/09.kits/maker/iot-bundle/product.md Arduino IoT Bundle allows you to build your next smart project. Ever wanted an automated house? Or a smart garden? Well, now it’s easy with the Arduino Cloud compatible boards. It means: you can connect devices, visualize data, control and share your projects from anywhere in the world. Whether you’re a beginner or a pro, we have a wide range of plans to make sure you get the features you need. ### Leonardo URL: https://docs.arduino.cc/hardware/leonardo/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/12.hero/boards/leonardo/product.md The Leonardo differs from all preceding boards in that the ATmega32u4 has built-in USB communication, eliminating the need for a secondary processor. This allows the Leonardo to appear to a connected computer as a mouse and keyboard, in addition to a virtual (CDC) serial / COM port. ### Make Your UNO Kit URL: https://docs.arduino.cc/hardware/make-your-uno-kit/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/09.kits/maker/make-your-uno-kit/product.md Build your own Arduino UNO from scratch using raw electronic components! The Make Your UNO Kit includes all electronic components needed to build the classic UNO board, a long with 3D instructions, video & text content to support your journey. ### Matter Discovery Bundle URL: https://docs.arduino.cc/hardware/discovery-bundle/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/09.kits/maker/discovery-bundle/product.md Build smarter and prototype faster with the Arduino Matter Discovery Bundle — an easy way to start creating interoperable IoT devices using Matter®, the industry-backed standard supported by Apple, Google, Amazon, Home Assistant and others. The box includes a Matter-compatible Arduino Nano, three sensor/actuator modules, and a plug-and-play carrier, plus a 7-chapter curriculum to help you go from idea to working prototype and start debugging quickly with the board's debugging over USB. ### Mega 2560 Rev3 URL: https://docs.arduino.cc/hardware/mega-2560/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/10.mega/boards/mega-2560/product.md The 8-bit board with 54 digital pins, 16 analog inputs, and 4 serial ports. ### Micro URL: https://docs.arduino.cc/hardware/micro/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/12.hero/boards/micro/product.md The Micro runs on an ATmega32u4 processor with native USB communication. Configure via software whether the board is recognised as a standard Arduino, a mouse or keyboard. ### MKR 1000 WiFi URL: https://docs.arduino.cc/hardware/mkr-1000-wifi/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/01.boards/mkr-1000-wifi/product.md The Arduino MKR 1000 WiFi is the easiest point of entry to basic IoT and pico-network application design. Whether you are looking at setting up a sensor network for your office or building a smart home, the MKR 1000 WiFi will make that journey easy. ### MKR 485 Shield URL: https://docs.arduino.cc/hardware/mkr-485-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/02.shields/mkr-485-shield/product.md The MKR 485 Shield makes it possible to communicate with legacy industrial systems that uses the RS-485 protocol. The shield is simply mounted on a MKR family board, easily turning your old local system into a modern IoT system. To use this shield, you can refer to the documentation of the ArduinoRS485 library. ### MKR CAN Shield URL: https://docs.arduino.cc/hardware/mkr-can-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/02.shields/mkr-can-shield/product.md The MKR CAN Shield is a great addon for MKR family boards, and allows you to connect to a CAN (Controller Area Network) bus, widely used in the automotive industry. To use this shield, you can refer to the documentation of the CAN library. ### MKR Connector Carrier URL: https://docs.arduino.cc/hardware/mkr-connector-carrier/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/03.carriers/mkr-connector-carrier/product.md The MKR Connector Carrier is a really useful extension for MKR family boards. It features 14 grove compatible connectors, which allows you to choose between hundreds of different sensors and actuators for your project. ### MKR ENV Shield URL: https://docs.arduino.cc/hardware/mkr-env-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/02.shields/mkr-env-shield/product.md The MKR ENV Shield is a perfect addon for the MKR family series, and is capable of reading temperature, humidity, light and pressure. The data is acquired easily through an easy-to-use library, and has an SD card slot for offline data logging. To use this shield, you can refer to the documentation of the MKR ENV library. ### MKR ETH Shield URL: https://docs.arduino.cc/hardware/mkr-eth-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/02.shields/mkr-eth-shield/product.md The MKR ETH Shield is a great solution for projects that require high-speed and reliable connections, such as industrial systems. It features an Ethernet connector, and can be simply mounted on top of any MKR family board. To use this shield, you can refer to the documentation of the Ethernet library. ### MKR FOX 1200 URL: https://docs.arduino.cc/hardware/mkr-fox-1200/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/01.boards/mkr-fox-1200/product.md The MKR FOX 1200 is your entry point to start working with the European Sigfox networks. The board can easily be added to the Sigfox infrastructure. It also features very low power consumption, and is designed to run on batteries for a longer period of time. ### MKR GPS Shield URL: https://docs.arduino.cc/hardware/mkr-gps-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/02.shields/mkr-gps-shield/product.md The MKR GPS Shield is based on the u-blox SAM-M8Q GNSS (Global Navigation Satellite System) module. It can be used to add GPS to any of your MKR boards. To use this shield, you can refer to the documentation of the MKR GPS library. ### MKR GSM 1400 URL: https://docs.arduino.cc/hardware/mkr-gsm-1400/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/01.boards/mkr-gsm-1400/product.md The Arduino MKR GSM 1400 is a great starting point for building IoT projects connected to GSM / 3G network. Whether you are looking at building a sensor network for agricultural projects, or for urban data collection, the MKR GSM 1400 is your go-to board for IoT projects when Wi-Fi® is not available. ### MKR IMU Shield URL: https://docs.arduino.cc/hardware/mkr-imu-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/02.shields/mkr-imu-shield/product.md The MKR IMU Shield helps you integrate inertial measurements with your projects. Read three-dimensional acceleration, yaw rate and magnetical field by simply mounting it on top of a MKR family board. To use this shield, you can refer to the documentation of the MKR IMU library. ### MKR IoT Carrier URL: https://docs.arduino.cc/hardware/mkr-iot-carrier/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/03.carriers/mkr-iot-carrier/product.md The sensors, circuits and display integrated on the MKR IoT Carrier leave you free to focus on prototyping and programming your next IoT projects. ### MKR IoT Carrier Rev2 URL: https://docs.arduino.cc/hardware/mkr-iot-carrier-rev2/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/03.carriers/mkr-iot-carrier-rev2/product.md The sensors, circuits and display integrated on the MKR IoT Carrier Rev2 leaves you free to focus on prototyping and programming your IoT projects. ### MKR MEM Shield URL: https://docs.arduino.cc/hardware/mkr-mem-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/02.shields/mkr-mem-shield/product.md Add extra flash memory (2 MB) and store larger files on a Micro SD card with the MKR MEM Shield. As a bonus, the shield has a prototyping area, for adding e.g. smaller displays, sensors, actuators and more. Compatible with all MKR family boards. To use this shield, you can refer to the documentation of the SD library. ### MKR Motor Carrier URL: https://docs.arduino.cc/hardware/mkr-motor-carrier/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/03.carriers/mkr-motor-carrier/product.md The MKR Motor Carrier makes it easy to control servo, DC and stepper motors. With a number of different built in motor drivers, several easy connectors for motors and batteries and support for encoders, this powerhouse of a carrier is a must for any MKR projects involving motors. ### MKR NB 1500 URL: https://docs.arduino.cc/hardware/mkr-nb-1500/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/01.boards/mkr-nb-1500/product.md The Arduino MKR NB 1500 adds Narrowband communication to your projects. It can communicate over NB-IoT and LTE-M networks, and is excellent to use for low-power projects in remote areas. The MKR NB 1500 is also compatible with the Arduino Cloud, making it easy to access wherever you are in the world. ### MKR Relay Shield URL: https://docs.arduino.cc/hardware/mkr-relay-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/02.shields/mkr-relay-shield/product.md The MKR Relay Shield has two relays mounted that can be used for loads up to 24 V. It also features two status LEDs and a prototyping area for adding your own components. ### MKR RGB Shield URL: https://docs.arduino.cc/hardware/mkr-rgb-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/02.shields/mkr-rgb-shield/product.md The MKR RGB Shield is a great for creating simple light installations out of the box! With 84 programmable RGBs in a 12x7 matrix, you can use it to create scrolling texts, create simple animations or even use it to create retro games. To use this shield, you can refer to the documentation of the MKR RGB library. ### MKR SD Proto Shield URL: https://docs.arduino.cc/hardware/mkr-sd-proto-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/02.shields/mkr-sd-proto-shield/product.md The MKR SD Proto Shield simply features a Micro SD card holder: the rest is up to you. You can mount smaller displays, or pack it with sensors and actuators of your own choice. It can be simply mounted on top of any MKR family board. To use this shield, you can refer to the documentation of the SD library. ### MKR Therm Shield URL: https://docs.arduino.cc/hardware/mkr-therm-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/02.shields/mkr-therm-shield/product.md The MKR Therm Shield is a great addon for MKR family boards, and allows you to connect high quality thermocouplers, and can calculate temperatures from -200 °C to +700 °C. An ideal solution to use for ovens, freezers, smokers and similar environments. To use this shield, you can refer to the documentation of the Arduino_MKRTHERM library. ### MKR Vidor 4000 URL: https://docs.arduino.cc/hardware/mkr-vidor-4000/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/01.boards/mkr-vidor-4000/product.md The Arduino MKR Vidor 4000 is without a doubt the most advanced and featured-packed board in the MKR family, and the only one with a FPGA chip on board. With a camera & HDMI connector, a Wi-Fi® / Bluetooth® module and up to 25 configurable pins, the sky is really the limit with this board. ### MKR WAN 1300 URL: https://docs.arduino.cc/hardware/mkr-wan-1300/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/01.boards/mkr-wan-1300/product.md The Arduino MKR WAN 1300 was the first LoRa® board released by Arduino, offering a practical and cost-effective solution with minimal power requirements. This open source board can connect to the Arduino Cloud, your own LoRa-based network using the Arduino LoRa® PRO Gateway, existing public networks such as The Things Network (TTN) or even other boards using direct connectivity mode. ### MKR WAN 1310 URL: https://docs.arduino.cc/hardware/mkr-wan-1310/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/01.boards/mkr-wan-1310/product.md The Arduino MKR WAN 1310 provides a practical and cost effective solution to add LoRa® connectivity to projects requiring low power. This open source board can connect to the Arduino Cloud, your own LoRa-based network using the Arduino LoRa® PRO Gateway, existing public networks such as The Things Network or even other boards using the direct connectivity mode. ### MKR WiFi 1010 URL: https://docs.arduino.cc/hardware/mkr-wifi-1010/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/01.boards/mkr-wifi-1010/product.md The easiest entry point to basic IoT and pico-network application design. Whether you are looking at building a sensor network connected to your office or home router, or if you want to create a Bluetooth® Low Energy device sending data to a cellphone, the MKR WiFi 1010 is your one-stop-solution for many of the basic IoT application scenarios. ### MKR Zero URL: https://docs.arduino.cc/hardware/mkr-zero/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/01.mkr/01.boards/mkr-zero/product.md The Arduino MKR Zero is a development board for music makers! With an SD card holder and dedicated SPI interfaces (SPI1), you are able to play music files without extra hardware. ### Modulino Buttons URL: https://docs.arduino.cc/hardware/modulino-buttons/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-buttons/product.md Easily add user interaction to your projects with three SPST push buttons and integrated yellow LEDs. Compatible with the Arduino UNO R4 WiFi or any board with a Qwiic interface, and includes solderable pins for direct wiring if you aren’t using Qwiic. Focus on creating interactive experiences without the need for complex circuits. ### Modulino Buzzer URL: https://docs.arduino.cc/hardware/modulino-buzzer/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-buzzer/product.md Easily add audible alerts and notifications to any project with the built-in buzzer. From simple beeps to quick tunes, it keeps you informed. It connects to Arduino UNO R4 WiFi or other Qwiic-capable boards, and solderable pins allow for direct wiring whenever needed. ### Modulino Distance URL: https://docs.arduino.cc/hardware/modulino-distance/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-distance/product.md Precise time-of-flight distance sensing in a compact form factor (VL53L4CDV0DH/1). Ideal for proximity detection, robotics, or smart-home triggers. Easily connect to the Arduino UNO R4 WiFi or any board with a Qwiic interface, or use the solderable pins for a custom wiring solution. ### Modulino Extender URL: https://docs.arduino.cc/hardware/modulino-extender/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-extender/product.md Extend your I2C communication beyond standard limits with the LTC4311 accelerator. Enables reliable connections up to 30 meters with Cat5e/Cat6 cables while maintaining signal integrity. Compatible with Arduino UNO R4 WiFi, UNO Q, and any board with a Qwiic interface. Perfect for remote sensor networks and distributed installations. ### Modulino Hub URL: https://docs.arduino.cc/hardware/modulino-hub/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-hub/product.md Use multiple identical sensors in a single project with eight independent I2C channels. The TCA9548ARGER multiplexer isolates each device on its own bus, eliminating address conflicts. Whether expanding a project or building a complex monitoring system, the Hub keeps your I2C network organized. ### Modulino Joystick URL: https://docs.arduino.cc/hardware/modulino-joystick/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-joystick/product.md A dual-axis analogue joystick with integrated pushbutton for precise directional control. Perfect for gaming controllers, robotics navigation, or interactive interfaces. Compatible with Arduino UNO R4 WiFi or any Qwiic-enabled board, with solderable pins available for custom wiring. Get smooth, responsive control without complex circuitry. ### Modulino Knob URL: https://docs.arduino.cc/hardware/modulino-knob/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-knob/product.md A rotary encoder with a built-in SPST switch—ideal for menu navigation, parameter tuning, or interactive input. Effortlessly integrate with Arduino UNO R4 WiFi or other Qwiic-enabled boards, or use the solderable pins if Qwiic is not available. No complex wiring needed to start turning your ideas into reality. ### Modulino Latch Relay URL: https://docs.arduino.cc/hardware/modulino-latch/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-latch/product.md A bistable latching relay that maintains its state without continuous power, ideal for DC power control and automation. Switch high-current loads up to 30V DC with easy I2C control. Compatible with Arduino UNO R4 WiFi or any Qwiic-enabled board. Control motors, pumps, or lighting systems without complex wiring. ### Modulino LED Matrix URL: https://docs.arduino.cc/hardware/modulino-matrix/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-matrix/product.md An 8×12 LED matrix display for showing text, graphics, and animations in your projects. Create scrolling messages, visual notifications, or interactive games with 96 individually controllable LEDs. Compatible with Arduino UNO R4 WiFi or any Qwiic-enabled board, with the same functionality as the UNO R4 WiFi built-in matrix for easy code compatibility. ### Modulino Light URL: https://docs.arduino.cc/hardware/modulino-light/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-light/product.md An advanced optical sensor featuring ambient light, RGB colour detection, and infrared sensing capabilities. Identify colours, measure light levels, or detect infrared radiation for smart lighting, colour sorting, or interactive projects. Compatible with Arduino UNO R4 WiFi or any Qwiic-enabled board, with simple I2C integration for comprehensive optical sensing. ### Modulino Motors URL: https://docs.arduino.cc/hardware/modulino-motors/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-motors/product.md Drive your robotics projects with precision motor control. Built around the MAX22211 dual H-bridge driver, this module can handle two brushed DC motors, one bipolar stepper motor, or multiple solenoids and valves with up to 3.8A per channel. Connect via Qwiic for plug-and-play simplicity and use the screw terminals for direct motor wiring with 5-24V power supply support. ### Modulino Movement URL: https://docs.arduino.cc/hardware/modulino-movement/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-movement/product.md Measure acceleration and rotation with ease thanks to the integrated 6-axis sensor (LSM6DSOXTR). Perfect for robotics, wearables, or motion-driven applications. Compatible with the Arduino UNO R4 WiFi or any Qwiic-enabled board, and features optional solderable pins if you prefer direct wiring. ### Modulino Pixels URL: https://docs.arduino.cc/hardware/modulino-pixels/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-pixels/product.md Illuminate your projects with eight customizable RGB LEDs (LC8822-2020). Create dazzling color displays, visual indicators, or light-based animations—all with minimal effort. Compatible with the Arduino UNO R4 WiFi or any board featuring a Qwiic interface, and includes solderable pins if you prefer a direct wiring approach. ### Modulino Thermo URL: https://docs.arduino.cc/hardware/modulino-thermo/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-thermo/product.md Monitor temperature and humidity seamlessly with the HS3003 sensor. Whether building a weather station or a climate control project, this module makes data capture straightforward. Designed for Arduino UNO R4 WiFi or any Qwiic-capable board; solderable pins provide an alternative wiring option. ### Modulino Vibro URL: https://docs.arduino.cc/hardware/modulino-vibro/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/11.modulino/modulino-nodes/modulino-vibro/product.md A compact vibration motor module for adding haptic feedback and tactile alerts to your projects. Perfect for wearable devices, gaming controllers, notification systems, or interactive art installations. Compatible with Arduino UNO R4 WiFi or any Qwiic-enabled board, with simple I2C control for variable intensity vibration patterns. ### Motor Shield Rev3 URL: https://docs.arduino.cc/hardware/motor-shield-rev3/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/shields/motor-shield-rev3/product.md The Arduino Motor Shield allows your arduino to drive DC and stepper motors, relays and solenoids. ### Nano URL: https://docs.arduino.cc/hardware/nano/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/boards/nano/product.md The Arduino Nano is Arduino's classic breadboard friendly designed board with the smallest dimensions. The Arduino Nano comes with pin headers that allow for an easy attachment onto a breadboard and features a Mini-B USB connector. ### Nano 33 BLE URL: https://docs.arduino.cc/hardware/nano-33-ble/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/boards/nano-33-ble/product.md The Arduino Nano 33 BLE shares its pinout with the classic Arduino Nano but builds on the nRF52840 microcontroller with 1MB CPU Flash Memory. Featuring a 9 axis inertial measurement unit and the possibility for Bluetooth® Low Energy connectivity it can help you to create your next Bluetooth® Low Energy enabled project. ### Nano 33 BLE Rev2 URL: https://docs.arduino.cc/hardware/nano-33-ble-rev2/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/boards/nano-33-ble-rev2/product.md The Arduino Nano 33 BLE Rev2 shares its pinout with the classic Arduino Nano but builds on the nRF52840 microcontroller with 1MB CPU Flash Memory. Featuring a 9-axis inertial measurement unit and the possibility for Bluetooth® Low Energy connectivity. It can help you to create your next Bluetooth® Low Energy-enabled project. ### Nano 33 BLE Sense URL: https://docs.arduino.cc/hardware/nano-33-ble-sense/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/boards/nano-33-ble-sense/product.md The Arduino Nano 33 BLE Sense combines a tiny form factor, different environment sensors and the possibility to run AI using TinyML and TensorFlow™ Lite. Whether you are looking at creating your first embedded ML application or you want to use Bluetooth® Low Energy to connect your project to your phone, the Nano 33 BLE Sense will make that journey easy. ### Nano 33 BLE Sense Rev2 URL: https://docs.arduino.cc/hardware/nano-33-ble-sense-rev2/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/boards/nano-33-ble-sense-rev2/product.md The Arduino Nano 33 BLE Sense Rev2 combines a tiny form factor, different environment sensors and the possibility to run AI using TinyML and TensorFlow™ Lite. Whether you are looking at creating your first embedded ML application or you want to use Bluetooth® Low Energy to connect your project to your phone, the Nano 33 BLE Sense Rev2 will make that journey easy. ### Nano 33 IoT URL: https://docs.arduino.cc/hardware/nano-33-iot/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/boards/nano-33-iot/product.md The Arduino Nano 33 IoT combines the Arduino Nano form factor with an easy point of entry to basic IoT and pico-network applications. Whether you are looking at building a sensor network connected to your office or home router, or if you want to create a Bluetooth® Low Energy device sending data to a cellphone, the Nano 33 IoT is your one-stop-solution for many of the basic IoT application scenarios. ### Nano Connector Carrier URL: https://docs.arduino.cc/hardware/nano-connector-carrier/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/carriers/nano-connector-carrier/product.md The Nano Connector Carrier brings plug & play compatibility with QWIIC and Grove modules, making rapid prototyping easier than ever. ### Nano ESP32 URL: https://docs.arduino.cc/hardware/nano-esp32/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/boards/nano-esp32/product.md The Arduino Nano ESP32 is the first ever Arduino board based on a ESP32 microcontroller from Espressif, the NORA-W106 module from u-blox®. USB-C® connector, 16 MB (128 Mbit) of Flash, support for MicroPython & Arduino Cloud enabled, it is a very versatile development board. This board is a perfect entry point to learn MicroPython, dive into it with our free course: MicroPython 101 ### Nano Every URL: https://docs.arduino.cc/hardware/nano-every/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/boards/nano-every/product.md The Nano Every is Arduino's smallest board with dimensions of only 45x18mm and a weight under 5 g. The small footprint and low price, make the Nano Every particularly suited for wearable inventions, low cost robotics and interactive projects requiring a small and easy-to-use microcontroller board. ### Nano Matter URL: https://docs.arduino.cc/hardware/nano-matter/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/boards/nano-matter/product.md The Arduino Nano Matter combines Arduino's user-friendly approach with the powerful MGM240S technology from Silicon Labs. This enables Makers and Professionals to work with Matter®, the popular standard for IoT devices, taking advantage of the Nano's low-power and compact design. ### Nano Motor Carrier URL: https://docs.arduino.cc/hardware/nano-motor-carrier/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/carriers/nano-motor-carrier/product.md The Nano Motor Carrier provides a quick and easy way to connect and control motors in your Engineering Kit Rev2. ### Nano R4 URL: https://docs.arduino.cc/hardware/nano-r4/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/boards/nano-r4/product.md The Arduino Nano R4 brings the power of a 32-bit Arm® Cortex®-M4 processor to the beloved Nano family board form factor. Based on the Renesas RA4M1 microcontroller, it features 256 kB Flash, 32 kB SRAM and an 8 kB EEPROM, all running at 48 MHz with a built-in real-time clock (RTC), 14-bit ADC and a 12-bit DAC. ### Nano RP2040 Connect URL: https://docs.arduino.cc/hardware/nano-rp2040-connect/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/boards/nano-rp2040-connect/product.md The Arduino Nano RP2040 Connect is the feature packed Arduino Nano board built with Raspberry Pi's new silicon. ### Nano Screw Terminal Adapter URL: https://docs.arduino.cc/hardware/nano-screw-terminal-adapter/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/03.nano/carriers/nano-screw-terminal-adapter/product.md The Nano Screw Terminal Adapter is a simple design that allows you to create robust designs with your Nano boards. ### Nesso N1 URL: https://docs.arduino.cc/hardware/nesso-n1/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/09.kits/maker/nesso-n1/product.md The Arduino Nesso N1 is a high-performance, all-in-one development board for remote monitoring and automation. Powered by an ESP32-C6 SoC, it integrates Wi-Fi® 6, Bluetooth® LE 5.3, Thread/Zigbee®, and LoRa® communication protocols. Featuring a 1.14" color touchscreen, built-in IMU sensor, programmable buttons, and a rechargeable battery, the Nesso N1 is the ultimate tool for developing sophisticated IoT solutions. ### Nicla Sense Env URL: https://docs.arduino.cc/hardware/nicla-sense-env/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/06.nicla/boards/nicla-sense-env/product.md The Arduino® Nicla Sense Env packs advanced environmental sensing in a compact form. The board it is intended to be used in conjunction with the Portenta/MKR family of SOM. It integrates the ultra low-power HS4001 temperature and humidity sensor, the ZMOD4410 for indoor air quality, and the ZMOD4510 for outdoor air monitoring (NO₂, O₃). Powered by the Renesas RA2E1 microcontroller and featuring an ESLOV connector, it enables ultra low-power sensor networks for environmental applications. Compatible with Portenta, MKR, and other Arduino platforms, the Arduino Nicla Sense Env is ideal for scalable, high-performance projects requiring sensor fusion. ### Nicla Sense ME URL: https://docs.arduino.cc/hardware/nicla-sense-me/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/06.nicla/boards/nicla-sense-me/product.md The Nicla Sense ME houses 4 low power sensors in a small footprint enabling powerful data fusion capabilities on the edge. Analyse 'Motion' and 'Environment' with industrial grade Bosch sensors that can accurately measure rotation, acceleration, pressure, humidity, temperature, air quality and CO2 levels. ### Nicla Vision URL: https://docs.arduino.cc/hardware/nicla-vision/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/06.nicla/boards/nicla-vision/product.md The Arduino® Nicla Vision is a ready-to-use, standalone camera for analyzing and processing images on the edge. Thanks to its 2 MP color camera, smart 6-axis motion sensor, integrated microphone and distance sensor, it is suitable for asset tracking, object recognition and predictive maintenance. Quickly implement sensor nodes to send collected data to the Arduino® Cloud (or third-party vendor services) via integrated Wi-Fi®/Bluetooth® LE connectivity. ### Nicla Voice URL: https://docs.arduino.cc/hardware/nicla-voice/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/06.nicla/boards/nicla-voice/product.md The Arduino® Nicla Voice packs speech and motion recognition capabilities on the edge into a tiny form factor. The board integrates a dedicated Neural Decision Processor NDP120 empowering multiple AI algorithms simultaneously. Leverage the built-in microphone, nRF52832 microcontroller, Bluetooth® Low Energy module, 6-axis IMU, and 3-axis magnetometer to create your wireless sensor network for machine learning applications with ultra low-power consumption capabilities. ### Opta URL: https://docs.arduino.cc/hardware/opta/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/07.opta/opta-family/opta/product.md The Arduino Opta® is a secure, easy-to-use micro PLC with Industrial IoT capabilities. Designed in partnership with Finder®, a leading industrial and building automation device manufacturer. ### Opta Analog Expansion A0602 URL: https://docs.arduino.cc/hardware/opta-analog-exp/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/07.opta/opta-family/opta-analog-exp/product.md The Arduino Opta® Analog Expansion A0602 is a plug-and-play extension to the Opta® PLC Controller that expands its capabilities with more inputs with multiple functions such as digital, analog voltage, analog current or temperature and more outputs with analog voltage, analog current and PWM functionalities. It is fully compatible with the Arduino ecosystem. ### Opta Digital Expansion D1608E - D1608S URL: https://docs.arduino.cc/hardware/opta-digital-exp/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/07.opta/opta-family/opta-digital-exp/product.md The Arduino Opta® Digital Expansion D1608E and the Arduino Opta® Digital Expansion D1608S are plug-and-play extensions for the Opta® PLC controller, designed to enhance its functionality with additional inputs and outputs. These expansions come in two variants: the AFX00005 - Opta Ext D1608E (with electromechanical relays) and the AFX00006 - Opta Ext D1608S (with solid state relays), both fully compatible with the Arduino ecosystem. ### Plant Watering Kit URL: https://docs.arduino.cc/hardware/plant-watering-kit/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/09.kits/maker/plant-watering-kit/product.md Decorating your home with plants is an easy way to bring some life into your day-to-day. The only problem is - those plants need water to survive, and if you forget to pay attention to them for a while you may need to start over. So instead of staying ever vigilant, why not spend an afternoon creating a setup that will let you both monitor the amount of moisture in your plants soil, and water your plants from afar using the Arduino Cloud? ### Plug and Make Kit URL: https://docs.arduino.cc/hardware/plug-and-make-kit/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/09.kits/maker/plug-and-make-kit/product.md Combine Modulino® nodes in any way you can think of to create one of countless possible projects, or build one of the example projects with the included instructions. Focus on learning important programming concepts without the need of making complex circuits, just plug the Modulino® into your board and start programming. ### Portenta Breakout URL: https://docs.arduino.cc/hardware/portenta-breakout/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/carriers/portenta-breakout/product.md Arduino Portenta Breakout board is designed to help hardware engineers and makers to prototype and help test devices connections and capacity within the Portenta family boards (e.g. the Portenta H7). ### Portenta C33 URL: https://docs.arduino.cc/hardware/portenta-c33/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/boards/portenta-c33/product.md The Portenta C33 is a powerful System-on-Module based on the Renesas RA6M5 microcontroller group, which utilizes the high-performance Arm® Cortex®-M33 core. The Portenta C33 shares the same form factor as the Portenta H7 and is backward compatible with it, making it fully compatible with all Portenta family shields and carriers through its High-Density connectors. ### Portenta Cat. M1/NB IoT GNSS Shield URL: https://docs.arduino.cc/hardware/portenta-cat-m1-nb-iot-gnss-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/shields/portenta-cat-m1-nb-iot-gnss-shield/product.md Unleash global connectivity and localization capabilities of your Portenta or MKR board with the Arduino® Portenta Cat. M1/NB IoT GNSS Shield. This shield enables cellular connectivity to both Cat. M1 and NB-IoT networks with the option to use eSIM technology. Easily track your valuable assets across the city worldwide with your choice of GPS, GLONASS, Galileo or BeiDou. ### Portenta H7 URL: https://docs.arduino.cc/hardware/portenta-h7/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/boards/portenta-h7/product.md The Portenta H7 follows the Arduino MKR form factor, but enhanced with the Portenta family 80 pin high-density connector. Program it with high-level languages and AI while performing low-latency operations on its customizable hardware. ### Portenta H7 Lite URL: https://docs.arduino.cc/hardware/portenta-h7-lite/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/boards/portenta-h7-lite/product.md The Portenta H7 Lite follows the Arduino MKR form factor, but enhanced with the Portenta family 80 pin high-density connector. Program it with high-level languages and AI while performing low-latency operations on its customizable hardware. ### Portenta H7 Lite Connected URL: https://docs.arduino.cc/hardware/portenta-h7-lite-connected/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/boards/portenta-h7-lite-connected/product.md The Portenta H7 Lite Connected follows the Arduino MKR form factor, but enhanced with the Portenta family 80 pin high-density connector. Program it with high-level languages and AI while performing low-latency operations on its customizable hardware. ### Portenta Hat Carrier URL: https://docs.arduino.cc/hardware/portenta-hat-carrier/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/carriers/portenta-hat-carrier/product.md The Portenta Hat Carrier is an innovative solution enabling multiple robotics, industrial, and building automation projects. Combined with the Portenta X8, H7, or C33 boards, it evolves into a powerful industrial platform, further complemented by its compatibility with Raspberry Pi® Hats. ### Portenta Machine Control URL: https://docs.arduino.cc/hardware/portenta-machine-control/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/05.pro-solutions/solutions-and-kits/portenta-machine-control/product.md The Portenta Machine Control is a fully-centralized, low-power, industrial control unit able to drive equipment and machinery. It can be programmed using the Arduino framework or other embedded development platforms. ### Portenta Max Carrier URL: https://docs.arduino.cc/hardware/portenta-max-carrier/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/carriers/portenta-max-carrier/product.md Transform your Portenta board to an edge computer solution with the Portenta Max Carrier. ### Portenta Mid Carrier URL: https://docs.arduino.cc/hardware/portenta-mid-carrier/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/carriers/portenta-mid-carrier/product.md The Portenta Mid Carrier is an innovative solution enabling multiple robotics, industrial, and building automation projects. Combined with the Portenta X8, H7, or C33 boards, it evolves into a powerful industrial platform, further complemented by its accessibility to every available interface of the System on Modules it carries. ### Portenta Mid Carrier Proto Shield URL: https://docs.arduino.cc/hardware/portenta-mid-carrier-proto-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/shields/portenta-mid-carrier-proto-shield/product.md The Portenta Mid Carrier Proto Shield is designed for advanced prototyping within the Arduino ecosystem. It includes dual 44-pin Portenta headers, Arduino UNO shield headers, two ESLOV connectors, and a QWIIC connector. Compatible with Nicla sensorized nodes and Modulino®, it supports modular and scalable IoT, automation, and environmental monitoring projects. ### Portenta Proto Kit ME URL: https://docs.arduino.cc/hardware/portenta-proto-kit-me/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/05.pro-solutions/solutions-and-kits/portenta-proto-kit-me/product.md The Arduino Portenta Proto Kit ME (Motion Environment) is a complete solution for developing functional prototypes focused on environmental monitoring and motion detection. It includes multiple Arduino Pro products all working together to collect relevant data for a wide range of applications, such as predictive maintenance, asset tracking, smart building systems and industrial automation. With reliable sensing capabilities and seamless Cloud connectivity through the Arduino Pro 4G Module, this kit enables you to bring your ideas to life and quickly transition from functional prototypes to final products. ### Portenta Proto Kit VE URL: https://docs.arduino.cc/hardware/portenta-proto-kit-ve/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/05.pro-solutions/solutions-and-kits/portenta-proto-kit-ve/product.md The Arduino Portenta Proto Kit VE (Vision Environment) is a complete solution for developing functional prototypes focused on machine vision and environmental monitoring. It includes multiple Arduino Pro products all working together to process visual and environmental data for a wide range of applications, such as object recognition, people counting, air quality monitoring, and industrial automation. With reliable sensing capabilities and seamless Cloud connectivity through the Arduino Pro 4G Module, this kit enables you to bring your ideas to life and quickly transition from functional prototypes to final products. ### Portenta UWB Shield URL: https://docs.arduino.cc/hardware/portenta-uwb-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/shields/portenta-uwb-shield/product.md The Arduino® Portenta UWB Shield, based on the Truesense DCU150, serves as a versatile UWB communication solution facilitating two-way ranging and real-time location services (RTLS). Ideal for smart logistics, interactive environments, and precision proximity sensing applications, its dual role as both base station and client device enhances connectivity and responsiveness across IoT systems. It is designed to integrate with the Arduino Portenta C33 via the high-density connectors. ### Portenta Vision Shield URL: https://docs.arduino.cc/hardware/portenta-vision-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/shields/portenta-vision-shield/product.md The Portenta Vision Shield brings industry-rated features to your Arduino Portenta. This hardware add-on will let you run embedded computer vision applications, connect wirelessly or via Ethernet to the Arduino Cloud or your own infrastructure, and activate your system upon the detection of sound events. ### Portenta X8 URL: https://docs.arduino.cc/hardware/portenta-x8/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/boards/portenta-x8/product.md Portenta X8 offers the best of two approaches: flexibility of usage with Linux combined with real-time applications through the Arduino environment. The board comes with a Linux OS (Yocto) distribution, already preloaded onboard. ### Pro 4G Module URL: https://docs.arduino.cc/hardware/pro-4g-module/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/04.pro/modules/pro-4g-module/product.md Start taking advantage of the fast data throughput and high bandwidths offered by the Arduino Pro 4G Module. ### Starter Kit R4 URL: https://docs.arduino.cc/hardware/starter-kit-r4/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/09.kits/maker/starter-kit-r4/product.md The Arduino® Starter Kit R4 is your hands-on introduction to the world of electronics and programming. This all-in-one kit includes everything you need to get started: a powerful Arduino UNO R4 WiFi, a wide selection of electronic components, and a detailed project book. Follow 13+ easy projects to learn the fundamentals, from making LEDs blink to controlling motors and reading sensors. Once you master the basics, online content will guide you in using the board's advanced features: Wi-Fi®, Bluetooth®, and the 12x8 LED matrix, to build Internet of Things projects. ### Stella URL: https://docs.arduino.cc/hardware/stella/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/05.pro-solutions/solutions-and-kits/stella/product.md TrueSense powers the Arduino Stella. Within the Portenta family, harness the advanced Ultra-Wideband (UWB) technology for unmatched accuracy and real-time tracking capabilities. ### UNO Breakout Carrier URL: https://docs.arduino.cc/hardware/uno-breakout-carrier/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/carriers/uno-breakout-carrier/product.md The Arduino UNO Breakout Carrier is designed to give developers complete, direct access to relevant signal available on the UNO Q’s JMEDIA and JMISC high-speed connectors. ### UNO Media Carrier URL: https://docs.arduino.cc/hardware/uno-media-carrier/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/carriers/uno-media-carrier/product.md The UNO Media Carrier extends the multimedia capabilities of compatible boards, enabling advanced vision, display, and audio applications with plug-and-play simplicity. It connects via the JMEDIA and JMISC high-speed connectors, providing access to dual MIPI-CSI camera interfaces, a MIPI-DSI display interface, and three 3.5 mm audio jacks, all in the UNO form factor. ### UNO Mini Limited Edition URL: https://docs.arduino.cc/hardware/uno-mini-limited-edition/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/boards/uno-mini-limited-edition/product.md The Arduino UNO Mini Limited Edition (LE) is a unique black & gold board, that pays tribute to everyone's favorite maker board: the Arduino UNO. It is only 25% of the area size of the original UNO, comes with a USB-C® connector and is delivered in a special case. ### UNO Q URL: https://docs.arduino.cc/hardware/uno-q/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/boards/uno-q/product.md The Arduino UNO Q unlocks a new level of performance for the Arduino ecosystem, blending robust computing power from Qualcomm's advanced Dragonwing™ QRB2210 MPU running a full Debian Linux OS with upstream support, and the real-time responsiveness of a dedicated STM32U585 MCU running Arduino sketches over Zephyr OS - all on a single-board computer. ### UNO R3 URL: https://docs.arduino.cc/hardware/uno-rev3/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/boards/uno-rev3/product.md The Arduino UNO is the best board to get started with electronics and coding. If this is your first experience tinkering with the platform, the UNO is the most robust board you can start playing with. The UNO is the most used and documented board of the whole Arduino family. ### UNO R3 SMD URL: https://docs.arduino.cc/hardware/uno-rev3-smd/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/boards/uno-rev3-smd/product.md The Arduino UNO is the best board to get started with electronics and coding. If this is your first experience tinkering with the platform, the UNO is the most robust board you can start playing with. The UNO is the most used and documented board of the whole Arduino family. ### UNO R4 Minima URL: https://docs.arduino.cc/hardware/uno-r4-minima/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/boards/uno-r4-minima/product.md The Arduino UNO R4 Minima is the first UNO board featuring a 32-bit microcontroller, the RA4M1 from Renesas. It is faster, has more memory and has a number of built-in features such as a DAC, RTC and HID. The UNO R4 Minima is a 5 V only board. ### UNO R4 WiFi URL: https://docs.arduino.cc/hardware/uno-r4-wifi/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/boards/uno-r4-wifi/product.md The Arduino UNO R4 WiFi is designed around the 32-bit microcontroller RA4M1 from Renesas while also featuring a ESP32 module for Wi-Fi® and Bluetooth® connectivity. Its distinctive 12x8 LED matrix makes it possible to prototype visuals directly on the board, and with a Qwiic connector, you can create projects plug-and-play style. ### UNO SPE Shield URL: https://docs.arduino.cc/hardware/spe-shield/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/shields/spe-shield/product.md The Arduino® UNO SPE Shield is built around the LAN8651B1 from Microchip® while also featuring integrated RS485 communication for versatile connectivity options. Its single pair Ethernet (T1S) compatibility makes it possible to achieve high-speed data transfer over just a single twisted pair cable, and with full compatibility with the UNO form factor, you can create industrial-grade projects effortlessly. ### UNO WiFi Rev2 URL: https://docs.arduino.cc/hardware/uno-wifi-rev2/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/02.uno/boards/uno-wifi-rev2/product.md The Arduino UNO WiFi Rev2 is the easiest point of entry to basic IoT with the standard form factor of the UNO family. Whether you are looking at building a sensor network connected to your office or home router, or if you want to create a Bluetooth® Low Energy device sending data to a cellphone, the Arduino UNO WiFi Rev2 is your one-stop-solution for many of the basic IoT application scenarios. ### USB-C Cable (24-pin) URL: https://docs.arduino.cc/hardware/usb-c-cable-24-pin/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/13.accessories/accessories/usb-c-cable-24-pin/product.md The Arduino® USB-C Cable (24-pin) is a USB-C to USB-C cable featuring full 24-pin connectivity for complete functionality, including data transfer, video output, and power delivery. This 1-meter braided cable supports USB 3.0 data speeds up to 5 Gbps, power delivery up to 60 W (20 V / 3 A), and DisplayPort Alt Mode for video transmission. Designed for use with USB-C devices requiring full-featured connectivity, it provides reliable performance for development, prototyping, and deployment scenarios. ### USB-C Hub (8 in 1) URL: https://docs.arduino.cc/hardware/usb-c-hub-8-in-1/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/13.accessories/accessories/usb-c-hub-8-in-1/product.md The Arduino® USB-C Hub (8 in 1) is a compact multiport adapter that expands a single USB-C port into eight functional interfaces, including power delivery, USB data ports, HDMI video output, Ethernet connectivity, and SD/TF card readers. With its plug-and-play design and broad OS compatibility, it provides I/O expansion for USB-C devices in development, prototyping, and deployment scenarios. ### USB-C Power Supply (45W) URL: https://docs.arduino.cc/hardware/usb-c-power-supply-45w/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/13.accessories/accessories/usb-c-power-supply-45w/product.md The Arduino® USB-C Power Supply (45W) is a compact, interchangeable plug adapter for USB-C devices supporting USB Power Delivery (PD). The 45 W multi-voltage power adapter provides intelligent power delivery across five voltage profiles (5 V, 9 V, 12 V, 15 V, 20 V), negotiating the optimal charging parameters for connected devices. With interchangeable regional plugs (EU, UK, US, AU) and broad safety certifications, it provides a universal power solution for development, prototyping, and deployment scenarios worldwide. ### WisGate Edge Lite 2 URL: https://docs.arduino.cc/hardware/wisgate-edge-lite-2/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/05.pro-solutions/solutions-and-kits/wisgate-edge-lite-2/product.md The WisGate Edge Lite 2 gateway, featuring RAKwirelessTM technology, is designed for indoor LPWAN applications, supporting LoRa® technology for home and small-to-medium industrial environments. Different models (SKU) are compatibles with three radio frequencies adopted in different regions of the world: Europe, United States, Australia and New Zealand. ### WisGate Edge Pro URL: https://docs.arduino.cc/hardware/wisgate-edge-pro/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/05.pro-solutions/solutions-and-kits/wisgate-edge-pro/product.md The WisGate Edge Pro gateway, featuring RAKWirelessTM technology, is designed for professional applications using LoRa® technology. Different models (SKU) are compatible with three radio frequency bands adopted in different regions: Europe, United States, Australia and New Zealand*. ### Yún Rev2 URL: https://docs.arduino.cc/hardware/yun-rev2/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/12.hero/boards/yun-rev2/product.md The Yún Rev2, Linux powered board with the Arduino simplicity, is the perfect board for your IoT projects! ### Zero URL: https://docs.arduino.cc/hardware/zero/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/hardware/12.hero/boards/zero/product.md Arduino Zero is a simple and powerful 32-bit extension of the platform established by the UNO. This board aims to provide a platform for innovative projects in smart IoT devices, wearable technology, high-tech automation, crazy robotics, and much more. --- ## Arduino Cloud ### Advanced Map Widget URL: https://docs.arduino.cc/arduino-cloud/features/advanced-map/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/12.advanced-map/content.md Description: Learn how to use the advanced map widget, which allows you to track a things location in real time or during a specific time period. The advanced map widget is used to track the location of a cloud Thing and draw a path between the different logged points. You can track GPS locations in real time or chose a specific time frame for location tracking. The look of the tracks between points and map pin can also be customized. This widget can be added onto existing projects (if you are already tracking location), and is particularly interesting to use in projects such as: - Weather stations, - Environmental data stations, - Monitoring fleets, - Any project requiring localization of devices, - Various science projects where location tracking is needed. ### Alexa URL: https://docs.arduino.cc/arduino-cloud/guides/alexa/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/01.guides/08.alexa/alexa.md Description: Learn how to connect the Arduino Cloud with the Amazon Alexa service. In this tutorial you will learn how to integrate the Arduino Cloud with the Amazon Alexa skill. At the end of this tutorial, we will be able to change the color of an RGB matrix connected to your Arduino, using only voice commands in the Alexa app. This tutorial focuses on using the MKR RGB Shield but can easily be modified to use any other RGB pixels / matrices. ### API URL: https://docs.arduino.cc/arduino-cloud/api/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/07.api/api.md ### APIs Overview URL: https://docs.arduino.cc/arduino-cloud/api/api-overview/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/07.api/01.api-overview/api-overview.md Description: Arduino Cloud has two different set of APIs - Application and Device API. The Arduino Cloud has different sets of APIs that provide different functionalities. This article serves as an introduction to how to work and what you can achieve with them. The main goal of the Application API is to allow you to create and manage IoT resources like dashboards, devices, things, and variables, along with the retrieval and handling of historical data coming from your IoT Devices. ### Application Notes URL: https://docs.arduino.cc/arduino-cloud/application-notes/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/11.application-notes/application-notes.md ### Arduino / C++ URL: https://docs.arduino.cc/arduino-cloud/guides/arduino-c/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/01.guides/02.arduino-c/arduino-c.md Description: Get started with the Arduino Cloud using the C++ programming language. The default option for programming your board to connect to the Arduino Cloud is by using the C++ language. The configuration and connection between your board and the Arduino Cloud is supported by the ArduinoIoTCloud library & Arduino_ConnectionHandler libraries. When programming in C++, you can use the Arduino API (which is also known as the Arduino Language). To learn more about the Arduino API, check out the language reference. ### Arduino / C++ Library URL: https://docs.arduino.cc/arduino-cloud/api/c-library/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/07.api/03.c-library/c-library.md Description: The ArduinoIoTCloud library allows you to connect to the Arduino Cloud using Arduino/C++. The default Arduino / C++ library for the Arduino Cloud is the ArduinoIoTCloud library. This library depends on the Arduino_ConnectionHandler library which provides connection via various wireless protocols (Wi-Fi®, LoRa® technology, NB-IoT, GSM, Ethernet). The library is integrated into the Arduino Cloud platform, where Automatic Sketch Generation converts your Thing configurations into a set files that relies on aforementioned libraries. ### Arduino Cloud CLI URL: https://docs.arduino.cc/arduino-cloud/arduino-cloud-cli/getting-started/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/08.arduino-cloud-cli/07.getting-started/arduino-cloud-cli.md Description: Get started with the Arduino Cloud CLI, a tool for the automation and mass-deployment of devices. The Arduino Cloud CLI is a tool developed to access features of the Arduino Cloud service from the terminal. It can be used as an automation tool to: - Clone existing Things & Dashboards (by extracting its template). - Perform mass OTA uploads. - Create devices, things, variables & dashboards directly via the CLI. ### Arduino Cloud CLI URL: https://docs.arduino.cc/arduino-cloud/arduino-cloud-cli/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/08.arduino-cloud-cli/arduino-cloud-cli.md ### Arduino Cloud Security Considerations URL: https://docs.arduino.cc/arduino-cloud/business/security-considerations/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/09.business/00.security-considerations/security-considerations.md Description: Learn how Arduino ensures your data is protected and secured in this security overview document. For any questions regarding security, contact the Arduino Security Team. In order to provide secure digital services to customers, we at Arduino are committed to regularly monitor and update our services, applications, and infrastructure. In general, the approach to Security is aligned with Cybersecurity standards such as ISO27001. To ensure the highest level of confidentiality, integrity and availability, Arduino operates under a shared security responsibility model. The shared security responsibility model identifies the distinct security responsibilities of the customer and Arduino. In this model: * Arduino is responsible for the security of the Cloud infrastructure services provided to customers and the confidentiality of sensitive data. We provide such security via a number of best practices that all employee in Arduino follow and that are described in the following sections of this document; for example, but not limited to the following: * We limit as much as possible the level of access that Arduino employees have on customers data. * Security and privacy training are conducted regularly to ensure the highest possible level of awareness to Arduino employees. * Regular penetration and vulnerability security tests are performed to our infrastructure and services to assess that security practices in place are working as intended. * Customers are responsible for the security of their account, personal access credentials, and for the information they decide to store in the Cloud. Arduino recommends to pay particular attention to the following best practices: * Strong authentication: taking advantage of strong authentication can significantly help to improve the security of your Arduino account. Options offered by Arduino Cloud are: * Two-step verification: a second step to verify your identity during login adds an extra layer of protection to your account. Once enabled, you will be asked to provide your regular password and a digit code when logging in. It will be your responsibility to make sure that all relevant data to enter your account when two-step verification is enabled are properly backed up. * Social login: managing multiple accounts with multiple passwords might become problematic, which is why you can choose to login to your Arduino account using a social login that you already own. Via social login you can authenticate to your Arduino account by using your favorite social account without sharing any sensitive login information with Arduino. * Confidentiality: customers should make sure to not incidentally disclose personal information as part of the content they upload (for example when sharing a project or a sketch). While Arduino can protect confidentiality of information that is recognized as such, it can’t protect against information accidentally disclosed by customers inside customer-created content. ### Arduino Cloud services are ISO 27001 certified URL: https://docs.arduino.cc/arduino-cloud/business/iso27001/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/09.business/01.iso27001/iso27001.md Description: Learn about the Arduino organisations ISO 27001 certification and what it means. For any questions regarding security, contact the Arduino Security Team. ISO 27001 is an internationally recognized standard that provides a framework for establishing, implementing, maintaining, and continuously improving an Information Security Management System (ISMS). The standard outlines the requirements for managing information security risks and protecting sensitive information within an organization. ISO 27001 takes a systematic and risk-based approach to ensure information assets' confidentiality, integrity, and availability. ### Cellular URL: https://docs.arduino.cc/arduino-cloud/hardware/cellular/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/02.hardware/05.cellular/cellular.md Description: Learn how to configure an cellular devices in the Arduino Cloud. A number of Arduino boards are able to connect to the Arduino Cloud using a sim card, using either the GSM or LTE-M (Cat-M1) technologies. Check the GitHub repository here. ### Cloud Agent URL: https://docs.arduino.cc/arduino-cloud/hardware/cloud-agent/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/02.hardware/00.cloud-agent/cloud-agent.md Description: The Cloud Agent allows Arduino boards to interface with the Arduino Cloud. The Arduino Cloud Agent is a plugin that you install on your computer, that enables serial communication between your board and the Arduino Cloud. This allows you to upload sketches, and read/write serial data to/from your board, via your web browser. The Cloud Agent is a requirement to program your devices in the Arduino Cloud, and takes only a minute to install. ### Cloud Business URL: https://docs.arduino.cc/arduino-cloud/business/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/09.business/business.md ### Cloud Editor URL: https://docs.arduino.cc/arduino-cloud/guides/editor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/01.guides/01.editor/editor.md Description: Get started with the Cloud Editor, an online IDE in the Arduino Cloud. The Cloud Editor is an online code editor which is part of the Arduino Cloud. With the Cloud Editor, you can write sketches and upload them to your Arduino board, where all your progress is automatically stored in the Cloud! The Cloud Editor features all the necessary tools to develop and test your Arduino projects, including: - A compiler that checks that your code works on the specified board, - an upload tool that uploads a sketch to your board, - the Serial Monitor, a tool that reads serial data sent from your board, - all board packages & libraries available without download! ### Cloud Editor URL: https://docs.arduino.cc/arduino-cloud/cloud-editor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/04.cloud-editor/cloud-editor.md ### Cloud Education URL: https://docs.arduino.cc/arduino-cloud/education/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/10.education/education.md ### Cloud Interface URL: https://docs.arduino.cc/arduino-cloud/cloud-interface/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/03.cloud-interface/cloud-interface.md ### Cloud Variables URL: https://docs.arduino.cc/arduino-cloud/cloud-interface/variables/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/03.cloud-interface/02.variables/variables.md Description: Learn how to configure and use variables in your Arduino Cloud sketches. Variables are essential components of the Arduino Cloud and are created and configured inside a Thing. A Cloud variable is synced between your Arduino board and the Arduino Cloud. If a variable is updated on your board (like reading a sensor), the Arduino Cloud will also receive this value. Similarly, if a board receives an update from the Cloud, the variable also updates on your board. ### Custom Templates URL: https://docs.arduino.cc/arduino-cloud/features/custom-templates/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/13.custom-templates/content.md Description: Learn how to use the custom templates feature, allowing you to easily recreate one of your existing projects, either for yourself or for sharing with the community. The Custom Templates feature is a part of the Arduino Cloud that allows you to create your own custom cloud templates, letting you configure a project complete with a Thing, Dashboard, and Triggers with a step by step wizard guiding you through the process. With the Custom Templates feature, you can choose any of your existing cloud projects and walk through the process of turning it into a template within a few minutes. You can save it for you to use yourself, or export it as a .tino file to be shared with other people however you want. ### Dashboards & Widgets URL: https://docs.arduino.cc/arduino-cloud/cloud-interface/dashboard-widgets/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/03.cloud-interface/03.dashboard-widgets/dashboard-widgets.md Description: Learn about dashboards and the different widgets that can be used to monitor & control your board. Dashboards in the Arduino Cloud are used to easily monitor & control your Arduino boards from a web interface. Dashboards are not linked to one specific Thing or device, you can control all of them through one single dashboard. Dashboards are composed of widgets, which are directly linked to a variable. Whenever a variable is updated, so is the widget. ### Device Provisioning with Arduino Cloud URL: https://docs.arduino.cc/arduino-cloud/hardware/device-provisioning/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/02.hardware/06.device-provisioning/content.md Description: A step-by-step guide to device provisioning with Arduino Cloud. If you are new to the Arduino Cloud, check out Getting Started With the Arduino Cloud. To use the Arduino Cloud you will need to register and set up a free account. ### Device Status URL: https://docs.arduino.cc/arduino-cloud/features/device-status/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/14.device-status/device-status.md Description: Set up push notifications / email triggers whenever a device goes online/offline. Keeping track of your devices is important, and using by using triggers, you can automate push notifications regarding your device status. You can have triggers for: - When a device goes online - When a device goes offline ### Device to Device URL: https://docs.arduino.cc/arduino-cloud/features/device-to-device/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/03.device-to-device/device-to-device.md Description: Learn how to connect two boards through the Arduino Cloud, by syncing their variables. In this tutorial, we will find out how to send data between two Arduino boards, using the Arduino Cloud. Each board will have one LED and one button each that will be used to send data between the boards. This will be made possible through something called syncing variables, which will be explained further in this tutorial. ### Device Types URL: https://docs.arduino.cc/arduino-cloud/hardware/devices/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/02.hardware/01.devices/devices.md Description: Learn about devices in the Arduino Cloud and how to configure them. The Arduino Cloud supports a range of official and third-party boards which are handled in the "Devices" tab. Devices are considered the "virtual twin" of your physical boards. Currently, the following device types are supported: - Wi-Fi® with encryption through on-board crypto chip - Wi-Fi® through ESP32 with user credentials - LoRa®-enabled devices - Ethernet - Cellular (GSM / NB-IoT) - Manual (Python, MicroPython, JavaScript) ### Download Historical Data URL: https://docs.arduino.cc/arduino-cloud/features/iot-cloud-historical-data/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/08.iot-cloud-historical-data/iot-cloud-historical-data.md Description: Learn how to download historical data from the Arduino Cloud It is possible to download historical data from your Arduino Cloud Things and Variables. It is downloaded in .csv format, and can be used for data comparison. The goals of this tutorial are: ### Embed & Share Sketches URL: https://docs.arduino.cc/arduino-cloud/cloud-editor/embedding-create-iframes/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/04.cloud-editor/embedding-create-iframes/embedding-create-iframes.md Description: Learn about sharing your sketches and different methods to embed your sketches in a website. The Cloud Editor is a great tool for creating and uploading programs while also collecting all of your sketches in one place. Another great feature is embedding them as iframes, such as articles, blogposts or journals. Embedding an iframe is easy. Simply copy and paste the link from your sketch in the Cloud Editor. But we can also do a series of modifications to that iframe, and in this tutorial we will take a look at how to do that. ### Environmental data in the Arduino Cloud URL: https://docs.arduino.cc/arduino-cloud/application-notes/cloud-environmental-data/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/11.application-notes/cloud-environmental-data/cloud-environmental-data.md Description: Learn how to collect environmental data from the MKR ENV Shield and display it in the Arduino Cloud. In this tutorial, we will combine the functionality of the MKR WiFi 1010 and the MKR ENV Shield. The shield, mounted on top of the board, will record environmental data, such as temperature, humidity, pressure and illuminance. This data will be synced with the Arduino Cloud, a service that allows us to remotely control and monitor our devices. This means that whenever we read data on the board, it will also be visible in the Cloud dashboard, where we can create different ways of visualizing the data. ### ESP32 / ESP8266 URL: https://docs.arduino.cc/arduino-cloud/guides/esp32/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/01.guides/03.esp32/esp32.md Description: Learn how to set up ESP32/ESP8266 based boards in the Arduino Cloud. Arduino Cloud supports a wide range of ESP32 / ESP8266 based development boards. The ESP chips are great for any IoT project, and they can be programmed using the Arduino language (C++). Setting up ESP based boards in the Arduino Cloud is quick and simple. It is done by generating a Device ID and Secret Key, which together with your Wi-Fi® credentials is enough to connect to the Arduino Cloud. ### Ethernet URL: https://docs.arduino.cc/arduino-cloud/hardware/ethernet/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/02.hardware/04.ethernet/ethernet.md Description: Learn how to configure an Ethernet device in the Arduino Cloud. The Arduino Cloud supports connection via Ethernet on a number of devices. Check the GitHub repository here. ### Event & Callbacks URL: https://docs.arduino.cc/arduino-cloud/features/arduino-cloud-callbacks/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/07.arduino-cloud-callbacks/arduino-cloud-callbacks.md Description: Learn how to subscribe to events and add callback functions. The Arduino Cloud has support for events and callbacks. This can be used to trigger specific functionalities depending on what state your device is in. You can for example trigger a specific block of code whenever the board is in a connecting, synchronized or disconnected state. In this document, we will explore how to set it up, using an example from the ArduinoIoTCloud library. ### Features URL: https://docs.arduino.cc/arduino-cloud/features/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/features.md ### Getting Started with Arduino AWS S3 CSV Exporter URL: https://docs.arduino.cc/arduino-cloud/business/aws-s3-exporter/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/09.business/02.aws-s3-exporter/content.md Description: Learn how to set up the Arduino AWS S3 CSV Exporter to extract and store time series data from the Arduino Cloud into an AWS S3 bucket. The Arduino AWS S3 CSV Exporter is designed to extract time series data from Arduino Cloud and publish it in CSV format to an AWS S3 bucket. A scheduled AWS Lambda function runs the data extraction process at configurable intervals. The extraction frequency, sampling resolution and filters can be customized to refine the data stored in S3. ### Getting Started with Arduino Cloud URL: https://docs.arduino.cc/arduino-cloud/guides/overview/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/01.guides/00.overview/overview.md Description: Get started with the Arduino Cloud, an online platform that makes it easy for you to code, deploy and monitor IoT projects. The Arduino Cloud is a platform for developing Arduino projects and connecting them to the world. It supports secure connections with boards via Wi-Fi®, LoRa®-enabled devices, Ethernet and Cellular (GSM/NB-IoT), and lets you create a system for sending any variable information you can think of from one board to another within minutes of unboxing them. The Arduino Cloud platform includes: - an Integrated Development Environment (IDE) for programming your boards, - a cloud backend service for synchronizing data from Arduino boards, but also from Python & JavaScript clients, - a graphical tool (dashboard) for controlling and monitoring your board (as well as an mobile app). - REST API and command line tools for larger scale automations. ### Getting started with Arduino Cloud for Business URL: https://docs.arduino.cc/arduino-cloud/business/arduino-cloud-for-business/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/09.business/09.arduino-cloud-for-business/content.md Description: Get a general overview of Arduino Cloud for Business and its features The Arduino Cloud for Business is an Arduino Cloud plan dedicated to companies and industrial clients wanting enhanced features in terms of device management, Role-Based Access Control (RBAC), fleet management, and safe remote access. In this article, you will get a general overview of the major features of the Arduino Cloud for Business. ### Getting started with Arduino Cloud for Education URL: https://docs.arduino.cc/arduino-cloud/education/arduino-cloud-for-education/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/10.education/00.arduino-cloud-for-education/content.md Description: Introduce teachers to Arduino Cloud for Education and its features. The Arduino Cloud helps teachers to effectively introduce, manage and facilitate Arduino STEAM projects in their classroom. In order to get started with Arduino Cloud, you need to have an Arduino account. If you do not have an account yet, feel free to create a new one. You can follow this tutorial for a step-by-step explanation on how to do it. ### Google Home URL: https://docs.arduino.cc/arduino-cloud/guides/google-home/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/01.guides/09.google-home/google-home.md Description: Learn how to connect the Arduino Cloud with Google Home™. This tutorial guides you on how to connect the Arduino Cloud to your Google Home™ allowing you to interact with your devices, simply through your Google Home Assistant: use voice commands, the Google Home app, or create new routines integrating Arduino solutions. It requires your board to be compatible with the Arduino Cloud. ### Guides URL: https://docs.arduino.cc/arduino-cloud/guides/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/01.guides/guides.md ### Hardware & Devices URL: https://docs.arduino.cc/arduino-cloud/hardware/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/02.hardware/hardware.md ### Importing files to the Cloud Editor URL: https://docs.arduino.cc/arduino-cloud/cloud-editor/import-your-sketchbook-and-libraries-to-the-web-editor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/04.cloud-editor/import-your-sketchbook-and-libraries-to-the-web-editor/import-your-sketchbook-and-libraries-to-the-web-editor.md Description: Learn how to import your local sketchbook and custom libraries to the Cloud Editor. Are you sticking to the desktop Arduino IDE because all your work is saved locally? That’s no longer a problem! Our brand new import tool enables you to upload your entire sketchbook with just a few clicks on the Arduino Cloud Editor. It is particularly handy because it lets you move all your sketches and libraries to the Cloud in a single flow. Once your sketchbook is online it will be available on any device and backed up. ### IoT Remote App URL: https://docs.arduino.cc/arduino-cloud/iot-remote-app/getting-started/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/05.iot-remote-app/01.getting-started/iot-remote-app.md Description: Learn how to set up the IoT Remote app to control & monitor your dashboards and access your phone's sensor data. The Arduino IoT Remote phone application lets you control and monitor all of your dashboards in the Arduino Cloud. With the app, you can also access your phone's internal sensors such as GPS data, light sensor, IMU and more (depending on what phone you have). The phone's sensor data is automatically stored in Cloud variables, which you can also synchronize with other Things. This means your phone can become a part of your IoT system, acting as another node in your network. ### IoT Remote App URL: https://docs.arduino.cc/arduino-cloud/iot-remote-app/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/05.iot-remote-app/iot-remote-app.md ### JavaScript URL: https://docs.arduino.cc/arduino-cloud/guides/javascript/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/01.guides/06.javascript/javascript.md Description: Learn how to connect to the Arduino Cloud via JavaScript (node.js). The arduino-iot-js library allows you to interact with the Arduino Cloud via MQTT. It supports basic authentication using the device ID as well as secret key that is obtained from the Arduino Cloud when configuring a manual device. In this guide we will: - Configure a manual device in the Arduino Cloud, - install the arduino-iot-js library, - create a JavaScript example code that connects to the Arduino Cloud. ### JavaScript / Node.js Library URL: https://docs.arduino.cc/arduino-cloud/api/javascript/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/07.api/05.javascript/javascript.md Description: The JavaScript Library allows you to connect to the Arduino Cloud using Node.js. This library provides interaction with the Arduino Cloud MQTT broker and can be used both from the browser and Node.js. Connection via this library is achieved by registering a manual device, i.e. a virtual device that is not associated with an Arduino hardware board. This virtual device can connect through a simple username/password (Device ID, Secret Key) which is generated in the Arduino Cloud when configuring a device. ### LoRa® and The Things Stack URL: https://docs.arduino.cc/arduino-cloud/hardware/lora/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/02.hardware/03.lora/lora.md Description: Connect your devices compatible with long-range wireless networks to the Arduino Cloud platform via The Things Stack. Some Arduino boards support a connection to the Arduino Cloud via long-range wireless networks, using The Things Stack, a LoRa®-based network server. In this document you will find: ### Manual Devices URL: https://docs.arduino.cc/arduino-cloud/features/manual-device/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/08.manual-device/manual-devices.md Description: Connect to the Arduino Cloud any kind of device that uses Python, MicroPython or JavaScript (Node.js) Authentication & data synchronisation is automatically handled when you choose the automatic configuration option in the Arduino Cloud. You can during the setup of your device instead choose the manual configuration option. This allows you to connect to the Cloud using the Device API (MicroPython, Python or Node.js). ### MicroPython URL: https://docs.arduino.cc/arduino-cloud/guides/micropython/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/01.guides/04.micropython/content.md Description: Learn how to connect to the Arduino Cloud using MicroPython. This tutorial guides you on how to use the MicroPython library to connect your Arduino device to the Arduino Cloud. As a minimal example we will toggle the on-board LED using an Arduino Cloud dashboard widget. It requires your board to have a version of MicroPython installed, which is covered in this article. ### Monitor Your Energy Bill with Modbus and the Arduino Cloud URL: https://docs.arduino.cc/arduino-cloud/application-notes/modbus-energy-meter/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/11.application-notes/modbus-energy-meter/modbus-energy-meter.md Description: Connect a Modbus energy meter to an Arduino® MKR WiFi 1010 board and a MKR 485 Shield and monitor the power consumption of your home via an Arduino Cloud IoT dashboard. If you really want to make your home smarter, you'll probably want start from your monthly bills (for example, energy, gas, etc...). As some say: good for the planet, the wallet and the bottom line. In this tutorial, we are going to learn how to connect a Modbus energy meter to the Arduino Cloud IoT using an Arduino® MKR WiFi 1010 board and an Arduino® MKR 485 Shield. This tutorial assumes you know the basics of the Arduino Cloud. If you are new check out our Getting Started Guide. ### Multiple Variable Chart Widget URL: https://docs.arduino.cc/arduino-cloud/features/advanced-chart/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/09.advanced-chart/advanced-chart.md Description: Learn how to use the advanced chart widget, which allows you to track several variables in real time or during a specific time period. The advanced chart widget is used to display data from several Arduino Cloud variables in a single chart. You can track the data in both real time, select from a specific time period while selecting the variables you want to display. This widget can be added onto existing projects (if you are already tracking data), and is particularly interesting to use in projects such as: - Weather stations, - Environmental data tracking, - Energy consumption, - Various science projects where data comparison is needed. ### Node-RED URL: https://docs.arduino.cc/arduino-cloud/guides/node-red/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/01.guides/07.node-red/nodered-intro.md Description: Learn how to use Node-RED together with the Arduino Cloud. Node-RED is a programming tool for connecting hardware devices such as Arduino with other hardware devices, APIs, and online services easily using a web-based flow editor. It allows you to connect those different devices and services by connecting a combination of nodes that create your desired flow. In this tutorial, we will look into the applications of using Node-RED together with the Arduino Cloud. The integration of the two platforms allows us to facilitate communications between the Arduino Cloud and home automation devices, send and receive data from online services such as Email and SMS, and write JavaScript code to manipulate the data. ### Over-The-Air (OTA) URL: https://docs.arduino.cc/arduino-cloud/features/ota-getting-started/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/04.ota-getting-started/ota-getting-started.md Description: Learn how to utilize Over-The-Air (OTA), a feature that allows you to upload sketches remotely. The new Arduino Cloud brings a lot of new things, and one of them is the OTA (over-the-air) feature. This feature allows you to upload programs wirelessly to your Arduino boards. This way, as soon as you have a compatible board connected to a WiFi network and configured to work with OTA, you won’t need to physically connect the board to the computer in order to upload new sketches to it. Instead, everything will work over-the-air. Over-the-air update is now available through Arduino Cloud and the Arduino Cloud Editor, which is an always up-to-date online IDE that stores sketches in the Cloud. It also allows you to wirelessly upload sketches from a browser, to any board that is connected to that computer. ### Push Notifications URL: https://docs.arduino.cc/arduino-cloud/iot-remote-app/push-notifications/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/05.iot-remote-app/03.push-notifications/push-notifications.md Description: Send push notifications to your phone via using Triggers and the IoT Remote App. The Arduino IoT Remote App (iOS / Android) has support for push notifications, which can be set up by creating a Trigger. Currently, booleans & strings are the only supported data types, where you can send push notifications either when a boolean is true, or whenever a string match. ### Python URL: https://docs.arduino.cc/arduino-cloud/guides/python/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/01.guides/05.python/python.md Description: Learn how to use the Python library to connect to the Arduino Cloud. It is recommended to have some experience with the Python environment before reading this guide. However, installation and setup is covered in the Python Setup section. The Arduino IoT Cloud Python Client is a library that allows you to interact with the Arduino Cloud via MQTT. It supports basic authentication using the device ID as well as secret key that is obtained from the Arduino Cloud when configuring a manual device. ### Python Client URL: https://docs.arduino.cc/arduino-cloud/api/python/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/07.api/04.python/python.md Description: The Python Client allows you to connect to the Arduino Cloud through Python. The Python Client for connecting to the Arduino Cloud is known as the Arduino Cloud Python Client library. This library is implemented to support MicroPython, CircuitPython as well as regular Python running on your personal computer / Linux machine (like Raspberry Pi). Connection via this client is achieved by registering a manual device, i.e. a virtual device that is not associated with an Arduino hardware board. This virtual device can connect through a simple username/password (Device ID, Secret Key) which is generated in the Arduino Cloud when configuring a device. ### Remote Relay Control URL: https://docs.arduino.cc/arduino-cloud/application-notes/cloud-relay-control/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/11.application-notes/cloud-relay-control/cloud-relay-control.md Description: Learn how to control the relays onboard the MKR Relay Shield through the Arduino Cloud dashboard. This tutorial demonstrates how to use a MKR WiFi 1010 and a MKR Relay shield with the Arduino Cloud. We will create a simple configuration that allows us activate the relays on the shield through a dashboard. You can easily change the board and shield for another setup, as long as the board is supported by the Arduino Cloud. ### REST API & SDK URL: https://docs.arduino.cc/arduino-cloud/api/arduino-iot-api/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/07.api/02.arduino-iot-api/arduino-iot-api.md Description: Learn how to authenticate with the Arduino Cloud REST API to make requests using HTTP Client, JavaScript and Python®. The Arduino Cloud REST API can be accessed through a set of endpoints to manage Devices, Things, Properties and more. It can be accessed via any HTTP client, and is supported by JavaScript, Python® and Golang clients. In this article you will find some useful examples to get started with the Arduino Cloud API, and an understanding of what the API offers. ### Scheduler URL: https://docs.arduino.cc/arduino-cloud/features/cloud-scheduler/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/02.cloud-scheduler/cloud-scheduler.md Description: Learn how to use the scheduler feature to trigger repeating jobs during specific times. It is now possible to schedule jobs with the Arduino Cloud, using the new CloudSchedule variable type. You can pick a start & end date for when the variable should be triggered, and for how long it should be active. This variable can be controlled in real time using a graphical widget that you can place on an Arduino Cloud dashboard. We can for example have: ### Setup a Shared Space for your class URL: https://docs.arduino.cc/arduino-cloud/education/shared-spaces/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/10.education/01.shared-spaces/content.md Description: A virtual classroom environment where you can optimize classwork, keep track of student’s progress. A shared space is a virtual classroom environment where you can optimize classwork, keep track of student’s progress, boost learning and connect with peers and students seamlessly. It's an easy way to keep track of all your students' recent activities on their programming, electronics and IoT projects and monitor their project progress. In this article, we're spilling the beans on all the necessary tips and tricks you could do with a shared space and how to set it up for your classroom. Let's get started! ### Sharing Dashboards URL: https://docs.arduino.cc/arduino-cloud/features/sharing-dashboards/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/05.sharing-dashboards/sharing-dashboards.md Description: Learn how to share your dashboards with other Arduino Cloud users. The Arduino Cloud IoT is a great tool for remote control and analytics of your devices. A central component in the Cloud system is the dashboards, the tool that is used to visualize and interact with you devices. In this tutorial, we will show how to share these dashboards with other Arduino Cloud users! ### Sketches URL: https://docs.arduino.cc/arduino-cloud/cloud-interface/sketches/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/03.cloud-interface/00.sketches/sketches.md Description: Learn about sketches (programs) in the Arduino Cloud. A sketch is a file where we write programs to run on our Arduino boards. Sketches have a .ino extension, which supports the Arduino programming language (a variant of C++). The Arduino Cloud has two categories of sketches: - Sketch - a single .ino file where you write a program. These sketches can be used for any Arduino board. - Sketch with attached Thing - a set of files that are automatically generated when creating a Thing. This includes an .ino file and two header (.h) files that contain your Thing configuration + credentials. Only available for boards with Arduino Cloud support. ### Store Sensitive Data in Sketches URL: https://docs.arduino.cc/arduino-cloud/cloud-editor/store-your-sensitive-data-safely-when-sharing/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/04.cloud-editor/store-your-sensitive-data-safely-when-sharing/store-your-sensitive-data-safely-when-sharing.md Description: Learn how to share sketches without sharing the sensitive data such as Wi-Fi credentials and API keys. Often in your sketch, there is some sensitive data that you’d like to keep private, which could accidentally become public when published on GitHub or when you share your sketch with someone else via URL. This sensitive information may include Wi-Fi network names and passwords, API key, and so on. But now, you can add a secret tab to your sketch and store your private data there. This feature has been designed specifically for the Arduino Cloud Editor. If you have yet to try it, follow Getting Started with Arduino Cloud — all you need is an Arduino ID. ### Syncing Variables Across Things URL: https://docs.arduino.cc/arduino-cloud/features/thing-to-thing/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/06.thing-to-thing/thing-to-thing.md Description: Learn how two Things can communicate with each other through variable syncing. The Thing to Thing communication is a great feature that allows you to synchronize your Arduino devices. It enables you to pair variables of the same data type between things and with the Arduino Cloud, creating a two-way communication between your devices has never been easier. The goals of this project are: ### Templates URL: https://docs.arduino.cc/arduino-cloud/features/templates/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/01.templates/content.md Description: Ready-made projects that can significantly lower the entry barrier for teaching and learning about IoT applications This guide aims to introduce anyone interested in exploring the world of the Internet of Things (IoT) to Arduino Cloud Templates. These templates are pre-built projects that make it significantly easier to dive into IoT applications. Whether you're a teacher, a maker, planning your next class or organizing a hackathon, these templates provide a quick and accessible way to get started with the fundamental components of an IoT project. - Templates and their benefits - Collection of Arduino Templates - Importing Templates - Create Custom Templates ### Things URL: https://docs.arduino.cc/arduino-cloud/cloud-interface/things/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/03.cloud-interface/01.things/things.md Description: Learn how to configure a Thing, a virtual twin of your hardware device. The communication between IoT devices and the Arduino Cloud is handled through something called Things. Things are a virtual twin of your hardware/setup, where you perform a lot of the configurations for your projects. In the Thing interface you can: - create Cloud variables that can be synced across devices, - select the main device you want to associate with - edit & upload sketches to your board, - set webhooks that trigger whenever data changes, - edit the timezone. ### Triggers URL: https://docs.arduino.cc/arduino-cloud/cloud-interface/triggers/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/03.cloud-interface/04.triggers/triggers.md Description: Learn how to use triggers that allow you to send notifications based on set conditions. Triggers react to certain conditions inside your Arduino Cloud Thing, such as a boolean being true, or a string being assigned a value. As soon as a set condition is met a notification gets triggered and sent to you. This is useful when you monitor data and you need to know about any change as soon as it happens. This could be anything from different values in environmental monitoring or security-related information such as movement detection. Triggers can also be used to detect device status, where you can configure to send an email / push notification whenever a device goes online/offline. ### Use Sensor Data From Your Phone URL: https://docs.arduino.cc/arduino-cloud/iot-remote-app/iot-remote-phone-sensors/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/05.iot-remote-app/02.iot-remote-phone-sensors/iot-remote-phone-sensors.md Description: Stream sensor data from your phone live to the Arduino Cloud The Arduino Cloud is a powerful platform that can help you with setting up your own IoT devices within minutes. It is now possible to synchronize your phone's sensor data with the Cloud, using the Arduino IoT Remote App for iOS and Android. Furthermore, this data can also be used to control your Arduino boards, such as mapping a value from a sensor on your phone to an actuator on your Arduino. ### Webhooks URL: https://docs.arduino.cc/arduino-cloud/features/webhooks/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/06.features/11.webhooks/iot-cloud-webhooks.md Description: Learn how to setup webhooks with the Arduino Cloud to work with third party platforms such as IFTTT. Webhooks allow you to send and receive automated messages to and from other services. For example, you can use webhooks to receive a notification when a property of your Thing changes. To do this, there are third party platforms that link the properties from your Arduino Cloud projects to the desired trigger action. - Learn how to set up webhooks in the Arduino Cloud. - Provide an overview of available platforms where webhooks may be used. - Demonstrate an example that uses a webhook to send data from the Arduino Cloud to Google Sheets, via the IFTTT platform. ### Wi-Fi® / ESP32 URL: https://docs.arduino.cc/arduino-cloud/hardware/wifi/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/arduino-cloud/02.hardware/02.wifi/wifi.md Description: Setup and configure Wi-Fi® devices in the Arduino Cloud. A number of official Arduino boards support a connection to the Arduino Cloud via Wi-Fi®. Some boards also have an onboard crypto chip that stores the credentials automatically when configuring the device. There are currently two ways of configuring a Wi-Fi® board: - By configuring an onboard crypto chip (available for a number of official Arduino boards only). - Through a Secret Key / API key (ESP32/ESP8266 based boards\*). --- ## Software Tools ### About Apps in Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/apps/about-apps/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/4.apps/1.about-apps/about-apps.md Description: Understand the structure of an App, including the roles of sketch.ino, main.py, and app.yaml. An Arduino App is a modular software architecture that orchestrates multiple components into a single functional unit. Unlike a traditional Arduino sketch, the core of an App is high-level Python logic running on the board's Linux subsystem. While an App is fundamentally a Python application, it is highly extensible. You can enhance it by adding Bricks (pre-built modular components like AI models or databases) and, on supported dual-processor boards, an optional C++ sketch for real-time hardware control. ### Act on Multiple Sketches at Once on the Cloud Editor! URL: https://docs.arduino.cc/software/web-editor/act-on-multiple-sketches-at-once-on-the-web-editor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/web-editor/act-on-multiple-sketches-at-once-on-the-web-editor/act-on-multiple-sketches-at-once-on-the-web-editor.md Description: Want to clean up or better organize your online sketchbook? Do it in just a few clicks on the Arduino Cloud Editor! - Arduino Cloud Editor If you have a big sketchbook, you may want to cleanup/categorize things once in a while. With our bulk action tool, you can delete, move or download multiple sketches at the same time. ### App Lab Release Notes 0.10.0 URL: https://docs.arduino.cc/software/app-lab/release-notes/release-0-10/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/9.release-notes/04.release-0-10/content.md Description: This article contains release notes for App Lab version 0.10.0. This page contains release notes for Arduino App Lab. To access the software, go here. Note: You need to have an UNO Q (2GB or 4GB) to use Arduino App Lab. ### App Lab Release Notes 0.4.0 URL: https://docs.arduino.cc/software/app-lab/release-notes/release-0-4/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/9.release-notes/10.release-0-4/content.md Description: This article contains release notes of App Lab. This page contains all release notes for Arduino App Lab. To access the software, go here. Note: You need to have an UNO Q (2GB or 4GB) to use Arduino App Lab. ### App Lab Release Notes 0.5.0 URL: https://docs.arduino.cc/software/app-lab/release-notes/release-0-5/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/9.release-notes/09.release-0-5/content.md Description: This article contains release notes of App Lab. This page contains all release notes for Arduino App Lab. To access the software, go here. Note: You need to have an UNO Q (2GB or 4GB) to use Arduino App Lab. ### App Lab Release Notes 0.6.0 URL: https://docs.arduino.cc/software/app-lab/release-notes/release-0-6/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/9.release-notes/08.release-0-6/content.md Description: This article contains release notes of App Lab. This page contains all release notes for Arduino App Lab. To access the software, go here. Note: You need to have an UNO Q (2GB or 4GB) to use Arduino App Lab. ### App Lab Release Notes 0.7.0 URL: https://docs.arduino.cc/software/app-lab/release-notes/release-0-7/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/9.release-notes/07.release-0-7/content.md Description: This article contains release notes of App Lab. This page contains all release notes for Arduino App Lab. To access the software, go here. Note: You need to have an UNO Q (2GB or 4GB) to use Arduino App Lab. ### App Lab Release Notes 0.8.0 URL: https://docs.arduino.cc/software/app-lab/release-notes/release-0-8/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/9.release-notes/06.release-0-8/content.md Description: This article contains release notes for App Lab version 0.8.0. This page contains all release notes for Arduino App Lab. To access the software, go here. Note: You need to have an UNO Q (2GB or 4GB) to use Arduino App Lab. ### App Lab Release Notes 0.9.0 URL: https://docs.arduino.cc/software/app-lab/release-notes/release-0-9/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/9.release-notes/05.release-0-9/content.md Description: This article contains release notes for App Lab version 0.9.0. This page contains all release notes for Arduino App Lab. To access the software, go here. Note: You need to have an UNO Q (2GB or 4GB) to use Arduino App Lab. ### Apps URL: https://docs.arduino.cc/software/app-lab/apps/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/4.apps/apps.md ### Arduino App CLI Command Reference URL: https://docs.arduino.cc/software/app-lab/cli/commands/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/7.cli/2.commands/commands.md Manage Arduino Apps directly from the terminal using this command-line interface. Control the lifecycle of your applications, manage Bricks, and configure system settings without a graphical UI. Usage: arduino-app-cli [subcommand] ### Arduino App Lab Glossary URL: https://docs.arduino.cc/software/app-lab/getting-started/glossary/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/3.getting-started/5.glossary/glossary.md Description: Definitions for common terms and concepts used in the Arduino App Lab ecosystem. A command-line tool used to access the board's Linux shell over a USB connection. It allows for file management and terminal access without a network connection. The simulation of human intelligence by machines. In App Lab, AI models are typically deployed within Bricks to perform tasks like object detection or speech recognition locally on the board. ### Arduino App Lab Settings URL: https://docs.arduino.cc/software/app-lab/configure/settings/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/2.configure/2.settings/settings.md Description: Learn about configuration options, system information, and device management tools available in the Arduino App Lab Settings page. Manage your board's configuration, view system information, and access device management tools through the Settings page. Follow these steps to open the Settings menu: ### Arduino Cloud Editor Secondary Features URL: https://docs.arduino.cc/software/web-editor/arduino-web-editor-secondary-features/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/web-editor/arduino-web-editor-secondary-features/arduino-web-editor-secondary-features.md Description: Explore secondary features of the Arduino Cloud Editor and become a pro using it. - Arduino Cloud Editor In this tutorial, we'll demonstrate some secondary features of the Arduino Cloud Editor. ### Arduino IDE 1 Installation (Linux) URL: https://docs.arduino.cc/software/ide-v1/tutorials/Linux/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/Linux/Linux.md Description: Install the Arduino Software (IDE) on Linux This document explains how to install the Arduino Software (IDE) on Linux machines. The Linux build of the Arduino Software (IDE) comes in different packages depending on your system architecture. There are no specific instructions needed for the different distributions of Linux (e.g. Ubuntu). ### Arduino IDE 1 Installation (macOS) URL: https://docs.arduino.cc/software/ide-v1/tutorials/macOS/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/macOS/macOS.md Description: Install the Arduino Software (IDE) on macOS This document explains how to install the Arduino Software (IDE) on macOS machines. Get the latest version from the download page. The file is in Zip format. If you use Safari it will be automatically extracted. If you use a different browser you may need to extract it manually. ### Arduino IDE 1 Installation (Windows) URL: https://docs.arduino.cc/software/ide-v1/tutorials/Windows/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/Windows/Windows.md Description: Install the Arduino Software (IDE) on Windows This document explains how to install the Arduino Software (IDE) on Windows machines. Get the latest version from the download page. You can choose between the Installer (.exe) and the Zip packages. We suggest you use the first one that installs directly everything you need to use the Arduino Software (IDE), including the drivers. With the Zip package you need to install the drivers manually. The Zip file is also useful if you want to create a portable installation. ### Arduino IDE 1 Portable Installation URL: https://docs.arduino.cc/software/ide-v1/tutorials/PortableIDE/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/PortableIDE/PortableIDE.md Description: How to create and use a portable version of the Arduino Software (IDE) This document explains how to make a portable installation of the Arduino Software (IDE) on Windows and Linux machines. A portable installation contains all the files and directories necessary to get the Arduino Software (IDE) to work on a computer without affecting its files outside the folder designated for the portable installation. Almost in all the schools students don't have administrator privileges, so they don't have write access in some folders. This leads to some problem in using the Arduino Software (IDE) since your preferences and sketchbook are saved in one of those folders. Using a portable version of the IDE you can overcome this problem. ### Arduino Integrated Development Environment (IDE) v1 URL: https://docs.arduino.cc/software/ide-v1/tutorials/arduino-ide-v1-basics/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/arduino-ide-v1-basics/arduino-ide-v1-basics.md Description: Learn how the Arduino IDE v1 works, such as compiling & uploading sketches, file management, installing dependencies and much more. The Arduino Integrated Development Environment - or Arduino Software (IDE) - contains a text editor for writing code, a message area, a text console, a toolbar with buttons for common functions and a series of menus. It connects to the Arduino hardware to upload programs and communicate with them. Programs written using Arduino Software (IDE) are called sketches. These sketches are written in the text editor and are saved with the file extension .ino. The editor has features for cutting/pasting and for searching/replacing text. The message area gives feedback while saving and exporting and also displays errors. The console displays text output by the Arduino Software (IDE), including complete error messages and other information. The bottom righthand corner of the window displays the configured board and serial port. The toolbar buttons allow you to verify and upload programs, create, open, and save sketches, and open the serial monitor. ### Arduino PLC IDE Pin Mapping URL: https://docs.arduino.cc/software/plc-ide/tutorials/plc-ide-pin-mapping/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/10.plc-ide-pin-mapping/content.md Description: Assign the pins to variables and interact with them on the Arduino PLC IDE. In this tutorial you will see how to access the available pins of your device as variables, you will create a Pin Map Table, configure it and interact with the pins from your PLC programs. A mapping table is a table that links a source, like the memory address of an I/O, and its target name which functions as an alias. For example, if a microcontroller has an I/O with the name PA01, a mapping table can be used to access that resource with the name digitalOut01. ### Arduino® PLC IDE Setup & Device License Activation URL: https://docs.arduino.cc/software/plc-ide/tutorials/plc-ide-setup-license/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/01.plc-ide-setup-license/content.md Description: A brief user guide to show how to install the Arduino PLC IDE and activate the license for your compatible device. The Arduino PLC IDE offers the possibility to use IEC IEC61131-3 programming languages (LD, SFC, FBD, ST, IL) with the Portenta Machine Control and Opta™. The PLC IDE offers a comprehensive set of standard features commonly used in industrial automation. This tutorial will show you how to connect the Portenta Machine Control and Opta™ to the Arduino PLC IDE, learning how to activate the software license and the basic setup to have your board up and running with the Arduino PLC IDE. ### Bricks URL: https://docs.arduino.cc/software/app-lab/bricks/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/5.bricks/bricks.md ### Bricks Architecture and Configuration Reference URL: https://docs.arduino.cc/software/app-lab/bricks/bricks-reference/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/5.bricks/4.bricks-reference/bricks-reference.md Description: A technical reference for Bricks inside Arduino App Lab, detailing thread lifecycle, YAML schemas, and configuration specifications. This document details the underlying execution model, thread lifecycle management, file directory structures, and configuration specifications for both preinstalled official bricks and custom bricks in the Arduino App Lab ecosystem. Bricks follow one of two execution patterns inside the arduino.app_utils framework, depending on whether you implement them as plain functions or managed classes. ### Bridge URL: https://docs.arduino.cc/software/app-lab/bridge/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/6.bridge/bridge.md ### Bridge API Reference URL: https://docs.arduino.cc/software/app-lab/bridge/bridge-api/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/6.bridge/2.bridge-api/bridge-api.md Description: Comprehensive reference for the Arduino UNO Q Bridge RPC API, covering C++, Python, and data type mappings. Use the Bridge library to enable bidirectional communication between the high-level Python logic and the real-time Arduino sketch. This Remote Procedure Call (RPC) layer allows you to exchange data, trigger functions, and synchronize tasks across processors. The Arduino Router (arduino-router) background Linux service manages the underlying network using a Star Topology and MessagePack RPC. ### CAN Bus Setup with Arduino PLC IDE URL: https://docs.arduino.cc/software/plc-ide/tutorials/can-setup/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/08.can-setup/content.md Description: This tutorial will show you how to set up the CAN bus communication with the Arduino PLC IDE. The Arduino Portenta Machine Control has the TJA1049T CAN transceiver which allows to use the Controller Area Network (CAN) protocol communication. CAN is the acronym used for Controlled Area Network. This protocol was developed to be used on automotive and industrial applications to communicate with precise and critical demanding sensors. ### CLI URL: https://docs.arduino.cc/software/app-lab/cli/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/7.cli/cli.md ### Configure URL: https://docs.arduino.cc/software/app-lab/configure/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/2.configure/configure.md ### Connect, Configure, and Update boards in Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/configure/config/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/2.configure/1.config/config.md Description: Learn how to perform the initial configuration of your board and manage system updates using Arduino App Lab. Once Arduino App Lab is running, it will automatically detect and prepare your board for development. If you are using App Lab in Single Board Computer (SBC) mode, the software is already running on the board and no manual connection step is required. If you are working from a separate computer, you will first need to select and connect to your board over USB or your local network. After connecting, App Lab performs an automated check to ensure your board is correctly configured. While you will typically walk through these steps during your first session, App Lab may prompt you again if certain requirements are missing—for example, if a network connection is unavailable or if a Linux password needs to be set for Network Mode deployment and remote access via SSH. ### Create Custom Bricks in Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/bricks/custom-bricks/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/5.bricks/3.custom-bricks/custom-bricks.md Description: Learn how to create and manage Custom Bricks to expand your Apps with custom Python libraries and Docker containers. Custom Bricks allow you to create additional Docker services and companion Python packages for use by an App. While Arduino Bricks provide ready-to-use features, Custom Bricks let you integrate any tool or service your application needs. ### Custom AI Models for Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/integrations/ai-models/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/8.integrations/2.ai-models/ai-models.md Description: This tutorial teaches you how to create and train your own AI models to customize your App Bricks. Predefined models offer a powerful starting point for understanding edge AI. In this tutorial, we will extend those capabilities by engineering and deploying our own custom machine learning models. By moving to a custom workflow, we can empower our Arduino App Lab applications to handle specialized tasks and unique datasets, allowing the system to be tailored to our specific project goals. By training your own models, you gain precise control over classification parameters and performance metrics, ensuring the system meets the specific requirements of your deployed environment rather than relying on generic solutions. ### Customizing the Auto Formatter Feature URL: https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-customize-auto-formatter/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/ide-v2-customize-auto-formatter/content.md Description: Learn how to configure the auto formatter feature Selecting Edit > Auto Format or pressing CTRL + T on Windows/Linux or CMD + T on MacOS when writing a sketch in the Arduino IDE 2 will automatically format the sketch. It is possible to change the behaviour of this command. In this tutorial we will go through how you can change the behaviour of this command. You can easily download the editor from the Arduino Software page. ### Debugging with the Arduino IDE 2 URL: https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-debugger/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/ide-v2-debugger/ide-v2-debugger.md Description: Learn how to set up a Zero board, J-Link and Atmel-ICE debuggers with the Arduino IDE 2, and how to debug a program. A newly introduced, yet less famous feature of Arduino IDE 2 is the Debugger. A debugger is a software tool which is used to test and debug programs, hence the name. ### Develop Apps in Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/apps/develop-apps/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/4.apps/5.develop-apps/develop-apps.md Description: Learn how to write code, manage dependencies, and use the Bridge to build modular applications in Arduino App Lab. Develop Apps in Arduino App Lab by managing your project files, configuring optional Bricks, and writing your core Python logic. An Arduino App is organized into a main logic layer, along with an optional real-time layer: ### Downloading and installing the Arduino IDE 2 URL: https://docs.arduino.cc/software/ide-v2/tutorials/getting-started/ide-v2-downloading-and-installing/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/getting-started/01.ide-v2-downloading-and-installing/ide-v2-downloading-and-installing.md Description: A quick guide on how to install the IDE 2 on your operating system. In this tutorial, we will show how to download and install the Arduino IDE 2 on your Windows, Mac, or Linux computer. You can easily download the editor from the Arduino Software page. ### Flash a Linux Image URL: https://docs.arduino.cc/software/app-lab/configure/flash/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/2.configure/4.flash/flash.md Description: Learn how to flash a new Linux operating system image to your Arduino UNO Q board using the built-in flasher in App Lab or the Arduino Flasher CLI tool. Flashing a new Linux image to your Arduino board allows you to install a fresh operating system, recover from system corruption, or switch between different supported Linux distributions. This process replaces the entire Linux OS and all stored data on the board. There are two primary methods for flashing your board: ### Getting Started URL: https://docs.arduino.cc/software/app-lab/getting-started/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/3.getting-started/getting-started.md ### Getting Started with Arduino IDE 2 URL: https://docs.arduino.cc/software/ide-v2/tutorials/getting-started-ide-v2/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/01.getting-started-ide-v2/ide-v2-autocomplete-feature.md Description: An introductory guide to the Arduino IDE 2. Makers, students & professionals have been using the classic Arduino IDE (Integrated Development Environment) ever since Arduino was born. The Arduino IDE 2 is an improvement of the classic IDE, with increased performance, improved user interface and many new features, such as autocompletion, a built-in debugger and syncing sketches with Arduino Cloud. ### Getting Started with the Bridge URL: https://docs.arduino.cc/software/app-lab/bridge/get-started-with-bridge/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/6.bridge/1.get-started-with-bridge/get-started-with-bridge.md Description: Learn how to use the Bridge to establish communication between the Linux microprocessor and the C++ microcontroller on your board. Establish communication between Python logic on the Linux microprocessor (MPU) and the C++ sketch on the microcontroller (MCU) using the Bridge. Use this workflow to send messages from Python to the MCU and monitor confirmations in the console. The easiest way to see the Bridge in action is to explore the built-in examples. These projects demonstrate how to pass data and trigger functions between your Python script and the Arduino C++ sketch: ### How to upload a sketch with the Arduino IDE 2 URL: https://docs.arduino.cc/software/ide-v2/tutorials/getting-started/ide-v2-uploading-a-sketch/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/getting-started/02.ide-v2-uploading-a-sketch/ide-v2-uploading-a-sketch.md Description: Learn the basics of verifying and uploading sketches with the new IDE 2. In the Arduino environment, we write sketches that can be uploaded to Arduino boards. In this tutorial, we will go through how to select a board connected to your computer, and how to upload a sketch to that board, using the Arduino IDE 2. You can easily download the editor from the Arduino Software page. ### Import Shared Sketches URL: https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-shared-sketches/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/ide-v2-shared-sketches/ide-v2-shared-sketches.md Description: Learn how to import sketches from a shared space into the Arduino IDE. The Arduino IDE can be synchronized with your Arduino Cloud account, which can be used to work on your Cloud sketches from the Arduino IDE. In the Arduino Cloud, you can also set up shared spaces for collaborating on projects. In this tutorial, we will learn how to change a setting that allows you to import projects based on a Space ID. ### Installing a Board Package in the IDE 2 URL: https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-board-manager/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/02.ide-v2-board-manager/ide-v2-board-manager.md Description: Learn how the new board manager tool works, and how to easily install the boards you want to use in the Arduino IDE 2. The board manager is a great tool for installing the necessary board packages to use your Arduino boards. In this quick tutorial, we will take a look at how to install one, and choosing the right package for your board! You can easily download the editor from the Arduino Software page. ### Installing classic AVR boards URL: https://docs.arduino.cc/software/ide-v1/tutorials/getting-started/cores/arduino-avr/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/getting-started/cores/arduino-avr/arduino-avr.md Description: A quick guide to installing classic Arduino boards, including the UNO, Mega, Leonardo and Micro. The classic Arduino boards, including the favorites UNO, Nano and Mega, requires the AVR core to be installed to compile and upload sketches to your board. Fortunately, the classic IDE comes with the AVR core already pre-installed. This means that we only need to download and install the editor to start using our Arduino products. ### Installing libraries URL: https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-installing-a-library/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/ide-v2-installing-a-library/ide-v2-installing-a-library.md Description: Learn how to install software libraries with the new library manager tool in the Arduino IDE 2. A large part of the Arduino programming experience is the use of libraries. There are thousands of libraries that can be found online, and the best documented ones can be found and installed directly through the editor. In this tutorial, we will go through how to install a library using the library manager in the Arduino IDE 2. We will also show how to access examples from a library that you have installed. ### Installing Libraries URL: https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/installing-libraries/installing-libraries.md Description: Learn how to install additional libraries in the Arduino IDE 1. Once you are comfortable with the Arduino software and using the built-in functions, you may want to extend the ability of your Arduino with additional libraries. Libraries are a collection of code that makes it easy for you to connect to a sensor, display, module, etc. For example, the LiquidCrystal library makes it easy to talk to character LCD displays. ### Installing Mbed OS Nano boards URL: https://docs.arduino.cc/software/ide-v1/tutorials/getting-started/cores/arduino-mbed_nano/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/getting-started/cores/arduino-mbed_nano/installing-mbed-os-nano-boards.md Description: A step-by-step guide to install the core needed for the Nano 33 BLE, Nano 33 BLE Sense and Nano RP2040 Connect boards. In this tutorial, we will go through a few simple steps on installing the core needed for Mbed OS Nano boards. This installation is necessary to use your board with the offline Arduino IDE. This tutorial uses the Arduino IDE. You can download the editor easily from our software page. ### Installing Mbed OS Nicla boards URL: https://docs.arduino.cc/software/ide-v1/tutorials/getting-started/cores/arduino-mbed_nicla/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/getting-started/cores/arduino-mbed_nicla/installing-mbed-os-nicla.md Description: A step-by-step guide to install the core needed for the Nicla board. In this tutorial, we will go through a few simple steps on installing the core needed for the Nicla boards. This installation is necessary to use your board with the offline Arduino IDE. This tutorial uses the Arduino IDE. You can download the editor easily from our software page. ### Installing Mbed OS Portenta boards URL: https://docs.arduino.cc/software/ide-v1/tutorials/getting-started/cores/arduino-mbed_portenta/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/getting-started/cores/arduino-mbed_portenta/installing-mbed-os-portenta-boards.md Description: A step-by-step guide to install the core needed for the Portenta boards. In this tutorial, we will go through a few simple steps on installing the core needed for Mbed OS Portenta boards. This installation is necessary to use your board with the offline Arduino IDE. This tutorial uses the Arduino IDE. You can download the editor easily from our software page. ### Installing the core for megaAVR boards URL: https://docs.arduino.cc/software/ide-v1/tutorials/getting-started/cores/arduino-megaavr/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/getting-started/cores/arduino-megaavr/installing-megaavr-core.md Description: A step-by-step guide to install the core needed for the UNO WiFi Rev2 and Nano Every boards. In this tutorial, we will go through a few simple steps on installing the core for megaAVR boards. This installation is necessary to use your board with the offline Arduino IDE. This tutorial uses the Arduino IDE. You can download the editor easily from our software page. ### Installing the SAM core for the Arduino Due URL: https://docs.arduino.cc/software/ide-v1/tutorials/getting-started/cores/arduino-sam/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/getting-started/cores/arduino-sam/installing-sam-core.md Description: A step-by-step guide to install the core needed for the Arduino Due board. In this tutorial, we will go through a few simple steps on installing the SAM core, designed for the Arduino DUE board. This installation is necessary to use your board with the offline Arduino IDE. This tutorial uses the Arduino IDE. You can download the editor easily from our software page. ### Installing the SAMD21 core for MKR boards URL: https://docs.arduino.cc/software/ide-v1/tutorials/getting-started/cores/arduino-samd/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/getting-started/cores/arduino-samd/installing-samd21-core.md Description: A step-by-step guide to install the core needed for the MKR Family, Zero and Nano 33 IoT boards. In this tutorial, we will go through a few simple steps on installing the SAMD21 core. This installation is necessary to use your board with the offline Arduino IDE. This tutorial uses the Arduino IDE. You can download the editor easily from our software page. ### Integrations URL: https://docs.arduino.cc/software/app-lab/integrations/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/8.integrations/integrations.md ### IoT Remote App Integration for Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/integrations/companion-app/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/8.integrations/1.companion-app/companion-app.md Description: This tutorial teaches you how to leverage the Arduino IoT Remote app to use your phone sensors with Arduino App Lab applications. In this tutorial, you will learn how to unlock your smartphone's potential within Arduino App Lab using the IoT Remote app. We will explore a powerful new feature that turns your phone into a wireless input device. Specifically, you will learn how to stream video from your phone directly to the Arduino App Lab to power the Object Detection Brick, allowing you to run AI vision projects without needing a USB webcam. Note: Your smartphone will be used as a remote camera input. Both the Arduino UNO Q and your smartphone must be connected to the same network. ### Manage Apps in Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/apps/manage-apps/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/4.apps/3.manage-apps/manage-apps.md Description: Learn how to create, duplicate, rename, import, export, and delete Apps using the Arduino App Lab interface. Organize and manage your projects in the My Apps library. Use these workflows to create, duplicate, import, and export Apps. The My Apps section contains all the projects you create, duplicate, or import. ### Manage Apps Using Arduino App CLI URL: https://docs.arduino.cc/software/app-lab/cli/cli/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/7.cli/1.cli/apps-lab-cli.md Description: Learn how to use the Arduino App Lab CLI, the command line interface for launching Apps on the UNO Q board. Manage your modular Apps through the arduino-app-cli, the command-line engine behind Arduino App Lab. This tool allows you to build, start, and stop applications directly from your board's terminal or remotely via ADB and SSH. The arduino-app-cli is pre-installed on the UNO Q board and can be accessed either through using the terminal on the board itself, or by accessing the board's terminal from a host computer via Android Debug Bridge (ADB). ### Memory Partitioning for Use with the Arduino IDE URL: https://docs.arduino.cc/software/plc-ide/tutorials/memory-partitioning/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/08.memory-partitioning/content.md Description: Learn how to partition the memory of an Opta™ or a Portenta Machine Control to be used with the Arduino® ecosystem tools. The Opta™ is a secure, easy-to-use micro Programmable Logic Controller (PLC) with Industrial Internet of Things (IIoT) capabilities. The Portenta Machine Control is a centralized, energy-efficient industrial control unit capable of operating equipment and machinery. Both devices can be programmed with the Arduino PLC IDE, a tool that simplifies programming the device through any of the five programming languages defined by the IEC 61131-3 standard. ### Modbus RTU On Opta™ Using PLC IDE URL: https://docs.arduino.cc/software/plc-ide/tutorials/opta-modbus-rtu-plc-ide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/07.opta-modbus-rtu-plc-ide/content.md Description: Learn how to set and enable Modbus RTU on Opta™ using Arduino® PLC IDE. Opta™ has scalable industrial-grade hardware with a wide range of connectivity choices. Opta™ is enhanced by the Arduino PLC IDE software, which makes the most of the device for solid field deployments. Opta™ supports Modbus protocols, and the Arduino PLC IDE makes it simple to implement them. In this tutorial, you will learn how to implement Modbus RTU-based communication between two Opta™ devices using Arduino PLC IDE. ### Modbus RTU On Portenta Machine Control Using PLC IDE URL: https://docs.arduino.cc/software/plc-ide/tutorials/pmc-modbus-rtu-plc-ide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/pmc-modbus-rtu-plc-ide/content.md Description: Learn to set and enable Modbus RTU on the Portenta Machine Control using the Arduino® PLC IDE. The Portenta Machine Control boasts adaptable, high-quality industrial hardware and offers various connection options. Its capabilities are further amplified by the Arduino PLC IDE software, optimizing the device for robust field operations. Moreover, the Portenta Machine Control is compatible with Modbus protocols. With the Arduino PLC IDE, their integration is made straightforward. In this tutorial, you will discover how to establish Modbus RTU communication between two Portenta Machine Control devices through the Arduino PLC IDE. ### Modbus Setup with Arduino PLC IDE URL: https://docs.arduino.cc/software/plc-ide/tutorials/modbus-setup/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/05.modbus-setup/content.md Description: This tutorial will show you how to set up the Modbus communication with the Arduino PLC IDE. The Arduino Portenta Machine Control (PMC) is a fully-centralized, low-power, industrial control unit. For equipment and machinery control, industrial communication protocols, such as Modbus RTU over RS-485 and Modbus TCP/IP over Ethernet, can be implemented in the PMC. In this tutorial, we will learn about how to get started on how to configure the Modbus communication with the Arduino PLC IDE. - Configure the Modbus communication (RTU and TCP) ### Modbus TCP On Portenta Machine Control Using PLC IDE URL: https://docs.arduino.cc/software/plc-ide/tutorials/pmc-modbus-tcp-plc-ide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/pmc-modbus-tcp-plc-ide/content.md Description: Learn how to use Modbus TCP on Portenta Machine Control using Arduino® PLC IDE. The Portenta Machine Control is characterized by its industrial-grade hardware, which provides consistent performance and durability even in the most demanding conditions. A notable feature of its design is the available connectivity options, such as Modbus TCP via the onboard RJ-45 port. In this tutorial, you will learn how to set up Modbus TCP-based communication between two Portenta Machine Control boards using the Arduino PLC IDE. ### Modbus TCP with Portenta Machine Control & Opta™ URL: https://docs.arduino.cc/software/plc-ide/tutorials/pmc-opta-modbus-tcp/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/06.pmc-opta-modbus-tcp/content.md Description: Learn to use Modbus TCP communication on a real industrial application using a Portenta Machine Control, Opta™, a temperature sensor, and the Arduino® PLC IDE. In this tutorial, a Portenta Machine Control and an Opta™ micro PLC will be used as server and client respectively to share temperature information through Modbus TCP using the PLC IDE. The server will do the measurements using a type K thermocouple and the client will activate its relay outputs when a certain threshold is reached. We have prepared a detailed guide in video format in case you are a visual learner. ### Network Configuration for Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/configure/network-configuration/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/2.configure/3.network-configuration/network-configuration.md Description: Learn about the ports, domains, and network types required for the Arduino UNO Q and App Lab. Configure your network environment to ensure reliable remote connectivity. While standard home networks typically work without additional setup, this guide provides the port, domain, and mDNS requirements for advanced users and IT administrators operating on restricted or corporate networks. Arduino App Lab uses mDNS (Multicast DNS) to automatically detect your UNO Q board on the local network. ### Opta™ Analog Expansion Usage with the PLC IDE URL: https://docs.arduino.cc/software/plc-ide/tutorials/opta-analog-expansion-plc-ide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/04.opta-analog-expansion-plc-ide/content.md Description: Learn how to use the Opta™ Analog Expansion to extend your solution capabilities with the Arduino® PLC IDE. In this tutorial you will learn how to use Opta™ Analog Expansion AFX00007 alongside an Opta™ controller using the Arduino PLC IDE. We will go through every feature of the Analog Expansion and learn with simple examples how to leverage it for industrial sensor sampling and output controlling. ### Opta™ Digital Expansions Usage with the PLC IDE URL: https://docs.arduino.cc/software/plc-ide/tutorials/opta-expansions-plc-ide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/03.opta-expansions-plc-ide/content.md Description: Learn how to use the Opta™ expansions to extend your solution capabilities with the Arduino® PLC IDE. In this tutorial, you will learn how to use Opta™ Digital Expansions AFX00005 and AFX00006 alongside an Opta™ controller. We will create a demo application from scratch, in which we will read the voltage from an analog sensor and control the expansion relay outputs based on the voltage level measured. ### Overview of the Arduino IDE 1 URL: https://docs.arduino.cc/software/ide-v1/tutorials/Environment/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/Environment/Environment.md Description: Everything you need to know about the Arduino IDE 1, the classic offline editor. The Arduino Integrated Development Environment - or Arduino Software (IDE) - contains a text editor for writing code, a message area, a text console, a toolbar with buttons for common functions and a series of menus. It connects to the Arduino hardware to upload programs and communicate with them. Programs written using Arduino Software (IDE) are called sketches. These sketches are written in the text editor and are saved with the file extension .ino. The editor has features for cutting/pasting and for searching/replacing text. The message area gives feedback while saving and exporting and also displays errors. The console displays text output by the Arduino Software (IDE), including complete error messages and other information. The bottom righthand corner of the window displays the configured board and serial port. The toolbar buttons allow you to verify and upload programs, create, open, and save sketches, and open the serial monitor. ### Overview: Bricks in Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/bricks/about-bricks/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/5.bricks/1.about-bricks/about-bricks.md Description: Learn about Bricks, the modular building blocks that provide pre-packaged AI models and functionalities for your Apps. Bricks are the modular building blocks of an Arduino App Lab application. They package complex features—such as machine learning models, web interfaces, or database integrations—into reusable components. Think of them as "plug-and-play" services: instead of writing thousands of lines of code from scratch, you add a Brick to your project and interact with it using a few lines of Python. Depending on your goal, jump directly to the relevant documentation: ### Programming Introduction with Arduino PLC IDE URL: https://docs.arduino.cc/software/plc-ide/tutorials/plc-programming-introduction/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/02.plc-programming-introduction/content.md Description: Create programs with all the IEC-61131-3 languages on the Arduino PLC IDE. The IEC-61131-3 standard collects 5 programming languages to help you to create your programs; you can use them together to make an entire program, grouping them into functions and function blocks. In addition to the standard languages, an Arduino sketch can be integrated, interacting with the other languages by means of Shared Variables. This kind of development can be accomplished using Arduino PLC IDE. In this tutorial you will familiarize yourself with all of them while having an Arduino sketch in mind as a reference. The goals of this tutorial are: ### Release Notes URL: https://docs.arduino.cc/software/app-lab/release-notes/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/9.release-notes/release-notes.md ### Run and Monitor Apps URL: https://docs.arduino.cc/software/app-lab/apps/run/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/4.apps/6.run/run.md Description: Learn how to run, stop, and configure startup applications on your board using App Lab. Arduino App Lab provides a seamless interface for testing, deploying, and managing applications on your board. Execute essential workflows including running examples, monitoring logs, and configuring startup apps. When you have finished writing or modifying your code in the App Lab, you can execute it directly on your connected board. ### Security of Arduino IDE URL: https://docs.arduino.cc/software/ide-v1/tutorials/ide-v1-security/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v1/tutorials/ide-v1-security/ide-v1-security.md Description: Learn about the secure development process behind the Arduino IDE. Arduino IDE 2.x is the latest version of the Arduino Programming tool and it is built on Eclipse Theia, an open-source framework for building IDEs. Arduino is committed to regularly monitor and update security measures applied to the Arduino IDE to ensure proper protection from any threats or vulnerabilities detected. ### Security of Arduino IDE URL: https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-security/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/ide-v2-security/ide-v2-security.md Description: Learn about the secure development process behind the Arduino IDE. Arduino IDE 2.x is the latest version of the Arduino Programming tool and it is built on Eclipse Theia, an open-source framework for building IDEs. Arduino is committed to regularly monitor and update security measures applied to the Arduino IDE to ensure proper protection from any threats or vulnerabilities detected. ### Setup URL: https://docs.arduino.cc/software/app-lab/setup/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/1.setup/setup.md ### Setup Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/setup/overview/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/1.setup/1.overview/overview.md Description: Learn about different setup options for Arduino App Lab. Arduino App Lab is an all-in-one environment for creating and managing Apps—modular projects that combine powerful software with hardware control. Learn about the different ways you can set up Arduino App Lab to begin building and deploying applications on your board. You can run Arduino App Lab in two primary ways depending on your project needs and available hardware. ### Setup Arduino App Lab in SBC Mode URL: https://docs.arduino.cc/software/app-lab/setup/standalone/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/1.setup/5.standalone/standalone.md Description: Learn how to set up your board as a standalone Single-Board Computer. Compatible Arduino boards can operate as a Single-Board Computer (SBC) running a full Linux environment. In this mode, the board functions like a desktop computer, and you develop directly on the board without needing a separate host PC. Because these boards run a standard Linux OS, they support a wide range of I/O configurations. You can connect peripherals via USB hubs, use monitors with built-in docking capabilities, or pair wireless accessories once the system is configured. ### Setup Arduino App Lab on Linux URL: https://docs.arduino.cc/software/app-lab/setup/linux/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/1.setup/4.linux/linux.md Description: Learn how to install Arduino App Lab and configure your Linux system for the UNO Q. This guide details how to prepare your Linux computer for developing with Arduino App Lab, including installing dependencies, configuring udev rules, and setting user permissions. 1. Prepare Your System 1. Install Arduino App Lab 1. Connect Your Board 1. Get Started with Arduino App Lab ### Setup Arduino App Lab on macOS URL: https://docs.arduino.cc/software/app-lab/setup/macos/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/1.setup/3.macos/macos.md Description: Learn how to download and install Arduino App Lab on macOS. This guide outlines the steps to prepare your macOS computer for developing with Arduino App Lab. 1. Install Arduino App Lab 1. Connect Your Board 1. Get Started with Arduino App Lab ### Setup Arduino App Lab on Windows URL: https://docs.arduino.cc/software/app-lab/setup/windows/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/1.setup/2.windows/windows.md Description: Learn how to download and install Arduino App Lab on Windows. This guide details how to prepare your Windows computer for use with Arduino App Lab, covering the installation of necessary tools and connecting your board. 1. Install Arduino App Lab 1. Connect Your Board 1. Get Started with Arduino App Lab ### Synchronizing Sketches between IDE 2 and Arduino Cloud URL: https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-cloud-sketch-sync/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/ide-v2-cloud-sketch-sync/ide-v2-cloud-sketch-sync.md Description: Learn how to enable your Remote Sketchbook, and how to pull, edit and push Sketches to the Arduino Cloud. The new Remote Sketchbook integration, released in July 2021 is a ground-breaking feature that allows you to synchronise your Arduino Cloud Sketchbook to your local computer. This is a great milestone for people who work on multiple computers or want to store their Sketches securely in the Cloud. In this tutorial, we will describe the benefits of this new feature, go through the steps necessary to set it up, how to use it, what limitations there are, and what scenarios this feature is most useful in. ### The Autocomplete Feature URL: https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-autocomplete-feature/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/ide-v2-autocomplete-feature/ide-v2-autocomplete-feature.md Description: Learn how the autocomplete feature works with Arduino IDE 2, and how it can help speed up your development time. Autocompletion when writing code is great. Not only does it save you time, but it gives you an understanding of how the programming language functions. The Arduino IDE 2 comes equipped with this tool, to make your code-writing experience, a pleasant one. In this tutorial, we will go through some basics on how to use it. ### Tutorial: Using Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/getting-started/quickstart/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/3.getting-started/1.quickstart/quickstart.md Description: Learn how to use Arduino App Lab to develop and run Apps on your board. Discover the key features of Arduino App Lab to quickly start building modular Apps for your board. Navigate the user interface, run a built-in example on your board, and create an editable copy to modify its behavior. You'll also monitor and log your App's internal state using Python. This onboarding journey assumes you have already installed App Lab and configured it with your board; if you haven't, please check the Prerequisites section below. ### Updating Firmware version and Uploading Certificates URL: https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-fw-cert-uploader/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/ide-v2-fw-cert-uploader/ide-v2-fw-cert-uploader.md Description: Learn how to update the firmware on your WiFi boards, and how to upload SSL Root Certificates. The IDE 2 comes with two really useful tools: the Firmware Updater for WiFi boards, and the SSL Root Certificates Uploader. The Firmware Updater allows you to choose the firmware version you want to upgrade to (or downgrade to), while the Certificates Uploader allows you to update the SSL root certificates on the board (adding specific domains). Only Wi-Fi enabled boards can be updated through these tools, and you can find the full list in the compatible boards section just below. ### Use Bricks in Arduino App Lab URL: https://docs.arduino.cc/software/app-lab/bricks/use-bricks/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/5.bricks/2.use-bricks/use-bricks.md Description: Learn how to add, configure, and initialize Bricks to extend your Apps's functionality. Add and configure Bricks to expand your application with pre-built dashboards, AI models, or local databases. You manage Bricks via the Arduino App Lab interface and initialize them directly within your Python script. You manage Bricks through the graphical interface in Arduino App Lab. When you add a Brick, the system automatically updates your project's configuration (app.yaml). ### Using Examples URL: https://docs.arduino.cc/software/app-lab/getting-started/examples/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/app-lab/3.getting-started/2.examples/examples.md Description: Learn how to access, run, and duplicate built-in examples in Arduino App Lab to kickstart your App development. Explore built-in examples to understand the capabilities of modular Apps on your board. Learn how to run these ready-to-use projects and duplicate them to kickstart your own custom applications. Running an example allows you to quickly test hardware and software capabilities without writing code from scratch. ### Using PLC IDE With Arduino Cloud URL: https://docs.arduino.cc/software/plc-ide/tutorials/plc-ide-cloud-support/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/plc-ide/tutorials/09.plc-ide-cloud-support/content.md Description: Learn how to integrate PLC IDE compatible devices with the Arduino Cloud. The Arduino PLC IDE offers multiple possibilities to expand the connectivity of your industrial applications. Integrating the PLC IDE with the Arduino Cloud allows you to create advanced HMI for your professional solutions that can be controlled in real time in multiple ways and on multiple devices. This tutorial will guide you through integrating and using the Arduino Cloud with the Arduino PLC IDE. You will learn to connect your compatible devices and create a compact, Cloud-connected application using Opta™. ### Using the Serial Monitor tool URL: https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-serial-monitor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/ide-v2-serial-monitor/ide-v2-serial-monitor.md Description: Learn how to use the new Serial Monitor tool in the Arduino IDE 2, and how it works differently from older versions. The Serial Monitor is an essential tool when creating projects with Arduino. It can be used as a debugging tool, testing out concepts or to communicate directly with the Arduino board. The Arduino IDE 2 has the Serial Monitor tool integrated with the editor, which means that no external window is opened when using the Serial Monitor. This means that you can have multiple windows open, each with its own Serial Monitor. ### Using the Serial Plotter Tool URL: https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-serial-plotter/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/software/ide-v2/tutorials/ide-v2-serial-plotter/ide-v2-serial-plotter.md Description: Learn how to setup and use the Serial Plotter in the Arduino IDE 2. The Serial Plotter tool is a versatile tool for tracking different data that is sent from your Arduino board. It functions similarly to your standard Serial Monitor tool which is used to print data "terminal style", but is a greater visual tool that will help you understand and compare your data better. In this tutorial, we will take a quick look on how to enable this feature (works for practically any sketch that uses serial communication), how a sample sketch looks like, and how it is expected to work. --- ## Learning Resources ### 1-Wire Protocol URL: https://docs.arduino.cc/learn/communication/one-wire/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/05.communication/06.one-wire/one-wire.md Description: Learn about the communication between devices or sensors using the OneWire protocol. > This article was revised on 2022/09/28 by Hannes Siebeneicher. Controller/peripheral is formerly known as master/slave. Arduino no longer supports the use of this terminology. Devices formerly known as master are referred to as controller and devices formerly known as slaves are referred to as peripheral. ### A guide to EEPROM URL: https://docs.arduino.cc/learn/programming/eeprom-guide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/07.eeprom-guide/eeprom-guide.md Description: Learn how to use EEPROM, short for electrically erasable programmable read-only memory, on Arduino boards. The microcontroller on the Arduino boards have 512 bytes of EEPROM: memory whose values are kept when the board is turned off (like a tiny hard drive). Functions in the EEPROM class are automatically included with the platform for your board, meaning you do not need to install any external libraries. ### AI Fundamentals for Edge Devices (1/4) URL: https://docs.arduino.cc/learn/edge-ai/eac1-ai-fundamentals/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/09.edge-ai/01.eac1-ai-fundamentals/content.md Description: This module introduces the fundamental concepts of Edge Artificial Intelligence (Edge AI). This module introduces the fundamental concepts of Edge Artificial Intelligence (Edge AI), establishing the theoretical foundations necessary to understand how to implement machine learning solutions on resource-constrained devices such as microcontrollers and embedded systems. Before exploring Edge AI, it is important to understand what a machine learning model is. Machine Learning is a branch of Artificial Intelligence (AI) that enables computer systems to learn patterns from data and make predictions or decisions without being explicitly programmed for each specific situation [1]. ### An intro to the Arduino Cloud URL: https://docs.arduino.cc/learn/starting-guide/arduino-iot-cloud/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/01.starting-guide/05.arduino-iot-cloud/arduino-iot-cloud.md Description: With the Arduino Cloud desktop or mobile platform, you can quickly connect, manage and monitor your devices from anywhere in the world. With the Arduino Cloud desktop or mobile platform, you can quickly connect, manage and monitor your devices from anywhere in the world. Arduino Cloud allows you to automatically create any code to program your device with - just add a couple of lines to customize it how you want. If you’re new to Arduino don’t worry there’s example code for hundreds of sensors and actuators. ### Analog Input Pins URL: https://docs.arduino.cc/learn/microcontrollers/analog-input/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/02.microcontrollers/02.analog-input/analog-input.md Description: Find out how analog input pins work on an Arduino. A description of the analog input pins on an Arduino chip (ATmega8, ATmega168, ATmega328P, or ATmega1280). The ATmega controllers used for the Arduino contain an onboard 6-channel (8 channels on the Mini and Nano, 16 on the Mega) analog-to-digital (A/D) converter. The converter has 10-bit resolution, returning integers from 0 to 1023. While the main function of the analog pins for most Arduino users is to read analog sensors, the analog pins also have all the functionality of general purpose input/output (GPIO) pins (the same as digital pins 0–13). ### Arduino & Serial Peripheral Interface (SPI) URL: https://docs.arduino.cc/learn/communication/spi/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/05.communication/02.spi/spi.md Description: Serial Peripheral Interface (SPI) is a synchronous serial data protocol used by microcontrollers for communicating with one or more peripheral devices quickly over short distances. >This article was revised on 2021/11/18 by Karl Söderby. Controller/peripheral is formerly known as master/slave. Arduino no longer supports the use of this terminology. See the table below to understand the new terminology: ### Arduino and Stepper Motor Configurations URL: https://docs.arduino.cc/learn/electronics/stepper-motors/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/04.stepper-motors/stepper-library-examples.md Description: Learn how to control a variety of stepper motors using unipolar / bipolar circuits with Arduino. Stepper motors, due to their unique design, can be controlled to a high degree of accuracy without any feedback mechanisms. The shaft of a stepper, mounted with a series of magnets, is controlled by a series of electromagnetic coils that are charged positively and negatively in a specific sequence, precisely moving it forward or backward in small "steps". There are two types of steppers, Unipolars and Bipolars, and it is very important to know which type you are working with. For each of the motors, there is a different circuit. The example code will control both kinds of motors. See the unipolar and bipolar motor schematics for information on how to wire up your motor. ### Arduino API URL: https://docs.arduino.cc/learn/programming/reference/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/00.reference/reference.md Description: A reference to the Arduino Programming Language. Compact version of the Arduino Language Reference. This document is a TLDR; of the Arduino API. Please note that as of 2024/01/15, this article is still a work in progress. ### Arduino Ecosystem URL: https://docs.arduino.cc/learn/starting-guide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/01.starting-guide/starting-guide.md ### Arduino Memory Guide URL: https://docs.arduino.cc/learn/programming/memory-guide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/06.memory-guide/memory-guide.md Description: Learn about the built-in memory blocks of Arduino® boards in this article. A microcontroller unit (also known as an MCU) is an integrated circuit (IC), typically used to perform specific applications or tasks. Usually, this type of IC gathers information or data from its surroundings, processes it, and generates specific outputs according to the gathered data. Microcontrollers today are everywhere; they are an essential part of modern embedded systems that can be found practically everywhere in our world, from smart watches to electric vehicles; they are even on the Martian surface right now. One essential part of a microcontroller is its memory; memory stores information temporarily or permanently in microcontrollers, and can be used for several purposes. In this article, we will explore memory organization in microcontrollers, focusing on those present in Arduino® boards. We will also explore several ways to manage, measure, and optimize memory usage in Arduino-based systems. ### Arduino Sketches URL: https://docs.arduino.cc/learn/programming/sketches/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/03.sketches/sketches.md Description: Get to know how sketches work, and how they are uploaded to an Arduino. In the getting started guide (Windows, MacOS, Linux), you uploaded a sketch that blinks an LED. In this tutorial, you'll learn how each part of that sketch works. A sketch is the name that Arduino uses for a program. It's the unit of code that is uploaded to and run on an Arduino board. ### Arduino Style Guide for Creating Libraries URL: https://docs.arduino.cc/learn/contributions/arduino-library-style-guide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/08.contributions/01.arduino-library-style-guide/arduino-library-style-guide.md Description: Learn how to write library APIs in an Arduino style. This is a style guide to writing library APIs in an Arduino style. Some of these run counter to professional programming practice. We’re aware of that, but it’s what’s made it possible for so many beginners to get started with Arduino easily. So please code with these principles in mind. If you have suggestions on how to make Arduino libraries clearer for that core audience, please jump in the discussion. Be kind to the end user. Assume you are writing an API for an intelligent person who has not programmed before. Come up with a clear mental model of the concept you’re working with, and the terms and functions you will use. ### Arduino Style Guide for Writing Content URL: https://docs.arduino.cc/learn/contributions/arduino-writing-style-guide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/08.contributions/00.arduino-writing-style-guide/arduino-writing-style-guide.md Description: Learn how to write clear Arduino examples that can be read by beginners and advanced users alike. This is a guide for writing clear Arduino examples that can be read by beginners and advanced users alike. You don't have to code this way, but it helps if you want your code to be clear to all levels of users. This is not a set of hard and fast rules, it's a set of guidelines. Some of these guidelines might even conflict with each other. Use your judgment on when they're best followed, and if you're not sure, ask someone who'll be learning from what you write what makes the most sense. You might also be interested in the Arduino Style Guide for Creating Libraries. If you want to contribute with content for the Arduino Documentation website, please find instructions in the contribution-templates folder in the Arduino Documentation repository. ### Arduino® & Modbus Protocol URL: https://docs.arduino.cc/learn/communication/modbus/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/05.communication/07.modbus/modbus.md Description: Modbus is an open serial communication protocol used for transmitting information over serial lines between electronic devices. This article contains information about the Modbus serial communication protocol and how it can be used with Arduino hardware. The different elements are highlighted, compatible libraries and boards are shown together with example code. The following section gives an overview of Modbus compatible Arduino boards and the libraries to enable Modbus protocol capability. Depending on the hardware you are using, the libraries might vary. Therefore, it is always important to check your device specifications. - All boards compatible with the MKR 485 Shield and the MKR ETH Shield - All boards compatible with the Ethernet Shield Rev2 - Portenta Machine Control - Portenta Max Carrier - Opta™ ### Audio Basics with Arduino URL: https://docs.arduino.cc/learn/programming/audio/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/10.audio/audio.md Description: Learn how to create tones and even entire songs using an Arduino. > This article was revised on 2022/09/28 by Hannes Siebeneicher. This article highlights different approaches to making sounds and even entire songs with an Arduino. In 2013 Brett Hagman created the tone() library which is a good starting point for creating different types of sounds using an Arduino. As the examples in this article are gathered from the Arduino playground and were mostly created before 2013 a lot of steps are still done manually, which can be skipped when using the tone() library. ### Basics of Potentiometers with Arduino URL: https://docs.arduino.cc/learn/electronics/potentiometer-basics/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/08.potentiometer-basics/potentiometer-basics.md Description: Learn the fundamentals of how a potentiometers works, about the forms they come in, and how to use them in your projects. A potentiometer is a simple mechanical device that comes in many different forms. It provides a variable amount of resistance that changes as you manipulate it. The examples in this article uses a potentiometer with a twisting shaft, one of the more common versions of a potentiometer you will find. By passing voltage through a potentiometer into an analog input on your Arduino, it is possible to measure the amount of resistance of the potentiometer as an analog value. This article will showcase use cases of potentiometers, as well as teach you how to connect and read data from them. One shows how you can use a potentiometer as an input for a color mixer, and the other shows how to accurately choose colors and how to smoothly fade between them. ### Basics of PWM (Pulse Width Modulation) URL: https://docs.arduino.cc/learn/microcontrollers/analog-output/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/02.microcontrollers/03.analog-output/analog-output.md Description: Learn how PWM works and how to use it in a sketch.. The Fading example demonstrates the use of analog output (PWM) to fade an LED. It is available in the File->Sketchbook->Examples->Analog menu of the Arduino software. Pulse Width Modulation, or PWM, is a technique for getting analog results with digital means. Digital control is used to create a square wave, a signal switched between on and off. This on-off pattern can simulate voltages in between the full Vcc of the board (e.g., 5 V on UNO, 3.3 V on a MKR board) and off (0 Volts) by changing the portion of the time the signal spends on versus the time that the signal spends off. The duration of "on time" is called the pulse width. To get varying analog values, you change, or modulate, that pulse width. If you repeat this on-off pattern fast enough with an LED for example, the result is as if the signal is a steady voltage between 0 and Vcc controlling the brightness of the LED. ### Bit Masks with Arduino URL: https://docs.arduino.cc/learn/programming/bit-mask/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/09.bit-mask/bit-mask.md Description: Bit masks are used to access specific bits in a byte of data. Bit masks are used to access specific bits in a byte of data. This is often useful as a method of iteration, for example when sending a byte of data serially out a single pin. In this example the pin needs to change it's state from high to low for each bit in the byte to be transmitted. This is accomplished using what are known as bitwise operations and a bit mask. Bitwise operations perform logical functions that take affect on the bit level. Standard bitwise operations include AND (&) OR (|) Left Shift (<<) and Right Shift (>>). ### Bit Math with Arduino URL: https://docs.arduino.cc/learn/programming/bit-math/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/11.bit-math/bit-math.md Description: Learn about bit math and how to manipulate individual bits in your Arduino sketches. > This article was revised on 2022/09/28 by Hannes Siebeneicher. Often when programming in the Arduino environment (or on any computer, for that matter), the ability to manipulate individual bits will become useful or even necessary. Here are some situations where bit math can be helpful: ### Bluetooth® Low Energy URL: https://docs.arduino.cc/learn/communication/bluetooth/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/05.communication/08.bluetooth/bluetooth.md Description: Bluetooth® Low Energy is a wireless communication technology designed for short-range communication between electronic devices. Bluetooth® Low Energy®, often referred to as Bluetooth® LE, is a wireless communication technology designed for short-range data exchange between electronic devices. It emerged as a response to the need for energy-efficient wireless communication in various applications, especially those where power consumption is a critical concern. Unlike its predecessor, Bluetooth® Classic, which is optimized for continuous and relatively high-data-rate communication, Bluetooth® LE focuses on minimizing energy consumption while maintaining connectivity. This makes Bluetooth® LE particularly suitable for applications that require long battery life, such as fitness trackers, healthcare devices, smart sensors, and Internet of Things (IoT) devices. ### Built-in Libraries URL: https://docs.arduino.cc/learn/built-in-libraries/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/07.built-in-libraries/built-in-libraries.md ### Communication URL: https://docs.arduino.cc/learn/communication/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/05.communication/communication.md ### Contributions URL: https://docs.arduino.cc/learn/contributions/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/08.contributions/contributions.md ### Controller Area Network (CAN) Bus URL: https://docs.arduino.cc/learn/communication/can/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/05.communication/10.can/can.md Description: CAN Bus is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other without a host computer. Controller Area Network (CAN), is a robust and versatile communication protocol that can be used to send data between an Arduino board and other devices in a networked environment without a host computer. Originally developed by Bosch for automotive applications, CAN bus offers advantages in scenarios demanding robust, noise-resistant, and error-checked data transmission. Communication via CAN is enabled through different CAN libraries and is dependent on the hardware used for the setup. This article will mainly focus on the Arduino_CAN library and its available methods with references to different hardware and respective libraries. ### Debugging Fundamentals URL: https://docs.arduino.cc/learn/microcontrollers/debugging/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/02.microcontrollers/04.debugging/debugging.md Description: Learn the basics of debugging microcontroller-based systems. Embedded systems are microprocessor or microcontroller-based systems with a dedicated operational role. Rather than being made of separate components, like desktop computers, laptops or, gaming consoles, embedded systems integrate all the hardware and software necessary for a particular purpose. Nowadays, embedded systems are everywhere: automobiles, cameras, household appliances, and mobile devices are just some examples. Embedded systems design can be challenging since it combines hardware design, firmware, and software development, all in one particular device or product. In order to produce high-quality embedded firmware and software for a particular device or product, debugging is a necessary step in their development process. Debugging is the process of confirming that, one by one, many things that we believe to be true and functional in our code are true. We find a "bug" in our code when one our more assumptions are not valid. ### Designing Arduino Nano Hardware URL: https://docs.arduino.cc/learn/hardware/nano-pcb-guide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/06.hardware/nano-pcb-guide/nano-pcb-guide.md Description: Learn how to create your own custom hardware that is compatible with the Arduino Nano Family. The Arduino Nano Family is a series of boards with a tiny footprint. This guide is dedicated to you who wants to design your own customized hardware for the Nano Family. This article aims to provide you with technical information that will aid the design of your own customized Nano hardware. ### Digital Pins URL: https://docs.arduino.cc/learn/microcontrollers/digital-pins/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/02.microcontrollers/01.digital-pins/digital-pins.md Description: Discover how digital pins work and how they can be configured. The pins on the Arduino can be configured as either inputs or outputs. This document explains the functioning of the pins in those modes. While the title of this document refers to digital pins, it is important to note that the vast majority of Arduino (ATmega) analog pins may be configured, and used, in exactly the same manner as digital pins. Arduino (ATmega) pins default to inputs, so they don't need to be explicitly declared as inputs with pinMode() when you're using them as inputs. Pins configured this way are said to be in a high-impedance state. Input pins make extremely small demands on the circuit that they are sampling, equivalent to a series resistor of 100 MΩ in front of the pin. This means that it takes very little current to move the input pin from one state to another, and can make the pins useful for such tasks as implementing a capacitive touch sensor, reading an LED as a photodiode, or reading an analog sensor with a scheme such as RCTime. ### Edge AI URL: https://docs.arduino.cc/learn/edge-ai/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/09.edge-ai/edge-ai.md ### EEPROM Library URL: https://docs.arduino.cc/learn/built-in-libraries/eeprom/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/07.built-in-libraries/03.eeprom/eeprom.md Description: Documentation for usage of the EEPROM library. EEPROM is a memory whose values are kept when the board is powered off. The microcontroller on the Arduino and Genuino AVR based board has EEPROM: memory whose values are kept when the board is turned off (like a tiny hard drive). This library enables you to read and write those bytes. The supported micro-controllers on the various Arduino and Genuino boards have different amounts of EEPROM: 1024 bytes on the ATmega328P, 512 bytes on the ATmega168 and ATmega8, 4 KB (4096 bytes) on the ATmega1280 and ATmega2560. The Arduino and Genuino 101 boards have an emulated EEPROM space of 1024 bytes. ### Electronics URL: https://docs.arduino.cc/learn/electronics/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/electronics.md ### FPGA HDL Basics URL: https://docs.arduino.cc/learn/programming/vidor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/04.vidor/vidor.md Description: Learn the basics of Field Programmable Gate Arrays (FPGA) and HDL. - MKR Vidor 4000 Field Programmable Gate Arrays, in short FPGAs are a relatively old way of creating custom hardware eliminating the costs associated with silicon foundries. Unfortunately most of the complexity of chip design are still there and this is the reason why most people prefers to use off the shelf chips, often accepting their limitations, rather than take the challenge to have an optimized, efficient design with exactly the hardware they need. ### Get to know Arduino Libraries URL: https://docs.arduino.cc/learn/starting-guide/software-libraries/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/01.starting-guide/04.software-libraries/libraries.md Description: Libraries provide extra functionality for use in sketches, e.g. working with hardware or manipulating data. The Arduino environment can be extended through the use of libraries. Just like most programming platforms, libraries provide extra functionality for use in sketches, e.g. working with hardware or manipulating data. To use a library in a sketch, select it from Sketch > Import Library. A number of libraries come installed with the IDE, but you can also download or create your own. Here are some instructions for setting up a library on the offline IDE: ### Getting Started with Arduino URL: https://docs.arduino.cc/learn/starting-guide/getting-started-arduino/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/01.starting-guide/00.getting-started-arduino/getting-started-arduino.md Description: An introduction to hardware, software tools, and the Arduino API. The Arduino platform has since its start in 2005, grown to become one of the most recognizable brands in the space of electronics and embedded design. But what are the cornerstones of Arduino? What is a "board", how do I write code to it, and what are the tools needed to create my own project? The goal with this guide is to provide you with an overview to the Arduino project. ### Getting started with Arduino tools URL: https://docs.arduino.cc/learn/starting-guide/getting-started-with-arduino-tools/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/01.starting-guide/01.getting-started-with-arduino-tools/getting-started.md Description: Get to know the different tools that Arduino have, and how to set up your environment. Welcome to Arduino! Before you start controlling the world around you, you'll need to set up the software to program your board. An Integrated Development Environment (IDE) is a software that allows you to write code and upload it to your Arduino hardware. We have our own Arduino Software (IDE) application available for Windows, macOS and Linux users. Besides the convenient code editing functions, the Arduino Software (IDE) is equipped with a list of libraries that provide extra functionality for use in sketches, making it easier for you to connect sensors, displays, modules, etc. ### GPS NMEA 0183 Messaging Protocol 101 URL: https://docs.arduino.cc/learn/communication/gps-nmea-data-101/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/05.communication/04.gps-nmea-data-101/gps-nmea-data-101.md Description: Learn the fundamentals of the GPS NMEA 0183 messaging protocol, and what Arduino® hardware can work with this type of messaging protocol. With the help of a smartphone, we can know where we are on the earth to a few meters. Our smartphones can do this with the help of a chip that communicates with a group of satellites in the sky, collectively known as a Global Navigation Satellite System (GNSS). A GNSS is a group, or constellation, of 24, or more, satellites working together to provide positioning and timing services globally under any weather conditions. While the Global Positioning System (GPS) from the United States is the most widely GNSS used in the world, other GNSS are also available, including: ### Guide to 3V3 and 5V Power Supplies Differences URL: https://docs.arduino.cc/learn/microcontrollers/5v-3v3/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/02.microcontrollers/05.5v-3v3/5v-3v3-guide.md Description: Design and build robust electronic circuits and devices by learning the main characteristics and differences between 3V3 and 5V power supplies levels. When designed, most electronic circuits and devices must choose a power supply. The voltage of the power supply is usually determined either by convenience or the need for power efficiency that the electronic circuit or device itself has as a requirement. 3V3 and 5V are standard voltage levels nowadays in power supplies. Although there is only a 1V7 difference between both voltages, it is enough to provide a significant difference in power efficiency. This guide will show you why 3V3 is the current standard voltage level for power supplies in electronic circuits and devices and some general tips when designing and handling these voltage levels in your circuits or devices powered by Arduino. ### Guide to Arduino & Secure Digital (SD) Storage. URL: https://docs.arduino.cc/learn/programming/sd-guide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/08.sd-guide/sd-guide.md Description: Browse through a series of examples on how to read and write to SD cards from an Arduino board. >This article was revised on 2021/11/18 by Karl Söderby. This guide collects compatible hardware and great code examples that you can use if you want to get started with Secure Digital (SD) cards. ### Hardware Design URL: https://docs.arduino.cc/learn/hardware/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/06.hardware/hardware.md ### How To Read Arduino Power Trees URL: https://docs.arduino.cc/learn/electronics/power-tree/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/06.power-tree/power-tree-style-guide.md Description: Learn how to read the Arduino power trees and to create our own ones. Arduino provides a wide range of boards, shield and carrier each design to meet a specific need. This ranges from the classic Arduino UNO serving as a standard entry point to the world of Arduino to the Arduino Portenta H7 that incorporates features to meet industry-level demands. The power delivery system is thus designed to take into considerations of you, the end users of our products. In order to help users, both new and advanced, better understand the power structure of your board we have developed graphical power trees to provide a high level understanding that you can see in the relevant datasheets. In this article, we will explore the concepts of Power Trees and guide you through a representative example. We welcome any feedback and comments from the Arduino Community to further improve the Power Trees. Lets take a look together at one of our power trees. The Portenta H7 was one of the first products to be bestowed with a graphical power tree. ### I2S Library URL: https://docs.arduino.cc/learn/built-in-libraries/i2s/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/07.built-in-libraries/02.i2s/i2s.md Description: Documentation for usage of the I2S (Inter-IC Sound) protocol on SAMD21 boards. This library allows you to use the I2S protocol on SAMD21 based boards (i.e Arduino or Genuino Zero, MKRZero or MKR1000 Board). To use this library ### Installing additional cores URL: https://docs.arduino.cc/learn/starting-guide/cores/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/01.starting-guide/07.cores/cores.md Description: Learn how to install cores in the Arduino IDE. Starting from the Arduino Software (IDE) version 1.6.2, all Arduino AVR boards are installed by default. Some Arduino boards require an additional core to be installed, therefore we have implemented the Boards Manager as the preferred tool to add cores to your Arduino Software (IDE). Cores are necessary to make new microcontrollers compatible with your Arduino Software (IDE) and, possibly, the existing sketches and libraries. We develop the cores for the new microcontrollers used in our new generation boards, but anyone may develop a core for their own boards following the rules and requirements we have issued. ### Inter-Integrated Circuit (I2C) Protocol URL: https://docs.arduino.cc/learn/communication/wire/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/05.communication/01.wire/wire.md Description: Allows the communication between devices or sensors connected via Two Wire Interface Bus. A good way of adding complexity of features to your projects without adding complexity of wiring, is to make use of the Inter-integrated circuit (I2C) protocol. The I2C protocol is supported on all Arduino boards. It allows you to connect several peripheral devices, such as sensors, displays, motor drivers, and so on, with only a few wires. Giving you lots of flexibility and speeding up your prototyping, without an abundancy of wires. Keep reading to learn about how it works, how it is implemented into different standards, as well as how to use the Wire Library to build your own I2C devices. The I2C protocol involves using two lines to send and receive data: a serial clock pin (SCL) that the Arduino Controller board pulses at a regular interval, and a serial data pin (SDA) over which data is sent between the two devices. ### Liquid Crystal Displays (LCD) with Arduino URL: https://docs.arduino.cc/learn/electronics/lcd-displays/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/03.lcd-displays/lcd-displays.md Description: Find out how to wire an LCD to an Arduino, and how to use the LiquidCrystal library through a set of useful examples. >This article was revised on 2021/11/18 by Karl Söderby. The LiquidCrystal library allows you to control LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface. ### LPWAN (Low-Power Wide-Area Networks) 101 URL: https://docs.arduino.cc/learn/communication/low-power-wide-area-networks-101/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/05.communication/03.low-power-wide-area-networks-101/low-power-wide-area-networks-101.md Description: Learn the fundamentals of low-power wide-area networks, and what Arduino hardware can connect to them. The exponential growth of the Internet of Things (IoT) and machine-to-machine (M2M) communications in the last few years has had an impact on almost every aspect of our daily lives. It is expected that by 2025 more than 75 billion IoT devices will be connected and working around the world. But how are these IoT devices connected to the Internet? Generally speaking, IoT and M2M applications and devices have low-power and low-data transmission requirements (the data usually comes from sensors). Until recently, the technologies used for connecting these applications and devices were not the ideal ones for IoT applications, as shown in in the image below. For example, wireless personal area networks (WLANs) and Bluetooth® were designed primarily for medium to high-speed data communication in short-range environments. Wireless cellular networks such as 2G, 3G, 4G, and 5G, were designed for high-speed data communication in medium-range environments. These networks are usually employed in voice, data, and video communication. In order to meet the particular requirements of IoT and M2M applications and devices, something had to _evolve_ to meet the particular requirements of IoT and M2M applications and devices. ### Microcontrollers URL: https://docs.arduino.cc/learn/microcontrollers/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/02.microcontrollers/microcontrollers.md ### ML Fundamentals for Edge Devices (2/4) URL: https://docs.arduino.cc/learn/edge-ai/eac2-ml-fundamentals/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/09.edge-ai/02.eac2-ml-fundamentals/content.md Description: This module covers the most suitable algorithms, optimization techniques, and the complete lifecycle of Edge AI applications In the previous module, we explored what Edge AI is and why it is relevant for embedded applications and edge devices. In this module, we will delve deeper into the fundamentals of machine learning for resource-constrained devices, covering the most suitable algorithms, optimization techniques, and the complete lifecycle of Edge AI applications. Not all machine learning algorithms are suitable for running on edge devices. Here, we will examine the characteristics that make Edge AI efficient in resource-constrained environments, as well as the main types of tasks that can be performed with Edge AI. ### Multimeter Basics URL: https://docs.arduino.cc/learn/electronics/multimeter-basics/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/01.multimeter-basics/multimeter-basics.md Description: Learn about different multimeter features, how they function, and how to use this essential tool. A multimeter is a test tool, mostly used in electronics, that should always be present in the FabLab of a Maker. It is a diagnostic tool that allows us, for instance to: ### Nicla Family Form Factor Specification URL: https://docs.arduino.cc/learn/hardware/nicla-form-factor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/06.hardware/nicla-form-factor/nicla-form-factor.md Description: Our smallest footprint packed with advanced features. This document aims to describe the design philosophy and technical specifications of the Nicla Form Factor and should be used as a guideline for designing boards and accessories (shields/carriers) compatible with the form factor. The Nicla form factor has been designed to address the needs of industrial applications and makers for an all-in-one package featuring wireless sensing capabilities. Key focus is given to collecting and processing data at the edge with minimal power consumption. Nicla boards integrate application specific sensors and high performance microcontrollers capable of processing raw data in real time and provide high level measurements to the host board or to the main application. Nicla boards support programmable I/O voltage ranging between 1.8 and 3.3V whose voltage reference can either be supplied externally or generated internally. ### PDM Library URL: https://docs.arduino.cc/learn/built-in-libraries/pdm/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/07.built-in-libraries/01.pdm/pdm.md Description: The PDM library allows you to use Pulse-density modulation microphones, found onboard the Nano RP2040 Connect & Nano 33 BLE Sense boards. The PDM library allows you to use PDM (Pulse-density modulation) microphones, such as the onboard MP34DT05 on the Arduino Nano 33 BLE Sense. To use this library: ### Power Consumption on Arduino Boards URL: https://docs.arduino.cc/learn/electronics/power-consumption/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/11.power-consumption/power-consumption.md Description: Learn about measuring power consumption on an Arduino board. All electronic devices, including Arduino boards, consume power. The power consumption is measured in ampere-hours (Ah), and with low-voltage devices, it is typically measured in mAh. When creating projects that run on a battery or are power-constrained, taking power consumption into account can be critical. It will among other things help you decide which kind of battery you need to use. ### Powering Alternatives for Arduino Boards URL: https://docs.arduino.cc/learn/electronics/power-pins/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/10.power-pins/power-pins.md Description: Learn more about the power pins and connectors of Arduino® boards in this article, their main characteristics, and how to use them correctly. Arduino boards can be powered in several ways; we can use dedicated connectors (USB ports, barrel jacks or battery connectors) or dedicated pins. One fundamental question that usually arises when using an Arduino board in real-life applications is what dedicated power connector or pin we should use. This article will describe the main characteristics and correct use of power pins and connectors of Arduino boards. Arduino boards have five options in which they can be powered: ### Programming URL: https://docs.arduino.cc/learn/programming/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/programming.md ### Servo Motor Basics with Arduino URL: https://docs.arduino.cc/learn/electronics/servo-motors/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/05.servo-motors/servo-motors.md Description: Learn how to connect and control servo motors with your Arduino board. The Servo Library is a great library for controlling servo motors. In this article, you will find two easy examples that can be used by any Arduino board. The first example controls the position of an RC (hobby) [servo motor]() with your Arduino and a potentiometer. The second example sweeps the shaft of an RC servo motor back and forth across 180 degrees. ### SoftwareSerial Library URL: https://docs.arduino.cc/learn/built-in-libraries/software-serial/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/07.built-in-libraries/04.software-serial/software-serial.md Description: The SoftwareSerial library allows serial communication on other digital pins of an Arduino board. The SoftwareSerial library allows serial communication on other digital pins of an Arduino board, using software to replicate the functionality (hence the name "SoftwareSerial"). It is possible to have multiple software serial ports with speeds up to 115200 bps. A parameter enables inverted signaling for devices which require that protocol. The version of SoftwareSerial included in 1.0 and later is based on the NewSoftSerial library by 'Mikal Hart'. ### The Arduino Comic Project URL: https://docs.arduino.cc/learn/starting-guide/arduino-comic/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/01.starting-guide/08.arduino-comic/arduino-comic.md Description: Learn Arduino comic book style! This community project has been translated into several languages, including Spanish, Chinese & Arabic. The Arduino Comic was created by Jody Culkin and published during 2011. You can download the original, but you can also help out and contribute translating it to your own language. * Download the original comic just to see how it looks like * Download the original text document, that contains all the strings in English, it comes both as TXT and DOC file * Translate all the strings to your own language * Download the PDF file with the blank boxes * Edit the PDF file with your graphic tool of choice: InDesign, Illustrator, Inkscape ... and insert the different strings * Fill in the Support Contact Form with information that you have created your comic. You will receive an email with your case number where you can send the translated strings as well as a PDF with the final version of the comic (if you want to share your work files it might also be a nice thing to do) * Remember to add your name and contact information, we like to give credit to those that contributed, besides people might want to contact you with questions ### The Arduino Guide to LoRa® and LPWAN Technologies URL: https://docs.arduino.cc/learn/communication/lorawan-101/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/05.communication/05.lorawan-101/lorawan-101.md Description: Learn the basics of LoRa® technology and how to use it with Arduino hardware and software. The Internet of Things (IoT) is often referred to as a collection of objects connected to the Internet using wireless networks; these connected objects aim to collect and exchange information from their surroundings. IoT enables a connection between the physical and the digital worlds; that connection produces a massive amount of data that can be used for the optimization of resources and to improve the efficiency of existing systems. By 2025, there will be more than 25 billion IoT devices connected to the Internet. ### The Arduino Guide to Low Power Design URL: https://docs.arduino.cc/learn/electronics/low-power/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/07.low-power/low-power.md Description: Learn the basics of low-power design using Arduino hardware and software. The objective of Low Power is to reduce the device’s power consumption by controlling its behavior to extend its operation lifetime. Electronic devices fed directly from a power source usually do not require the implementation of Low Power or similar techniques to extend their life. On the other hand, it is necessary to save its power consumption to expand its operation lifetime for the devices running from a power source such as batteries. The present guide for achieving low power system are applicable for every Arduino boards. For example, Arm Cortex-M0 32-bit SAMD21 processor based Arduino boards can take advantage of low-power features. The Arduino SAMD21 boards with wireless protocol using LoRa® technology, with module as Murata CMWX1ZZABZ featured from MKR WAN 1310, can be combined with low power features to operate for an extensive period. With advanced techniques, such tools as power source guide and self-discharge rates design applies to every Arduino boards for designing power efficient systems. You can check out Arduino Documentation Hardware page to find out about Arduino boards. ### The Arduino Guide to Soldering URL: https://docs.arduino.cc/learn/electronics/soldering-basics/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/02.soldering-basics/soldering-basics.md Description: Learn the basics of soldering, a fundamental skill every maker should have. Usually, when we work on building electronic circuits projects, we use breadboards, especially when prototyping. When we have finished the prototyping stage, we often need to migrate our projects from a breadboard to a dedicated board, like printed circuit boards (PCBs), to have our project safely and for a long time. It is in these cases when we need to know how to solder electronic parts or components. Soldering is a process where two electronic parts or components are joined together by melting solder around an electrical or/and mechanical connection between those components using a handheld tool called soldering iron. Solder creates a solid and permanent electrical and mechanical bond between the electronic components after it cools. ### Transistor Motor Control URL: https://docs.arduino.cc/learn/electronics/transistor-motor-control/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/04.electronics/09.transistor-motor-control/09.transistor-motor-control.md Description: Learn how to control a DC motor with a transistor, using PWM. >This article was revised on 2022/01/18 by Karl Söderby. Motors and transistors are very common electronic components. This article aims to provide some of the basics, along with a working code example, circuits and schematics. ### Transition to Practical Implementation (4/4) URL: https://docs.arduino.cc/learn/edge-ai/eac4-practical-transition/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/09.edge-ai/04.eac4-practical-transition/content.md Description: This module introduces the hardware and software we will use in Part 2 of the course, guides the setup of the development environment, and presents a reference project. In the previous modules, we explored the theoretical foundations of Edge AI: what it is, how machine learning algorithms operate on resource-constrained devices, and the workflow for creating applications. Now it is time to prepare for practical implementation. This module introduces the hardware and software we will use in Part 2 of the course, guides the setup of the development environment, and presents a reference project that demonstrates all the concepts learned so far. ### Troubleshooting Arduino Sketches URL: https://docs.arduino.cc/learn/starting-guide/troubleshooting-sketches/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/01.starting-guide/06.troubleshooting-sketches/troubleshooting-sketches.md Description: There are many pieces involved in getting a program onto your Arduino board. There are many factors involved in uploading a program to your Arduino board, and if any of them are missing, the upload could fail. You can check the following suggestions to help you solve any potential problem: ### Universal Asynchronous Receiver-Transmitter (UART) URL: https://docs.arduino.cc/learn/communication/uart/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/05.communication/09.uart/uart.md Description: A serial communication protocol for sending serial data over USB or via TX/RX pins. In this article, you will learn the basics of Universal Asynchronous Receiver-Transmitter (UART), a serial communication protocol that can be used to send data between an Arduino board and other devices. This is the protocol used when you send data from an Arduino to your computer, using the classic Serial.print() method. UART is one of the most used device-to-device (serial) communication protocols. It’s the protocol used by Arduino boards to communicate with the computer. It allows an asynchronous serial communication in which the data format and transmission speed are configurable. It's among the earliest serial protocols and even though it has in many places been replaced by SPI and I2C it's still widely used for lower-speed and lower-throughput applications because it is very simple, low-cost and easy to implement. ### Using Functions in a Sketch URL: https://docs.arduino.cc/learn/programming/functions/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/02.functions/functions.md Description: Learn how to define and use functions in a Sketch. Segmenting code into functions allows a programmer to create modular pieces of code that perform a defined task and then return to the area of code from which the function was "called". The typical case for creating a function is when one needs to perform the same action multiple times in a program. For programmers accustomed to using BASIC, functions in Arduino provide (and extend) the utility of using subroutines (GOSUB in BASIC). ### Using the Arduino Cloud Editor URL: https://docs.arduino.cc/learn/starting-guide/the-arduino-web-editor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/01.starting-guide/03.the-arduino-web-editor/arduino-web-editor.md Description: The Arduino Cloud Editor allows you to write code and upload sketches to any official Arduino board from your web browser. The Arduino Cloud Editor allows you to write code and upload sketches to any official Arduino board directly from your web browser (Chrome, Firefox, Safari and Edge). However, we recommend you use Google Chrome. This IDE (Integrated Development Environment) is part of Arduino Cloud, an online platform that enables developers to write code, access tutorials, configure boards, and share projects. Designed to provide users with a continuous workflow, Arduino Cloud connects the dots between each part of a developer's journey from inspiration to implementation. Meaning, you now have the ability to manage every aspect of your project right from a single dashboard. ### Using the Arduino Software (IDE) URL: https://docs.arduino.cc/learn/starting-guide/the-arduino-software-ide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/01.starting-guide/02.the-arduino-software-ide/arduino-software-ide.md Description: The offline IDE makes it easy to write code and upload it to the board without an Internet connection. The Arduino Software (IDE) makes it easy to write code and upload it to the board offline. We recommend it for users with poor or no internet connection. This software can be used with any Arduino board. There are currently two versions of the Arduino IDE, one is the IDE 1.x.x and the other is IDE 2.x. The IDE 2.x is new major release that is faster and even more powerful to the IDE 1.x.x. In addition to a more modern editor and a more responsive interface it includes advanced features to help users with their coding and debugging. ### Using Variables in Sketches URL: https://docs.arduino.cc/learn/programming/variables/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/03.programming/01.variables/variables.md Description: What are variables, and how can we use them in a sketch. A variable is a place to store a piece of data. It has a name, a value, and a type. For example, this statement (called a declaration): int pin = 13; ### What is Arduino? URL: https://docs.arduino.cc/learn/starting-guide/whats-arduino/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/01.starting-guide/00.whats-arduino/whats-arduino.md Description: An introduction to what Arduino is, and what it can be used for. Arduino is an open-source electronics platform based on easy-to-use hardware and software. Arduino boards are able to read inputs - light on a sensor, a finger on a button, or a Twitter message - and turn it into an output - activating a motor, turning on an LED, publishing something online. You can tell your board what to do by sending a set of instructions to the microcontroller on the board. To do so you use the Arduino programming language (based on Wiring), and the Arduino Software (IDE), based on Processing. Over the years Arduino has been the brain of thousands of projects, from everyday objects to complex scientific instruments. A worldwide community of makers - students, hobbyists, artists, programmers, and professionals - has gathered around this open-source platform, their contributions have added up to an incredible amount of accessible knowledge that can be of great help to novices and experts alike. ### Workflow for Creating Edge AI Applications (3/4) URL: https://docs.arduino.cc/learn/edge-ai/eac3-edge-ai-workflow/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/09.edge-ai/03.eac3-edge-ai-workflow/content.md Description: This module will delve deeper into the four central phases of the workflow: data collection, preprocessing, model training, and evaluation In the previous module, we introduced the Edge AI development cycle and its six phases. Now we will delve deeper into the four central phases of the workflow: data collection, preprocessing, model training, and evaluation. The goal is to understand how each phase is executed in practice and what decisions are key to achieving good results. Data is the most important component of any machine learning project. A model can only be as good as the data it was trained on. In this section, we will examine the types of data used in Edge AI, strategies for collecting them correctly, and considerations about their quantity and representativeness. ### Writing a Library for Arduino URL: https://docs.arduino.cc/learn/contributions/arduino-creating-library-guide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/learn/08.contributions/03.arduino-creating-library-guide/arduino-creating-library-guide.md Description: Creating libraries to extend the functionality of Arduino. Goes step-by-step through the process of making a library from a sketch. This document explains how to create a library for Arduino. It starts with a sketch for flashing Morse code and explains how to convert its functions into a library. This allows other people to easily use the code that you've written and to easily update it as you improve the library. For more information, see the API Style Guide for information on making a good Arduino-style API for your library. --- ## MicroPython ### 1. Introduction to Arduino URL: https://docs.arduino.cc/micropython/micropython-course/course/introduction-arduino/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/course/00.introduction-arduino/intro-to-arduino.md Description: Learn about the Arduino platform This page is an introduction to the Arduino platform. If you are already familiar with Arduino, we recommend skipping to the next page. Arduino is a platform that enables students, teachers, hobbyists & professionals all over the world to build projects & applications that run on tiny computers. ### 2. MicroPython Installation Guide URL: https://docs.arduino.cc/micropython/micropython-course/course/installation/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/course/01.installation/installation-tools.md Description: Learn how to install a code editor needed to program your board with MicroPython. In this chapter we will go over how to install the prerequisite software: the MicroPython firmware installer and the Arduino Labs for MicroPython (Code Editor). The installer will install a MicroPython firmware on your board, and the code editor will allow you to program the board with MicroPython. Later in this chapter, we'll walk you through the installation process step by step. You can download the required software below, but if you do - please return to this page afterwards for instructions on what to do with them. To run MicroPython code on your Arduino board, you will need: ### 3. Introduction to MicroPython URL: https://docs.arduino.cc/micropython/micropython-course/course/introduction-python/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/course/02.introduction-python/02.intro-to-micropython.md Description: Learn about the Arduino platform MicroPython is an implementation of the popular Python® programming language, with a target for microcontrollers (hence the "micro"). Python has become one of the most popular languages worldwide, with one of its key characteristics being an easier language to learn. This makes it suitable for beginners that have little to no experience in writing text-based code but want to achieve great things. ### 4. Python Crash Course URL: https://docs.arduino.cc/micropython/micropython-course/course/python-cc/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/course/03.python-cc/python-cc.md Description: Learn some Python fundamentals that will help you create MicroPython scripts. In this chapter, we will take you through some useful Python® syntax that will be of help when you are creating MicroPython scripts. In this chapter we will cover a small part of the Python programming language. This will help you to better understand the rest of the course. If you are familiar with Python, this chapter is not a requirement. ### 5. Digital I/O URL: https://docs.arduino.cc/micropython/micropython-course/course/digital/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/course/04.digital/03.digital.md Description: Learn how to read & write digital signals. In this chapter, we will work with digital signals through practical examples, working with some electronic components and MicroPython code modules. You will learn the following in this chapter: - How to read a button, - how to turn on an LED, - how to make the Nano ESP32 perform a continuous action (placing it in a loop). ### 6. Analog I/O & PWM Signals URL: https://docs.arduino.cc/micropython/micropython-course/course/analog/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/course/05.analog/04.analog.md Description: Learn how to read analog signals and how to generate PWM signals. In this chapter, we will explore how to read analog signals using an Analog-to-digital converter (ADC), and how to write them, using a technique called pulse width modulation (PWM). Analog signals are used to represent phenomena in the real world, such as pressure, temperature or other physical quantities. Analog signals differ from digital ones as they can have an infinite number of possible values, whereas digital ones are finite. ### 7. Serial Protocols URL: https://docs.arduino.cc/micropython/micropython-course/course/serial/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/course/06.serial/05.serial-protocols.md Description: Learn how to use the I2C, SPI and UART serial protocols. Serial protocols are fundamental in any electronic design, as they are the method of transporting data between different circuits and components. They consist of digital signals that are used in clever ways to send 1's and 0's between systems. There are many, many serial protocols out there, but in this chapter we will focus on the three most important ones when working with Arduino: I2C, SPI and UART. ### 8. Internet of Things with MicroPython URL: https://docs.arduino.cc/micropython/micropython-course/course/internet-of-things/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/course/07.internet-of-things/01.internet-of-things.md Description: Learn how to connect to Wi-Fi® networks, how to make a HTTP request to a REST API. Internet of Things (IoT) is a collective term for any devices that are connected to the Internet, and your Nano ESP32 is one of them. Using its built-in antenna, the board can connect and communicate over the Internet. In this chapter, we are going to look into the essential steps needed to connect your board to a Wi-Fi® network, and how to make a test call to the Internet. ### 9. Component Examples URL: https://docs.arduino.cc/micropython/micropython-course/course/examples/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/course/08.examples/examples.md Description: Ready to use code & circuit examples for popular components such as Neopixel, DHT11 & Servo motor. In this final chapter of the MicroPython 101 course, you will find code & circuit examples for popular components, such as motors, displays and sensors. These components can be combined to make fun projects, and works out of the box with the Nano ESP32 & MicroPython. External modules used in this chapter are third party and has not been developed by the Arduino team. Credit is due to the developers of these modules. ### Alarm Clock URL: https://docs.arduino.cc/micropython/micropython-course/projects/alarm-clock/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/projects/alarm-clock/alarm-clock-project.md Description: Build your own alarm clock using a 4-digit-display and a buzzer to get you out of bed. Please complete the basic installation-chapters before starting a project. This project will use the ntptime module to keep track of the time and display it on a 4-digit-display. An alarm can then be set in the code, which will turn on the buzzer at a specified time. To keep track of time accurately the board will also connect to a Wi-Fi® network. ### Analog I/O URL: https://docs.arduino.cc/micropython/basics/analog-io/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/01.basics/01.analog-io/analog-io.md Description: A guide to analog inputs (ADC) and outputs (PWM) using MicroPython. Analog inputs and outputs (I/O) are essential for handling a range of values rather than simple on/off states, allowing for more nuanced control over devices and inputs in your projects. In this chapter, we’ll cover how to work with analog I/O using MicroPython, focusing on how to: - Read analog values, such as a light sensor or potentiometer. - Generate analog outputs, like controlling LED brightness or the speed of a motor. ### Arduino Lab for MicroPython (online) URL: https://docs.arduino.cc/micropython/environment/online-editor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.environment/00.online-editor/online-editor.md Description: The Arduino Lab for MicroPython is an online code editor for writing and loading MicroPython scripts. The Arduino Lab for MicroPython is an online code editor that allows you to load MicroPython scripts to your Arduino board. This editor is part of the Arduino Cloud, and is free to use for everyone. In this tutorial, we will take a look at how we can access it, and test it out by writing a simple script. ### Arduino Runtime for MicroPython URL: https://docs.arduino.cc/micropython/first-steps/runtime-package/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/00.first-steps/03.runtime-package/runtime-package.md Description: Learn how to use the Arduino MicroPython runtime library, which allows you to write MicroPython code in a familiar Arduino style while adding a few helpers. The Arduino Runtime Library is a MicroPython library that allows you to write and program your board using the classic setup() and loop() construct. It also adds a few helpers along the way. The library was designed to make it easier to create programs, particularly for those familiar with the Arduino C++ environment, but it also adds a few interesting tricks to better help your program run and stop. ### Basics URL: https://docs.arduino.cc/micropython/basics/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/01.basics/basics.md ### Board Examples URL: https://docs.arduino.cc/micropython/board-examples/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/04.board-examples/board-examples.md ### Code Editor URL: https://docs.arduino.cc/micropython/environment/code-editor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.environment/01.code-editor/code-editor.md Description: Learn the basics for loops on MicroPython. Arduino Lab for MicroPython includes a user-friendly code editor that helps us write, format, and run MicroPython code with ease. In this article, we’ll explore how the code editor works, key formatting rules for MicroPython, and some useful tips to keep our code clean and error-free. - Arduino Lab for MicroPython - MicroPython compatible board (not required for using the editor, but for running any code). ### Communication URL: https://docs.arduino.cc/micropython/communication/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/06.communication/communication.md Description: Learn how to use serial protocols with MicroPython ### Courses URL: https://docs.arduino.cc/micropython/micropython-course/course/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/course/micropython-content.md Description: Learn MicroPython and Arduino through a series of learning chapters with practical exercises. ### Data Logger URL: https://docs.arduino.cc/micropython/basics/data-logger/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/01.basics/03.data-logger/data-logger.md Description: Learn how to store data on a .csv file using MicroPython Data logging using MicroPython is a great feature, as we can use the board's file system to create files and store data in them. In this tutorial, we will create a .csv file, make some readings from an analog pin, and store the data in the file. The file can then be accessed via the Arduino Lab for MicroPython editor. ### Digital I/O URL: https://docs.arduino.cc/micropython/basics/digital-io/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/01.basics/00.digital-io/digital-io.md Description: A guide to digital inputs and outputs using MicroPython. Digital pins are fundamental for interacting with the physical world using your Arduino board. With them, you can: - Control outputs, such as turning an LED on and off. - Read inputs, like detecting the state of a button. ### Environment URL: https://docs.arduino.cc/micropython/environment/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.environment/environment.md ### Essentials URL: https://docs.arduino.cc/micropython/basics/essentials/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/01.basics/04.essentials/essentials.md Description: A guide to digital inputs and outputs using MicroPython. To make the most of all the tools available in your "Python" belt (thankfully, pythons are non-venomous!), understanding MicroPython's fundamental concepts is essential. This guide focuses on the language basics, covering variable types, lists, tuples, functions, and exception handling to help you build efficient and powerful programs. Variables in MicroPython don’t need explicit type declarations. The type is inferred based on the assigned value. ### File System URL: https://docs.arduino.cc/micropython/environment/file-system/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.environment/02.file-system/file-system.md Description: Learn how to use the File System in MicroPython. When working with MicroPython, we’re not limited to a single program file like in traditional Arduino sketches (using C++). Instead, MicroPython provides a file system, enabling us to store and manage multiple files on our microcontroller. This opens up powerful capabilities for organizing code, managing assets, and creating modular projects. In this article, we'll explore how the MicroPython file system works, how to organize files effectively, and the typical structure of MicroPython projects. ### First Steps URL: https://docs.arduino.cc/micropython/first-steps/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/00.first-steps/first-steps.md ### GIGA R1 WiFi URL: https://docs.arduino.cc/micropython/board-examples/giga-r1-wifi/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/04.board-examples/giga-r1-wifi/giga-r1-wifi.md Description: Learn how to use specific features on the GIGA R1 WiFi using MicroPython In this guide, you will find information specific to the GIGA R1 WiFi board, such as supported serial protocols, built-in peripherals, and how to access the wireless features. For installation instructions, please visit the link below: - Installing MicroPython ### Installing MicroPython URL: https://docs.arduino.cc/micropython/first-steps/install-guide/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/00.first-steps/01.install-guide/installing-micropython.md Description: Learn how to install MicroPython on your Arduino board. In this article, we will go through the necessary tools needed to install and run MicroPython on an Arduino board. By the end of this guide, we will be ready to write and run our first MicroPython script. Let's get started! Before we start, let's check the requirements: ### Inter-Integrated Circuit (I2C) URL: https://docs.arduino.cc/micropython/communication/i2c/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/06.communication/i2c/i2c.md Description: Learn how to use I2C on Micropython Inter-Integrated Circuit, or I2C, is one of the most widely used serial communication protocols, especially in the Arduino ecosystem. It enables multiple devices to communicate over just two wires, making it both efficient and versatile as you can easily add new modules more easily as the connections all happen across the same bus and standetizes them across manufacturers (and product lines). I2C communication relies on two wires: - SDA (Serial Data): Transfers data between devices. - SCL (Serial Clock): Synchronizes data transmission. ### Introduction to MicroPython URL: https://docs.arduino.cc/micropython/first-steps/intro-micropython/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/00.first-steps/00.intro-micropython/intro-micropython.md Description: Learn about the fundamentals of Micropython on Arduino boards. MicroPython is a lightweight implementation of Python 3 designed to run on microcontrollers and embedded systems. Think of it as a mini-version of Python, tailored for hardware with limited resources like memory and processing power. Despite its smaller size, MicroPython retains the simplicity and flexibility of Python, making it an excellent option for programming hardware. When using MicroPython on Arduino boards, the software is first installed on your Arduino. This allows the board to interpret and run Python code. Once MicroPython is installed on your board (don't worry, we'll cover this here), you can start writing and executing Python scripts instantly. ### Language URL: https://docs.arduino.cc/micropython/language/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/03.language/language.md ### Loops URL: https://docs.arduino.cc/micropython/basics/loops/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/01.basics/02.loops/loops.md Description: Learn how to use different loops with MicroPython. Loops are fundamental constructs in all programming languages, that allow you to execute a block of code multiple times. In MicroPython, loops help you perform repetitive tasks efficiently and are an awesome tool to keep in your coder's toolbox. In this guide, we will explore the different loop structures available. ### MicroPython 101 Course URL: https://docs.arduino.cc/micropython/micropython-course/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/micropython-course.md Description: MicroPython 101 Description ### MicroPython Reference URL: https://docs.arduino.cc/micropython/language/reference/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/03.language/01.reference/reference.md Description: A single document reference of the MicroPython API. Please note that some part of this reference is still in progress and will be updated over time. The article is subject to minor changes. This reference serves as a "translation" between what is known as the Arduino API, which is documented in the Arduino Language Reference, and the MicroPython API. ### Modules URL: https://docs.arduino.cc/micropython/environment/modules/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.environment/03.modules/modules.md Description: Understanding modules in MicroPython and how to use them. In this guide, we’ll cover how modules work in MicroPython, explore a few built-in modules, and demonstrate how to install an external package like Modulino to extend our MicroPython project’s functionality. Modules are collections of functions, classes, and variables organized into separate files, which we can import and use in our main program. Modules allow us to: ### Modulino Buttons URL: https://docs.arduino.cc/micropython/modulinos/modulino-buttons/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/05.modulinos/05.modulino-buttons/modulino-buttons.md Description: Get started with the Modulino Buttons using MicroPython In this tutorial, we will get started with the Modulino Buttons, a three-button Modulino. Note that the installation of the Modulino package is not covered in this tutorial. For details on how to install this, visit the MicroPython - Modulino Package Installation tutorial. ### Modulino Buzzer URL: https://docs.arduino.cc/micropython/modulinos/modulino-buzzer/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/05.modulinos/04.modulino-buzzer/modulino-buzzer.md Description: Get started with the Modulino Buzzer using MicroPython In this tutorial, we will get started with the Modulino Buzzer, a piezo speaker that can output sound. Note that the installation of the Modulino package is not covered in this tutorial. For details on how to install this, visit the MicroPython - Modulino Package Installation tutorial. ### Modulino Distance URL: https://docs.arduino.cc/micropython/modulinos/modulino-distance/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/05.modulinos/02.modulino-distance/modulino-distance.md Description: Get started with the Modulino Distance using MicroPython In this tutorial, we will get started with the Modulino Distance, which can measure the distance to an object. Note that the installation of the Modulino package is not covered in this tutorial. For details on how to install this, visit the MicroPython - Modulino Package Installation tutorial. ### Modulino Installation URL: https://docs.arduino.cc/micropython/modulinos/installation/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/05.modulinos/01.installation/installation.md Description: Get started with using the Modulino nodes In this tutorial, we will go through the installation process required for programming the Arduino Modulino nodes with MicroPython. The goals of this tutorial are: ### Modulino Knob URL: https://docs.arduino.cc/micropython/modulinos/modulino-knob/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/05.modulinos/06.modulino-knob/modulino-knob.md Description: Get started with the Modulino Knob using MicroPython In this tutorial, we will get started with the Modulino Knob, a rotating knob with a button. Note that the installation of the Modulino package is not covered in this tutorial. For details on how to install this, visit the MicroPython - Modulino Package Installation tutorial. ### Modulino Movement URL: https://docs.arduino.cc/micropython/modulinos/modulino-movement/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/05.modulinos/07.modulino-movement/modulino-movement.md Description: Get started with using the Modulino Movement In this tutorial, we will get started with the Modulino Movement, measuring acceleration and positioning. Note that the installation of the Modulino package is not covered in this tutorial. For details on how to install this, visit the MicroPython - Modulino Package Installation tutorial. ### Modulino Nodes URL: https://docs.arduino.cc/micropython/modulinos/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/05.modulinos/modulinos.md ### Modulino Pixels URL: https://docs.arduino.cc/micropython/modulinos/modulino-pixels/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/05.modulinos/03.modulino-pixels/modulino-pixels.md Description: Get started with the Modulino Pixels using MicroPython In this tutorial, we will get started with the Modulino Pixels and control its RGB LEDs. Note that the installation of the Modulino package is not covered in this tutorial. For details on how to install this, visit the MicroPython - Modulino Package Installation tutorial. ### Modulino Thermo URL: https://docs.arduino.cc/micropython/modulinos/modulino-thermo/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/05.modulinos/08.modulino-thermo/modulino-thermo.md Description: Get started with the Modulino Thermo using MicroPython In this tutorial, we will get started with the Modulino Thermo, reading surrounding temperature and humidity. Note that the installation of the Modulino package is not covered in this tutorial. For details on how to install this, visit the MicroPython - Modulino Package Installation tutorial. ### My First Script URL: https://docs.arduino.cc/micropython/first-steps/first-script/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/00.first-steps/02.first-script/first-script.md Description: Learn how to write a basic MicroPython script to blink an LED. In this tutorial, we will create our very first MicroPython script that will run on an Arduino board. Starting of simple, we will make an LED blink, a classic beginner project that will get us familiar with the MicroPython programming environment. Before we start, let's check the requirements: ### Nano BLE Sense URL: https://docs.arduino.cc/micropython/board-examples/nano-ble-sense/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/04.board-examples/nano-ble-sense/nano-ble-sense.md Description: Learn how to use specific features on the Nano BLE Sense using MicroPython In this guide, you will find information specific to the Nano BLE Sense board, such as supported serial protocols and built-in sensors that can be accessed. For installation instructions, please visit the link below. - Installing MicroPython ### Nano ESP32 URL: https://docs.arduino.cc/micropython/board-examples/nano-esp32/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/04.board-examples/nano-esp32/nano-esp32.md Description: Learn how to use specific features on the Nano ESP32 using MicroPython In this guide, you will find information specific to the Nano ESP32 board, such as supported serial protocols, built-in sensors, and how to access the wireless features. For installation instructions, please visit the link below: - Installing MicroPython ### Nano RP2040 Connect URL: https://docs.arduino.cc/micropython/board-examples/nano-rp2040-connect/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/04.board-examples/nano-rp2040-connect/nano-rp2040-connect.md Description: Learn how to use specific features on the Nano RP2040 Connect using MicroPython In this guide, you will find information specific to the Nano RP2040 Connect board, such as supported serial protocols and built-in sensors that can be accessed. For installation instructions, please visit the link below. - Installing MicroPython ### Portenta C33 URL: https://docs.arduino.cc/micropython/board-examples/portenta-c33/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/04.board-examples/portenta-c33/portenta-c33.md Description: Learn how to use specific features on the Portenta C33 using MicroPython In this guide, you will information related only to the Arduino® Portenta C33 and MicroPython. The Portenta C33 has two ways its pins are physically available: through its MKR-styled connectors and its High-Density connectors. Most pins are referred to via their port name or function. In the image below, the Portenta C33 MKR-styled connectors pinout is shown. ### Portenta H7 URL: https://docs.arduino.cc/micropython/board-examples/portenta-h7/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/04.board-examples/portenta-h7/portenta-h7.md Description: Learn how to use specific features on the Portenta H7 using MicroPython In this guide, you will information related only to the Arduino® Portenta H7 and MicroPython. Note that the Portenta H7 Lite and Portenta H7 Lite Connected boards are compatible with most examples listed here, as they are variations of the Portenta H7. ### Projects URL: https://docs.arduino.cc/micropython/micropython-course/projects/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/projects/micropython-content.md Description: Discover plug-and-play projects with complete code & circuit examples. ### REPL URL: https://docs.arduino.cc/micropython/environment/repl/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.environment/05.repl/repl.md Description: Learn how to use the REPL (Read-Eval-Print Loop) in MicroPython. REPL, short for Read-Eval-Print Loop, is an interactive environment that makes programming in MicroPython fast and flexible. REPL allows you to enter code line-by-line and see the results immediately. Although sometimes overlooked it is a great way for testing and debugging on the fly. In this guide, we’ll go through how the REPL functions, why it’s useful, and how you can use it to enhance your MicroPython experience. ### Runtime URL: https://docs.arduino.cc/micropython/environment/runtime/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.environment/04.runtime/runtime.md Description: Learn about the MicroPython runtime environment and how it handles code execution on microcontrollers. MicroPython is a lean and efficient implementation of Python designed to run on microcontrollers and embedded systems. One of the key concepts to understand when working with MicroPython is its runtime environment—how it handles code execution, manages resources, and interacts with hardware. We’ll demystify the MicroPython runtime, explore how it differs from other environments like standard Python, and discuss best practices for working within its constraints. ### Scene Changer URL: https://docs.arduino.cc/micropython/micropython-course/projects/scene-changer/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/projects/scene-changer/scene-changer.md Description: Learn how to change the scene on an OLED screen with the press of a button Please complete the basic installation-chapters before starting a project. This project will show you how to interact with a screen using a button. The script will follow a sequence when the button is pressed and change what is displayed. It will call different functions depending on the current function that is displayed. ### Serial communication (UART) URL: https://docs.arduino.cc/micropython/communication/uart/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/06.communication/uart/uart.md Description: Learn how to use UART with Micropython Universal Asynchronous Receiver-Transmitter, or UART, is one of the simplest and most widely used communication protocols for connecting devices. It enables point-to-point communication over just two wires, making it a perfect fit for debugging, logging, and connecting to peripheral devices. UART communication relies on: - TX (Transmit): Sends data from one device to another. - RX (Receive): Receives data from the transmitting device. ### Serial Peripheral Interface (SPI) URL: https://docs.arduino.cc/micropython/communication/spi/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/06.communication/spi/spi.md Description: Learn how to use SPI with Micropython Serial Peripheral Interface, or SPI, is a widely used communication protocol for connecting devices. It enables high-speed, full-duplex communication over four primary wires, making it an excellent choice for applications requiring fast data exchange between microcontrollers and peripherals. SPI communication relies on: ### Temperature Display URL: https://docs.arduino.cc/micropython/micropython-course/projects/temperature-display/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/micropython/02.micropython-course/projects/temperature-display/temperature-display-project.md Description: Use a temperature sensor together with a NeoPixel stick, giving you visual feedback on the current temperature. Please complete the basic installation-chapters before starting a project. This project will take the temperature reading from a DHT11 sensor and change the color of the LEDs on the NeoPixel accordingly. --- ## Built-in Examples ### ADXL3xx Accelerometer URL: https://docs.arduino.cc/built-in-examples/sensors/ADXL3xx/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/06.sensors/ADXL3xx/ADXL3xx.md Description: Read an ADXL3xx accelerometer. This tutorial shows you how to read from the ADXL3xx series (e.g. ADXL320, ADXL321, ADXL322, ADXL330) accelerometer and receive the values in the serial monitor of the Arduino Software (IDE) or another application that receives data over the serial port. This tutorial was built using the breakout boards from Sparkfun. The Adafruit® accelerometer breakout board also works, though it must be wired differently. ### Analog URL: https://docs.arduino.cc/built-in-examples/analog/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/03.analog/analog.md ### Analog In, Out Serial URL: https://docs.arduino.cc/built-in-examples/analog/AnalogInOutSerial/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/03.analog/AnalogInOutSerial/AnalogInOutSerial.md Description: Read an analog input pin, map the result, and then use that data to dim or brighten an LED. This example shows you how to read an analog input pin, map the result to a range from 0 to 255, use that result to set the pulse width modulation (PWM) of an output pin to dim or brighten an LED and print the values on the serial monitor of the Arduino Software (IDE). - Arduino Board ### Analog Input URL: https://docs.arduino.cc/built-in-examples/analog/AnalogInput/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/03.analog/AnalogInput/AnalogInput.md Description: Use a potentiometer to control the blinking of an LED. In this example we use a variable resistor (a potentiometer or a photoresistor), we read its value using one analog input of an Arduino board and we change the blink rate of the built-in LED accordingly. The resistor's analog value is read as a voltage because this is how the analog inputs work. - Arduino Board ### Analog Read Serial URL: https://docs.arduino.cc/built-in-examples/basics/AnalogReadSerial/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/01.basics/AnalogReadSerial/AnalogReadSerial.md Description: Read a potentiometer, print its state out to the Arduino Serial Monitor. This example shows you how to read analog input from the physical world using a potentiometer. A potentiometer is a simple mechanical device that provides a varying amount of resistance when its shaft is turned. By passing voltage through a potentiometer and into an analog input on your board, it is possible to measure the amount of resistance produced by a potentiometer (or pot for short) as an analog value. In this example you will monitor the state of your potentiometer after establishing serial communication between your Arduino and your computer running the Arduino Software (IDE). - Arduino Board ### Analog Write with 12 LEDs on an Arduino Mega URL: https://docs.arduino.cc/built-in-examples/analog/AnalogWriteMega/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/03.analog/AnalogWriteMega/AnalogWriteMega.md Description: Fade 12 LEDs on and off, one by one, using an Arduino Mega board. This example fades 12 LEDs up and the down, one by one, on an Arduino Mega board, taking advantage of the increased number of PWM enabled digital pins of this board. - Arduino Mega Board ### Arduino as ISP and Arduino Bootloaders URL: https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/10.arduino-isp/ArduinoISP/ArduinoISP.md Description: Arduino ISP turns your Arduino into an in-circuit programmer to re-program AtMega chips. What makes an Arduino what it is? Many things, but one of the most important ones is the way every Arduino board is easily programmed with the Arduino Software (IDE). It is enough to connect it to the computer USB port and press the "Upload" icon to start a process that transfers your sketch into the Flash memory of the microcontroller. The behaviour described above happens thanks to a special piece of code that is executed at every reset of the microcontroller and that looks for a sketch to be uploaded from the serial/USB port using a specific protocol and speed. If no connection is detected, the execution is passed to the code of your sketch. ### Arduino ISP URL: https://docs.arduino.cc/built-in-examples/arduino-isp/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/10.arduino-isp/arduino-isp.md ### ASCII Table URL: https://docs.arduino.cc/built-in-examples/communication/ASCIITable/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/ASCIITable/ASCIITable.md Description: Demonstrates advanced Arduino serial output functions. This example demonstrates the advanced serial printing functions by generating on the serial monitor of the Arduino Software (IDE) a table of characters and their ASCII values in decimal, hexadecimal, octal, and binary. For more on ASCII, see asciitable.com and http://en.wikipedia.org/wiki/ASCII - Arduino Board ### Bare Minimum code needed URL: https://docs.arduino.cc/built-in-examples/basics/BareMinimum/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/01.basics/BareMinimum/BareMinimum.md Description: The bare minimum of code needed to start an Arduino sketch. This example contains the bare minimum of code you need for a sketch to compile properly on Arduino Software (IDE): the setup() method and the loop() method. - Arduino Board ### Basics URL: https://docs.arduino.cc/built-in-examples/basics/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/01.basics/basics.md ### Blink URL: https://docs.arduino.cc/built-in-examples/basics/Blink/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/01.basics/Blink/Blink.md Description: Turn an LED on and off every second. This example shows the simplest thing you can do with an Arduino to see physical output: it blinks the on-board LED. - Arduino Board ### Blink Without Delay URL: https://docs.arduino.cc/built-in-examples/digital/BlinkWithoutDelay/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/02.digital/BlinkWithoutDelay/BlinkWithoutDelay.md Description: Blink an LED without using the delay() function. Sometimes you need to do two things at once. For example you might want to blink an LED while reading a button press. In this case, you can't use delay(), because Arduino pauses your program during the delay(). If the button is pressed while Arduino is paused waiting for the delay() to pass, your program will miss the button press. This sketch demonstrates how to blink an LED without using delay(). It turns the LED on and then makes note of the time. Then, each time through loop(), it checks to see if the desired blink time has passed. If it has, it toggles the LED on or off and makes note of the new time. In this way the LED blinks continuously while the sketch execution never lags on a single instruction. ### Button Mouse Control URL: https://docs.arduino.cc/built-in-examples/usb/ButtonMouseControl/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/09.usb/ButtonMouseControl/ButtonMouseControl.md Description: Control cursor movement with 5 pushbuttons. Using the Mouse library, you can controls a computer's onscreen cursor with an Arduino Leonardo, Micro, or Due. This particular example uses five pushbuttons to move the onscreen cursor. Four of the buttons are directional (up, down, left, right) and one is for a left mouse click Cursor movement from the Arduino is always relative. Every time an input is read, the cursor's position is updated relative to it's current position. ### Calibrate Sensor Input URL: https://docs.arduino.cc/built-in-examples/analog/Calibration/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/03.analog/Calibration/Calibration.md Description: Define a maximum and minimum for expected analog sensor values. This example demonstrates one technique for calibrating sensor input. The board takes sensor readings for five seconds during the startup, and tracks the highest and lowest values it gets. These sensor readings during the first five seconds of the sketch execution define the minimum and maximum of expected values for the readings taken during the loop. - Arduino Board ### Character Analysis URL: https://docs.arduino.cc/built-in-examples/strings/CharacterAnalysis/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/CharacterAnalysis/CharacterAnalysis.md Description: Use the operators to recognise the type of character we are dealing with. In this example we use the operators that allow us to recognise the type of character we are dealing with. It is useful to check if a character is ASCII, or is upper case, or numeric, or it is a punctuation mark and so forth. The options available cover a variety of situations and this is demonstrated in the sketch below. Every character sent to the board through the serial monitor of the Arduino Software (IDE) is analysed by the sketch that returns all the information it was able to find. A single character may trigger more than one condition and therefore you may get multiple answers for a single entry. The available operators are: ### Communication URL: https://docs.arduino.cc/built-in-examples/communication/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/communication.md ### Control an 8x8 matrix of LEDs. URL: https://docs.arduino.cc/built-in-examples/display/RowColumnScanning/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/07.display/RowColumnScanning/RowColumnScanning.md Description: Row-column Scanning to control an 8x8 LED Matrix. LED displays are often packaged as matrixes of LEDs arranged in rows of common anodes and columns of common cathodes, or the reverse. Here's a typical example, and its schematic: These can be very useful displays. To control a matrix, you connect both its rows and columns to your microcontroller. The columns are connected to the LEDs cathodes (see Figure 1), so a column needs to be LOW for any of the LEDs in that column to turn on. The rows are connected to the LEDs anodes, so the row needs to be HIGH for an individual LED to turn on. If the row and the column are both high or both low, no voltage flows through the LED and it doesn't turn on. ### Control Structures URL: https://docs.arduino.cc/built-in-examples/control-structures/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/05.control-structures/control-structures.md ### Create a Graph with Processing URL: https://docs.arduino.cc/built-in-examples/communication/Graph/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/Graph/Graph.md Description: Send data to the computer and graph it in Processing. This example shows you how to send a byte of data from the Arduino to a personal computer and graph the result. This is called serial communication because the connection appears to both the board and the computer as a serial port, even though it may actually use a USB cable, a serial to USB and a USB to serial converter. You can use the serial monitor of the Arduino Software (IDE) to view the sent data, or it can be read by Processing (see code below), Flash, PD, Max/MSP, etc. ### Create a LED Dimmer URL: https://docs.arduino.cc/built-in-examples/communication/Dimmer/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/Dimmer/Dimmer.md Description: Move the mouse to change the brightness of an LED. This example shows how to send data from a personal computer to an Arduino board to control the brightness of an LED. The data is sent in individual bytes, each of which ranges in value from 0 to 255. The sketch reads these bytes and uses them to set the brightness of the LED. You can send bytes to the board from any software that can access the computer serial port. Examples for Processing and Max/MSP version 5 are shown below. ### Debounce on a Pushbutton URL: https://docs.arduino.cc/built-in-examples/digital/Debounce/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/02.digital/Debounce/Debounce.md Description: Read a pushbutton, filtering noise. Pushbuttons often generate spurious open/close transitions when pressed, due to mechanical and physical issues: these transitions may be read as multiple presses in a very short time fooling the program. This example demonstrates how to debounce an input, which means checking twice in a short period of time to make sure the pushbutton is definitely pressed. Without debouncing, pressing the button once may cause unpredictable results. This sketch uses the millis() function to keep track of the time passed since the button was pressed. - Arduino Board ### Detect a Knock URL: https://docs.arduino.cc/built-in-examples/sensors/Knock/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/06.sensors/Knock/Knock.md Description: This tutorial shows you how to use a Piezo element to detect vibration. This tutorial shows you how to use a Piezo element to detect vibration, in this case, a knock on a door, table, or other solid surface. A piezo is an electronic device that generates a voltage when it's physically deformed by a vibration, sound wave, or mechanical strain. Similarly, when you put a voltage across a piezo, it vibrates and creates a tone. Piezos can be used both to play tones and to detect tones. ### Digital URL: https://docs.arduino.cc/built-in-examples/digital/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/02.digital/digital.md ### Digital Read Serial URL: https://docs.arduino.cc/built-in-examples/basics/DigitalReadSerial/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/01.basics/DigitalReadSerial/DigitalReadSerial.md Description: Read a switch, print the state out to the Arduino Serial Monitor. This example shows you how to monitor the state of a switch by establishing serial communication between your Arduino and your computer over USB. - Arduino Board ### Display URL: https://docs.arduino.cc/built-in-examples/display/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/07.display/display.md ### Fading URL: https://docs.arduino.cc/built-in-examples/analog/Fading/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/03.analog/Fading/Fading.md Description: Use an analog output (PWM pin) to fade an LED. This example demonstrates the use of analog output (Pulse Width Modulation (PWM)) to fade an LED. PWM is a technique for getting an analog-like behavior from a digital output by switching it off and on very fast and with different ratio between on and off time. - Arduino Board ### Fading a LED URL: https://docs.arduino.cc/built-in-examples/basics/Fade/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/01.basics/Fade/Fade.md Description: Demonstrates the use of analog output to fade an LED. This example demonstrates the use of the analogWrite() function in fading an LED off and on. AnalogWrite uses pulse width modulation (PWM), turning a digital pin on and off very quickly with different ratio between on and off, to create a fading effect. - Arduino Board ### For Loop Iteration (aka The Knight Rider) URL: https://docs.arduino.cc/built-in-examples/control-structures/ForLoopIteration/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/05.control-structures/ForLoopIteration/ForLoopIteration.md Description: Control multiple LEDs with a for loop and. Often you want to iterate over a series of pins and do something to each one. For instance, this example blinks 6 LEDs attached to the Arduino by using a for() loop to cycle back and forth through digital pins 2-7. The LEDS are turned on and off, in sequence, by using both the digitalWrite() and delay() functions . We also call this example "Knight Rider" in memory of a TV-series from the 80's where David Hasselhoff had an AI machine named KITT driving his Pontiac. The car had been augmented with plenty of LEDs in all possible sizes performing flashy effects. In particular, it had a display that scanned back and forth across a line, as shown in this exciting fight between KITT and KARR. This example duplicates the KITT display. ### From Arduino to a Microcontroller on a Breadboard URL: https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoToBreadboard/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/10.arduino-isp/ArduinoToBreadboard/ArduinoToBreadboard.md Description: Migrating an Arduino board to a standalone microcontroller on a breadboard. This tutorial explains how to migrate from an Arduino board to a standalone microcontroller on a breadboard. It's similar to this tutorial, but uses an Arduino board to program the ATmega on the breadboard. Unless you choose to use the minimal configuration described at the end of this tutorial, you'll need four components (besides the Arduino, ATmega328P, and breadboard): ### How to Use Arrays URL: https://docs.arduino.cc/built-in-examples/control-structures/Arrays/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/05.control-structures/Arrays/Arrays.md Description: A variation on the For Loop example that demonstrates how to use an array. This variation on the For Loop Iteration example shows how to use an array. An array is a variable with multiple parts. If you think of a variable as a cup that holds values, you might think of an array as an ice cube tray. It's like a series of linked cups, all of which can hold the same maximum value. The For Loop Iteration example shows you how to light up a series of LEDs attached to pins 2 through 7 of the Arduino board, with certain limitations (the pins have to be numbered contiguously, and the LEDs have to be turned on in sequence). ### How to Use String length() URL: https://docs.arduino.cc/built-in-examples/strings/StringLength/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringLength/StringLength.md Description: This example shows you how to use this command to reply to an input from the Serial Monitor. You can get the length of Strings using the length() command. This example shows you how to use this command to reply to an input from the Arduino Software (IDE) serial monitor. If the input string is too long, the sketch will send a specific message to the user - Arduino Board ### How to Wire and Program a Button URL: https://docs.arduino.cc/built-in-examples/digital/Button/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/02.digital/Button/Button.md Description: Learn how to wire and program a pushbutton to control an LED. Pushbuttons or switches connect two points in a circuit when you press them. This example turns on the built-in LED on pin 13 when you press the button. - Arduino Board ### If Statement (Conditional Statement) URL: https://docs.arduino.cc/built-in-examples/control-structures/ifStatementConditional/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/05.control-structures/ifStatementConditional/ifStatementConditional.md Description: Use an if statement to change the output conditions based on changing the input conditions. The if() statement is the most basic of all programming control structures. It allows you to make something happen or not, depending on whether a given condition is true or not. It looks like this: ```arduino if (someCondition) { // do stuff if the condition is true } ``` ### InputPullupSerial URL: https://docs.arduino.cc/built-in-examples/digital/InputPullupSerial/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/02.digital/InputPullupSerial/InputPullupSerial.md Description: Demonstrates the use of INPUT_PULLUP with pinMode() This example demonstrates the use of INPUT_PULLUP with pinMode(). It monitors the state of a switch by establishing serial communication between your Arduino and your computer over USB. Additionally, when the input is HIGH, the onboard LED attached to pin 13 will turn on; when LOW, the LED will turn off. ### Joystick Mouse Control URL: https://docs.arduino.cc/built-in-examples/usb/JoystickMouseControl/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/09.usb/JoystickMouseControl/JoystickMouseControl.md Description: Controls a computer cursor movement with a Joystick when a button is pressed. Using the Mouse library, you can control a computer's onscreen cursor with an Arduino Leonardo, Micro, or Due. This particular example uses a pushbutton to turn on and off mouse control with a joystick. Cursor movement from the Arduino is always relative. So every time the analog input is read, the cursor's position is updated relative to its current position. ### Keyboard and Mouse Control URL: https://docs.arduino.cc/built-in-examples/usb/KeyboardAndMouseControl/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/09.usb/KeyboardAndMouseControl/KeyboardAndMouseControl.md Description: Demonstrates the Mouse and Keyboard commands in one program. This example illustrates the use of the Mouse and Keyboard libraries together. Five momentary switches act as directional buttons for your cursor. When a button is pressed, the cursor on your screen will move, and a keypress, corresponding to the letter associated with the direction, will be sent to the computer. Once you have the Leonardo, Micro or Due programmed and wired up, open up your favorite text editor to see the results. NB: When you use the Mouse and Keyboard library functions, the Arduino takes over your computer's cursor! To ensure you don't lose control of your computer while running a sketch with this function, make sure to set up a controller before you call Mouse.move(). ### Keyboard Logout URL: https://docs.arduino.cc/built-in-examples/usb/KeyboardLogout/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/09.usb/KeyboardLogout/KeyboardLogout.md Description: Logs out the current user with key commands. This example uses the Keyboard library to log you out of your user session on your computer when pin 2 on your Leonardo, Micro or Due is pulled to ground. The sketch simulates the keypress in sequence of two or three keys at the same time and after a short delay it releases them. NB: When you use the Keyboard.print() command, the Arduino takes over your computer's keyboard! To insure you don't lose control of your computer while running a sketch with this function, make sure to set up a reliable control system before you call Keyboard.print(). This sketch is designed to only send a Keyboard command after a pin has been pulled to ground. ### Keyboard Message URL: https://docs.arduino.cc/built-in-examples/usb/KeyboardMessage/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/09.usb/KeyboardMessage/KeyboardMessage.md Description: Sends a text string when a button is pressed. When the button is pressed in this example, a text string is sent to the computer as keyboard input. The string reports the number of times the button has been pressed. Once you have the Leonardo programmed and wired up, open up your favourite text editor to see the results. NB: When you use the Keyboard.print() command, the Arduino takes over your computer's keyboard! To insure you don't lose control of your computer while running a sketch with this function, make sure to set up a reliable control system before you call Keyboard.print(). This sketch includes a pushbutton to toggle the keyboard, so that it only runs after the button is pressed. ### Keyboard Reprogram URL: https://docs.arduino.cc/built-in-examples/usb/KeyboardReprogram/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/09.usb/KeyboardReprogram/KeyboardReprogram.md Description: Opens a new window in the Arduino IDE and reprograms the Leonardo with a simple blink program. This example uses the Keyboard library to open a new Arduino Software (IDE) sketch window, send keyboard commands that type in the Blink example, and reprograms the board. After running this sketch and connecting pin 2 to ground using the pushbutton, the board will have a new program, Blink. NB: When you use the Keyboard.print() command, the Arduino takes over your computer's keyboard! To insure you don't lose control of your computer while running a sketch with this function, make sure to set up a reliable control system before you call Keyboard.print(). This sketch is designed to only send Keyboard commands after digital pin 2 is pulled to ground. ### Keyboard Serial URL: https://docs.arduino.cc/built-in-examples/usb/KeyboardSerial/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/09.usb/KeyboardSerial/KeyboardSerial.md Description: Reads a byte from the serial port, and sends back a keystroke. This example listens for a byte coming from the serial port. When received, the board sends a keystroke back to the computer. The sent keystroke is one higher than what is received, so if you send an "a" from the serial monitor, you'll receive a "b" from the board connected to the computer. A "1" will return a "2" and so on. NB: When you use the Keyboard.print() command, the Leonardo, Micro or Due board takes over your computer's keyboard! To insure you don't lose control of your computer while running a sketch with this function, make sure to set up a reliable control system before you call Keyboard.print(). This sketch is designed to only send a Keyboard command after the board has received a byte over the serial port. ### LED Bar Graph URL: https://docs.arduino.cc/built-in-examples/display/BarGraph/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/07.display/BarGraph/BarGraph.md Description: Learn how to make an LED bar graph - a series of LEDs in a line. The bar graph - a series of LEDs in a line, such as you see on an audio display - is a common hardware display for analog sensors. It's made up of a series of LEDs in a row, an analog input like a potentiometer, and a little code in between. You can buy multi-LED bar graph displays fairly cheaply, like this one. This tutorial demonstrates how to control a series of LEDs in a row, but can be applied to any series of digital outputs. This tutorial borrows from the For Loop and Arrays tutorial as well as the Analog Input tutorial. ### Memsic 2125 Accelerometer URL: https://docs.arduino.cc/built-in-examples/sensors/Memsic2125/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/06.sensors/Memsic2125/Memsic2125.md Description: Learn how to read data from the Memsic 2125 Two-axis accelerometer. The Memsic 2125 (datasheet) is a two-axis accelerometer capable of measuring acceleration up to plus or minus 2g. It has a simple digital interface: two pins (one for each axis) emit pulses whose duration corresponds to the acceleration of that axis. By measuring the length of that pulse, in microseconds, using the pulseIn() function, it is possible to determine the rate of acceleration and to use that data for your purposes. - Arduino Board ### MIDI Note Player URL: https://docs.arduino.cc/built-in-examples/communication/Midi/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/Midi/Midi.md Description: Send MIDI note messages serially. This tutorial shows how to send MIDI notes from an Arduino board to a MIDI instrument connected through the standard 5 poles DIN cable. MIDI, the Musical Instrument Digital Interface, is a useful protocol for controlling synthesizers, sequencers, and other musical devices. MIDI devices are generally grouped in to two broad classes: controllers (i.e. devices that generate MIDI signals based on human actions) and synthesizers (including samplers, sequencers, and so forth). The latter take MIDI data in and make sound, light, or some other effect. ### Physical Pixel URL: https://docs.arduino.cc/built-in-examples/communication/PhysicalPixel/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/PhysicalPixel/PhysicalPixel.md Description: Turn a LED on and off by sending data to your Arduino from Processing or Max/MSP. This example example uses the Arduino board to receive data from the computer. The board turns on an LED when it receives the character 'H', and turns off the LED when it receives the character 'L'. The data can be sent from the Arduino Software (IDE) serial monitor, or another program like Processing (see code below), Flash (via a serial-net proxy), PD, or Max/MSP. ### Ping Ultrasonic Range Finder URL: https://docs.arduino.cc/built-in-examples/sensors/Ping/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/06.sensors/Ping/Ping.md Description: Detect objects with an ultrasonic range finder. The SEN136B5B is an ultrasonic range finder from Seeedstudio. It detects the distance of the closest object in front of the sensor (from 3 cm up to 400 cm). It works by sending out a burst of ultrasound and listening for the echo when it bounces off of an object. It pings the obstacles with ultrasound. The Arduino board sends a short pulse to trigger the detection, then listens for a pulse on the same pin using the pulseIn() function. The duration of this second pulse is equal to the time taken by the ultrasound to travel to the object and back to the sensor. Using the speed of sound, this time can be converted to distance. - Arduino Board - Ultrasonic Range Finder - hook-up wires ### Pitch follower using the tone() function URL: https://docs.arduino.cc/built-in-examples/digital/tonePitchFollower/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/02.digital/tonePitchFollower/tonePitchFollower.md Description: Play a pitch on a piezo speaker depending on an analog input. This example shows how to use the tone() command to generate a pitch that follows the values of an analog input. Using a photoresistor your Arduino board becomes a simplified light theremin. - Arduino Board ### Play a Melody using the tone() function URL: https://docs.arduino.cc/built-in-examples/digital/toneMelody/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/02.digital/toneMelody/toneMelody.md Description: Play a melody with a Piezo speaker. This example shows how to use the tone() command to generate notes. It plays a little melody you may have heard before. - Arduino Board ### Read Analog Voltage URL: https://docs.arduino.cc/built-in-examples/basics/ReadAnalogVoltage/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/01.basics/ReadAnalogVoltage/ReadAnalogVoltage.md Description: Reads an analog input and prints the voltage to the Serial Monitor. This example shows you how to read an analog input on analog pin 0, convert the values from analogRead() into voltage, and print it out to the serial monitor of the Arduino Software (IDE). - Arduino Board ### Read ASCII String URL: https://docs.arduino.cc/built-in-examples/communication/ReadASCIIString/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/ReadASCIIString/ReadASCIIString.md Description: Parse a comma-separated string of integers to fade an LED. This sketch uses the Serial.parseInt() function to locate values separated by a non-alphanumeric character. Often people use a comma to indicate different pieces of information (this format is commonly referred to as comma-separated-values or CSV), but other characters like a space or a period will work too. The values are parsed into integers and used to determine the color of a RGB LED. You'll use the Arduino Software (IDE) serial monitor to send strings like "5,220,70" to the board to change the light color. - Arduino Board ### Sensors URL: https://docs.arduino.cc/built-in-examples/sensors/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/06.sensors/sensors.md ### Serial Call and Response (handshaking) URL: https://docs.arduino.cc/built-in-examples/communication/SerialCallResponse/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/SerialCallResponse/SerialCallResponse.md Description: Send multiple variables using a call-and-response (handshaking) method. This example demonstrates multi-byte communication from the Arduino board to the computer using a call-and-response (handshaking) method. This sketch sends an ASCII A (byte of value 65) on startup and repeats that until it gets a serial response from the computer. Then it sends three sensor values as single bytes, and waits for another response from the computer. ### Serial Call and Response (handshaking) with ASCII-encoded output URL: https://docs.arduino.cc/built-in-examples/communication/SerialCallResponseASCII/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/SerialCallResponseASCII/SerialCallResponseASCII.md Description: Send multiple variables using a call-and-response (handshaking) method, and ASCII-encode the values before sending. This example demonstrates string-based communication from the Arduino board to the computer using a call-and-response (handshaking) method. The sketch sends an ASCII string on startup and repeats that until it gets a serial response from the computer. Then it sends three sensor values as ASCII-encoded numbers, separated by commas and terminated by a linefeed and carriage return, and waits for another response from the computer. ### SerialEvent URL: https://docs.arduino.cc/built-in-examples/communication/SerialEvent/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/SerialEvent/SerialEvent.md Description: Demonstrates the use of serialEvent() function. This example demonstrates use of the serialEvent() function. This function is automatically called at the end of loop() when there is serial data available in the buffer. In this case, each character found is added to a string until a newline is found. Then the string is printed and set back to null. - Arduino Board ### SerialPassthrough URL: https://docs.arduino.cc/built-in-examples/communication/SerialPassthrough/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/SerialPassthrough/SerialPassthrough.md Description: Demonstrates how to virtually connect Serial and Serial1. This example demonstrates how to virtually connect together Serial and Serial1. This tutorial can be so loaded on boards that have two different UART interfaces on the 0 and 1 pins and the USB port (like Zero, MKR1000, 101). In particular every data coming from the RX pin of the Serial1 is transmitted to Serial and vice versa. - Arduino Board ### Simple keyboard using the tone() function URL: https://docs.arduino.cc/built-in-examples/digital/toneKeyboard/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/02.digital/toneKeyboard/toneKeyboard.md Description: A three-key musical keyboard using force sensors and a piezo speaker. This example shows how to use the tone() command to generate different pitches depending on which sensor is pressed. - Arduino Board ### Smoothing Readings From an Analog Input URL: https://docs.arduino.cc/built-in-examples/analog/Smoothing/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/03.analog/Smoothing/Smoothing.md Description: Smooth multiple readings of an analog input. This sketch reads repeatedly from an analog input, calculating a running average and printing it to the computer. This example is useful for smoothing out the values from jumpy or erratic sensors, and also demonstrates the use of arrays to store data. - Arduino Board ### State Change Detection (Edge Detection) for pushbuttons URL: https://docs.arduino.cc/built-in-examples/digital/StateChangeDetection/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/02.digital/StateChangeDetection/StateChangeDetection.md Description: Count the number of button pushes. Once you've got a pushbutton working, you often want to do some action based on how many times the button is pushed. To do this, you need to know when the button changes state from off to on, and count how many times this change of state happens. This is called state change detection or edge detection. In this tutorial we learn how to check the state change, we send a message to the Serial Monitor with the relevant information and we count four state changes to turn on and off an LED. - Arduino Board ### String Addition Operator URL: https://docs.arduino.cc/built-in-examples/strings/StringAdditionOperator/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringAdditionOperator/StringAdditionOperator.md Description: Add strings together in a variety of ways. You can add Strings together in a variety of ways. This is called concatenation and it results in the original String being longer by the length of the String or character array with which you concatenate it. The + operator allows you to combine a String with another String, with a constant character array, an ASCII representation of a constant or variable number, or a constant character. ```arduino // adding a constant integer to a string: stringThree = stringOne + 123; // adding a constant long integer to a string: stringThree = stringOne + 123456789; // adding a constant character to a string: stringThree = stringOne + 'A'; // adding a constant string to a string: stringThree = stringOne + "abc"; // adding two Strings together: stringThree = stringOne + stringTwo; ``` ### String Appending Operators URL: https://docs.arduino.cc/built-in-examples/strings/StringAppendOperator/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringAppendOperator/StringAppendOperator.md Description: Use the += operator and the concat() method to append things to Strings. Just as you can concatenate Strings with other data objects using the StringAdditionOperator, you can also use the += operator and the concat() method to append things to Strings. The += operator and the concat() method work the same way, it's just a matter of which style you prefer. The two examples below illustrate both, and result in the same String: ```arduino String stringOne = "A long integer: "; // using += to add a long variable to a string: stringOne += 123456789; ``` ### String Case Change Functions URL: https://docs.arduino.cc/built-in-examples/strings/StringCaseChanges/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringCaseChanges/StringCaseChanges.md Description: Change the case of a string. The String case change functions allow you to change the case of a String. They work just as their names imply. toUpperCase() changes the whole string to upper case characters, and toLowerCase() changes the whole String to lower case characters. Only the characters A to Z or a to z are affected. - Arduino Board ### String Character Functions URL: https://docs.arduino.cc/built-in-examples/strings/StringCharacters/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringCharacters/StringCharacters.md Description: Get/set the value of a specific character in a string. The String functions charAt() and setCharAt() are used to get or set the value of a character at a given position in a String. At their simplest, these functions help you search and replace a given character. For example, the following replaces the colon in a given String with an equals sign: ### String Comparison Operators URL: https://docs.arduino.cc/built-in-examples/strings/StringComparisonOperators/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringComparisonOperators/StringComparisonOperators.md Description: Learn how to make alphabetic comparisons between Strings. They are useful for sorting and alphabetizing, among other things. The String comparison operators ==, !=,>, < ,>=, <= , and the equals() and equalsIgnoreCase() methods allow you to make alphabetic comparisons between Strings. They're useful for sorting and alphabetizing, among other things. The operator == and the method equals() perform identically. In other words, ### String indexOf() and lastIndexOf() Method URL: https://docs.arduino.cc/built-in-examples/strings/StringIndexOf/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringIndexOf/StringIndexOf.md Description: Look for the first/last instance of a character in a string. The String object indexOf() method gives you the ability to search for the first instance of a particular character value in a String. You can also look for the first instance of the character after a given offset. The lastIndexOf() method lets you do the same things from the end of a String. ```arduino String stringOne = ""; int firstClosingBracket = stringOne.indexOf('>'); ``` ### String length() and trim() Commands URL: https://docs.arduino.cc/built-in-examples/strings/StringLengthTrim/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringLengthTrim/StringLengthTrim.md Description: Get and trim the length of a string. You can get the length of a Strings using the length() command, or eliminate extra characters using the trim() command. This example shows you how to use both commands. - Arduino Board ### String Object Constructors URL: https://docs.arduino.cc/built-in-examples/strings/StringConstructors/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringConstructors/StringConstructors.md Description: Initialize string objects. The String object allows you to manipulate strings of text in a variety of useful ways. You can append characters to Strings, combine Strings through concatenation, get the length of a String, search and replace substrings, and more. This tutorial shows you how to initialize String objects. ```arduino String stringOne = "Hello String"; // using a constant String String stringOne = String('a'); // converting a constant char into a String String stringTwo = String("This is a string"); // converting a constant string into a String object String stringOne = String(stringTwo + " with more"); // concatenating two strings String stringOne = String(13); // using a constant integer String stringOne = String(analogRead(0), DEC); // using an int and a base String stringOne = String(45, HEX); // using an int and a base (hexadecimal) String stringOne = String(255, BIN); // using an int and a base (binary) String stringOne = String(millis(), DEC); // using a long and a base String stringOne = String(5.698, 3); // using a float and the decimal places ``` ### String replace Function URL: https://docs.arduino.cc/built-in-examples/strings/StringReplace/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringReplace/StringReplace.md Description: The replace() function allows you to replace all instances of a given character in a string with another character. The Stringreplace() function allows you to replace all instances of a given character with another character. You can also use replace to replace substrings of a String with a different substring. - Arduino Board ### String startsWith and endsWith Functions URL: https://docs.arduino.cc/built-in-examples/strings/StringStartsWithEndsWith/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringStartsWithEndsWith/StringStartsWithEndsWith.md Description: Check which characters/substrings a given string starts or ends with. The String functions startsWith() and endsWith() allow you to check what character or substring a given String starts or ends with. They're basically special cases of substring. - Arduino Board ### String substring Function URL: https://docs.arduino.cc/built-in-examples/strings/StringSubstring/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringSubstring/StringSubstring.md Description: Look for "phrases" within a given string. The String function substring() is closely related to charAt(), startsWith() and endsWith(). It allows you to look for an instance of a particular substring within a given String. - Arduino Board ### String to Int Function URL: https://docs.arduino.cc/built-in-examples/strings/StringToInt/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/StringToInt/StringToInt.md Description: Allows you to convert a String to an integer number. The toInt() function allows you to convert a String to an integer number. In this example, the board reads a serial input string until it sees a newline, then converts the string to a number if the characters are digits. Once you've uploaded the code to your board, open the Arduino IDE serial monitor, enter some numbers, and press send. The board will repeat these numbers back to you. Observe what happens when a non-numeric character is sent. ### Strings URL: https://docs.arduino.cc/built-in-examples/strings/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/08.strings/strings.md ### Switch (case) Statement, used with sensor input URL: https://docs.arduino.cc/built-in-examples/control-structures/SwitchCase/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/05.control-structures/SwitchCase/SwitchCase.md Description: How to choose between a discrete number of values. An if statement allows you to choose between two discrete options, TRUE or FALSE. When there are more than two options, you can use multiple if statements, or you can use the switch statement. Switch allows you to choose between several discrete options. This tutorial shows you how to use it to switch between four desired states of a photo resistor: really dark, dim, medium, and bright. This program first reads the photoresistor. Then it uses the map() function to map its output to one of four values: 0, 1, 2, or 3. Finally, it uses the switch() statement to print one of four messages back to the computer depending on which of the four values is returned. ### Switch (case) Statement, used with serial input URL: https://docs.arduino.cc/built-in-examples/control-structures/SwitchCase2/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/05.control-structures/SwitchCase2/SwitchCase2.md Description: A second switch-case example, showing how to take different actions based on the characters received in the serial port. An if statement allows you to choose between two discrete options, TRUE or FALSE. When there are more than two options, you can use multiple if statements, or you can use the switch statement. Switch allows you to choose between several discrete options. This tutorial shows you how to use switch to turn on one of several different LEDs based on a byte of data received serially. The sketch listens for serial input, and turns on a different LED for the characters a, b, c, d, or e. ### Tone on Multiple Speakers URL: https://docs.arduino.cc/built-in-examples/digital/toneMultiple/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/02.digital/toneMultiple/toneMultiple.md Description: Play tones on multiple speakers sequentially using the tone() command. This example shows how to use the tone() command to play different notes on multiple outputs. The tone() command works by taking over one of the Atmega's internal timers, setting it to the frequency you want, and using the timer to pulse an output pin. Since it's only using one timer, you can only play one note at a time. You can, however, play notes on different pins, sequentially. To do this, you need to turn the timer off for one pin before moving on to the next. ### USB URL: https://docs.arduino.cc/built-in-examples/usb/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/09.usb/usb.md ### Use Multiple Serial Ports on the Arduino Mega URL: https://docs.arduino.cc/built-in-examples/communication/MultiSerialMega/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/MultiSerialMega/MultiSerialMega.md Description: Use two of the serial ports available on the Arduino Mega. Sometimes, one serial port just isn't enough! When trying to communicate with multiple serial enabled devices, while also sending info back to the main serial window, a few extra RX/TX ports can be a welcomed thing. This example makes use of one of Arduino Mega's 3 auxiliary serial ports, routing any incoming data read on that connection straight to the main TX line, and, in turn, to the main serial window for you to view. - Arduino Mega Board ### Virtual Color Mixer URL: https://docs.arduino.cc/built-in-examples/communication/VirtualColorMixer/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/04.communication/VirtualColorMixer/VirtualColorMixer.md Description: This example demonstrates how to send multiple values from the Arduino board to the computer. This example demonstrates how to send multiple values from the Arduino board to the computer. The readings from three potentiometers are used to set the red, green, and blue components of the background color of a Processing sketch or Max/MSP patch. - Arduino Board ### While Loop URL: https://docs.arduino.cc/built-in-examples/control-structures/WhileStatementConditional/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/built-in-examples/05.control-structures/WhileStatementConditional/WhileStatementConditional.md Description: How to use a while loop to calibrate a sensor while a button is being read. Sometimes you want everything in the program to stop while a given condition is true. You can do this using a while loop. This example shows how to use a while loop to calibrate the value of an analog sensor. In the main loop, the sketch below reads the value of a photoresistor on analog pin 0 and uses it to fade an LED on pin 9. But while a button attached to digital pin 2 is pressed, the program runs a method called calibrate() that looks for the highest and lowest values of the analog sensor. When you release the button, the sketch continues with the main loop. --- ## Tutorials ### Adding more Serial Interfaces to SAMD microcontrollers (SERCOM) URL: https://docs.arduino.cc/tutorials/communication/SamdSercom/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/communication/SamdSercom/SamdSercom.md Description: In this tutorial we explain how to add further serial interfaces to your SAMD based board. In this tutorial we explain how to add further serial interfaces to your SAMD based board. These interfaces are hardware based and can be of I2C, UART, or SPI type. This is possible because the SAMD microcontroller has six internal serial modules that can be configured individually and just four of them are already configured. The other two are available for mapping onto specific pins. In this tutorial we explain how you can do that. - Arduino Zero, MKRZero or MKR1000 Board ### Adding More Serial Ports to your Board URL: https://docs.arduino.cc/tutorials/communication/SoftwareSerialExample/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/communication/SoftwareSerialExample/SoftwareSerialExample.md Description: With the help of the SoftwareSerial library, it is possible to create additional software serial ports on your Arduino board. Arduino boards have built-in support for serial communication on pins 0 and 1, but what if you need more serial ports? The SoftwareSerial library was developed to allow serial communication on other digital pins of your board, using software to replicate the functionality of the hardware RX and TX lines. This is useful when you need to talk to two serial devices at the same time, or to communicate with a single device while keeping the main hardware serial port free for debugging. In the example below, digital pins 10 and 11 are used as virtual RX and TX. Anything received on the hardware serial line is echoed out the virtual TX, and anything received on the virtual RX is sent out the hardware TX. ### Alexa, Light My Mood URL: https://docs.arduino.cc/tutorials/projects/alexa-light-my-mood/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/alexa-light-my-mood/alexa-light-my-mood.md Description: Learn how to control your MKR RGB Shield using Arduino Cloud and Amazon Alexa. - Arduino Voice Controlled Light Bundle - Arduino Cloud - Arduino Cloud Editor - Arduino Amazon Alexa Official Arduino Skill ### Amplitude Serial Plotter URL: https://docs.arduino.cc/tutorials/generic/amplitude-serial-plotter/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/amplitude-serial-plotter/amplitude-serial-plotter.md Description: Learn how to visualize amplitude using the Serial Plotter. This example reads audio data from an Invensense's ICS43432I2S microphone breakout board, and prints out the amplitude to the Serial console. The Serial Plotter built into the Arduino IDE can be used to plot the audio amplitude data. - How to use and read audio data. - How to use the Serial Plotter. ### Arduino & RS-232 Protocol URL: https://docs.arduino.cc/tutorials/communication/rs-232/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/communication/rs-232/rs-232.md Description: Learn how to communicate with a computer using a MAX3323 single channel RS-232 driver/receiver and a software serial connection on the Arduino. In this tutorial you will learn how to communicate with a computer using a MAX3323 single channel RS-232 driver/receiver and a software serial connection on the Arduino. A general purpose software serial tutorial can be found here. Materials needed: ### Arduino Cloud Amazon Alexa Integration URL: https://docs.arduino.cc/tutorials/projects/arduino-iot-cloud-amazon-alexa-integration/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/arduino-iot-cloud-amazon-alexa-integration/arduino-iot-cloud-amazon-alexa-integration.md Description: Learn how to use Arduino Cloud and Amazon Alexa to interact with your sensors. - Arduino MKR WiFi 1010 - Arduino MKR ENV Shield - Breadboard (generic) - High Brightness LED, White - Jumper wires (generic) - LED RGB common cathode - Resistor 220 ohm - Arduino Cloud Editor - Arduino Cloud - Arduino Amazon Alexa Official Arduino Skill ### Arduino Pro Gateway Assembly URL: https://docs.arduino.cc/tutorials/generic/lora-gateway-assembly/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/lora-gateway-assembly/lora-gateway-assembly.md Description: Learn how to assemble your Arduino Pro Gateway. In this page we are going to give you all the information needed to assemble your Arduino Pro Gateway LoRa® Connectivity Kit. We will guide you through the process needed to have a device fully assembled and ready to be configured on the software and network side as documented in the Arduino Pro Gateway Setup. In the box you have several pieces and it is important to locate them all before you proceed. ### Arduino/Processing/Python Language Comparison URL: https://docs.arduino.cc/tutorials/generic/language-comparison/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/language-comparison/language-comparison.md Description: Comparison between three programming languages The Arduino language (based on Wiring) is implemented in C/C++, and therefore has some differences from the Processing language, which is based on Java. Arduino — Processing — Python int bar[8];bar[0] = 1; — int[] bar = new int[8];bar[0] = 1; int foo[] = \{ 0, 1, 2 }; — int foo[] = \{ 0, 1, 2 }; or int[] foo = \{ 0, 1, 2 }; ### Barometric Pressure Sensor (SPI) URL: https://docs.arduino.cc/tutorials/communication/BarometricPressureSensor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/communication/BarometricPressureSensor/BarometricPressureSensor.md Description: Read air pressure and temperature from a sensor using the SPI protocol. >Last revision 2018/05/17 by SM This example shows how to use the SPI (Serial Peripheral Interface) Communications Library to read data from a SCP1000 Barometric Pressure sensor. ### Basic servo control URL: https://docs.arduino.cc/tutorials/generic/basic-servo-control/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/basic-servo-control/basic-servo-control.md Description: In this tutorial, we will learn how to control a standard servo motor, to go back and forth across 180 degrees, using a `for loop()`. This is done with the help of the Servo library, which is pre-installed library in the Arduino IDE (both offline and online versions). In this tutorial, we will learn how to control a standard servo motor, to go back and forth across 180 degrees, using a for loop(). This is done with the help of the Servo library, which is pre-installed library in the Arduino IDE (both offline and online versions). >Note: This tutorial uses an Arduino UNO, but you can use any official Arduino board. ### Burn the bootloader on SAMD boards URL: https://docs.arduino.cc/tutorials/generic/bootloader-reloading/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/bootloader-reloading/bootloader-reloading.md Description: Learn how to burn the bootloader on SAMD boards. In this tutorial, we will learn how to burn the bootloader on boards that use the ATSAMD21G18 microcontroller using another Arduino board. The bootloader is a small piece of software that allows uploading sketches onto the Arduino board. It comes preprogrammed on the microcontrollers on Arduino boards. Whether the bootloader has been corrupted or intentionally has been removed, it can be restored by burning (also called, flashing or programming) a new bootloader to the board. Below you will find two different approaches to burning the bootloader: - The first approach does not require an SD card and should be used by users who want the easiest solution. ### Cancellino URL: https://docs.arduino.cc/tutorials/projects/cancellino/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/cancellino/cancellino.md Description: Control everything with a SINGLE phone call. - Arduino MKR GSM 1400 - Arduino MKR MEM Shield - Arduino MKR Connector Carrier (Grove compatible) - Seeed Grove - Relay - Samsung Generic MicroSD - Li-Ion Battery 1000mAh - USB-A to Micro-USB Cable This project shows how to use an Arduino to receive a call and compare the calling number with numbers saved in the microSD card, without answering! This solution works also with a plain SIM with no data plan. ### CancellinoBot with Telegram URL: https://docs.arduino.cc/tutorials/projects/cancellinobot/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/cancellinobot/cancellinobot.md Description: Control everything you want safely with Telegram! - ARDUINO MKR WIFI 1010 - Arduino MKR SD Proto Shield - Arduino MKR Connector Carrier (Grove compatible) - Seeed GROVE - 2-COIL LATCHING RELAY - Generic microSD card - Arduino Bot Bundle - Arduino Cloud Editor - Telegram ### Capacitance Meter Example URL: https://docs.arduino.cc/tutorials/generic/capacitance-meter/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/capacitance-meter/capacitance-meter.md Description: Learn about capacitance meters and RC time constants Overview: A resistor will charge a capacitor in TC seconds, where: - TC = R * C ### CD4021B Shift Registers URL: https://docs.arduino.cc/tutorials/communication/guide-to-shift-in/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/communication/guide-to-shift-in/guide-to-shift-in.md Description: A list of examples to modify CD4021B shift registers > Updated by Scott Fitzgerald Feb 2014 Sometimes you'll end up needing more digital input than there are pins on your Arduino. Using a parallel to serial shift register you can collect information from 8 or more switches while only using 3 of the pins on your Arduino. ### Checking lengths of strings URL: https://docs.arduino.cc/tutorials/generic/checking-lengths-of-strings/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/checking-lengths-of-strings/checking-lengths-of-strings.md Description: Create a program that determines the length of a text message. You can get the length of Strings using the length() command. This example shows you how to use this command to reply to an input from the Arduino Software (IDE) serial monitor. If the input string is too long, the sketch will send a specific message to the user - Learn how to determine the length of strings. - Write a program that restricts the length of strings from an input. ### Clap Detector URL: https://docs.arduino.cc/tutorials/generic/clap-detector/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/clap-detector/clap-detector.md Description: Learn how to build a clap detector This example reads audio data from an Invensense's ICS43432I2S microphone breakout board, and uses the input to detect clapping sounds. The built-in LED is toggled when a clap is detected. - How to use and read audio data. - How to use audio as an input. ### Control Two Relays Over the Internet URL: https://docs.arduino.cc/tutorials/projects/control-two-relays-over-the-internet/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/control-two-relays-over-the-internet/control-two-relays-over-the-internet.md Description: Use an Arduino MKR GSM 1400 and a Blynk app to control the two relays of the MKR Relay Proto Shield. - Arduino MKR GSM 1400 - Arduino MKR Relay Proto Shield - Breadboard (generic) - LED (generic) - Resistor 220 ohm - Jumper wires (generic) This project shows how to control a MKR Relay shield using an Arduino MKR GSM 1400 and the Blynk Cloud service; we implemented a simple application that allows to switch the relays integrated on the shield using the widgets of Blynk. ### Control Two Relays with an SMS URL: https://docs.arduino.cc/tutorials/projects/control-two-relays-with-an-sms/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/control-two-relays-with-an-sms/control-two-relays-with-an-sms.md Description: Drive the relays of the MKR Relay Shield connected to a MKR GSM 1400 with an SMS. - Arduino MKR GSM 1400 - Arduino MKR Relay Proto Shield - Breadboard (generic) - LED (generic) - Resistor 220 ohm - Jumper wires (generic) This project shows how to control a MKR Relay Shield using a MKR GSM 1400 and the Short Message Service (SMS); this solution works with a plain SIM with no data plan and it is suitable for applications where the GSM network is with poor coverage. ### Control Your IoT Cloud Kit via Blynk URL: https://docs.arduino.cc/tutorials/projects/control-your-iot-cloud-kit-via-blynk/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/control-your-iot-cloud-kit-via-blynk/control-your-iot-cloud-kit-via-blynk.md Description: Use the popular Blynk app to control and change the state of your IoT Cloud Kit through your smartphone. - Arduino MKR IoT Prime Bundle - Arduino Cloud Editor - Blynk ### Control Your IoT Cloud Kit via MQTT and Node-RED URL: https://docs.arduino.cc/tutorials/projects/control-your-iot-cloud-kit-via-mqtt-and-node-red/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/control-your-iot-cloud-kit-via-mqtt-and-node-red/control-your-iot-cloud-kit-via-mqtt-and-node-red.md Description: We are going to use popular tools such as Node-RED and the MQTT protocol to create a simple dashabord esposing data and a simple UI - Arduino MKR IoT Bundle - Raspberry Pi 3 Model B - Arduino Cloud Editor - MQTT - Node-RED ### Create a MIDI Device URL: https://docs.arduino.cc/tutorials/generic/midi-device/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/midi-device/midi-device.md Description: Create a MIDI device to generate music on your computer This tutorial shows how ho use the Native USB port of an Arduino Zero, Due or 101 board as a MIDI device using the Arduino MIDI USB library. - Learn how to create a MIDI device - Control the velocity of a note with a linear potentiometer - Use the Arduino to play notes on a virtual synthesizer ### Digital Input Pull-Up Resistor URL: https://docs.arduino.cc/tutorials/generic/digital-input-pullup/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/digital-input-pullup/digital-input-pullup.md Description: This example demonstrates the use of pinMode(INPUT_PULLUP). This example demonstrates the use of pinMode(INPUT_PULLUP). It reads a digital input on pin 2 and prints the results to the serial monitor. - Arduino Board ### Digital Potentiometer Control URL: https://docs.arduino.cc/tutorials/communication/DigitalPotControl/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/communication/DigitalPotControl/DigitalPotControl.md Description: Control a AD5206 digital potentiometer using the SPI protocol. In this tutorial you will learn how to control the AD5206 digital potentiometer using Serial Peripheral Interface (SPI). For an explanation of SPI see the SPI Library reference. Digital potentiometers are useful when you need to vary the resistance in a circuit electronically rather than by hand. Example applications include LED dimming, audio signal conditioning and tone generation. In this example we will use a six channel digital potentiometer to control the brightness of six LEDs. The steps we will cover for implementing SPI communication can be modified for use with most other SPI devices. ### DNS Web Client URL: https://docs.arduino.cc/tutorials/generic/dns-web-client/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/dns-web-client/dns-web-client.md Description: Connect to a server using the Arduino Ethernet Shield. This example connects to a named server and makes a request using an Ethernet shield. The sketch in the example illustrates how to connect using DHCP and DNS. - Connect to a server using the Arduino Ethernet Shield. - Make a request that searches for "Arduino" on Google. - Print incoming data on the Serial Monitor. ### Firmware/Certificate uploader for u-Blox NINA modules. URL: https://docs.arduino.cc/tutorials/generic/WiFiNINAFirmwareUpdater/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/WiFiNINAFirmwareUpdater/WiFiNINAFirmwareUpdater.md Description: Learn how to update the firmware and load certificates to your u-blox NINA Wi-Fi based board. This tutorial will guide you in the process of updating the firmware or loading certificates on your board based on the u-blox NINA module. If the Check WiFiNINA Firmware Version tells you that you may have issues because the firmware and library versions do not match, here is the solution to align them. ### Full Control of Your TV Using Alexa and Arduino Cloud URL: https://docs.arduino.cc/tutorials/projects/full-control-of-your-tv-using-alexa-and-arduino-iot-cloud/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/full-control-of-your-tv-using-alexa-and-arduino-iot-cloud/full-control-of-your-tv-using-alexa-and-arduino-iot-cloud.md Description: Learn how to use Arduino Cloud and Amazon Alexa to switch the channel, adjust the volume and turn on or off any TV. - Arduino Nano 33 IoT - Resistor 330 ohm - IR receiver (generic) - IR transmitter (generic) - Jumper wires (generic) - Breadboard (generic) - Arduino Cloud Editor - Arduino Cloud - Arduino Amazon Alexa Official Arduino Skill ### Getting Started with OpenMV URL: https://docs.arduino.cc/tutorials/nano-generic/getting-started-omv/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/nano-generic/getting-started-omv/getting-started-omv.md Description: In this tutorial, you will learn how to update the bootloader of your Nano 33 BLE (sense) board so that it may be used with OpenMV IDE, allowing to program it with MicroPython. This tutorial will show you how to update the bootloader with an Arduino IDE sketch. This is required to run the OpenMV firmware. It shows you how to connect the board in OpenMV and upload a MicroPython script that controls the built-in RGB LED. - Nano 33 BLE or Nano 33 BLE sense - Arduino IDE 1.8.10+ or Arduino Pro IDE 0.0.4+ - OpenMV IDE 2.6.4+ ### Getting Started with the AKX00056: Pro Industrial Automation and Lighting Kit URL: https://docs.arduino.cc/tutorials/generic/pro-automation-lighting-kit/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/pro-automation-lighting-kit/pro-automation-lighting-kit.md Description: Learn how to start using your Pro Industrial Automation and Lighting Kit. The Pro Industrial Automation and Lighting Kit is the perfect way to learn and create solutions focused on a micro PLC programming environment, industrial communication protocols and control applications. - Develop experience in programming a micro PLC with IEC 61131-3 languages or Arduino C++ to realize a small industrial control system. - Experience multiple communication features (Ethernet and Wi-Fi®) and get familiar with Fieldbus communications (Modbus RTU through RS485 and Modbus TCP through Ethernet). ### Getting Started with the AKX00057: Pro Smart Industry OEM Condition Monitoring Kit URL: https://docs.arduino.cc/tutorials/generic/pro-oem-condition-monitoring-kit/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/pro-oem-condition-monitoring-kit/pro-oem-condition-monitoring-kit.md Description: Learn how to start using your Pro Smart Industry OEM Condition Monitoring Kit. The Pro Smart Industry OEM Condition Monitoring Kit is the perfect way to learn and create solutions focused on a micro PLC programming environment, industrial instrumentation and control applications. - Develop experience in programming a micro PLC with IEC 61131-3 languages or Arduino C++ to realize a small industrial control system. - Implement projects including temperature measurements exploiting the Portenta Machine Control’s capabilities with 3 temperature inputs for Thermocouples J/K and RTD PT100. - Experience multiple communication features (Ethernet and Wi-Fi®) and get familiar with Fieldbus communications (Modbus RTU through RS485 and Modbus TCP through Ethernet) ### Getting Started with the AKX00058: Pro Edge AI/ML: Vision and Speech Kit URL: https://docs.arduino.cc/tutorials/generic/pro-edge-ai-ml-vision-speech-kit/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/pro-edge-ai-ml-vision-speech-kit/pro-edge-ai-ml-vision-speech-kit.md Description: Learn how to start using your Pro Edge AI/ML: Vision and Speech Kit. The Pro Edge AI/ML: Vision and Speech Kit is the perfect way to learn and create solutions focused on artificial intelligence using computer vision, speech recognition, and machine learning on the Edge: - Practice with Edge AI tools to implement automation systems capable of image recognition and classification for object shape and position detection. - Get familiar with Speech Recognition tools to realize voice-controlled applications, capable of being part of hands-free systems or out-of-reach equipment. - Integrate all with remote control thanks to the Arduino Cloud, experiencing the Arduino C++ based programming easiness. ### Getting Started with the AKX00059: Pro Smart Industry Predictive Maintenance Kit URL: https://docs.arduino.cc/tutorials/generic/pro-predictive-maintenance-kit/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/pro-predictive-maintenance-kit/pro-predictive-maintenance-kit.md Description: Learn how to start using your Pro Smart Industry Predictive Maintenance Kit. The Pro Smart Industry Predictive Maintenance Kit is the perfect way to learn and create solutions focused on artificial intelligence using sound recognition, environmental sensing, and machine learning on the Edge: - Practice with Edge AI tools to implement automation systems capable of recognizing Voice Commands and sensing environmental data to trigger processes. - Integrate all with remote control thanks to the Arduino Cloud, experiencing the Arduino C++ based programming easiness. ### Getting Started with the AKX00060: Pro Smart Industry Prototyping Kit URL: https://docs.arduino.cc/tutorials/generic/pro-smart-industry-proto-kit/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/pro-smart-industry-proto-kit/pro-smart-industry-proto-kit.md Description: Learn how to start using your Pro Smart Industry Prototyping Kit. The Pro Smart Industry Prototyping Kit is the perfect way to learn and create solutions focused on industrial applications developed on Linux OS, LoRa® and cellular connectivity and leading industrial communication protocols like CAN Bus and RS-232/485. - Try the Arduino's most advanced SOM experience with X8, a powerful, industrial-grade SOM with Linux OS preloaded onboard, capable of running device-independent software thanks to its modular container architecture. - Experience the X8 Manager integration for Arduino Cloud, enabling secure OTA updates and Fleet management. - Get all the X8 resources easily accessible and add the LoRa® and Cat.M1 connectivity layer thanks to the Portenta Max Carrier. ### Getting Started with the AKX00061/AKX00062: Pro Smart Agriculture and Irrigation Kit URL: https://docs.arduino.cc/tutorials/generic/pro-smart-agriculture-kit/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/pro-smart-agriculture-kit/pro-smart-agriculture-kit.md Description: Learn how to start using your Pro Smart Agriculture and Irrigation Kit. The Pro Smart Agriculture and Irrigation Kit is the perfect way to learn and create solutions focused on Smart Farming developments, low-energy wireless technologies, and remote monitoring with the Arduino Cloud. - Connect sensors and drive actuators to automate your irrigation processes. - Easily implement precision farming, monitoring real-time weather conditions, soil quality, crop’s growth, among other parameters and use Arduino Cloud to generate valuable analytics to support business processes at various levels, including plant growth, equipment efficiency, staff performance, and much more. - Connect your devices through WisGate Edge Lite, to add LoRa® connectivity layer and extend the possibility of connecting it in open field. ### Gnome Forecaster URL: https://docs.arduino.cc/tutorials/projects/gnome-forecaster/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/gnome-forecaster/gnome-forecaster.md Description: Our Gnome becomes a weather forecaster with an Arduino Nano Every and a pressure sensor. Get your local forecast without the internet. - Arduino Nano Every - SparkFun Atmospheric Sensor Breakout - BME280 - Maxim Integrated DS3231MPMB1 Peripheral Module - Digilent WS2812 Addressable LED Strip - 3D Printer (generic) ### Gnome Traveller URL: https://docs.arduino.cc/tutorials/projects/gnome-traveller/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/gnome-traveller/gnome-traveller.md Description: Our Gnome is ready to follow you in your travels and keep track of all the places you visit, thanks to a GPS shield and the Nano Every. - Arduino Nano Every - Arduino MKR GPS Shield - Digilent MicroSD Card with Adapter - SparkFun Level Shifter Board - Power Bank Electronics - Li-Ion Battery 1000mAh - Slide Switch - Wire, Wrapping Wire - 3D Printer (Generic) - Soldering iron (Generic) ### I2S Library Examples URL: https://docs.arduino.cc/tutorials/generic/I2s-library-examples/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/I2s-library-examples/I2s-library-examples.md Description: Enables to use the I2S protocol on SAMD21 board like Arduino Zero, Arduino MKRZero and Arduino MKR1000. The first example will show you how to read and visualize audio data coming from an I2S microphone. The second example shows you how to generate a simple tone using a SAMD21 based board and an I2S DAC. - Zero, MKR1000 or MKRZero Board - I2S microphone (i.e ICS43432) - MAX98357A amplifier - 3W minimum Speaker 4 or 8 Ohms ### I2S Theremin URL: https://docs.arduino.cc/tutorials/projects/i2s-theremin/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/i2s-theremin/i2s-theremin.md Description: Discover how to make an I2S Theremin based on the new Arduino I2S library. - Arduino MKR Zero - Breadboard (generic) - Jumper wires (generic) - Adafruit® MAX98357A - Speaker: 3W, 4 ohms - RobotGeek Slider - Arduino IDE - Arduino Cloud Editor ### Interacting with a TI SensorTag from an Intel NUC URL: https://docs.arduino.cc/tutorials/generic/interacting-with-a-ti-sensortag-from-an-intel-nuc.md/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/interacting-with-a-ti-sensortag-from-an-intel-nuc.md/interacting-with-a-ti-sensortag-from-an-intel-nuc.md.md Description: This project shows you how setup an Intel NUC to interact with a TI SensorTag device using Bluetooth® Low Energy. - Intel NUC - Texas Instruments CC2650STK SensorTag Kit - Monitor with HDMI input - HDMI cable - USB Keyboard - Bluetooth® 4.0 USB Adapter - Arduino Cloud Editor ### Interfacing a Joystick URL: https://docs.arduino.cc/tutorials/generic/interfacing-a-joystick/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/interfacing-a-joystick/interfacing-a-joystick.md Description: This tutorial shows you how to connect a joystick to an Arduino. The typical joystick is nothing but two potentiometers that allow us to measure the movement of the stick in 2-D. Potentiometers are variable resistors and, in a way, they act as sensors providing us with a variable voltage depending on the rotation of the device around its shaft. The kind of program that we need to monitor the joystick has to make a polling to two of the analog pins. We can send these values back to the computer, but then we face the classic problem that the transmission over the communication port has to be made with 8bit values, while our DAC (Digital to Analog Converter - that is measuring the values from the potentiometers in the joystick) has a resolution of 10bits. In other words this means that our sensors are characterized with a value between 0 and 1024. ### Introduction to the Serial Peripheral Interface URL: https://docs.arduino.cc/tutorials/generic/introduction-to-the-serial-peripheral-interface/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/introduction-to-the-serial-peripheral-interface/introduction-to-the-serial-peripheral-interface.md Description: Learn about the SPI protocol In this tutorial you will learn how to interface with an AT25HP512 Atmel serial EEPROM using the Serial Peripheral Interface (SPI) protocol. EEPROM chips such as this are very useful for data storage, and the steps we will cover for implementing SPI communication can be modified for use with most other SPI devices. Note that the chip on the Arduino board contains an internal EEPROM, so follow this tutorial only if you need more space than it provides. - Learn about the SPI protocol - Enable SPI communication between an EEPROM chip and the Arduino. ### IoT Air Quality checker URL: https://docs.arduino.cc/tutorials/projects/iot-air-quality-checker/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/iot-air-quality-checker/iot-air-quality-checker.md Description: Would you like to know quality of the air inside / outside your house, or in your DIY lab? Let's build this IoT Air Quality checker! - Arduino MKR WiFi 1010 - Arduino MKR Connector Carrier (Grove compatible) - Seeed Grove - Dust Sensor(PPD42NS) - Arduino Seeed Seed - Grove - Oled Display 0.96" - Seeed Grove - Air quality sensor v1.3 - Arduino USB cable type A male to micro type B male Do you ever think about the air quality in your home, where we spend so much of our time every day? ### Localize Your Board with an SMS URL: https://docs.arduino.cc/tutorials/projects/localize-your-board-with-an-sms/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/localize-your-board-with-an-sms/localize-your-board-with-an-sms.md Description: Get the position of your MKR GSM 1400 on your smartphone through an SMS with a Google Maps link. - Arduino MKR GSM 1400 The purpose of this project is to show how to use the cellular localization of the Arduino MKR GSM 1400. To do this, we implemented a simple application that allows you to retry the latitude and longitude of the MKR GSM when an SMS with a security check letter is received. The sender number is recovered from the SMS received and a reply is created with the proper Google Maps link completed by the coordinates given by the location services provided by the u-blox module. ### Make Your IoT Cloud Kit Send You Updates on Telegram URL: https://docs.arduino.cc/tutorials/projects/make-your-iot-cloud-kit-send-you-updates-on-telegram/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/make-your-iot-cloud-kit-send-you-updates-on-telegram/make-your-iot-cloud-kit-send-you-updates-on-telegram.md Description: Read, monitor and get notified about environmental data using Arduino MKR(s), the Environmental Shield, and MKR Relay Proto Shield. - Arduino MKR IoT Prime Bundle - Telegram ### Make-It-Rain Clap Machine URL: https://docs.arduino.cc/tutorials/projects/make-it-rain-clap-machine/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/make-it-rain-clap-machine/make-it-rain-clap-machine.md Description: Just got paid? Perfect! Time to make this fun Make-it-Rain machine. Clap your hands and let the money flow! - Arduino MKR Zero - Medium breadboard - Jumper Wires - Diode - Mosfet N-Channel - ICS43432 I2S digital microphone - micro servo motor+ DC motor - 0.1 uF ceramic capacitor - 100 uF electrolitic capacitor - 2.2Kohm resistor - Rubber band - Laser cutter (Generic) ### Manually Install Drivers on Windows URL: https://docs.arduino.cc/tutorials/generic/DriverInstallation/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/DriverInstallation/DriverInstallation.md Description: Learn how to install Arduino drivers manually on Windows 7, Vista & 10. The following instructions are for Windows 7, Vista and 10. They are valid also for Windows XP, with small differences in the dialog windows. In the following instruction only the Leonardo board will be mentioned, but the same procedure is valid for all the Arduino boards. Plug in your board and wait for Windows to begin its driver installation process. If the installer does not launch automatically, navigate to the Windows Device Manager (Start>Control Panel>Hardware) and find the Arduino Leonardo listing. Right click and choose Update driver. ### Multiple Blinks URL: https://docs.arduino.cc/tutorials/generic/multiple-blinks/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/multiple-blinks/multiple-blinks.md Description: Run multiple functions simultaneously with the Scheduler Library. Arduino boards based on SAM and SAMD architectures (i.e Arduino Zero, MKR ZERO, MKR1000 WiFi and Due) to run multiple functions at the same time. By setting up a number of other functions that run the same way loop() does, it's possible to have separate looping functions without a dedicated timer. - How to use the Scheduler library. - To run multiple functions simultaneously. ### Redeem Arduino® Cloud for Business Voucher URL: https://docs.arduino.cc/tutorials/generic/cloud-business-voucher-redeem/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/cloud-business-voucher-redeem/cloud-business-voucher-redeem.md Description: Learn how to redeem your unique voucher code to activate Arduino Cloud for business subscription. - An Arduino Cloud account is required to proceed with the steps provided in the following section. If you do not have an account, you can create one for free inside cloud.arduino.cc. The __Arduino Cloud for Business Voucher__ grants the holder a one-time redemption opportunity for a trial-period subscription plan to the Arduino Cloud for Business. ### Redeem Arduino® Cloud for Business Voucher with X8 Manager URL: https://docs.arduino.cc/tutorials/generic/x8-manager-voucher-redeem/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/x8-manager-voucher-redeem/x8-manager-voucher-redeem.md Description: Learn how to redeem your unique voucher code to activate the Arduino Cloud for business subscriptions with the Portenta X8 Manager add-on. * Portenta X8 (x1) While the required hardware is not strictly necessary for the scope of this tutorial, it will be necessary to use the X8 Manager features after redeeming the voucher code. ### RTC Sleep Example with a SAMD Board URL: https://docs.arduino.cc/tutorials/generic/sleep-rtc-alarm/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/sleep-rtc-alarm/sleep-rtc-alarm.md Description: This example demonstrate how to use the RTC library methods in order to wake up from the standby mode. - Arduino Zero or MKRZero or MKR1000 Only your Arduino Board is needed for this example. ### Scheduled Relays URL: https://docs.arduino.cc/tutorials/projects/scheduled-relays/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/scheduled-relays/scheduled-relays.md Description: This project will show you how to schedule to drive the outputs on a MKR Relay Proto Shield using a MKR1000! - Arduino MKR1000 - Arduino MKR Relay Proto Shield - Arduino Cloud Editor - Arduino IDE ### Scheduled WiFi SSL Web Client URL: https://docs.arduino.cc/tutorials/generic/scheduled-wifi-ssl-web-client/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/scheduled-wifi-ssl-web-client/scheduled-wifi-ssl-web-client.md Description: Print an Arduino ASCII logo by using RTC. With this tutorial you will use the Real Time Clock (RTC) alarm function and interrupt to make an https GET request to the Arduino.cc website every minute. The request downloads the Arduino ASCII logo and the data is streamed to the Serial Monitor. - To use the Real Time Clock (RTC) - To make a GET request that downloads an Arduino ASCII logo and print it to the Serial Monitor. ### SD Sketch Update URL: https://docs.arduino.cc/tutorials/projects/sd-sketch-update/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/sd-sketch-update/sd-sketch-update.md Description: How to use the new Arduino SDU library for SAMD boards to update the sketch on your board, putting it on an SD! - Arduino MKR1000 - Arduino MKR Zero - SD card - Arduino Cloud Editor - Arduino IDE ### Secrets of Arduino PWM URL: https://docs.arduino.cc/tutorials/generic/secrets-of-arduino-pwm/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/secrets-of-arduino-pwm/secrets-of-arduino-pwm.md Description: Learn about Pulse Width Modulation techniques Pulse-width modulation (PWM) can be implemented on the Arduino in several ways. This tutorial explains simple PWM techniques, as well as how to use the PWM registers directly for more control over the duty cycle and frequency. This tutorial focuses on the Arduino Diecimila and Duemilanove models, which use the ATmega168 or ATmega328. - About Pulse Width Modulation techniques. ### Security Considerations for Hardware Products URL: https://docs.arduino.cc/tutorials/security/security-consideration-hardware/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/security/security-consideration-hardware/security-consideration-hardware.md Description: Learn how Arduino ensures the security of the software and network connectivity in hardware products in this security overview document. At Arduino, we place paramount importance on security when it comes to building the hardware and firmware for our physical products. Our comprehensive platform encompasses everything from hardware and firmware to development tools and cloud services. This article delves into the different facets of security concerns and outlines our approach to addressing them at each layer of our ecosystem. Several Arduino boards are based on a microcontroller (or MCU) architecture, and when connectivity options are provided by the board, there is usually a secondary chip taking care of connectivity aspects (e.g. Bluetooth® or Wi-Fi®). ### Serial to Parallel Shifting-Out with a 74HC595 URL: https://docs.arduino.cc/tutorials/communication/guide-to-shift-out/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/communication/guide-to-shift-out/guide-to-shift-out.md Description: At sometime or another you may run out of pins on your Arduino board and need to extend it with shift registers. At sometime or another you may run out of pins on your Arduino board and need to extend it with shift registers. This example is based on the 74HC595. The datasheet refers to the 74HC595 as an "8-bit serial-in, serial or parallel-out shift register with output latches; 3-state." In other words, you can use it to control 8 outputs at a time while only taking up a few pins on your microcontroller. You can link multiple registers together to extend your output even more. (Users may also wish to search for other driver chips with "595" or "596" in their part numbers, there are many. The STP16C596 for example will drive 16 LED's and eliminates the series resistors with built-in constant current sources.) How this all works is through something called "synchronous serial communication," i.e. you can pulse one pin up and down thereby communicating a data byte to the register bit by bit. It's by pulsing second pin, the clock pin, that you delineate between bits. This is in contrast to using the "asynchronous serial communication" of the Serial.begin() function which relies on the sender and the receiver to be set independently to an agreed upon specified data rate. Once the whole byte is transmitted to the register the HIGH or LOW messages held in each bit get parceled out to each of the individual output pins. This is the "parallel output" part, having all the pins do what you want them to do all at once. ### Simple audio player URL: https://docs.arduino.cc/tutorials/generic/simple-audio-player/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/simple-audio-player/simple-audio-player.md Description: Play audio using an SD card This tutorial demonstrates how to use an Arduino board (Arduino Zero, MKRZero or MKR1000 WiFi) to play a wave file stored on an SD card using the AudioZero library and the 10 bit DAC. - How to play a wavefile stored on an SD card. ### Simple RTC Alarm with a SAMD Board URL: https://docs.arduino.cc/tutorials/generic/simple-rtc-alarm/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/simple-rtc-alarm/simple-rtc-alarm.md Description: This example demonstrate how to use the RTC library methods in order to do something when an alarm is matched. This example demonstrate how to use the RTC library methods in order to do something when an alarm is matched. In particular in this example, the RTC time is set at 16:00:00 and an alarm at 16:00:10. When the time match using the match type MATCH_HHMMSS is reached, the attached interrupt function will print on the serial monitor Alarm Match!. - Arduino Zero or MKRZero or MKR1000 ### Simple RTC Clock with a SAMD Board URL: https://docs.arduino.cc/tutorials/generic/simple-rtc/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/simple-rtc/simple-rtc.md Description: This example demonstrate how to use the RTC library methods. - Arduino Zero or MKRZero or MKR1000 Only your Arduino Board is needed for this example. ### Smart Dumpster URL: https://docs.arduino.cc/tutorials/projects/smart-dumpster/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/projects/smart-dumpster/smart-dumpster.md Description: Monitor a dumpster's status with flame, movement, and fill level sensors connected to a MKR NB 1500. - Arduino MKR NB 1500 - Ultrasonic Sensor - HC-SR04 (Generic) - Temperature probe (Generic) Dumpsters are a good case for remote monitoring. The MKR NB 1500 with its NarrowBand connection to the internet and low power mode is ideal for such an application. We have added an ultrasound distance sensor, a temperature sensor, and an IMU (Inertial Measurement Unit). ### Spectrum Serial Plotter URL: https://docs.arduino.cc/tutorials/generic/arduino-sound-spectrum-serial-plotter/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/arduino-sound-spectrum-serial-plotter/arduino-sound-spectrum-serial-plotter.md Description: This example reads audio data from an Invensense ICS43432I2S microphone breakout board, and prints out the spectrum to the Serial console. This example reads audio data from an Invensense ICS43432I2S microphone breakout board, and prints out the spectrum to the Serial console. The Serial Plotter built into the Arduino IDE can be used to plot the audio amplitude data (Serial Plotter Tools). - Arduino Zero, MKRZero or MKR1000 Board ### SPITransaction Method URL: https://docs.arduino.cc/tutorials/communication/SPITransaction/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/communication/SPITransaction/SPITransaction.md Description: In this tutorial you will learn how to use the SPI transaction methods. In this tutorial you will learn how to use the SPI transaction methods. For an explanation of SPI see the SPI EEPROM tutorial. A common problem used to be that different SPI devices needed different, incompatible settings. Your sketch had to take care of saving and restoring the SPI settings before communicating with each SPI device. If any SPI device was accessed from an interrupt, this could result in data corruption if another SPI device was communicating at the time. ### The Knight Rider URL: https://docs.arduino.cc/tutorials/generic/knight-rider/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/knight-rider/knight-rider.md Description: Learn how to build the Knight Rider light display. We have named this example in memory to a TV-series from the 80's where the famous David Hasselhoff had an AI machine driving his Pontiac. The car had been augmented with plenty of LEDs in all possible sizes performing flashy effects. Thus we decided that in order to learn more about sequential programming and good programming techniques for the I/O board, it would be interesting to use the Knight Rider as a metaphor. ### Tilt Sensor URL: https://docs.arduino.cc/tutorials/generic/tilt-sensor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/tilt-sensor/tilt-sensor.md Description: The tilt sensor is a component that can detect the tilting of an object. The tilt sensor is a component that can detect the tilting of an object. However it is only the equivalent to a pushbutton activated through a different physical mechanism. This type of sensor is the environmental-friendly version of a mercury-switch. It contains a metallic ball inside that will commute the two pins of the device from on to off and vice-versa if the sensor reaches a certain angle. The code example is exactly as the one we would use for a pushbutton but substituting this one with the tilt sensor. We use a pull-up resistor (thus use active-low to activate the pins) and connect the sensor to a digital input pin that we will read when needed. ### Two Port Receive URL: https://docs.arduino.cc/tutorials/communication/TwoPortReceive/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/communication/TwoPortReceive/TwoPortReceive.md Description: Work with multiple software serial ports on an Arduino board. Arduino boards have built in support for serial communication on pins 0 and 1, but what if you need more serial ports? The SoftwareSerial Library has been developed to allow serial communication to take place on the other digital pins of your boards, using software to replicate the functionality of the hardwired RX and TX lines. This can be extremely helpful when the need arises to communicate with two serial enabled devices, or to talk with just one device while leaving the main serial port open for debugging purpose. In the example below, digital pins 8 and 10 on your Arduino board are used as virtual RX serial lines. Pins 9 and 11 are virtual TX lines. The board listens on one virtual port (portOne) until it has read all available data. After that, it does the same on the second virtual port (portTwo). ### Two Switches, One Pin URL: https://docs.arduino.cc/tutorials/generic/two-switches-one-pin/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/two-switches-one-pin/two-switches-one-pin.md Description: This example demonstrate how to use two pushbuttons and distunguish between them using only one pin on your Arduino There are handy 20K pullup resistors (resistors connected internally between Arduino I/O pins and VCC - +5 volts in the Arduino's case) built into the Atmega chip upon which Arduino boards are based. They are accessible from software by using the digitalWrite() function, when the pin is set to an input. This sketch exploits the pullup resistors under software control. The idea is that an external 200K resistor to ground will cause an input pin to report LOW when the internal (20K) pullup resistor is turned off. When the internal pullup resistor is turned on however, it will overwhelm the external 200K resistor and the pin will report HIGH. ### Unipolar Stepper Motor URL: https://docs.arduino.cc/tutorials/generic/unipolar-stepper-motor/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/unipolar-stepper-motor/unipolar-stepper-motor.md Description: Learn how to drive a unipolar stepper motor commonly found in old floppy drives! This page shows two examples on how to drive a unipolar stepper motor. These motors can be found in old floppy drives and are easy to control. The one we use has 6 connectors of which one is power (VCC) and the other four are used to drive the motor sending synchronous signals. The first example is the basic code to make the motor spin in one direction. It is aiming those that have no knowledge in how to control stepper motors. The second example is coded in a more complex way, but allows to make the motor spin at different speeds, in both directions, and controlling both from a potentiometer. ### Wave Playback URL: https://docs.arduino.cc/tutorials/generic/wave-playback/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/wave-playback/wave-playback.md Description: Playback wave files from an SD card This example reads a wave file from an SD card and plays it using the I2S interface to a MAX98357 I2S Amp Breakout board. The wav file must be stereo signed 16 bit 44100Hz. You can export such files using free software like audacity. - To use an I2S interface - To playback wave files from an SD card ### Whistle Detector URL: https://docs.arduino.cc/tutorials/generic/whistle-detector/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/whistle-detector/whistle-detector.md Description: Control the brightness of an LED with whistling! This example reads audio data from an Invensense's ICS43432I2S microphone breakout board, and uses the input to detect whistling sounds at a particular frequency. When a whistle is detected, it's level is used to control the brightness of the built-in LED. - How to use and read audio data. - How to use audio as an input to control the brightness of an LED. ### Wifi101 Google Calendar Example URL: https://docs.arduino.cc/tutorials/generic/Wifi101GoogleCalendar/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/Wifi101GoogleCalendar/Wifi101GoogleCalendar.md Description: This example shows you how to make repeated HTTP requests using a WiFi shield 101. This example shows you how to make repeated HTTP requests using a WiFi shield 101. It connects to a given Google Calendar. The content of the page is downloaded and parsed in order to extract commands from the event title and planning actions to be executed at a given time. This example is written for a network using WPA encryption. For WEP or WPA, change the Wifi101.begin() call accordingly. ### WiFi101 ThingSpeak Data Uploader Example URL: https://docs.arduino.cc/tutorials/generic/WiFi101ThingSpeakDataUploader/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/generic/WiFi101ThingSpeakDataUploader/WiFi101ThingSpeakDataUploader.md Description: This tutorial demonstrates how to use the Arduino Zero or Arduino Uno and the WiFi shield 101 to send a live stream of the light and temperature values. This tutorial demonstrates how to use the Arduino Zero or Arduino Uno and the WiFi Shield 101 to send a live stream of the light and temperature values in your environment using ThingSpeak.com. ThingSpeak is an open data platform for the Internet of Things which allows you to collect data in a your own channel and get data from other channels using the API. In this example, we will use a photocell and a temperature sensor and send their values wirelessly to the ThingSpeak server. - Arduino Zero or Uno Board ### WiFiNINA Library Examples URL: https://docs.arduino.cc/tutorials/communication/wifi-nina-examples/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/tutorials/communication/wifi-nina-examples/wifi-nina-examples.md Description: The WiFi library for boards with a NINA WiFi module. Works with the MKR WiFi 1010, MKR Vidor 4000, Uno WiFi Rev2, Nano 33 IoT and the Nano RP2040 Connect. The WiFiNINA library is designed for Arduino boards using a NINA W-10 series module. In this article you will find a series of examples that can be uploaded to your board. You can also visit the WiFiNINA GitHub repository to learn more about this library. --- ## Programming References ### IoT Cloud API URL: https://docs.arduino.cc/cloud-api Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/programming/05.iot-cloud-api/iot-cloud-api.md ### Language Reference URL: https://docs.arduino.cc/language-reference/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/programming/01.language-reference/language-reference.md ### Libraries URL: https://docs.arduino.cc/libraries/ Source: https://raw.githubusercontent.com/arduino/docs-content/main/content/programming/02.libraries/libraries.md ---