Wednesday, March 2, 2016

Getting Started with the Beta Arduino MKR1000

Note: No, I cannot share the pinout of the MKR1000 beta board (printed on the back of the board) per an email sent to the Hackaday.io contest winners, sorry.  The reason is the pinout might change so making shields right now would lead to heartache.

One thousand Arduino.cc MKR1000 beta boards are now being received by Makers worldwide thanks to a contest sponsored with Hackster.io and Microsoft.  Round Two of their competition is to make some great things.  Here is documentation on how to get started after the box comes in the mail.

1) Go to the e-mail you got days ago stating that you shouldn't release info (doh!).  Sign up for the MKR1000 closed forum on arduino.cc and wait up to 48 hours for the link (doh!).

2) Go to the arduino.cc download site and get the nightly build of the Arduino IDE software.  Copy it into a directory to use out of the zip file.

2a) For Windows users only: go into the drivers directory and run program dpinst-x86.exe for 32 bit Windows or more likely for modern installs dpinst-amd64.exe for 64 bit Windows (Intel or AMD, not just for AMD processors).  This will install the device drivers for the latest Arduino boards including MKR1000.

3) Run the beta Arduino IDE by running arduino.exe.

4) Go to Tools -> Board -> Boards Manager and install the Arduino SAMD Boards package version 1.6.3.  This gives you the MKR1000 as a board choice.  1.6.4 apparently dropped MKR1000.  If the closed MKR1000 forum says differently use what they say.

5) Go to Sketch -> Include Library and do a search for "101".  Install the WiFi 101 library package which supports the MKR1000 wi-fi support. Use version 0.8.0 or higher.

6) Plug in a USB cable A to Mini B from your PC to the board.  For Windows, the appropriate driver should load if you got the beta IDE driver installed ok - if the driver fails, try again to install the driver.

7) You can load the Blink sketch:

void setup() { 
  pinMode(6, OUTPUT);     // Pin 6 is onboard LED on beta MKR1000 

void loop() { 
  digitalWrite(6, HIGH);  // turn the LED on (HIGH is voltage level) 
  delay(500);             // wait for 500ms 
  digitalWrite(6, LOW);   // turn the LED off by making voltage LOW 
  delay(500);             // wait for 500ms 
}

Note the LED on the beta boards is on Digital Pin 6, not the usual Arduino Pin 13.  If all goes well the Green LED marked "L" blinks!

There are more sample programs for advanced use including web client and server under File -> Examples -> WiFi 101. Note the Wifi 101 has its LED on Pin 9 which has to be changed to Pin 6 for MKR1000.  Try the SimpleWebServerWiFi sketch with the LED ad Pin 6, very fun!  You'll need the output from the serial monitor to know the web address for the web page to change the LED state.

Resources on the Internet