This website uses cookies to enhance your browsing experience, analyze our traffic, and optimize our advertising efficacy as described in Quectel Cookies Policy. We also share information about your use of our site with our carefully-selected advertising and analytics third-parties to achieve the purposes set out in our Cookies Policy. To see what cookies we serve and set your preferences, please click the Find Out More link. By continuing your visit on our website, you consent to our use of cookies in accordance with Quectel Cookies Policy. Find Out More

IoT Sense and Sensibility, a Hands on Experience


On April 8th 2018, R&D Software Solutions srl announced releasing xyz-mIoT by shield - the first, and the most compact IoT board which combines the versatility of ARM0 micro-controller. (Microchip/Atmel ATSAMD21G in Arduino Zero compatible design), the comfortable use of the embedded sensors bundled with connectivity provided by LPWA LTE CAT-M1 and/or NB-IoT long-range & low-power modems as well as GSM modem to ensure connectivity in remote areas where CAT-M1 and NB-IoT coverage are yet to reach.



Driven by the power and versatility of the embedded ARM0 (ATSAMD21G) core and equipped with various interfaces [I2C, SPI, UART, 13 digital I/O – 1WIRE and PWM capable, 5 analog inputs and more], “xyz-mIoT by” provides multiple interfaces in order to support wide range of devices, sensors and actuators.

The xyz-mIoT shield may have up to 5 built-in sensors such as: THS (temperature and humidity sensors) - HDC2010, tVOC & eCO2 (air quality sensor - CO2 total volatile organic compounds - CO2 equivalent) - CCS811, HALL (magnetic sensor) - DRV5032 sau or IR (infrared sensor) KP-2012P3C, secondary IR (infrared sensor) - KP-2012P3C, TILT (movement vibration sensor) or REED (magnetic sensor) - SW200D.

Mentioned above sensors are populated on xyz mIoT board and can be ordered using different Part Numbers.

In order to highlight rich features offered thanks to R&D Software Solutions srl advanced design due to highly sensors integration, please refer to brief comparative chart:

The xyz-mIoT design philosophy was based on two strategic directives:
• IOT for everybody – one IoT platform that may be used in natural manner but having the power and versatility in order to be used by professionals, hobbyist and enthusiasts. Obviously, Arduino programing is the best choice available. Moreover, professionals will be fully satisfied thanks to its multiple hardware and software setup capabilities.
• IOT democracy (Democrația IOT) – Ability of any individual to set up (in around 15 minutes*) his own IOT sensor bundled with CLOUD data logging capability.

