Downloading and installing the Arduino IDE 2 . 0 In this tutorial, we will show how to download and installing the Arduino IDE 2 . 0 on your Windows or Mac computer. You can easily download the editor from the Arduino Software page . Requirements Windows - Win 10 and newer, 64 bits Linux - 64 bits Mac OS X - Version 10.14: "Mojave" or newer, 64 bits The Arduino IDE 2 . 0 The Arduino IDE 2 . 0 is an open-source project, currently in its beta-phase. It is a big step from it's sturdy predecessor, Arduino IDE (1.8.13), and comes with revamped UI, improved board & library manger, autocomplete feature and much more. In this tutorial, we will go through step by step, how to download and install the software. Download the editor Downloading the Arduino IDE 2 . 0 is done through the Arduino Software page . Here you will also find information on the other editors available to use. Installation Windows To install the Arduino IDE 2 . 0 on a Windows computer, simply run the file downloaded from the software page. Follow the instructions in the installation guide. The installation may take several minut es. You can now use the Arduino IDE 2 . 0 on your Windows computer! Mac OS X To install the Arduino IDE 2 . 0 on a Mac OS X computer, simply copy the downloaded file into your application folder. You can now use the Arduino IDE 2 . 0 on your Mac OS X computer! Linux To install the Arduino IDE 2 . 0 on a Linux machine, simply extract the downloaded file to a suitable folder. Now, go to the folder where you extracted the contents to, and look for the arduino-ide file, which will launch the IDE. You can also run the file directly in the terminal, navigate to the folder, right click on it and select run in terminal . To launch the editor through the terminal, simply type: More tutorials Once you are finished with the download & installation, you can start using the Arduino IDE 2 . 0 . Below are a collection of tutorials that will show you how to use the different features. Getting started with the Arduino IDE 2 . 0 (beta) How to use the board manager with the Arduino IDE 2 . 0 How to upload a sketch with the Arduino IDE 2 . 0 How to install and use a library with the Arduino IDE 2 . 0 How to use the Serial Monitor with the Arduino IDE 2 . 0 How to use the autocomplete feature with the Arduino IDE 2 . 0
Getting Started with the Arduino Yún Rev. 2 The Arduino Yún rev. 2 is an Arduino board unlike any other. While programming it is very similar to the Arduino Leonardo and uses the same processor, the Atmel ATmega32U4, it also has an additional processor, an Atheros AR9331, running Linux and the OpenWrt wireless stack. Programming the 32U4 via USB is identical to the Arduino Leonardo . Once you've configured the Yún rev. 2 to connect to your WiFi network, you can program the 32U4 via WiFi as well. Use your Arduino Yún rev. 2 on the Arduino Web IDE All Arduino boards, including this one, work out-of-the-box on the Arduino Web Editor , you only need to install Arduino Create Agent to get started. The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this simple guide to start coding on the browser and upload your sketches onto your board. Use your Arduino Yún rev. 2 on the Arduino Desktop IDE The Arduino Yún rev. 2 is programmed using the Arduino Software (IDE), our Integrated Development Environment common to all our boards. You should have already it installed on your PC, as explained in the home page of our Getting Started . Installing Drivers for the Yún OSX There's nothing to configure with the Yún Rev. 2 . Windows Windows version of Arduino Software (IDE) already contains the proper drivers. When you installed it you let the operating system install them. Connect your Yún rev. 2 and the drivers will be installed automatically Linux There is no need to install drivers for Ubuntu 10. 0 .4 and later, but make sure port 5353 is not being blocked by a firewall. Open your first sketch Open the LED blink example sketch: File > Examples >01.Basics > Blink . Select your board type and port You'll need to select the entry in the Tools > Board menu that corresponds to your Arduino board. Select the serial device of the board from the Tools | Serial Port menu. This is likely to be COM3 or higher ( COM1 and COM2 are usually reserved for hardware serial ports). To find out, you can disconnect your board and re-open the menu; the entry that disappears should be the Arduino board. Reconnect the board and select that serial port. When your board is properly configured on WiFi, you will find it in the Port list, as in our screenshot. Upload the program Now, simply click the "Upload" button in the environment. Wait a few seconds - you should see the RX and TX leds on the board flashing. If the upload is successful, the message "Done uploading." will appear in the status bar. A few seconds after the upload finishes, you should see the on -board LED start to blink. If it does, congratulations! You've gotten your Arduino Yún rev. 2 up-and-running. If you have problems, please see the troubleshooting suggestions . Get inspired Now that you have set up and programmed your Yún rev. 2 board, you may find inspiration in our Project Hub tutorial platform, or you can dig in deeper with the Bridge library and examples . You can also check out the Yún rev. 2 hardware page for additional technical information. Please Read... Differences from the Arduino Leonardo In addition to the 32U4 chip, the Yún rev. 2 has an additional processor, an Atheros AR9331, which runs a distribution of Linux for embedded systems named OpenWrt-Yun, based on OpenWrt. A full install of Python 2 .7 is included as well. The Yún rev. 2 has a number of different physical characteristics and connectors than the Leonardo. There is an on -board SD slot, Ethernet jack, and a USB-A Host connector. There is no power barrel connector on the Yún; it can be powered from the micro-USB connector. Despite the name, the VIN pin is not an input. This is a 5 V output only and can not be used to power the board. You can power the board either via the micro-USB connection or 5V pin on the board. Powering the board at more than 5 V via either of these connections will damage it. It is recommended to power the Yún rev. 2 from the USB connection whenever possible. The SD, Ethernet, and USB-A connectors are not physically connected to the 32U4 processor, they are connected to the AR9331. The Yún's 32U4 functions in the same way as the Leonardo, except you cannot use Serial1 . It is reserved for communication with the AR9331 processor. The Yún rev. 2 also has a WiFi module built on board, allowing it to connect to a wireless router, or act as an access point. The 32u4, WiFi, and AR9331 processors all have their own reset buttons. There are several status LEDs on the Yún, indicating power, WLAN connection, WAN connection and USB. Additionally pin 13 is connected to one of the status lights. OpenWrt-Yun The Yún rev. 2 runs a distribution of Linux called OpenWrt-Yun, based on OpenWrt . While it's possible to configure the system from the command line, there is a web page that allows you to configure many of the different options available. The interface (called LuCi ) gives you access to most any setting you would need for maint aining the WiFi interface. Accessing the web interface is described below. To install additional software on OpenWrt-Yun, you need to use the the Linux package manager opkg . For more information on the manager and some common commands, see the Yún rev. 2 package manager page . When interfacing with the OpenWrt-Yun system, you have to use a command line, either accessing it through the Arduino's Bridge library, or via SSH. If you are unfamiliar with the command line, you may want to read about some basics about it and some of the programs that are frequently used. Due to continuous improvements and suggestions coming from both the OpenWrt community and the Arduino community, version of OpenWrt-Yun installed on your Yún rev. 2 may be out of date . Please check the upgrade tutorial and be sure you're running the latest version available. Python An installation of Python 2 .7 is included with OpenWrt-Yun, with which you can write applications or scripts. For more on Python, visit the Python 2 .7 documentation pages . If you're getting started with Python for the first time, there are a number of excellent resources on -line. "Learn Python the Hard Way" will cover everything you need to know to get up and running with your own scripts. External storage on the Yún You're discouraged from using the Yún's built-in non-volatile memory, because it has a limited number of writes. You can use external memory like a microSD card or thumb drive for saving data, or your own scripts, web pages, etc. For the Yún rev. 2 to access and store information on these drives through the 32U4, they need to have a directory named arduino in the root of the volume. If you plan to use a microSD memory card, you can expand the Yun Disk Space following this tutorial . Web services OpenWrt-Yun uses REST for clients and servers. REST is an acronym for "Representational State Transfer". It is a software architecture that exposes various parts of the Arduino hardware through URLs. By default, the REST API access is password protected. It is possible to change this to access the services without a password. To change this setting, enter the Yún rev. 2 configuration panel. At the bottom of the page, you will see toggles for changing the access. A nice introduction to the concepts behind REST can be found here . The three REST end points recognized by the Yún rev. 2 are: /arduino /data /mailbox The "/arduino" directory doesn't have anything pre-configured. Anything added to the URL after the end point is passed from the webserver to the sketch on the 32U4. You can define your APIs inside the sketch. See the Bridge example to see how this is done to access the pins on the board. "/data" is used to access to the internal key/value storage. The available calls are: /put/KEY/VALUE : stores a value inside the storage /get/KEY : obtains the value of the requested key in JSON /get : obtains the entire storage list in JSON. /delete : deletes the internal storage "mailbox" is used to add messages into a queue called Mailbox. The message queue is stored inside the Linux system and can be read by the Arduino microcontroller. The available REST call is: "/mailbox/message" Resetting the processors (AR9331, WiFi, and 32U4) To restart the AR9331, which reboots OpenWrt-Yun, press the "YÚN REV. 2 RST" reset button that is close to the analog inputs pins and the LEDs of the board. To restart the the 32U4 and restart the currently installed Arduino sketch, tap the button next to the Ethernet port two times . The reset button for WiFi is located next to the USB-A connector. It is labeled "WLAN RST". When you press the button, the WLAN LED will flash. If you move to a different network and can no longer wirelessly access the Yún rev. 2 through its web interface, you can reset the Yún's network configuration by pressing the WiFi reset button (WLAN RST) for longer longer than 5 seconds, but less than 30, the AR9331 processor will reboot. The WiFi configuration will be reset and the Yún rev. 2 will start its own wiFi network Arduino Yún-XXXXXXXXXXXX. Any other modification/configuration will be retained. To reset the OpenWrt-Yun distribution to its default state, press the WiFi reset button (WLAN RST) for at least 30 seconds. The board reverts to the original settings: like just taken out of the box or to the latest update of the OpenWRT image you have reflashed before. Among other things, this removes all installed files and network settings. Resetting the password The webpanel password can be reset and changed. Connect the Arduino Yún rev. 2 to your computer with an USB cable and upload the YunSerialTerminal sketch. It can be found in the Bridge examples in the Arduino Software (IDE). When the Yún rev. 2 boot is complete, open the serial monitor, select New Line character in the dropdown menu and press Enter. Something like this should appear in your serial monitor: Now you have to execute the passwd command to change the password. Type passwd …
Getting Started with the Arduino Yún and Yún Mini LininoOS This is a retired product. The Arduino Yún and Yún mini are Arduino boards unlike any other. While programming it is very similar to the Arduino Leonardo and use the same processor, the Atmel ATmega32U4, there is also has an additional processor, an Atheros AR9331, running LininoOS and the OpenWrt wireless stack. Programming the 32U4 via USB is identical to the Arduino Leonardo . Once you've configured the Yún to connect to your WiFi network, you can program the 32U4 via WiFi as well. The Arduino Yún an Yún Mini are programmed using the Arduino Software (IDE) , our Integrated Development Environment common to all our boards and running both online and offline. For more information on how to get started with the Arduino Software visit the Getting Started page . Use your Arduino Yún an Yún Mini on the Arduino Web IDE All Arduino boards, including this one, work out-of-the-box on the Arduino Web Editor , you only need to install Arduino Create Agent to get started. The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this simple guide to start coding on the browser and upload your sketches onto your board. Use your Arduino Yún an Yún Mini on the Arduino Desktop IDE If you want to program your Arduino Yún an Yún Mini while offline you need to install the Arduino Desktop IDE The Uno is programmed using the Arduino Software (IDE), our Integrated Development Environment common to all our boards. Before you can move on , you must have installed the Arduino Software (IDE) on your PC, as explained in the home page of our Getting Started . Installing Drivers for the Yún and Yún mini OSX The first time you plug a Yún or Yún mini areinto a Mac, the "Keyboard Setup Assistant" will launch. There's nothing to configure with the board; you can close this dialogue by clicking the red button in the top left of the window. Windows Windows version of Arduino Software (IDE) already contains the proper drivers. When you installed it you let the operating system install them. Connect your Yún or Yún mini and the drivers will be installed automatically Linux There is no need to install drivers for Ubuntu 10. 0 .4 and later, but make sure port 5353 is not being blocked by a firewall. Open your first sketch Open the LED blink example sketch: File > Examples >01.Basics > Blink . Select your board type and port You'll need to select the entry in the Tools > Board menu that corresponds to your Arduino Yún or Yún mini board. Select the serial device of the board from the Tools | Serial Port menu. This is likely to be COM3 or higher ( COM1 and COM2 are usually reserved for hardware serial ports). To find out, you can disconnect your board and re-open the menu; the entry that disappears should be the Arduino board. Reconnect the board and select that serial port. When your board is properly configured on WiFi, you will find it in the Port list, as in our screenshot. Upload the program Now, simply click the "Upload" button in the environment. Wait a few seconds - you should see the RX and TX leds on the board flashing. If the upload is successful, the message "Done uploading." will appear in the status bar. A few seconds after the upload finishes, you should see the on -board LED start to blink. If it does, congratulations! You've gotten your Arduino Yún or Yún mini up-and-running. If you have problems, please see the troubleshooting suggestions . Tutorials Now that you have set up and programmed your Yún board, you may find inspiration in our Project Hub tutorial platform or you can dig in deeper with the Bridge library and examples . You can also check out the Yún hardware page for additional technical information. Please Read... Differences from the Arduino Leonardo In addition to the 32U4 chip, the Yún or Yún mini has an additional processor, an Atheros AR9331, which runs a distribution of Linux for embedded systems named LininoOS, based on OpenWrt. A full install of Python 2 .7 is included as well. The Yún or Yún mini has a number of different physical characteristics and connectors than the Leonardo. There is an on -board SD slot, Ethernet jack, and a USB-A Host connector. There is no power barrel connector on the Yún; it can be powered from the micro-USB connector. There is no built in 5V regulator. If you power your Yún with more than 5V, you will likely damage it. If you are not powering the Yún from the micro-USB connection, you can apply power to the VIN and 5V pins on the board. If using the VIN pin, you cannot provide more than 5V, it will damage your board. It is recommended to power the Yún from the USB connection whenever possible. The SD, Ethernet, and USB-A connectors are not physically connected to the 32U4 processor, they are connected to the AR9331. The Yún's 32U4 functions in the same way as the Leonardo, except you cannot use Serial1 . It is reserved for communication with the AR9331 processor. The Yún also has a WiFi module built on board, allowing it to connect to a wireless router, or act as an access point. The 32u4, WiFi, and AR9331 processors all have their own reset buttons. There are several status LEDs on the Yún, indicating power, WLAN connection, WAN connection and USB. Additionally pin 13 is connected to one of the status lights. OpenWrtLininoOS LininoOS is based on OpenWRT distribution with about 3000 package built and available. LininoOS provides a fully writable filesystem with package management with GPG signature. Integrated with LininoIO it is a complete linux system for IoT space. LininoOS features many innovations for your Arduino Yun. LininoIO is a software framework able to integrate microcontroller features inside the microprocessor environment. You can simply write your application using Node.js, Python, Bash, etc., on linux side using LininoOS to control completely the board and all the devices attacched. Node.js with Ideino Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. Ideino is an embedded editor to write and debug your node.js application. AllJoyn supported, which is an open source project which provides a universal software framework and core set of system services that enable interoperability among connected products and software applications to create dynamic proximal networks. Due to continuous improvements and suggestions coming from both the OpenWrt community and the Arduino community, version of LininoOS installed on your Yún may be out of date . Please check the upgrade tutorial and be sure you're running the latest version available. Accessing the web interface is described below. Install additional software on Linux The Yún comes with several pieces of software pre-installed on LininoOS, including "curl" and "python". You may want to install other software on the Yún. On Linux systems, additional software can be installed using a tool called the "opkg". You can find pre-compiled packages for LininoOS on their latest version, here . When interfacing with the LininoOS system, you have to use a command line, either accessing it through the Arduino's Bridge library, or via SSH. If you are unfamiliar with the command line, you may want to read about some basics about it and some of the programs that are frequently used. Python An installation of Python 2 .7 is included with LininoOS, with which you can write applications or scripts. For more on Python, visit the Python 2 .7 documentation pages . If you're getting started with Python for the first time, there are a number of excellent resources on -line. "Learn Python the Hard Way" will cover everything you need to know to get up and running with your own scripts. External storage on the Yún You're discouraged from using the Yún's built-in non-volatile memory, because it has a limited number of writes. You can use external memory like a microSD card or thumb drive for saving data, or your own scripts, web pages, etc. For the Yún to access and store information on these drives through the 32U4, they need to have a directory named arduino in the root of the volume. Web services LininoOS uses REST for clients and servers. REST is an acronym for "Representational State Transfer". It is a software architecture that exposes various parts of the Arduino hardware through URLs. By default, the REST API access is password protected. It is possible to change this to access the services without a password. To change this setting, enter the Yún configuration panel. At the bottom of the page, you will see toggles for changing the access. A nice introduction to the concepts behind REST can be found here . The three REST end points recognized by the Yún are: /arduino /data /mailbox The "/arduino" directory doesn't have anything pre-configured. Anything added to the URL after the end point is passed from the webserver to the sketch on the 32U4. You can define your APIs inside the sketch. See the Bridge example to see how this is done to access the pins on the board. "/data" is used to access to the internal key/value storage. The available calls are: /put/KEY/VALUE : stores a value inside the storage /get/KEY : obtains the value of the requested key in JSON /get : obtains the entire storage list in JSON. /delete : deletes the internal storage "mailbox" is used to add messages into a queue called Mailbox. The message queue is stored inside the Linux system and can be read by the Arduino microcontroller. The available REST call is: "/mailbox/message" Resetting the processors (AR9331, WiFi, and 32U4) To restart the AR9331, which reboots LininoOS, press the "YÚN RST" reset button that is close to the analog inputs pins and the LEDs of the board. To restart the the 32U4 and restart the curr…
Getting Started with the Arduino 101 The Arduino 101 is a learning and development board which contains the Intel® Curie™ Module, designed to integrate the core's low power-consumption and high performance with the Arduino's ease-of-use. The 101 adds Bluetooth® Low Energy capabilities and has an on -board 6-axis accelerometer/gyroscope, providing exciting opportunities for building creative projects in the connected world. The Arduino 101 is programmed using the Arduino Software (IDE) , our Integrated Development Environment common to all our boards and running both online and offline. For more information on how to get started with the Arduino Software visit the Getting Started page . Use your Arduino 101 on the Arduino Web IDE All Arduino boards, including this one, work out-of-the-box on the Arduino Web Editor , you only need to install Arduino Create Agent to get started. The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this simple guide to start coding on the browser and upload your sketches onto your board. Use your Arduino 101 on the Arduino Desktop IDE If you want to program your 101 while offline you need to install the Arduino Desktop IDE and add the Intel Curie Core to it. This simple procedure is done selecting Tools menu , then Boards and last Boards Manager , as documented in the Arduino Boards Manager page. Here you can search Intel Curie or 101 to find the core. Click on its box and click on the install button. On the bottom bar of the window you can follow the download and install procedure, including the installation of the proper driver, needed by the operating system to use the 101 board. For more information about cores, see the guide on installing additional Arduino cores . Installing Drivers for the Arduino 101 Now that the Curie Core is installed, you can connect the board to the computer using a standard USB cable. The very first time your computer may go through the new hardware installation process. Whenever an user wants to install the IDE form the zip file, or the windows store and installs the 101 board from the board manager the driver isn't installed and therefore the board is not recognized. This issue is easily solved doing a manual installation. Please go to your documents folder and then here: C:\Users\name\AppData\Local\Arduino15\packages\Intel\hardware\arc32\ 2 . 0 .4\drivers . The folder contains the dpinst-x86.exe and dpinst-amd54.exe that are the install executables. Chose the right one for your 32 or 64 bit OS and double clic on it. After ths manual procedure the driver installation will properly happen when you connect the board. On old Windows machines the time taken to install the driver is more than the 5 seconds allowed by the board's firmware. If the board disappears while the driver is installed, the process aborts and no driver is installed. To solve this issue please keep pressing every second the MASTER RESET until the driver installation is completed. Select your board type and port From Tools select the Board Arduino/Genuinio 101 and then the Port that is labeled with the same name. Open your first sketch Everything is now ready to upload your first sketch. Go to File on the Arduino Software (IDE) and open the Examples tree; select 01. Basic and then Blink This sketch just flashes the built in LED connected to Digital pin 13 at one second pace for on and off, but it is very useful to practice the loading of a sketch into the Arduino Software (IDE) and the Upload to the connected board. Upload the program Press the second round icon from left on the top bar of the Arduino Software (IDE) or press Ctrl+U or select the menu Sketch and then Upload . The sketch will be compiled and then uploaded. After a few seconds the bottom bar should show Done Uploading . After this process the 101 board takes around 5 seconds to reset and restart, then the built in LED should start blinking. Learn more on the Desktop IDE See this tutorial for a generic guide on the Arduino IDE with a few more infos on the Preferences, the Board Manager, and the Library Manager. You have successfully set up your 101 board and uploaded your first sketch. You are ready to move on with our tutorials and projects: choose your next destination below. Tutorials Now that you have set up and programmed your 101 board, you may find inspiration in our Project Hub tutorial platform, or learn how to use the specific features of the 101 board with the 101 library examples. Here a list of tutorials that will help you in making very cool things! CurieIMU Orientation Visualiser CurieIMU Step Count CurieIMU Raw data example CurieIMU tap detection CurieIMU Shock detection CurieBLE Smartphone Led interaction CurieBLE Heart Rate Monitor more examples on the respective library pages Libraries for Bluetooth®, Accelerometer + Gyroscope, and Real-Time Clock All 101's embedded peripherals have dedicated libraries, namely: CureBLE (to control Bluetooth® Low Energy module) CurieIMU(to control the 6-axis accelerometer + gyro) Curie Timer One (to control Timer functions) All of these libraries contain example sketches and tutorials have been written to get you started with using and understanding the functionalities of the modules (see Tutorials at the bottom of this page). All these libraries are automatically installed with the Intel Curie core. Please Read... In this section we have collected some information that is worth reading to use your Arduino 101 board properly. Some behaviours differ from the Uno board and if you come from a former experience with that board, it is worth spending a few minutes reading through these notes. If this is your first board, we suggest you have a look at them anyway. Operating Voltage The microcontroller on the 101 runs at 3.3V but all I/O pins are protected against 5V overvoltage. This means that the output signals will be in the range 0 - 3.3V but you can apply up to 5V on a pin without damaging the board. Applying more than 5V on any pin will damage the board. Serial ports on the 101 The 101 has a number of facilities for communicating with a computer or other microcontrollers. The USB connector exposes as a virtual serial port that can be controlled by writing and reading to the Serial object. Pins 0 /1, instead, expose a Hardware serial port mapped to Serial1 object. Opening and closing the USB Serial port at a baud rate other than 1200bps will not reset the 101. To use the serial monitor, and see what your sketch does from the beginning, you'll need to add few lines of code inside the setup(). This will ensure the Curie module will wait for the serial port to open before executing the sketch: while (!Serial) ; Pressing the Reset button on the 101 causes the microcontroller to reset as well as resetting the USB communication. This interruption means that if the serial monitor is open, it's necessary to close and reopen it to restart the communication. The SoftwareSerial library allows serial communication on any of the 101's digital pins up to 57600 bps. Upload Procedure After a sketch is uploaded to the board, there's a delay of a few seconds before it starts to execute. This happens at powered up and when RESET M button gets pressed. The serial monitor can't be opened during this time, so the user must wait for around 10 seconds before serial communication can start. In order not to miss any serial information that is sent before you open serial monitor, you can write the same line of code as aforementioned inside setup(), which will wait until you open the monitor to start the program: while (!Serial) ; Linux only : some distributions need to be configured to perform the upload. After installing the core, execute sudo ~/.arduino15/packages/Intel/tools/arduino101load/1.6.4+1.18/scripts/create_dfu_udev_rule inside a shell to gain upload permissions. Drivers On Windows, drivers are needed to allow the board communication. These drivers will be installed automatically when adding the core . On MacOS and Linux no driver is needed. For more details on the Arduino 101, see the product page . Note: to ensure optimal performance and protect the board during use, use a third-party plastic enclosure. Use a screw head not greater than 0 .25 inch (6.35mm) in diameter to mount the board in the enclosure. If testing the board on an ungrounded metal surface, a minimum 10mm ( 0 .393 inch) separation should be kept between the metal surface and the board to maint ain antenna performance. The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3. 0 License . Code samples in the guide are released into the public domain.
Getting Started with the Arduino Yún This is a retired product. The Arduino Yún is an Arduino board unlike any other. While programming it is very similar to the Arduino Leonardo and uses the same processor, the Atmel ATmega32U4, it also has an additional processor, an Atheros AR9331, running Linux and the OpenWrt wireless stack. Programming the 32U4 via USB is identical to the Arduino Leonardo . Once you've configured the Yún to connect to your WiFi network, you can program the 32U4 via WiFi as well. Quick Start The Arduino Yún is programmed using the Arduino Software (IDE), our Integrated Development Environment common to all our boards. You should have already it installed on your PC, as explained in the home page of our Getting Started . Installing Drivers for the Yún OSX The first time you plug a Yún into a Mac, the "Keyboard Setup Assistant" will launch. There's nothing to configure with the Yún; you can close this dialogue by clicking the red button in the top left of the window. Windows Windows version of Arduino Software (IDE) already contains the proper drivers. When you installed it you let the operating system install them. Connect your Yún and the drivers will be installed automatically Linux There is no need to install drivers for Ubuntu 10. 0 .4 and later, but make sure port 5353 is not being blocked by a firewall. Open your first sketch Open the LED blink example sketch: File > Examples >01.Basics > Blink . Select your board type and port You'll need to select the entry in the Tools > Board menu that corresponds to your Arduino board. Select the serial device of the board from the Tools | Serial Port menu. This is likely to be COM3 or higher ( COM1 and COM2 are usually reserved for hardware serial ports). To find out, you can disconnect your board and re-open the menu; the entry that disappears should be the Arduino board. Reconnect the board and select that serial port. When your board is properly configured on WiFi, you will find it in the Port list, as in our screenshot. Upload the program Now, simply click the "Upload" button in the environment. Wait a few seconds - you should see the RX and TX leds on the board flashing. If the upload is successful, the message "Done uploading." will appear in the status bar. A few seconds after the upload finishes, you should see the on -board LED start to blink. If it does, congratulations! You've gotten your Arduino Yún up-and-running. If you have problems, please see the troubleshooting suggestions . Get inspired Now that you have set up and programmed your Yún board, you may find inspiration in our Project Hub tutorial platform, or you can dig in deeper with the Bridge library and examples . You can also check out the Yún hardware page for additional technical information. Please Read... Differences from the Arduino Leonardo In addition to the 32U4 chip, the Yún has an additional processor, an Atheros AR9331, which runs a distribution of Linux for embedded systems named OpenWrt-Yun, based on OpenWrt. A full install of Python 2 .7 is included as well. The Yún has a number of different physical characteristics and connectors than the Leonardo. There is an on -board SD slot, Ethernet jack, and a USB-A Host connector. There is no power barrel connector on the Yún; it can be powered from the micro-USB connector. There is no built in 5V regulator. If you power your Yún with more than 5V, you will likely damage it. If you are not powering the Yún from the micro-USB connection, you can apply power to the VIN and 5V pins on the board. If using the VIN pin, you cannot provide more than 5V, it will damage your board. It is recommended to power the Yún from the USB connection whenever possible. The SD, Ethernet, and USB-A connectors are not physically connected to the 32U4 processor, they are connected to the AR9331. The Yún's 32U4 functions in the same way as the Leonardo, except you cannot use Serial1 . It is reserved for communication with the AR9331 processor. The Yún also has a WiFi module built on board, allowing it to connect to a wireless router, or act as an access point. The 32u4, WiFi, and AR9331 processors all have their own reset buttons. There are several status LEDs on the Yún, indicating power, WLAN connection, WAN connection and USB. Additionally pin 13 is connected to one of the status lights. OpenWrt-Yun The Yún runs a distribution of Linux called OpenWrt-Yun, based on OpenWrt . While it's possible to configure the system from the command line, there is a web page that allows you to configure many of the different options available. The interface (called LuCi ) gives you access to most any setting you would need for maint aining the WiFi interface. Accessing the web interface is described below. To install additional software on OpenWrt-Yun, you need to use the the Linux package manager opkg . For more information on the manager and some common commands, see the Yún package manager page . When interfacing with the OpenWrt-Yun system, you have to use a command line, either accessing it through the Arduino's Bridge library, or via SSH. If you are unfamiliar with the command line, you may want to read about some basics about it and some of the programs that are frequently used. Due to continuous improvements and suggestions coming from both the OpenWrt community and the Arduino community, version of OpenWrt-Yun installed on your Yún may be out of date . Please check the upgrade tutorial and be sure you're running the latest version available. Python An installation of Python 2 .7 is included with OpenWrt-Yun, with which you can write applications or scripts. For more on Python, visit the Python 2 .7 documentation pages . If you're getting started with Python for the first time, there are a number of excellent resources on -line. "Learn Python the Hard Way" will cover everything you need to know to get up and running with your own scripts. External storage on the Yún You're discouraged from using the Yún's built-in non-volatile memory, because it has a limited number of writes. You can use external memory like a microSD card or thumb drive for saving data, or your own scripts, web pages, etc. For the Yún to access and store information on these drives through the 32U4, they need to have a directory named arduino in the root of the volume. Web services OpenWrt-Yun uses REST for clients and servers. REST is an acronym for "Representational State Transfer". It is a software architecture that exposes various parts of the Arduino hardware through URLs. By default, the REST API access is password protected. It is possible to change this to access the services without a password. To change this setting, enter the Yún configuration panel. At the bottom of the page, you will see toggles for changing the access. A nice introduction to the concepts behind REST can be found here . The three REST end points recognized by the Yún are: /arduino /data /mailbox The "/arduino" directory doesn't have anything pre-configured. Anything added to the URL after the end point is passed from the webserver to the sketch on the 32U4. You can define your APIs inside the sketch. See the Bridge example to see how this is done to access the pins on the board. "/data" is used to access to the internal key/value storage. The available calls are: /put/KEY/VALUE : stores a value inside the storage /get/KEY : obtains the value of the requested key in JSON /get : obtains the entire storage list in JSON. /delete : deletes the internal storage "mailbox" is used to add messages into a queue called Mailbox. The message queue is stored inside the Linux system and can be read by the Arduino microcontroller. The available REST call is: "/mailbox/message" Resetting the processors (AR9331, WiFi, and 32U4) To restart the AR9331, which reboots OpenWrt-Yun, press the "YÚN RST" reset button that is close to the analog inputs pins and the LEDs of the board. To restart the the 32U4 and restart the currently installed Arduino sketch, tap the button next to the Ethernet port two times . The reset button for WiFi is located next to the USB-A connector. It is labeled "WLAN RST". When you press the button, the WLAN LED will flash. If you move to a different network and can no longer wirelessly access the Yún through its web interface, you can reset the Yún's network configuration by pressing the WiFi reset button (WLAN RST) for longer longer than 5 seconds, but less than 30, the AR9331 processor will reboot. The WiFi configuration will be reset and the Yún will start its own wiFi network Arduino Yún-XXXXXXXXXXXX. Any other modification/configuration will be retained. To reset the OpenWrt-Yun distribution to its default state, press the WiFi reset button (WLAN RST) for at least 30 seconds. The board reverts to the original settings: like just taken out of the box or to the latest update of the OpenWRT image you have reflashed before. Among other things, this removes all installed files and network settings. Resetting the password The webpanel password can be reset and changed. Connect the Arduino Yún to your computer with an USB cable and upload the YunSerialTerminal sketch. It can be found in the Bridge examples in the Arduino IDE. When the Yún boot is complete, open the serial monitor, select New Line character in the dropdown menu and press Enter. Something like this should appear in your serial monitor: Now you have to execute the passwd command to change the password. Type passwd into the serial monitor input and press enter. You will be asked to type the new password, and re-type it to confirm. If you want, you can ignore the weak password error. If both passwords you typed match, the system password will be changed and you will be able to access to the webpanel with the new password. Serial re-enumeration on reset. Since the Yún does not have a dedicated chip to handle serial communication, it means that the serial port is virtual -- it's a software routine, both on your operating system, and on t…
Getting Started with the Arduino MKR WAN 1310 The Arduino MKR WAN 1310 is a board that combines the power of an ATMEL SAMD21 microcontroller and the communications capabilities of the Murata LoRa® module. It is designed to integrate the core's low power-consumption and high performance with the ease-of-use of Arduino's environment, making this board a practical and cost effective solution for makers seeking to add LoRa® connectivity to their projects, with mini mal previous experience in networking. This upgraded version of our MKRWAN board offers better power management and a 2MB Flash memory, accessible through a SPI interface, to store data. The Arduino MKR WAN 1310 is programmed using the Arduino Software (IDE) , our Integrated Development Environment common to all our boards and running both online and offline. For more information on how to get started with the Arduino Software visit the Getting Started page . Please remove the black conductive foam from the MKR board pins before usage. If you don't remove it, the board may behave erratically. Use your Arduino MKR WAN 1310 with the Arduino IoT Cloud This board is compatible with the Arduino IoT Cloud , where you can create IoT applications in a few simple steps. The cloud includes powerful features, such as building dashboards to monitor and control sensor networks, while making sure your data is secure. Getting started is quick and easy, and requires just three simple steps: Create an Arduino Create account here . Download and install the Arduino Create plugin here . Go to Arduino IoT Cloud and start your journey through IoT! Use your Arduino MKR WAN 1310 on the Arduino Web IDE All Arduino boards, including this one, work out-of-the-box on the Arduino Web Editor , you only need to install Arduino Create Agent to get started. The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this simple guide to start coding on the browser and upload your sketches onto your board. Use your Arduino MKR WAN 1310 on the Arduino Desktop IDE If you want to program your MKR WAN 1310 while offline you need to install the Arduino Desktop IDE and add the Atmel SAMD Core to it. This simple procedure is done selecting Tools menu , then Boards and last Boards Manager , as documented in the Arduino Boards Manager page. Here you can search SAMD to find the core. Click on its box and click on the install button. On the bottom bar of the window you can follow the download and install procedure, including the installation of the proper driver, needed by the operating system to use the board. For more information about cores, see the guide on installing additional Arduino cores . Please note that if you already installed the SAMD core, to get the support for this board, the core revision should be at least 1.8.4. The MKRWAN Firmware version that you should have on your board is at least 1.2.0. and we strongly recommend to avoid downgrades lower than 1.2.0. Now that the SAMD Core is installed, you can connect the board to the computer using a standard USB cable. The very first time your computer may go through the new hardware installation process. Select your board type and port From Tools select the Board Arduino MKR WAN 1310 and then the Port that is labeled with the same name. Open your first sketch Go to File on the Arduino Software (IDE) and open the Examples tree; select 01. Basic and then Blink This sketch just flashes the built in LED connected to Digital pin LED_BUILTIN at one second pace for on and off, but it is very useful to practice the loading of a sketch into the Arduino Software (IDE) and the Upload to the connected board. Upload the program Press the second round icon from left on the top bar of the Arduino Software (IDE) or press Ctrl+U or select the menu Sketch and then Upload . The sketch will be compiled and then uploaded. After a few seconds the bottom bar should show Done Uploading . You have successfully set up your MKR WAN 1310 board and uploaded your first sketch. You are ready to move on with our tutorials and projects: choose your next destination below. Tutorials Now that you have set up and programmed your MKR WAN 1310 board, you may find inspiration in our Project Hub tutorial platform. Here a list of tutorials that will help you in making very cool things! Adding more Serial interfaces to SAMD microcontrollers Send and receive data from the LoRaWAN™ network More examples on the following library pages: MKRWAN - Your MKRWAN LoRaWAN™ library reference Scheduler - Manage multiple non-blocking tasks. AudioFrequencyMeter - Sample an audio signal and get its frequency back AudioZero - Play audio files from a SD card. RTC - Real Time Clock to schedule events. I2S - To connect digital audio devices together Please Read... In this section we have collected some information that is worth reading to use your MKR WAN 1310 board properly. Some behaviours differ from the Uno board and if you come from a former experience with that board, it is worth spending a few minutes reading through these notes. If this is your first board, we suggest you have a look at them anyway. Operating Voltage and power management The microcontroller on the MKR WAN 1310 runs at 3.3V. Applying more than 3.3V on any pin will damage the board. Power management is suboptimal when powering the board via USB; it is automatically optimized when the board is battery powered and super optimized when the solder jumper under the battery connector gets cut (in this case 3.3V must be provided externally). The reference library to manage this feature is Arduino Low Power . Accessing the SPI 2MB Flash To access the memory on the board you can use the Serial Flash library developed by Paul Stoffregen, but you should avoid to access it while the radio module s active. To achieve this you should follow a simple procedure. To activate the radio modem you use the LoRamodem.begin(); function and to deactivate it to prepare Flash access you need to reset the module with this function: digitalWrite(LORA_RESET, LOW) . You perform your access to the SPI memory - read or write - enclosing it between SerialFlash.begin() and SerialFlash.end() . It is important to follow this procedure to avoid any access to SPI while there is a radio communication ongoing. Serial ports on the MKR WAN 1310 The MKR WAN 1310 has a number of facilities for communicating with a computer or other microcontrollers. The USB connector exposes as a virtual serial port that can be controlled by writing and reading to the Serial object. Pins 13/14, instead, expose a Hardware serial port mapped to Serial1 object. Opening and closing the USB Serial port at a baud rate other than 1200bps will not reset the board. To use the serial monitor, and see what your sketch does from the beginning, you'll need to add few lines of code inside the setup(). This will ensure the board will wait for the serial port to open before executing the sketch: while (!Serial) ; Pressing the Reset button on the MKR WAN 1310 causes the microcontroller to reset as well as resetting the USB communication. This interruption means that if the serial monitor is open, it's necessary to close and reopen it to restart the communication. Drivers On Windows, drivers are needed to allow the board communication. These drivers will be installed automatically when adding the core . On MacOS and Linux no driver is needed. For more details on the Arduino MKR WAN 1310, see the product page . The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License . Code samples in the guide are released into the public domain.
Guide to the Arduino ADK This is a retired product and the information given could be inaccurate or obsolete. It is supplied AS IS for documentation purposes This guide describe how to connect an Android™ device to an Arduino ADK board ( Mega ADK and USB Host shield ). Furthermore, we have tried to make it as easy as possible by concentrating in the use of Processing instead of Eclipse as the tool of choice for writing the Android Apps. Here you can learn how to connect Arduino to Android™ via the USB cable the phone (or tablet) uses for data transfers as well as for recharging its battery. You might be interested in using Bluetooth® as an alternative to get Arduino and the Android artifact to talk to each other. Phones, Tablets & Connection Strategies Before moving any further, you need to understand which the connection capabilities of your Android™ device are. It depends not only on the hardware configuration of your device, but also on the software you have running on it. It is very hard to trace all the possible Android™ devices with all the existing OS versions and mods. Therefore we are going to concentrate in phones that haven't been rooted and have official updates. This doesn't mean the following explanations couldn't work for your device and we will be more than happy to list your configuration for others to know. The different configurations listed in this table are Accessory Development Kit (ADK) which uses the Open Accessory library which lets Arduino act as the USB Host. The unofficial USB connection between an Arduino board and an Android™ device is built using sockets on top of the Android Debug Bridge (ADB) and may not be as stable as the ADK. USB Host is the standard USB connection where the Android™ device acts as the USB Host. Table 1: Configuration options Android™ OS ADK ADB BT USB HOST OS < 2.2 (pre Froyo) 2.3.3 ≥ OS ≥ 2.2 OS ≥ 2.3.4 (phones) OS ≥ 3.1 (tablets) Running Examples in ADK Mode The examples for ADK Mode for Processing has been developed and tested on the Arduino Mega ADK , but should work for other similar Open Accessory enabled boards as well for. The ADK mode requires the following hardware and software: An Arduino ADK compatible board or shield. Nexus 5, Nexus 7, Samsung Galaxy S5 or any other device supporting Open Accessory mode, most devices today support it. (refer to Table 1) Android™ SDK with all the updates up to the latest version of the APIs Processing 2.2.1 or newer. Arduino 1.0 or newer. the USB-ADK library for Arduino (includes the AndroidAccessory class). Arduino ADK Mode for Processing. Note : Nexus 4 is confirmed that doesn't work with Open Accessory Installing the SDK and Getting Started with Development Installation in Processing There are two ways of installing the ADK Mode in Processing, through the Mode Manager and manually. To install it using Mode Manager in Processing, follow these steps: Open the Mode Menu in the top right corner of your Processing IDE and select "Add Mode...", see Figure 1. Figure 1: Locate the Mode Menu in Processing ID Search for ADK in the textbox and select install, as shown in Figure 2. Figure 2: Find the ADK Mode and select install If the Mode Manager doesn't work for you, you always have the option of installing the mode manually. Follow these steps to install it manually: Download the AdkMode.zip from http://processing.arduino.cc/AdkMode.zip to a known location on your computer Unzip the downloaded file, you should now have a folder called AdkMode Locate your Processing sketchbook. Within it, there should be a folder called modes . Move your AdkMode folder here. Restart Processing if it was open. Installation in Arduino You also need to download and install the Arduino libraries for Open Accessory. Follow these steps: Download the UsbHost.zip file from http://processing.arduino.cc/UsbHost.zip Unzip this file, you should get a folder called USB-ADK Move this folder to your Arduino Sketchbook libraries folder. Restart Arduino if it was open Installing the Android SDK Before you can start working with the ADK Mode you'll need to also install the Android SDK. The Android SDK contains all the bells and whistles that make up an Android application - currently there are 18 different SDK versions available, you only need one of these to develop an application. While the standard Processing Android Mode requires only version 10 (Android version 2.3.3) the ADK Mode requires version 12. This is because Open Accessory was first introduced in version 12 (the big "tablet" version). The attentive reader who have researched Open Accessory already will have noticed that there is a way of getting Open Accessory working with version 10, however it is an add-on library which actually corresponds to version 2.3.4 of Android™. To install the proper Android SDK version, follow these steps: Download the Android SDK For An Existing IDE from http://developer.android.com/sdk/index.html Run the installer, or unzip the archive, depending on your computers operating system. Open the SDK Manager and install Android 3.1, as shown in Figure 3. Figure 3: Install Android 3.1 If you are working on a Windows computer you may need to run the SDK Manager as Administrator depending on where you choose to install the android SDK tools. When you click Install you will be presented with a dialog asking you to confirm License agreements - either read them thoroughly or just choose Accept License and click Install. Working with real Android devices When developing normal Android™ applications you always have the option of working towards an Android™ Emulator rather than a real device. However, there are some things the Emulator can't do, usually these things are related to hardware. Open Accessory works with the standard USB port on your device and changes the way it internally works, the device can take both the Host and the Device roles. This is part of the On-The-Go (OTG) specification released in 2001. All this means that you need to have a real Android device to work with Open Accessory and ADK. Enable Developer Mode on the phone To work with real devices you first need to enable them as development devices, the procedure for enabling a device may vary from one vendor to another. The following instructions are applicable to stock Android™ devices such as the Nexus 5. Open the settings application, see Figure 4. Figure 4: Open settings Select About Phone, as shown in Figure 5. Figure 5: Select About Phone Tap repeatedly on Build number until you receive the information that you are now a developer, see Figure 6. Figure 6: Tap repeatedly on Build number Go back one step and enter Developer Options, inside select the Android Debugging checkbox as shown in Figure 7. Figure 7: Enable Android Debugging (adb) You should now have a device that has ADB debugging enabled over USB. This means that the Android Debug Bridge is open and that you have access to the device (although limited) and can install unsigned applications directly to it from Processing. Installing the Drivers for your Phone Depending on your operating systems you need to perform some different configurations on your computer before you can develop on your device. Windows Download the USB drivers for your device, for more information see the OEM USB page on the Android website. Mac OS Mac users will probably not need to do any configurations at all, just plug your developer enabled device to your computer. Linux Linux users will need to modify their UDEV rules to match the id of the device vendor. Another option, if the UDEV rules do not work is adding the vendor id to the adb_usb.ini file which is located in your ~/.android/ folder. Read more here The Development Process Developing for Open Accessory and ADK is a little bit special, there are a few things you should keep in mind. Installing a Processing app on the Android™ device will open the app, before you connect the Android™ device to your Arduino board you should close the application completely by pressing back. Note : Hitting "Home" on the device does not close the application, it merely pauses it's execution. Since the USB port is disconnected from your development environment you can't expect to get any use from the logcat, however the messages sent to logcat do survive the connections and when you've connected the Android device back to the computer you may read the messages using the terminal command adb -d logcat . Testing the Analog Read example To test the available example/s follow these steps: To test the available example/s follow these steps: Open Processing, and switch to Adk Mode if it's not already enabled. From the File menu, select Examples... There are two categories, the Basics show who to perform the basic operations, Topics contain more complex examples. Expand Basics and select AnalogRead If you scroll through the example you will first see the Processing sketch, at the bottom there will always be the corresponding Arduino example within a multi-line comment Click "Run on Device" (Play). Wait for the application to compile, upload, and launch on your Android™ device Copy the Arduino code to the Arduino IDE, make sure to remove the comments after you've copied it Connect the Arduino Mega ADK (or another ADK compatible board) Click Upload and allow the operation to finish Close the Android™ application by tapping Back on the device Disconnect the USB cord from your computer and connect it to the Arduino Mega ADK, as shown in Figure 8. Figure 8: Connect the Androidapplication device to Arduino If everything worked as expected you should be presented with the dialog shown in Figure 9 Figure 9: The connection was successful, and you may launch the appropriate application) Open Accessory 101 The Open Accessory protocol works by switching the USB port on the Android™ device between Host mode and Device mode, this enabled the Android™ phone to connect to both USB Accessories and USB Hosts. When the phone detect that an Open Acc…
Getting started with the Arduino Nano 33 BLE Arduino Nano 33 BLE board has been designed to offer a power savvy and cost effective solution for makers seeking to have Bluetooth® Low Energy connectivity in their projects. it is based on a NINA B306 module , that hosts a Nordic nRF52480 that contains a Cortex M4F microcontroller. The Nano 33 BLE also contains a LSM9DS1 9 axis IMU. Learn how to set up the programming environment and get the hardware up and running, ready for your projects, in minutes. The Arduino Nano 33 BLE is programmed using the Arduino Software (IDE) , our Integrated Development Environment common to all our boards and running both online and offline. For more information on how to get started with the Arduino Software visit the Getting Started page . Use your Arduino Nano 33 BLE on the Arduino Web IDE All Arduino boards, including this one, work out-of-the-box on the Arduino Web Editor , you only need to install Arduino Create Agent to get started. The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this simple guide to start coding on the browser and upload your sketches onto your board. Use your Arduino Nano 33 BLE on the Arduino Desktop IDE If you want to program your Arduino Nano 33 BLE while offline you need to install the Arduino Desktop IDE and add the Arduino Mbed OS Core to it. This simple procedure is done selecting Tools menu , then Boards and last Boards Manager , as documented in the Arduino Boards Manager page. NOTE: this core is made of many files and the installation process may require a few minutes, please be patient while the process is executed and it is normal that the progress bar stays for a long time on the same spot. Installing Drivers for the Arduino Nano 33 BLE With the Mbed OS core installed, you now proceed with the driver installation. OSX No driver installation is necessary on OSX. Depending on the version of the OS you're running, you may get a dialog box asking you if you wish to open the "Network Preferences". Click the "Network Preferences..." button, then click "Apply". The Arduino Nano 33 BLE will show up as "Not Configured", but it is still working. You can quit the System Preferences. Windows (tested on 7, 8 and 10) If you properly installed the Mbed OS Core, just connect the Arduino Nano 33 BLE to your computer with a USB cable. Windows should initiate its driver installation process once the board is plugged in. Linux No driver installation is necessary for Linux. Note for Raspberry Pi users: the Linux Arm version of IDE with Mbed OS core 1.1.2 may show an error while compiling for this board. We are aware of the issue and we are updating the toolchain. Open your first sketch Open the LED blink example sketch: File > Examples >01.Basics > Blink . Select your board type and port You'll need to select the entry in the Tools > Board menu that corresponds to your Arduino board. Select the serial device of the board from the Tools | Serial Port menu. This is likely to be COM2 or higher ( COM1 is usually reserved for hardware serial ports). To find out, you can disconnect your board and re-open the menu; the entry that disappears should be the Arduino board. Reconnect the board and select that serial port. Upload the program Now, simply click the "Upload" button in the environment. Wait a few seconds - you should see the orange LED on the board slowly fade in and out. If the upload is successful, the message "Done uploading." will appear in the status bar. NOTE: If the board does not enter the upload mode, please do a double press on the reset button before the upload process is initiated; the orange LED should slowly fade in and out to show that the board is waiting for the upload. A few seconds after the upload finishes, you should see the on-board LED start to blink (in orange). If it does, congratulations! You've gotten your Arduino Nano 33 BLE up-and-running. If you have problems, please see the troubleshooting suggestions . Learn more on the Desktop IDE See this tutorial for a generic guide on the Arduino IDE with a few more infos on the Preferences, the Board Manager, and the Library Manager. Tutorials Now that you have set up and programmed your Arduino Nano 33 BLE board, you may find inspiration in our Project Hub tutorial platform or have a look to the tutorial pages that explain how to use the various features of your board. Please Read... The microcontroller on the Arduino Nano 33 BLE runs at 3.3V, which means that you must never apply more than 3.3V to its Digital and Analog pins. Care must be taken when connecting sensors and actuators to assure that this limit of 3.3V is never exceeded. Connecting higher voltage signals, like the 5V commonly used with the other Arduino boards, will damage the Arduino Nano 33 BLE. To avoid such risk with existing projects, where you should be able to pull out a Nano and replace it with the new Nano 33 BLE, we have the 5V pin on the header, positioned between RST and A7 that is not connected as default factory setting. This means that if you have a design that takes 5V from that pin, it won't work immediately, as a precaution we put in place to draw your attention to the 3.3V compliance on digital and analog inputs. 5V on that pin is available only when two conditions are met: you make a solder bridge on the two pads marked as VUSB and you power the Nano 33 BLE through the USB port. If you power the board from the VIN pin, you won't get any regulated 5V and therefore even if you do the solder bridge, nothing will come out of that 5V pin. The 3.3V, on the other hand, is always available and supports enough current to drive your sensors. Please make your designs so that sensors and actuators are driven with 3.3V and work with 3.3V digital IO levels. 5V is now an option for many modules and 3.3V is becoming the standard voltage for electronic ICs. Features Serial ports on the Arduino Nano 33 BLE The USB connector of the board is directly connected to the native USB of the NINA B306 module. This routing enables you to use the Arduino Nano 33 BLE Sense as a client USB peripheral (acting as a mouse or a keyboard connected to the computer) or as a USB host device so that devices like a mouse, keyboard, or an Android phone can be connected to the Arduino Nano 33 BLE. This port can also be used as a virtual serial port using the Serial object in the Arduino programming language. The RX0 and TX1 pins are a second serial port available as Serial1 . ADC and PWM resolutions The Arduino Nano 33 BLE has the ability to change its analog read resolution: it defaults to 10-bits and it can support up to 12-bit ADC. PWM has 8-bit resolution. See the analog read resolution pages for more information on how to change the ADC resolution. IMU on the Arduino Nano 33 BLE The IMU is a LSM9DS1 , it is a 3-axis accelerometer, 3-axis gyroscope and 3-axis magnetometer. This chip, made by ST Microelectronics, is a standard component supported by our library ArduinoLSM9DS1 . The library contains, as usual, the example sketches to use the sensor. For more details on the Arduino Nano 33 BLE, see the product page . The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License . Code samples in the guide are released into the public domain.
Arduino Software Release Notes ARDUINO 1.8.19 2021.12.20 SECURITY HOTFIX RELEASE ide Removed log4j from IDE. Fix CVE-2021-45105, CVE-2021-45046 ARDUINO 1.8.18 2021.12.14 SECURITY HOTFIX RELEASE ide Upgrade log4j to 2.16.0 - Extra hardening for CVE-2021-44228 ARDUINO 1.8.17 (not released superseded by 1.8.18) ide Upgrade log4j to 2.15.0 - CVE-2021-44228 (thanks @rhowe) ARDUINO 1.8.16 2021.09.06 ide Removed the very outdated off-line documentation. Do not crash if a malformed boards index URL is entered in preferences. Fixed font-resizing problem with multiple tabs open. Updated FTDI drivers to version 2.12.36.4 wifi-firmware Added latest firmwares (up to version 1.4.8) for NINA-based boards ARDUINO 1.8.15 2021.05.13 HOTFIX: Fixed regression in library discovery (failing to compile bundled libs, like SD or Ethernet, on some platforms) ARDUINO 1.8.14 2021.05.12 ide Fix status bar custom board preferences disappearing (thanks @magedrifaat) Boards Manager bugfix: sometimes the "Install" button appeared instead of "Update" after entering a search term. Libraries/Boards Manager: the Type and Category filters are kept after install/uninstall. Added 'deprecated' label support in Boards Manager, platforms marked as deprecated are shown at the bottom of the list. Serial Plotter: line endings dropdown menu now comply with the global preference settings. (thanks @sceniclife) Libraries Manager: Maintainer is displayed instead of the Author. Firmware Updater: Added new firmwares and support for Nano RP2040 Connect. Boards Manager: cached 3rd party package_index.json are no more deleted if the origin URL is removed from preferences, this allows other tools (like arduino-cli), that may have different URLs configuration, to work properly. The board configuration submenus are now scrollable. New shortcut: Shift+click on Serial Monitor button will open the Serial Plotter. (thanks @n-elia) Fixed NPE if no board is selected. (thanks @matthijskooijman) arduino-builder Improved lib detection: check for matching name in library.properties Fix compile if invalid build.options.json is found (thanks @d-a-v) Improved error messages for .cpp/.h file in the sketch ARDUINO 1.8.13 2020.06.16 ide Fixed crash on MacOSX >=10.15 with multiple monitor setups. The boards in the boards list in the "Tools" menu are now grouped by platform. This should make the selection easier when there are lots of boards loaded in the IDE. (thanks @matthijskooijman) Fixed save of proxy username/password settings in "manual proxy" section. In "Tools / Programmers" menu only shows programmers related to the currently selected board. (thanks @matthijskooijman) Fixed: sketch window out-of-display if the IDE is restarted after removing an external monitor. Allow baudrate/config change when the Serial Monitor/Plotter is disabled. (thanks @matthijskooijman) Updated jmdns to 3.5.5. Should improve network board detection. Optimized libraries scanning during startup. (thanks @ricardojlrufino) Better vertical centering of file names in tabs. (thanks @ricardojlrufino) Better console rendering of progress bar during upload. (thanks @matthijskooijman) arduino-builder FIX REGRESSION: Fixed precompiled libraries containing "wrapper" code that has to be compiled together with the precompiled part. Removed automatic '--relax' for compiles on Atmega2560 MCU Fixed skethbook+bootloader hex merger when the bootloader is in .bin format. Fixed relative path errors when traversing different partitions (in particular on macosx for larger sketches) Added #define variable during lib discovery phase Improved progress report from compile core Updated AVR core to 1.8.3: Wire class now supports timeout Upgraded avr-gcc to 7.3.0-atmel3.6.1-arduino7 ARDUINO 1.8.12 2020.02.13 ide Reverted the bundled Java JRE to the latest freely redistributable Oracle JRE for all platforms except: macOS (due to notarization) aarch64 (due to missing graphical support) Switching to AdoptJDK demonstrated to be more challenging than expected, bringing in some corner case bugs that were not being caught by our testing procedures: https://github.com/arduino/Arduino/labels/OpenJDK To guarantee the best user experience we decided to revert to the latest working JRE until all the issues are resolved. Improved visualization of compiler errors (@matthijskooijman) Fixed: "Comparison method violates its original contract" error in library manager Serial monitor is no more cleared during upload, so it can be copy/pasted (@PaulStoffregen) arduino-builder FIX REGRESSION: library priority selection for bundled libraries (like SD or Ethernet) FIX REGRESSION: use AVR core installed via Board Manager (when present) instead of the one bundled in the IDE Improved precompiled libraries handling FIX: paths with spaces are now correctly printed in compiler output ARDUINO 1.8.11 2020.01.27 ide FIX: Serial plotter do not hang if empty lines are received A lot of accessibility improvements in Libs and Board managers GUI for screen readers (thanks @joew46167) Sligtly improved support for themes in Libs and Board managers (thanks @matthijskooijman) Serial plotter: added serial input text field (thanks @cactorium) MacOSX: support for notarization (thanks @PaulStoffregen for the support) Fix wrong bracket match rectangle on auto format (thanks @magedrifaat) Pluggable discoveries: runtime.platform.path and runtime.hardware.path are now available as variables (thanks @PaulStoffregen) arduino-builder FIX: missed library-detection cache (forcing lib detection on each build) FIX: Windows: the build folder may reside on a different partition FIX: Segfault in arduino-builder with -dump-prefs if no sketch is specified FIX: Allow loading of global user-define platform.txt FIX: Fixed nil pointer exception on some rare case with multiple libs FIX: Print "multiple libraries found for header.h" message only when it really happens FIX: Fixed library priorities on some rare circumstances hardware updated AVR core to 1.8.2 wifi-updater updated to 0.10.10 ARDUINO 1.8.10 2019.09.13 ide Live font resize now applies to console and serial monitor too @Pieter12345 Make it easier to build the IDE from sources on Windows @Pieter12345 Smaller Preference window, suitable for supersmall screens Cache downloaded json and only retrieve them when changed @mattiabertorello Suspend serial monitor if the board gets disconnected abruptly Libraries can now declare dependencies that will be proposed during lib installation SerialPlotter: allow adding labels @chromhelm Support tar.xz archives for Board Manager @vowstar SerialMonitor: add command history (via arrow keys) @Pieter12345 Accessibility: add checkbox to enable accessibility in Preferences @joew46167. This mode enables a plethora of improvements on voiceover and keyboard navigation. eg. links become accessible buttons, lists are scrollable via arrow keys without much pain wifi-updater Add latest NINA firmware hardware Bundle new avr toolchain (fixes lto issue with 5.4.0 and 64bit compatibility with upcoming macOS Catalina) arduino-buidler update to 1.4.7 (based on the new arduino-cli) ARDUINO 1.8.9 2019.03.15 ide New target! ARM64 boards are now fully supported (Nvidia Jetson and RaspberryPi3 with 64bit operating system) Fix UTF8 related bugs on Windows Fixed: can now compile again using OpenJDK (removed dependency on JavaFx) Fixed: only use touchBar on OSX 10.12 or higher PluggableDiscovery: easily add your own discoverer and make it available in Boards/Port menu (thanks @PaulStoffregen for the idea and the initial implementation) LibManager: reduce slowdown when searching Fixed: ensure a sketch line is visible when it contains an error and must be highlighted Linux: the installer now tries to install a symlink is /usr/local/bin (this doesn't affect usual non-systemwide installation) Thanks @2E0PGS wifi-updater Fix firmware upgrade not being available for 3rd party WINC boards arduino-builder Use lexicographic distance as last chance to spot the right library (if every other tecnique failed) Fix some prototypes being inserted in the middle of a function ARDUINO 1.8.8 2018.12.07 ide Fixed: command line parsing of version parameters when installing cores/libraries Platform indexes are now downloaded using https Fixed: on some newer linux distrubitions, NPE when loading GTK look-and-feel without libgtk2 installed MacOSX: added touch bar support MacOSX: do not exit app after closing last window Fixed: serial monitor timestamps not always printed. Thanks @nitram509 Kill active programmer if still alive after closing last IDE window Fixed: "Export compiled binary" now works also with unsaved sketches Improved automatic port re-selection after upload Added scroller to "INCOMPATIBLE" examples menu wifi-firmware Added firmware upgrade for NINA-based boards ARDUINO 1.8.7 2018.09.11 (bugfix service release) ide Fixed: IDE doesn't start if library_index.json is corruped. Fixed: IDE doesn't start if a library with invalid version is found. Fixed: Rare build errors in very complex sketches (like Marlin firmware). Fixed: Better dialog explaining that MacOSX 10.8 is now required. Thanks @PaulStoffregen Fixed: Slow "File" and "Tools" menus in MacOSX Fixed: Weird Board Manager behaviour if AVR core is downgraded to a version earlier than 1.6.22 Improved first-use usability if the user don't select the serial port. Thanks @PaulStoffregen Custom "Tools" menu now keeps the order as defined in boards.txt. core AVR: Fixed EEPROM warnings. Thanks @bxparks AVR: Treat "narrowing conversion" as warning, not error. This will make some libraries to compile again. Thanks @PaulStoffregen ARDUINO 1.8.6 2018.08.23 ide Updated arduino-builder to 1.4.0: parallel build (improve compile speed) better reuse of already compiled files Windows: fixed build for sketch stored under OneDrive cloud folders Added translations for library types. Thanks @ReAlUA Added scroller in programmers menu. Added "accelerator" in scrollable menu, press "a" key while scrolling Keep "Board Manager" menu item a…
Getting started with the Arduino Tian This is a retired product. The Arduino Tian is based on the Atheros AR9342 connected to an Atmel Cortex® M0+ 32-bit microcontroller plus all connectivity: Ethernet, Wi-Fi, Bluetooth®. The Arduino Tian is programmed using the Arduino Software (IDE) , our Integrated Development Environment common to all our boards and running both online and offline. For more information on how to get started with the Arduino Software visit the Getting Started page . Use your Arduino Tian on the Arduino Web IDE All Arduino boards, including this one, work out-of-the-box on the Arduino Web Editor , you only need to install Arduino Create Agent to get started. The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this simple guide to start coding on the browser and upload your sketches onto your board. Use your Arduino Tian on the Arduino Desktop IDE If you want to program your Arduino Tian while offline you need to install the Arduino Desktop IDE and add the Atmel SAMD Core to it. This simple procedure is done selecting Tools menu , then Boards and last Boards Manager , as documented in the Arduino Boards Manager page. Installing Drivers for the Arduino Tian Arduino Tian uses the CP201x driver and you must install it on the computer before you connect the board. You find the drivers for your OS at this link . Please download the package for your OS and proceed as described below. OSX You downloaded a ZIP file that contains an installable package. Please extract it and proceed launching the extracted package. The installation procedure is assisted and you will end up with a Virtual COM port available every time you connect the Tian board and that is the one to use in the Arduino Software (IDE) to program the board. Windows (tested on 7, 8 and 10) Run the downloaded exe file and install the Virtual COM port driver. When you connect the Tian board, a new COM port will be available and that is the one to use in the Arduino Software (IDE) to program the board. Linux The Linux package is downloaded as a bin file and when installed creates a Virtual COM port every time the TIAN board is connected to your pc. That is the one to use in the Arduino Software (IDE) to program the board. Open your first sketch Open the LED blink example sketch: File > Examples >01.Basics > Blink . Select your board type and port You'll need to select the entry in the Tools > Board menu that corresponds to your Arduino board. Select the serial device of the board from the Tools | Serial Port menu. This is likely to be COM3 or higher ( COM1 and COM2 are usually reserved for hardware serial ports). To find out, you can disconnect your board and re-open the menu; the entry that disappears should be the Arduino board. Reconnect the board and select that serial port. Upload the program Now, simply click the "Upload" button in the environment. Wait a few seconds - you should see the RX and TX leds on the board flashing. If the upload is successful, the message "Done uploading." will appear in the status bar. A few seconds after the upload finishes, you should see the on-board LED start to blink (in orange). If it does, congratulations! You've gotten your Arduino Tian up-and-running. If you have problems, please see the troubleshooting suggestions . Tutorials Now that you have set up and programmed your Arduino Tian board, you may find inspiration in our Project Hub tutorial platform Please Read... Configuration Guide This guide will show, step by step, how to configure, the first time, your Arduino Tian. The board must be powered with one power supply that provides output at least 2A. For connecting it to your computer you may need to use a Y-Cable (USB Micro-B to Standard Male A). Now that the board is powered, after about twenty seconds, search your Arduino board between the WiFi networks available on your PC. Note: If you would reset the Arduino's Wifi you must press the wlan reset button (WLAN RST) for 5-30 seconds. Connect your computer to the board hotspot. Open a web browser and write the follow address http://arduino.local or the ip address http://192.168.240.1in the address bar. After a few moments, a web page will appear asking for a password. Enter default password: arduino and click Login button. Now, you are in Arduino OS, and it will start the Arduino Configuration wizard that it will help you, step by step, to configure your board. Give an unique Name, choose your Password (8 or more characters) and select your Timezone/country. It is recommended to set these options as it may help connecting to local WiFi networks. Setting the local timezone also selects the country's regulatory domain. If you leave this field blank, the system retains the default arduino password. When you finish then click on Next. Select your Wireless Network and type the network password. Click Next to continue the configuration. You will see toggles for changing the access of Reset API, 1 ON - 0 OFF. REST is an acronym for "Representational State Transfer". It is a software architecture that exposes various parts of the Arduino hardware through URLs. By default, the REST API access is password protected. It is possible to change this to access the services without a password, clicking on Open. After that you have completed click "Save". Wait the end operation. Now connect your PC to the same network of Tian and access to your board typing the hostname.local/ oripaddress on the bar: If you can reach your board then you have correctly configured it: Differences between Yun and Tian The Arduino Tian is a new board that it has, as Arduino Yun, a WiFi module and a MIPS Linux. The main differences between the two boards are here summarized: The Tian use the ARM Microcontroller SAMD21G18 (Operating voltage 3.3V, SRAM 32KB and Flash memory 256KB) while the Yun use the AVR Microcontroller ATmega 32u4 (Operating voltage 5, SRAM 2.5KB and Flash memory 32KB). Also the MIPS are different. The Tian mounts the Atheros AR9342 to 560 MHz while the Yun uses the Atheros AR9331 to 400 MHz. Other differences are that the Tian board has Bluethoot 4.0 technology and it has 4GB eMMC memory. Also the Wifi module is different. The Arduino Tian has IEEE802.11n 2x2 2.4/5 GHz dualband. So as the Arduino Yun also Tian has three reset buttons one for microcontroller, one for WiFi, and one for MIPS processor. There are eight status LEDs on the Tian that indicate:TX UART SAMD21, RX UART SAMD21, POWER, WLAN, USB, LED ACT, LED 10/100 and LED 13, as shown in the picture. OpenWrtLininoOS LininoOS is based on OpenWRT distribution with about 3000 package built and available. LininoOS provides a fully writable filesystem with package management with GPG signature. Integrated with LininoIO it is a complete linux system for IoT space. LininoOS features many innovations for your Arduino Tian. LininoIO is a software framework able to integrate microcontroller features inside the microprocessor environment. You can simply write your application using Node.js, Python, Bash, etc., on linux side using LininoOS to control completely the board and all the devices attacched. Node.js with Ideino Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. Ideino is an embedded editor to write and debug your node.js application. All Joyn supported, which is an open source project which provides a universal software framework and core set of system services that enable interoperability among connected products and software applications to create dynamic proximal networks. Python An installation of Python 2.7 is included with LininoOS, which you can use to write applications or scripts. For more on Python, visit the Python 2.7 documentation pages . Install additional software on Linux The Tian comes with several pieces of software pre-installed on LininoOS, including "curl" and "python". You may want to install other software on the Tian. On Linux systems, additional software can be installed using a tool called the "opkg". You can find pre-compiled packages for LininoOS on their latest version, here . Resetting the processors (AR9342, WiFi, and SAMD21) To restart the AR9342, which reboots LininoOS, press the "AR9342 Reset" button. To restart the SAMD21 and restart the currently installed Arduino sketch, tap the button "SAMD21 Reset" one times. To reset Wifi there is a button and when you press the "WiFi Reset" button, the WLAN LED will flash. If you move to a different network and can no longer wirelessly access the Tian through its web interface, you can reset the Tian's network configuration by pressing the WiFi reset button (WLAN RST) for longer longer than 5 seconds, but less than 30, the AR9331 processor will reboot. The WiFi configuration will be reset and the Industrial 101 will start its own WiFi network Linino-XXXXXXXXXXXX. Any other modification/configuration will be retained. To reset the LininoOS distribution to its default state, press the WiFi reset button (WLAN RST) for at least 30 seconds. The board reverts to the original settings: like just taken out of the box or to the latest update of the LininoOS image you have reflashed before. Among other things, this removes all installed files and network settings. Serial re-enumeration on reset. Since the Tian does not have a dedicated chip to handle serial communication, it means that the serial port is virtual - it's a software routine, both on your operating system, and on the board itself. Just as your computer creates an instance of the serial port driver when you plug in any Arduino, the SAMD21 creates a serial instance whenever it runs its bootloader. The board is an instance of USB's Connected Device Class (CDC…
Getting started with the Arduino Uno WiFi Rev2 The Arduino Uno WiFi Rev2 is an Arduino Uno with an integrated WiFi module. The board is based on the Microchip MEGA4809 with an ESP32 u-blox NINA-W13 WiFi Module integrated. The NINA-W13 Module is a self contained SoC with integrated TCP/IP protocol stack that can give access to your WiFi network (or the device can act as an access point). The Arduino Uno WiFi Rev2 is programmed using the Arduino Software (IDE) , our Integrated Development Environment common to all our boards and running both online and offline. For more information on how to get started with the Arduino Software visit the Getting Started page . Use your Arduino Uno WiFi Rev2 on the Arduino Web IDE All Arduino boards, including this one, work out-of-the-box on the Arduino Web Editor , you only need to install Arduino Create Agent to get started. The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this simple guide to start coding on the browser and upload your sketches onto your board. Use your Arduino Uno WiFi Rev2 on the Arduino Desktop IDE If you want to program your Arduino Uno WiFi Rev2 while offline you need to install the Arduino Desktop IDE . Full instructions on how to install it can be found in our Getting Started page . You will need to add the Arduino megaAVR Core to the Arduino IDE. This simple procedure is done selecting Tools menu , then Boards and last Boards Manager , as documented in the Arduino Boards Manager page. Installing Drivers for the Uno WiFi macOS No drivers are needed for the Arduino UNO WiFi Rev2 on macOS. Windows (tested on XP, 7, Vista and 10) At this point of this Getting Started guide you already have installed the drivers together with the Arduino Software (IDE) and the board will be recognized automatically. Linux There is no need to install drivers for Ubuntu 10.0.4 and later, but make sure port 5353 is not being blocked by a firewall. Users with Linux need to run this code in the terminal: ~/.arduino15/packages/arduino/hardware/megaavr/1.8.1/scripts/create_dfu_udev_rule You need to be admin on the computer to do so. Open your first sketch Open the LED blink example sketch: File > Examples >01.Basics > Blink . Select your board type and port You'll need to select the entry in the Tools > Board menu that corresponds to your Arduino Uno WiFi Rev2 board. Select the serial device of the board from the Tools | Serial Port menu. This is likely to be COM3 or higher ( COM1 and COM2 are usually reserved for hardware serial ports). To find out, you can disconnect your board and re-open the menu; the entry that disappears should be the Arduino Uno WiFi Rev2 board. Reconnect the board and select that serial port. Upload the program Now, simply click the "Upload" button in the environment. Wait a few seconds - you should see the green progress bar on the right of the status bar. If the upload is successful, the message "Done uploading." will appear on the left in the status bar. A few seconds after the upload finishes, you should see the on-board LED start to blink. If it does, congratulations! You've gotten your Uno WiFi board up-and-running for the USB programming. If you have problems, please see the troubleshooting suggestions . Tutorials Now that you have set up and programmed your Uno WiFi board, you may find inspiration in our Project Hub tutorial platform, or have a look to the tutorial pages that explain how to use the various features of your board. We suggest that you visit the WiFi Nina Library page that explains the network functions of this board. Please Read... This board uses the new Microchip MEGA4809 microcontroller that has a different memory layout compared to the usual ATmega 328P. You now have 48K of Flash memory, 6K of RAM and 256 bytes of EEPROM, therefore you have more Flash and more memory than the Arduino UNO (16K Flash and 2K RAM). The programming of the MEGA4809 happens through an ATmega 32U4 programmed with the mDBG code and creates a virtual COM port when connected to a PC. Serial ports The Arduino Uno WiFi Rev. 2 has 3 hardware serial ports. Serial is connected to the USB interface, Serial1 is connected to Pin 0 (RX) and 1 (TX) , Serial 2 is connected to the u-blox NINA-W13 module. This allows the usage of pins 0 and 1 without issues: on the original Arduino UNO, the usage of Pins 0 and 1 disrupts the sketch upload. SPI The SPI interface is available on the ICSP connector with the usual layout for MISO, MOSI, SCK and CS. The IMU and the WiFi module are connected to the SPI bus and have individuale and dedicated pins for Chip Select (CS) I2C The I2C interface is available on the SDA and SCL pins. Unlike the classic Arduino Uno, these pins are not alternatives to pins A4 and A5. This means you are still free to use the Uno WiFi Rev2's A4 and A5 for anything you like when an I2C device is connected to SDA and SCL. Analog The new core has 5 PWM pins and the pin 11 doesn't support PWM. The resolution of the 6 A/D pins is the usual, with 10 bits and values from 0 to 1023. RGB LED Close to the Nina module and the ICSP connector there is a square RGB SMD LED. This LED is directly connected to the NINA-W13 WiFi module and it is driven by the module itself. It will be used for future applications and developments. Integrated IMU On the SPI bus, with a dedicated CS connection (pin D30 or SPIIMU_SS) and a dedicated interrupt pin (SPIIMU_INT), the Arduino UNO WiFi Rev.2 has a LSM6DS IMU with 3-axis accelerometer and 3-axis gyroscope. This chip, made by ST Microelectronics, is a standard component that you can use with our own library Arduino_LSM6DS3 . To get the library, you can use our Library Manager available in the Arduino Software (IDE) . The library contains two examples to show you how to read acceleration and rotational speed. Interrupts The new MEGA4809 microcontroller allows you to attach any digital pin to an interrupt, therefore you may have as many Interrupt Service Routines (ISR) as the available digital pins. You still define the interrupts with the usual function attachInterrupt(digitalPinToInterrupt(pin), ISR, mode); . Please refer to the attachInterrupt() page for further details. Note: the WiFi antenna built in in the U-blox NINA-W13 module is made for embedded products and should NOT be touched. Applying pressure or force on it could cause damage. Be very careful when you detach shields on this board because you may pull the WiFi antenna. The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License . Code samples in the guide are released into the public domain.
Getting Started with the Arduino Robot This is a retired product. With the Arduino Robot, you can learn about electronics, mechanics, and software. It is a tiny computer on wheels. It comes with a number of of project examples you can easily replicate, and it is a powerful robotics platform that you can hack to perform all sorts of tasks. The robot comes with a large number of inputs; two potentiometers, five buttons, a digital compass, five floor sensors, and an SD card reader. It also has a speaker, two motors, and a color screen as outputs. You can control all these sensors and actuators through the Robot library . There are two different boards on the Robot: the Control Board (top) and the Motor Board (bottom). If you're just getting started with electronics and programming, you should work with the Control Board. As you become more experienced, you may want to tinker with the Motor Board. Robot Control board Robot Motor Board Setting up the Robot When you first open the robot, you'll need to set up a pair of things before it is ready to roll. First, you'll need to insert the SD card into the slot on the backside of the TFT screen, and then insert the screen into the socket on the control board of the robot. The screen should be oriented so that the blue text with the text "SD Card" is close to the buttons and speaker. Once that's in place, you'll need to attach the protective cover for the botom board. This will help prevent any objects on the ground from damaging the motor board. Attach the protective covering to the underside of the robot as shown below. Content on the SD card The SD card is used to store information for the robot to read. It comes preloaded with images and sound files used in the Explore examples. Once comfortable with the robot's functionality, you should be able to add your own files. If you ever accidentally remove files used by the explore sketches, you can copy them over from the SDcontent directory found in the robot library. Alternatively you can download the files here . Connecting the robot to your computer Each board on the robot has a microcontroller, which is programmed independently of the other. It is recommended that you should only program the control board (the top board) until you are familiar with the robot's functionality. The motor board (the bottom board) has a stock firmware that fulfills most general purpose applications. Connect the control board to your computer with a USB cable. After you have connected the board, the green LED labelled as PWR on the Control Board will be on. LED1 beneath it will flash a few times. On the Motor Board, the red LEDs labelled as LED1 to LED5 (opposite side to the power switch) should be on as well. If the LEDs on either board do not turn on, check if the flat 10-pin communication cable next to the power switch is connected to both boards. Installing the drivers OSX The first time you plug a robot into a computer running OSX, the "Keyboard Setup Assistant" will launch. There's nothing to configure with the robot, so you can close this dialogue by clicking the red button in the top left of the window. Windows The following instructions are for Windows 7. They are valid also for Windows XP, with small differences in the dialog windows. 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 Robot listing. Right click and choose Update driver . At the next screen, choose "Browse my computer for driver software", and click Next . Click the Browse... button. Another dialog appears: navigate to the folder with the Arduino software that you just downloaded. Select the drivers folder an click OK , then click Next . You will receive a notification that the board has not passed Windows Logo testing. Click on the button Continue Anyway . After a few moments, a window will tell you the wizard has finished installing software for Arduino Robot. Press the Close button. Linux There is no need to install drivers for Linux. (Tested with Ubuntu 12.04) Hello User! The Arduino Robot comes with a preloaded application that will ask for your name, what you want to name the robot, and where you are located. Look at the screen on the robot for information on how to input your information using the buttons and potentiometer. You can power the robot by with 4 AAA batteries, or connect a USB cable to either the motor or control board. Once you have gone through the setup process with the robot, you can start writing your own programs to control it. Uploading a test sketch To program the robot, connect the Control Board to your computer via USB. Open the Arduino IDE, and load the sketch located in File > Examples > Robot_Control > learn > MotorTest. You need to tell the IDE which Arduino board you are targeting with your software, so open the Tools > Board menu and choose Arduino Robot Control . The Arduino IDE must know which of your USB ports the robot is connected to. The Tools > Serial menu lists the available ports. if only one item is shown, click on that one. if two or more are shown, you can disconnect the Control Board and re-open the menu; the entry that disappears should be the robot. Reconnect the board and select that serial port. Click the "Upload" button in the top left of the IDE window. Wait a few seconds - you should see the RX and TX leds on the board flashing. If the upload is successful, the message "Done uploading." will appear in the status bar of the software. Once this appears, you can disconnect the robot from the USB cable With batteries in the robot, turn on the power switch and put it on the ground. The robot should show you a few basic moves. Congratulations! You've gotten the robot up and running. If the robot is not moving, turn the power switch off. Connect the motor board to the computer with a USB cable. Load the File > Examples > Robot_Motor > Robot_Motor_Core sketch in the IDE, and select Arduino Robot Motor from the Boards menu. Upload this sketch, disconnect from the computer and try turning it on again. Note: If no Serial port shows up after you plug in the robot, and restarting the IDE/unplug-replug the robot does not help, follow the steps below: Open a very simple sketch, like Blink or BareMinimum Press the upload button When the status bar shows "Uploading...", double press the reset button on the Control Board The Serial port should appear as normally. Moving the Robot This sketch moves the robot back and forth repeatedly. Whenever you're writing code for the robot, make sure to include at the beginning of the sketch. This imports the necessary libraries to control the robot. There's no need to initialize the Robot object. To get the wheels to move, call Robot.motorsWrite() . motorsWrite() requires 2 arguments, the speed of the left motor, and the speed of the right motor. These values range from -255 to 255, where -255 is full reverse, and 255 is full speed forward. If you pass a value of 0, the motor will stop spinning the wheel. Once you've uploaded the sketch, unplug the USB cable for the robot. Whenever the USB is connected, the robot's motors are disengaged. Turn on the power and watch it move around! Read the buttons You'll be writing a sketch that prints the button presses to the screen. First, you need to include the Robot library. In setup() , start the robot and the screen. In loop() , every 100ms, read the state of the buttons. If one is being pressed, write the name to the screen. In the explore folder of the robot examples, there is a sketch called Logo , which incorporates this example with the robot movement from above. Change the motor speed with the potentiometer This lets you control the speed at which the robot moves in a straight line. By turning the knob and mapping the values to -255 to 255, you will set the speed and direction (forward or backwards) of the robot. First, you need to include the Robot library. In setup() , you must call Robot.begin() to initialize the robot's functions. Also call Robot.beginTFT() to initialize the screen. In loop() , read the value of the potentiometer with Robot.knobRead() . Map its value (a number between 0 and 1023) to -255 to 255. Print this value to the screen, and use it to change the speed of the motors. The robot's motor is disengaged when plugged in via USB. After programming the robot, unplug the USB cable and add batteries. Turn on the power switch and watch the robot move. Catch the robot, and change the knob to change its speed. Making some noise The robot has two different means of producing sounds. There's simple beeping, but the robot can also create more complex sounds by reading sequenced music off the SD card. In this example you'll start with the beeping. To learn about the more complex playback, see the Melody example in the learn folder. In setup() , you must call Robot.begin() to initialize the robot's functions. Also call Robot.beginSpeaker() to initialize the speaker. In loop() , you can call Robot.beep() to create a beep. There are three different kinds of beeping; a simple beep, a double beep, and a long beep. Next steps There are many things you can do with the robot. The few examples on this page don't do it justice. To see some more complex examples that of what the robot can do, look at the sketches found in the Explore folder of the robot examples. These are more complete examples that show you some different applications for the robot. You'll need to calibrate the compass module of the robot so it rotates smoothly. If you're using an old model, which has Honeywell HMC 6352, you can refer to this tutorial: Calibrate Compass To learn about more of the functionality of the specific inputs and outputs of the robot, look at the learn folder in the robot examples. Be sure to check out the Robot's library page and the hardware p…
Getting started with the Arduino Zero This board is a simple and powerful 32-bit extension of the platform established by the UNO. Learn how to prepare your computer with all you need to start making your own projects. The Arduino Zero is programmed using the Arduino Software (IDE) , our Integrated Development Environment common to all our boards and running both online and offline. For more information on how to get started with the Arduino Software visit the Getting Started page . Use your Zero on the Arduino Web IDE All Arduino boards, including this one, work out-of-the-box on the Arduino Web Editor , you only need to install Arduino Create Agent to get started. The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this simple guide to start coding on the browser and upload your sketches onto your board. Use your Zero on the Arduino Desktop IDE If you want to program your Zero while offline you need to install the Arduino Desktop IDE and add the Atmel SAMD Core to it. This simple procedure is done selecting Tools menu , then Boards and last Boards Manager , as documented in the Arduino Boards Manager page. Installing Drivers for the Zero OSX No driver installation is necessary on OSX. Depending on the version of the OS you're running, you may get a dialog box asking you if you wish to open the "Network Preferences". Click the "Network Preferences..." button, then click "Apply". The Zero will show up as "Not Configured", but it is still working. You can quit the System Preferences. Windows (tested on XP, 7, Vista and 10) Connect the Zero to your computer with a USB cable via the Programming port. Windows should initiate its driver installation process once the board is plugged in, but it won't be able to find the driver on its own. You'll have to tell it where the driver is. Click on the Start Menu and open the Control Panel Navigate to "System and Security". Click on System, and open the Device Manager. Look for the listing named "Ports (COM & LPT)". You should see an open port named "Arduino Zero Prog. Port". Right click on the "Arduino Zero Prog. Port" and choose "Update Driver Software". Select the "Browse my computer for Driver software" option. Navigate to the folder with the Arduino IDE you downloaded and unzipped earlier. Locate and select the "Drivers" folder in the main Arduino folder (not the "FTDI USB Drivers" sub-directory). Press "OK" and "Next" to proceed. If you are prompted with a warning dialog about not passing Windows Logo testing, click "Continue Anyway". Windows now will take over the driver installation. You have installed the driver on your computer. In the Device Manager, you should now see a port listing similar to "Arduino Zero Programming Port (COM4)" If you have multiple COM devices, the Zero will probably be the COM port with the largest number. For what concern the Native USB port the procedure is the same, but in the device manager you will see an unknown device . Linux No driver installation is necessary for Linux. Open your first sketch Open the LED blink example sketch: File > Examples >01.Basics > Blink . Select your board type and port You'll need to select the entry in the Tools > Board menu that corresponds to your Arduino board. Select the serial device of the board from the Tools | Serial Port menu. This is likely to be COM3 or higher ( COM1 and COM2 are usually reserved for hardware serial ports). To find out, you can disconnect your board and re-open the menu; the entry that disappears should be the Arduino board. Reconnect the board and select that serial port. Upload the program Now, simply click the "Upload" button in the environment. Wait a few seconds - you should see the green progress bar on the right of the status bar. If the upload is successful, the message "Done uploading." will appear on the left in the status bar. A few seconds after the upload finishes, you should see the on-board LED start to blink (in orange). If it does, congratulations! You've gotten your Zero board up-and-running. If you have problems, please see the troubleshooting suggestions . Tutorials Now that you have set up and programmed your Zero board, you may find inspiration in our Project Hub tutorial platform or have a look to the tutorial pages that explain how to use the various features of your board. Here a list of tutorials that will help you in making very cool things! Simple Audio Player RTC Power consumption Adding mores Serial interfaces to SAMD microcontrollers Please Read... The microcontroller on the Zero runs at 3.3V, which means that you must never apply more than 3.3V to its inputs or outputs. Care must be taken when connecting sensors and actuators to assure that this is never exceeded. Connecting higher voltages, like the 5V commonly used with the other Arduino boards, will damage the Zero. Differences from ATMEGA based boards The Zero has the same footprint as the Arduino Uno, and in general, you can program and use the Zero as you would do with other Arduino boards. There are, however, a few important differences and functional extensions, listed below. Voltage The microcontroller on the Zero runs at 3.3V, while a board like the Arduino Mega runs at 5V. You must never apply more than 3.3V to the Zero's inputs or outputs. When you connect sensors and actuators to the Zero always take care that the maximum voltage limits are not exceeded on the pins. Connecting higher voltages, like the 5V commonly used with the other Arduino boards, will damage the Zero. If in doubt measure the IORef or the VCC pin, which supplies the voltage corresponding to the i/o of your board. The board can take power from the USB connectors or from the DC plug (6-20V). The Zero has an efficient switching voltage regulator, compliant with the USB host specification. Using the Native port as USB host implies that the board has to provide power to the device, for example a mouse or a keyboard. Voltage/Current restrictions Maximum source current is 46mA and maximum sink current is 65mA per cluster. A cluster is a group of GPIOs. For more information about what pins belong to what cluster, and what VDD/GND pins they draw power from, see page 936 this document . SymbolParameterMin.Max.UnitsVDDPower supply voltage03.8VIGNDCurrent into a VDD pin-92mAIVDDCurrent out of a GND pin-130mAVPINPin voltage with respect to GND and VDDGND-0.3VVDD+0.3VV Serial ports on the Zero The Zero has two USB ports available. The Native USB port (which supports CDC serial communication using the SerialUSB object) is connected directly to the SAMD21 MCU. The other USB port is the Programming port. It is connected to the ATMEL embedded debugger (EDBG), the onboard programmer and debugger which can also acts as a USB-to-Serial converter. This Programming port is the default for uploading sketches and communicating with the board. The USB-to-serial converter of the Programming port is connected to the first UART of the SAMD21. It's possible to communicate over this port using the "Serial" object in the Arduino programming language. The USB connector of the Native port is directly connected to the USB host pins of the SAMD21. Using the Native port enables you to use the Zero as a client USB peripheral (acting as a mouse or a keyboard connected to the computer) or as a USB host device so that devices can be connected to the Zero (like a mouse, keyboard, or an Android phone). This port can also be used as a virtual serial port using the "SerialUSB" object in the Arduino programming language. Native port Opening and closing the Native port at the baud rate of 1200bps triggers a "soft erase" procedure: the flash memory is erased and the board is restarted with the bootloader. This procedure is managed by the MCU, so if the MCU is interrupted for any reason, it is likely that the soft erase procedure would fail. Opening and closing the Native port at a baudrate other than 1200bps will not reset the SAMD21. To use the serial monitor, and see what your sketch does from the beginning, you'll need to add few lines of code inside the setup(). This will ensure the SAMD21 will wait for the SerialUSB port to open before executing the sketch: Pressing the Reset button on the Zero causes the SAMD21 to reset as well as resetting the USB communication. This interruption means that if the serial monitor is open, it's necessary to close and reopen it to restart the communication. Programming port The USB Programming port is connected to the Atmel EDBG, which is an integrated programmer and debugger. Through the Programming port you have the complete control of the SAMD21, for example you can use the EDBG to burn the bootloader or to access to the entire flash content. If you are interested in the EDBG usage, click here to access a tutorial based on Atmel Studio 6.2. Beside these advanced features it also behave as an USB-to-serial converter connected to the first serial interface of the SAMD21. Uploading using the Programming port is the safest way to program the SAMD21. For example it works even if the sketch running on the main MCU is not responding. To communicate serially with the Programming port , use the "Serial" object in the IDE. All existing sketches that use serial communication based on the Uno board should work similarly. On contrary of what happen on the Arduino UNO, opening the Serial Monitor (or any other serial communication) on the Zero doesn't cause the main MCU reset. Pressing the Reset button while communicating over the Programming port doesn't close a USB connection with the computer because only the SAMD21 is reset. ADC and PWM resolutions The Zero has the ability to change its analog read and write resolutions (defaults to 10-bits and 8-bits, respectively). It can support up to 12-bit ADC/PWM and 10-bit DAC resolutions. See the analog write resolution and analog read resolution pages for info…