In this article, we are going to learn about Arduino MKR 1000. .Arduino MKR1000 is a powerful board that combines the functionality of the Zero and the Wi-Fi Shield. It is the ideal solution for makers wanting to design IoT projects with minimal previous experience in networking.
OVERVIEW
Arduino MKR1000 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. It is based on the Atmel ATSAMW25 SoC (System on Chip), which is part of the SmartConnect family of Atmel Wireless devices, specifically designed for IoT projects and devices.
The ATSAMW25 is composed of three main blocks:
- SAMD21 Cortex-M0+ 32bit low power ARM MCU
- WINC1500 low power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi
- ECC508 CryptoAuthentication
The ATSAMW25 includes a single 1×1 stream PCB Antenna.
The design includes a Li-Po charging circuit that allows the Arduino MKR 1000 to run on battery power or external 5V, charging the Li-Po battery while running on external power. Switching from one source to the other is done automatically. A good 32-bit computational power similar to the Zero board, the usual rich set of I/O interfaces, low power Wi-Fi with a Cryptochip for secure communication, and the ease of use of the Arduino Software (IDE) for code development and programming. All these features make this board the preferred choice for the emerging IoT battery-powered projects in a compact form factor. The USB port can be used to supply power (5V) to the board. The Arduino MKR1000 can run with or without the Li-Po battery connected and has limited power consumption.
The MKR1000 Wifi module supports certificate SHA-256.
Warning: Unlike most Arduino & Genuino boards, the Arduino MKR1000 runs at 3.3V. The maximum voltage that the I/O pins can tolerate is 3.3V. Applying voltages higher than 3.3V to any I/O pin could damage the board. While output to 5V digital devices is possible, bidirectional communication with 5V devices needs proper level shifting.
TECHNICAL SPECIFICATION
Micro controller | SAM21 Cortex-MO +32 bit low power ARM MCU |
Board power supply(USB/vin) | 5V |
Supported battery | Li-Po singe cell,3.7V,700mAh minimum |
Circuit operating voltage | 3.3V |
Digital I/O pins | 8 |
PWM pins | 12 |
UART | 1 |
SPI | 1 |
I2C | 1 |
Analog output | 1(DAC 10 bit) |
Analog Input pins | 7(ADC 8/10/12 bit) |
External interrupts | 8(0,1,4,5,6,7,8,A1 or 16-,A2-or 17) |
DC current per I/O pin | 7mA |
Flash Memory | 256KB |
SRAM | 32KB |
EEPROM | no |
Clock speed | 32.768 KHZ(RTC),48MHz |
LED_BUILTIN | 6 |
Length | 61.5 mm |
Width | 25 mm |
weight | 32gr |
PINOUT DIAGRAM
LI-PO BATTERIES,PINS AND BOARD LEDS
Battery capacity
Li-Po batteries are charged up to 4,2V with a current that is usually half of the nominal capacity (C/2). For Arduino / Genuino MKR1000 we use a specialized chip that has a preset charging current of 350mAh. This means that the MINIMUM capacity of the Li-Po battery should be 700 mAh. Smaller cells will be damaged by this current and may overheat, develop internal gasses and explode, setting on fire the surroundings. We strongly recommend that you select a Li-Po battery of at least 700mAh capacity. A bigger cell will take more time to charge, but will not be harmed or overheated. The chip is programmed with 4 hours of charging time, then it goes into an automatic sleep mode. This will limit the amount of charge to max 1400 mAh per charging round.
Battery connector
If you want to connect a battery to your MKR1000 be sure to search one with female 2 pins JST PHR2 Type connector.Polarity: looking at the board connector pins, polarity is Left = Positive, Right = GNDDownload here the Connector datasheet. On the MKR1000, the connector is a Male 2pin JST PH Type.VinThis pin can be used to power the board with a regulated 5V source. If the power is fed through this pin, the USB power source is disconnected.
This is the only way you can supply 5v (range is 5V to maximum 6V) to the board, not using a USB. This pin is an INPUT.5VThis pin outputs 5V from the board when powered from the USB connector or from the VIN pin of the board. It is unregulated and the voltage is taken directly from the inputs. When powered from the battery it supplies around 3.7 V. As an OUTPUT, it should not be used as an input pin to power the board.
VCC
This pin outputs 3.3V through the on-board voltage regulator. This voltage is the same regardless of the power source used (USB, Vin, and Battery).
LED ON
This LED is connected to the 5V input from either USB or VIN. It is not connected to the battery power. This means that it lits up when power is from USB or VIN but stays off when the board is running on battery power. This maximizes the usage of the energy stored in the battery. It is therefore normal to have the board properly running on battery power without the LED ON being lit.
CHARGE LED
The CHARGE LED on the board is driven by the charger chip that monitors the current drawn by the Li-Po battery while charging. Usually, it will lit up when the board gets 5V from VIN or USB and the chip starts charging the Li-Po battery connected to the JST connector. There are several occasions where this LED will start to blink at a frequency of about 2Hz. This flashing is caused by the following conditions maintained for a long time (from 20 to 70 minutes):- No battery is connected to JST connector.- An over-discharged/damaged battery is connected. It cannot be recharged.- A fully charged battery is put through another unnecessary charging cycle. This is done disconnecting and reconnecting either VIN or the battery itself while VIN is connected.
Onboard LED
On MKR1000 the onboard LED is connected to D6 and not D13 as on the other boards. Blink example or other sketches that uses pin 13 for onboard LED may need to be changed to work properly.
After reading this tutorial on “Arduino MKR 1000”. I hope you understood about Arduino MKR 1000. To know more about IoT you can refer to the following blogs.
- https://iot4beginners.com/using-stepper-motors-with-arduino/
- https://iot4beginners.com/arduino/
- https://iot4beginners.com/using-ir-sensor-with-arduino-uno/