Getting started with the Arduino MKR1000

MKR1000 board has been designed to offer a practical and cost effective solution for makers seeking to add Wi-Fi connectivity to their projects with minimal previous experience in networking. Learn how to set up the programming environment and get the hardware up and running, ready for your projects, in minutes.

The MKR1000 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 erratcally.

Use your Arduino MKR 1000 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:

  1. Create an Arduino Create account here.
  2. Download and install the Arduino Create plugin here.
  3. Go to Arduino IoT Cloud and start your journey through IoT!

Use your Arduino MKR 1000 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 MKR1000 on the Arduino Desktop IDE

If you want to program your MKR1000 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.

MKR Zero BrdMgrAdd

Installing Drivers for the MKR1000

With the SAMD 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 MKR1000 will show up as "Not Configured", but it is still working. You can quit the System Preferences.

Windows (tested on 7, 8 and 10) Connect the MKR1000 to your computer with a USB cable. 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 "MKR1000". Right click on the "MKR1000" and choose "Update Driver Software".

Win10MKR1000Install 1

Select the "Browse my computer for Driver software" option.

Win10MKR1000Install 2

Navigate to the folder with the Arduino Software (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.

Win10MKR1000Install 3

You have installed the driver on your computer. In the Device Manager, you should now see a port listing similar to "MKR1000 (COM24)" If you have multiple COM devices, the MKR1000 will probably be the COM port with the highest number.

Win10MKR1000Install 4

Linux No driver installation is necessary for Linux.

Open your first sketch

Open the LED blink example sketch: File > Examples >01.Basics > Blink.

UNO Load 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.

MKR1000 BoardSel

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.

MKR1000 SelPort

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.

UNO 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 MKR1000 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.


Now that you have set up and programmed your MKR1000 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!

Scheduled WiFi SSL Web Client Analog to Midi WiFi RTC Battery Life tutorial Adding more Serial interfaces to SAMD microcontrollers

Please Read...

The microcontroller on the MKR1000 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 MKR1000.


Serial ports on the MKR1000

The USB connector of the board is directly connected to the USB host pins of the SAMD21. This routing enables you to use the MKR1000 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 MKR1000. This port can also be used as a virtual serial port using the "Serial" object in the Arduino programming language.

ADC and PWM resolutions

The MKR1000 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 more information.

WiFi on the MKR1000 This board is fully compatible with the WiFi101 library and examples originally made for the Arduino WiFi101 Shield.

Upgrading Firmware and uploading SSL certificates

When it is needed, the WiFi101 library is updated to implement new features. This usually requires an update of the WiFi firmware with a specific tool. The board comes with a number of root certificates that allow the secure connection with a wide variety of websites. If you need to use different certificates, you need to use the same tool. Please refer to the Firmware Updater sketch and plug-in documentation, available from the WiFi101 library page.

For more details on the Arduino MKR1000, 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.