Bellow, we will demonstrate how temperature and humidity CLOUD data logging could be set up using the xyz-mIoT shield (The xyz-mIoT board must be equipped with HDC2010 embedded, hence please select PN as: XYZMIOT209#BG96-UFL-1100000, or GSM only variant XYZMIOT209#M95FA-UFL-1100000), Arduino board programming support and Robofun CLOUD.

* The implementation time may vary depending on previous user experience. Arduino environment installing and manual Arduino class installing are not covered by this how to; try google it. Support libraries and the source code used in this how to are available for download, for registered users

xyz-mIoT shield brief tech references:


Step1:  connect Vusb with Vraw, solder over SJP6



Enable 5V from USB to be as primary power supply for the board as described up here. Alternative: solder both connectors rows, place the board into one breadboard and connect between Vusb and Vraw using one male-male breadboard wire

Step 2:
Solder the LiPo connector. Insert the micro-SIM in the slot [Note: SIM PIN check procedure is to be removed]. Connect the antenna, then connect the USB cable to xyz-mIoT USB port and to your computer. Connect the LiPo battery.


Hardware steps - done!

Download and install "xyz-mIoT shields Arduino class", then download the last version of classes: "xyz-mIoT shield IoT Rest support" and "xyz-mIOT shield sensors support class" from here:

Download the demo code "xyz_mIoT_cloud_demo.ino" from here:


Apply below setting as described herewith:
    - in "itbpGPRSIPdefinition.h" line 2 set the APN value, using the APN value of your GSM provider (Eg: NET for RO Orange)
    - in "itbpGPRSIPdefinition.h" line 9 set the SERVER_ADDRESS address for CLOUD Robofun
    #define SERVER_ADDRESS ""
    #define SERVER_PORT "80"
    - in "itbpGSMdefinition.h" comment default option for "__itbpModem__" and chose (delete comment sign) option
    "#define __itbpModem__ xyzmIoT" (line 71)
    - in "itbpGSMdefinition.h" chose the right modem for your xyz-mIoT flavour: for M95FA chose
    "#define __Qmodem__ TWOG" (line 73)
    or for BG96 chose
    "#define __Qmodem__ CATM1" (line 75)

Create a new account on Robofun CLOUD (

Add two new sensors (xyzmIOT_temperature and xyzmIOT_humidity). For each sensor, save the "Tocken" id value (scroll-down in sensor page to find it).



Those values will be used later on to set up sensors id[token id] in Arduino code.

In the same page, you will find the public Internet address where you will find the sensor data (Please refer to highlighted items in above picture).

Open in Arduino [( v >= 1.8.5] the xyz_mIoT_v41_temp_humidity.ino project.



Set “tempTocken” and “humiTocken” values with the one retained in previous step [created in the CLOUD].

If you use xyz-mIoT shield equipped with BG96 module you can select network registration mode as "GSM mode" or as "LTE CATM1 mode" (mobile network used and SIM card must support LTE CATM1*) by calling client.setNetworkMode(GSMONLY), respectively client.setNetworkMode(CATM1ONLY) function, right after client.begin() in function setup().

* we use for tests Orange Romania LTE CATM1 enabled SIM.

Select " xyz-mIoT" board in Arduino menu.



Press twice (fast) the xyz-mIoT shield RESET button [the board will switch into programming mode].  Select " xyz-mIoT" programming port in Arduino menu.

Compile and upload the code.

The xyz-mIoT shield will start to sample the temperature and humidity data (at 1min. rate) and to upload sampled values to the CLOUD.



In order to visualize the debug output use the Arduino Serial Monitor or other terminal by selecting the debug port with following settings: 115200bps, 8N, 1.



The temperature logged data can be visualized in Robofun cloud sensor page or, in public (shared) page as we specified in Step4.


Done. Last version of this post and other IoT projects may be found at:


xyz-mIoT v2.09 IoT sensor platform – PN coding

Module based PN schema, UFL connector (choose your modem option):
    - xyz-mIoT v2.09, equipped with BG96 [CAT M1 + NB IoT + GSM + GPS] - PN: XYZMIOT209#BG96-UFL-xxxxxxx
    - xyz-mIoT v2.09, equipped with BC95G [NB IoT only] - PN: XYZMIOT209#BC95G-UFL-xxxxxxx
    - xyz-mIoT v2.09, equipped with M95FA [GSM only] - PN: XYZMIOT209#M95FA-UFL-xxxxxxx
    - xyz-mIoT v2.09, no modem - PN: XYZMIOT209#NOMODEM-000-xxxxxxx

In previous PN, replace “xxxxxxx” suffix with sensor code (chose the board sensors flavor):
    - HDC2010 + DRV5032 – xxxxxxx: 1100000
    - HDC2010 + DRV5032 + SW200D – xxxxxxx: 1110000
    - HDC2010 + DRV5032 + SW200D + CCS811 – xxxxxxx: 1110100
    - no sensor – xxxxxxx: 0000000

For SMA version, replace the “UFL” particle with “SMA”.


Orders can be placed at or contact us via email:



After placing your xyz-mIoT order, reply to your order confirmation email including the following phrase “Quectel Tech Blog Spot” and we will apply 30% discount. Limited number of xyz-mIoT shields are available for this promo. Act now, do not miss the opportunity!

We are looking for distributors.

Universities and high schools may apply for 40% discounts. Write to us in order to join our educational program.


Author: Dragos Iosub, R&D Software Solutions | | +40745611611


Related news

Customer Service & Support

For any questions, please contact our sales, FAE and marketing team.

Contact Us