RoadTest: Arduino MKR WAN 1300 + ENV Sensor Shield
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Most boards in the Arduino MKR family - https://store.arduino.cc/usa/arduino/arduino-mkr-family
What were the biggest problems encountered?:
Firstly I would like to thank the element14 road test team for selecting my application for this road test, this was my first time trying out LoRa technology and it has been a mixed experience so far. The main reason for applying for the roadtest was to try out the LoRa technology to see if I can use this technology automate some parts of my Dad’s farm, basically the drip irrigation system, which is scattered all over the property.
The Arduino MKR 1300 is a great board if you want to get started into LoRa as there is a good library to get started with basic point to point communication before you get into something more complex. Remember you will need to buy two boards and also equivalent antenna's, in this case it was 915MHz.
In the first box that I received from the element14 roadtest team had one Arduino MKR 1300 and the Arduino Environment shield, and as soon as I emailed the roadtest team that I had just received one Arduino MKR 1300, they responded the same day informing that another MKR 1300 will ship out the next day, which I received in a three days. Both the boxes were well packed with the boards in the middle and some brown packing paper to prevent the boards from moving around.
Like all other Arduino board I have used/received these boards came in the classic Arduino box with the boards safely mounted on a black piece of foam so that the header pin’s do not get damaged. The Arduino MKR 1300 also came with a leaflet which all the boards in the MKR family which was a good read and slightly old , which is expected as it did not have the Arduino MKR 1310 board listed.
As part of this road test since there are two Arduino components provided, I started out by testing the Arduino Env Sield before getting to the Arduino MKR 1300 LoRa board.
Arduino MKR ENV Shield
The MKR ENV Shield allows a MKR board to acquire environmental data collected by an array of sensors. These sensors are of the latest generation and measure atmospheric pressure, temperature, humidity, UVa intensity, UVb intensity, UV Index and light intensity (in LUX). To help you build projects with locally stored data, this shield has a microSD slot.
The first sensor on the left is an LPS22HB and measures atmospheric pressure; the next one is an HTS221 and measures temperature and humidity, next is the reset button that has been replicated on the shield to allow you to reset the MKR board below. The top sensor on the right is a TEMT6000 and measures the Lux of the ambient. The last sensor, just below the Lux, is a VEML6075 and measures the two UV wavelenghts named as A and B. This last sensor is also capable of producing the UV Index through some calculations performed by our MKRENV library. On the left of the board the metallic square is the slot for a microSD.
The interfaces used by this shield are i2c, analog and SPI. i2c is used by pressure, temperature, humidity and UV; the interface is the usual 12 (SCL) and 11 (SDA) . Analog is for the Lux ambient light sensor and is connected to A2. The SD card relies on SPI interface, therefore it uses 8 (MOSI), 9 (SCK) and 10 (MISO). Other pins used by the shield are the SD CS on D4 to select the microSD, HTS221DataReaDY on pin D6 and LPS22HBDataReaDY on pin D7.
image from https://store.arduino.cc/usa/mkr-env-shield
This shield uses sensors that communicate with the board using the i2c protocol and a two wire interface. Only the Lux sensor is analog, nevertheless we have prepared a library, Arduino_MKRENV, that takes care of all the protocols and parameters, allowing you to read al the values from all the sensors with a simple set of APIs.
Now to test the MKR ENV shield, I am using Arduino MKR 1010 which I had in my parts bin (a MRK family of boards that has WiFi and Bluetooth), here is the output from the Serial Monitor of the Arduino IDE
And then, I am using OLED display to show the environmental sensor value, and I also connected a Lipo battery to take it outside to check the UV values over the weekend. The picture below was taken indoors.
In addition, since i am using MKR 1010 WiFi board, I wanted to host a web server on the WiFi board so that I can see the sensor values using a web page on my Mobile/Laptop
For more info and Arduino sketch check out the blog post at - Arduino MKR WiFi 1010 + MKR ENV Shield
Also, I wanted to try out the Arduino IoT cloud and this was the best time to do it, here is a screenshot of posting the sensor values to the Arduino IoT cloud, for more info and the sketch checkout the blog post at Arduino MKR 1010 + Env Shield and the Arduino IoT Cloud
In addition, I was able to get data from the Arduino IoT cloud to the OLED screen.
Arduino MKR WAN 1300
MKR WAN 1300 is a powerful board that combines the functionality of the MKR Zero and LoRa connectivity. The MKR WAN 1300, is based on the Microchip® SAMD21 low power processor, the Murata CMWX1ZZABZ LoRa® module, and the MKR family’s characteristic crypto chip (the ECC508). The MKR WAN 1300 has to be used with an equivalent antenna that can be attached to the board with the micro UFL connector.
image from https://store.arduino.cc/usa/mkr-wan-1300
Here are some more spec's..
|Microcontroller||SAMD21 Cortex-M0+ 32bit low power ARM MCU|
|Board Power Supply (USB/VIN)||5V|
|Supported Batteries(*)||2x AA or AAA|
|Circuit Operating Voltage||3.3V|
|Digital I/O Pins||8|
|PWM Pins||12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3 - or 18 -, A4 -or 19)|
|Analog Input Pins||7 (ADC 8/10/12 bit)|
|Analog Output Pins||1 (DAC 10 bit)|
|External Interrupts||8 (0, 1, 4, 5, 6, 7, 8, A1 -or 16-, A2 - or 17)|
|DC Current per I/O Pin||7 mA|
|Flash Memory||256 KB|
|Clock Speed||32.768 kHz (RTC), 48 MHz|
|Full-Speed USB Device and embedded Host|
|Carrier frequency||433/868/915 MHz|
Arduino MKR WAN 1300 point to point communication
Before, I got started with point to point communication I had to figure out the 915MHz antenna that I could attach to the UFL connectors, in my case I had to use 915 MHz Antenna's from TTGO LoRa32 SX1276 with ESP32 and SSD1306 OLED boards that I purchased about a year ago.
Also before I got started with sketch, I had to install MKRWAN Library and also update the latest firmware on the MKR 1300 using the MKRWANFWUpdate_standalone sketch, you should find this in the example menu are the library is installed. For more info check out the blog post at - Arduino MKR WAN 1300 p2p communication and the MKR ENV shield
In addition, I also took the receiver module for a walk to see the range that I would with the sender connected to my laptop at home with a simple sketch loaded, and I would have walked for approximately 400 to 500 meters from my home and I was still receiving packets. Also wanted to mention I placed the sender in my balcony and in terms of obstructions, there were just a couple of trees between the sender and reciver.
Arduino MKR WAN 1300 p2p communication with MKR ENV shield
In addition to using the simple test above to send receive, I added the Arduino MKR ENV shield to sender to send data to the receiver and display it on the OLED screen.
Here is the serial monitor output of the sender
For more info check out the blog post at - Arduino MKR WAN 1300 p2p communication and the MKR ENV shield
Arduino MKR WAN 1300 - The Things Network (TTN) - not successful - still a WIP ..
Now since i live away from the city the, I relaized that to get to closest TTN network I would have to drive a couple of hours after checking -https://ttnmapper.org/ , so I decided to buy a LoRa gateway which was the Dragino LG01-P IoT Gateway (https://www.dragino.com/products/lora/item/117-lg01-p.html ) . I was able to setup the LG01-P (915)gateway with the Things Network and also checked that I was successfully able to connect things network by sending a test message after SSH'ing into the Gateway. Then I created and an Application - Device with all possible combinations, but I was still not able to post messages from the Arduino MKR 1300 to the things network. I then spent the next couple of weeks going through the TTN forums and there were a few post that said Dragino LG01-P IoT is not an officially supported gateway TTN, but I knew that this was not completely true as there were a good amount projects posted using this gateway, so I am not sure if I have received a faulty gateway.
In addition there was another blog post that said, I should also change my device activation method from OTA to ABP, but that dint work. This meant I had to either drive to the city or give the Arduino MKR 1300 on last try or buy Adafruit RFM95W LoRa Radio breakout. I went with the later option, and placed an order for breakout board, I should have this early next week, so more to come on how that goes ...
For an hardware prospective for both the Arduino MKR 1300 and MKR ENV shield, in classic Arduino fashion the PCB looked good and components are well laid out, and the environment shield had icons for each sensor which makes it easy visually to figure out which component is for which sensor. The boards come with the header installed, and they fit nice and snug in a breadboard. I would have personally like the board and header pins come separately in the package so that it is easier to include in you project enclosure from a space saving prospective. Also the battery terminals are a good addition instead of the regular Lipo JST connector, so it is much easier to add AA battery pack to the project in the field.
From a software side, I had to give this a 7/10 for the MKR 1300 boards, when compared to other Arduino boards I have used in the past, basically after you install the MKRWAN library and run though the firmware update steps you soon realazie that you have to install another library to get the point to point communication working between the two MKR1300 boards. But, the MKRENV library for the MKR Environmental sheild was straight forward and easy to use.
The documentation for the MKR 1300 compared to other Arduino board is not as great but is just enough to get you started, I think there is room for improvement here. But, the documentation for Arduino MKR ENV shield is top shelf, and something that you would normally expect from Arudino.cc website.
Now, in terms of recommending boards as a hobbyist, it is a big Yes for the Arduino MKR ENV shield, this board is the complete package when you consider the number of Sensor on the board, supported Arduino library and documentation. And, it would also be a Yes for the Arduino MKR 1300, even though I was not able to send data to The Thing network, and this could be an issue on my end with a faulty gateway, but I have seen a few projects/examples where data was posted to TTN.
Also check out the webinar if you are new to LoRa - LoRa Meets Arduino, a Journey in the LPWAN World
And for some awesome projects using the Arduino MKR 1300 check out - Winners Announcement: Build a Smarter World: Build an Arduino MKR WAN 1300 Project for an Arduino Engineering Kit!