{"id":19327,"date":"2019-01-04T11:38:02","date_gmt":"2019-01-04T03:38:02","guid":{"rendered":"\/blog\/?p=19327"},"modified":"2019-01-04T11:38:04","modified_gmt":"2019-01-04T03:38:04","slug":"pioneer-nb-iot-with-twilios-alfa-development-kit","status":"publish","type":"post","link":"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/","title":{"rendered":"Pioneer NB-IoT with Twilio\u2019s Alfa Development Kit"},"content":{"rendered":"<div class=\"article-coauthors\">If you were an attendee of Twilio\u2019s SIGNAL 2018 in San Francisco last October, you probably got a sneak peek at the Twilio\u2019s Narrowband Developers Platform. We\u2019re super happy to join this partnership as the hardware enabler of the Twilio Alfa Development Kit. Today, we&#8217;ll share a detailed tutorial by Twilio IoT Developer Evangelist<a href=\"https:\/\/twitter.com\/cskonopka\">\u00a0Christopher Konopka<\/a>,\u00a0 which <a href=\"https:\/\/www.twilio.com\/blog\/pioneer-nb-iot-with-twilios-alfa-development-kit\">demonstrates how to connect to T-Mobile\u2019s NB-IoT network using Twilio\u2019s Developer Kit<\/a>.<\/div>\n<div>\u00a0<\/div>\n<div>A Huge thank you to Christopher for sharing this informative tutorial with us!??? Enjoy the bbrand new year, and reading the following tutorial as well.<\/div>\n<div>\n<p id=\"header_image\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png\" sizes=\"468px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png 468w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgs.width-1616.png 468w\" alt=\"MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgskGFMXtWEMBe8y9D4NlPcSUgC7OXhwJfPvmrSR8okuksMJWtKfwfgA-qdR5WIRSm5HCznDaHyidAXTqFCDKimYxeA-_L\" width=\"586\" height=\"506\" \/><\/p>\n<div class=\"rich-text\">\n<p><em><a href=\"https:\/\/en.wikipedia.org\/wiki\/Narrowband_IoT\">NB-IoT<\/a><\/em><em>,\u00a0<\/em>also known as\u00a0<em>Narrowband-IoT<\/em>,\u00a0is a new cellular technology that promises low cost, low power consumption, wide area coverage and long battery life. These characteristics help make \u201c<a href=\"https:\/\/en.wikipedia.org\/wiki\/Smart_device\">smart devices<\/a>\u201d a reality.<\/p>\n<p><a href=\"https:\/\/iot.t-mobile.com\/narrowband\/\">T-Mobile<\/a>\u00a0has deployed\u00a0<a href=\"https:\/\/www.gsma.com\/iot\/deployment-map\/\">NB-IoT<\/a><a href=\"https:\/\/www.gsma.com\/iot\/deployment-map\/\">\u00a0coverage<\/a>\u00a0in the United States and Twilio is the first company to provide a NB-IoT developer kit.\u00a0<a href=\"https:\/\/www.twilio.com\/docs\/wireless\/quickstart\/alfa-developer-kit\">Twilio\u2019s<\/a><a href=\"https:\/\/www.twilio.com\/docs\/wireless\/quickstart\/alfa-developer-kit\">\u00a0Alfa Developer Kit<\/a>\u00a0features a development board\u00a0created in collaboration with\u00a0<a href=\"https:\/\/www.seeedstudio.com\/\">Seeed Studio<\/a>. The development board can access the T-Mobile NB-IoT network using a\u00a0<a href=\"https:\/\/www.twilio.com\/wireless\/narrowband\">Twilio Narrowband SIM<\/a>\u00a0(which comes in the kit). Once on the network,\u00a0developers can exchange data between multiple NB-IoT kits\u00a0using the\u00a0<a href=\"https:\/\/github.com\/twilio\/Breakout_Arduino_Library\">Twilio Breakout SDK<\/a>.<\/p>\n<p>This post demonstrates how to connect to T-Mobile\u2019s NB-IoT network using Twilio\u2019s Developer Kit. Once connected,\u00a0we\u2019ll\u00a0send a \u201chello world\u201d message over the network using the Breakout SDK. You can also find the the completed project on\u00a0<a href=\"https:\/\/github.com\/cskonopka\/TwilioIoT\/tree\/master\/Blog\/05-PioneerNBIoT\">GitHub<\/a>\u00a0under\u00a0<a href=\"https:\/\/github.com\/cskonopka\/TwilioIoT\">TwilioIoT<\/a>.<\/p>\n<p>Ready to say \u201chello?\u201d. Let\u2019s\u00a0connect!<\/p>\n<p><img decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/original_images\/nbiot-connect.gif\" alt=\"nbiot-connect.gif\" width=\"581\" height=\"581\" \/><\/p>\n<h2>Prerequisites to Connecting to Narrowband<\/h2>\n<p>Before you begin, you\u2019ll need to either create a new Twilio account or log in to an existing account. You can\u00a0<a href=\"https:\/\/twilio.com\/try-twilio\">sign up for a new account for free<\/a>.<\/p>\n<p>Beyond a Twilio account, here is all of the hardware and software you\u2019ll need to put in place to get connected.<\/p>\n<h3>Hardware Requirements<\/h3>\n<div class=\"rich-text\">\n<ul>\n<li><a href=\"https:\/\/www.twilio.com\/docs\/wireless\/quickstart\/alfa-developer-kit\">Twilio Developer Kit for T-Mobile Narrowband<\/a><\/li>\n<li><a href=\"https:\/\/www.twilio.com\/wireless\/narrowband\">Twilio Narrowband SIM<\/a><\/li>\n<li>LTE Antenna<\/li>\n<li>Micro USB cable<\/li>\n<li>Lithium battery<\/li>\n<\/ul>\n<h3>Software Requirements<\/h3>\n<ul>\n<li><a href=\"https:\/\/www.arduino.cc\/en\/Main\/Software\">Arduino IDE<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/twilio\/Breakout_Arduino_Library\">Breakout SDK<\/a><\/li>\n<li><a href=\"https:\/\/curl.haxx.se\/\">cURL<\/a><\/li>\n<\/ul>\n<h2>Explore the Developer Kit<\/h2>\n<p>The Developer Kit\u00a0ships with a development board that is specifically designed for connecting to T-Mobile\u2019s NB-IoT network. Also included are several hardware attachments by Seeed Studio that can be used to develop a NB-IoT \u201csmart device\u201d.<\/p>\n<p>Open the Developer Kit\u00a0box. The kit contains:<\/p>\n<ul>\n<li>Twilio Narrowband SIM (full size, mini, micro, and nano)<\/li>\n<li>Development board<\/li>\n<li>LTE antenna<\/li>\n<li>GPS antenna<\/li>\n<li>Set of Grove sensors\n<ul>\n<li>Pushbutton<\/li>\n<li>Ultrasonic<\/li>\n<li>Temperature\/Humidity<\/li>\n<\/ul>\n<\/li>\n<li>Lithium battery<\/li>\n<li>Micro-USB cable<\/li>\n<li>Additional cabling<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/XGgVVC5bCAkTC8x9FLnS3ZBOxiedo2WEaKUDg28hzaYT03.width-500.jpg\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/XGgVVC5bCAkTC8x9FLnS3ZBOxiedo2WEaKUDg28hzaYT03.width-500.jpg 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/XGgVVC5bCAkTC8x9FLnS3ZBOxiedo2WEaKUDg28hzaYT0.width-1000.jpg 1000w\" alt=\"\" width=\"577\" height=\"922\" \/><\/p>\n<h2>Set up the Twilio Narrowband SIM<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/qxu2ADEjgA2TGNQ9CJBcK4jLgS8MBD5fHQgDZPvQB0IBXv.width-500.jpg\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/qxu2ADEjgA2TGNQ9CJBcK4jLgS8MBD5fHQgDZPvQB0IBXv.width-500.jpg 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/qxu2ADEjgA2TGNQ9CJBcK4jLgS8MBD5fHQgDZPvQB0IBX.width-1000.jpg 1000w\" alt=\"\" width=\"587\" height=\"384\" \/><\/p>\n<p>Remove the Twilio Narrowband SIM from the Developer Kit. Next,\u00a0<a href=\"https:\/\/www.twilio.com\/docs\/wireless\/quickstart\/alfa-developer-kit#step-1-register-your-narrowband-sim\">register and activate your Narrowband SIM<\/a>\u00a0in the Twilio Console. The process for the Narrowband SIM follows the same procedure as the\u00a0<a href=\"https:\/\/www.twilio.com\/docs\/wireless\/tutorials\/how-to-order-and-register-your-first-sim\">Twilio Programmable Wireless SIM<\/a>.<\/p>\n<h2>Connecting the pieces<\/h2>\n<p>Break out the Nano SIM (smallest size) from the Twilio SIM card.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/71jiQFATFonxTioTjIckx2yA6qxrvbvEiC8pFEIrt1k4Dg.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/71jiQFATFonxTioTjIckx2yA6qxrvbvEiC8pFEIrt1k4Dg.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/71jiQFATFonxTioTjIckx2yA6qxrvbvEiC8pFEIrt1k4D.width-1000.png 1000w\" alt=\"\" width=\"577\" height=\"366\" \/><\/p>\n<p>Remove the development board from the Developer Kit.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/l5yiKdfcgWL3ajls_a49uiMq6VIlhoQw5fbA-ahkJnqE10.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/l5yiKdfcgWL3ajls_a49uiMq6VIlhoQw5fbA-ahkJnqE10.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/l5yiKdfcgWL3ajls_a49uiMq6VIlhoQw5fbA-ahkJnqE1.width-1000.png 1000w\" alt=\"nbiot-board\" width=\"579\" height=\"617\" \/><\/p>\n<p>Insert the Twilio Narrowband SIM into the SIM slot underneath the board.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/TVbm4rdGhh_W9WkEuHh9LU-ceeWNwq9WhC-ysepygq9iIg.width-500.jpg\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/TVbm4rdGhh_W9WkEuHh9LU-ceeWNwq9WhC-ysepygq9iIg.width-500.jpg 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/TVbm4rdGhh_W9WkEuHh9LU-ceeWNwq9WhC-ysepygq9iI.width-1000.jpg 1000w\" alt=\"\" width=\"586\" height=\"534\" \/><\/p>\n<p>Next, attach the LTE\u00a0antenna to the board.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/-WB_WEuLQN6amL72jkIy3slW-BgtQmKdf8CYQCzHTCD1bO.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/-WB_WEuLQN6amL72jkIy3slW-BgtQmKdf8CYQCzHTCD1bO.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/-WB_WEuLQN6amL72jkIy3slW-BgtQmKdf8CYQCzHTCD1b.width-1000.png 1000w\" alt=\"\" width=\"580\" height=\"567\" \/><\/p>\n<p>Attach the battery lithium battery. The lithium battery is recommended to be plugged in at all times since the USB power source does not provide sufficient power for the board at peak levels.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/encgq8NeouXiFagAB-of7QoatAIlOd3mdUpGOA6sR6m_Yh.width-500.jpg\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/encgq8NeouXiFagAB-of7QoatAIlOd3mdUpGOA6sR6m_Yh.width-500.jpg 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/encgq8NeouXiFagAB-of7QoatAIlOd3mdUpGOA6sR6m_Y.width-1000.jpg 1000w\" alt=\"\" width=\"591\" height=\"311\" \/><\/p>\n<p>Connect the development board to the computer using the Micro-USB cable provided. You are geared up to connect to the network.<\/p>\n<h2>Configure\u00a0the NB-IoT Kit Firmware<\/h2>\n<p>Before we can start programming the board we need to\u00a0update the board\u2019s firmware. To do this\u00a0on a Macintosh\u00a0we will need\u00a0<a href=\"https:\/\/brew.sh\/\">Homebrew<\/a>\u00a0to install\u00a0<a href=\"http:\/\/dfu-util.sourceforge.net\/\">dfu-util<\/a>.\u00a0Instructions for installing dfu-util for\u00a0<a href=\"https:\/\/github.com\/redbear\/Duo\/blob\/master\/docs\/dfu-util_installation_guide.md#windows\">Windows<\/a>\u00a0and\u00a0<a href=\"https:\/\/github.com\/redbear\/Duo\/blob\/master\/docs\/dfu-util_installation_guide.md#linux\">Linux<\/a>\u00a0can be found\u00a0<a href=\"https:\/\/github.com\/redbear\/Duo\/blob\/master\/docs\/dfu-util_installation_guide.md\">here<\/a>.<\/p>\n<p>If you don\u2019t yet have it installed, open a\u00a0terminal and paste the following to install Homebrew.<\/p>\n<\/div>\n<div class=\"markdown\">\n<div class=\"codehilite\">\n<pre class=\"twlo-code\"><span class=\"code-line\">\/usr\/bin\/ruby -e <span class=\"s2\">\"<\/span><span class=\"k\">$(<\/span>curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/master\/install<span class=\"k\">)<\/span>\n<\/span><\/pre>\n<\/div>\n<\/div>\n<div class=\"rich-text\">\n<p>Once the installation is complete install the\u00a0<a href=\"http:\/\/dfu-util.sourceforge.net\/\">dfu-util<\/a>\u00a0package. This package is used to download and upload firmware to and from USB connected devices. dfu-util 0.9 or greater is preferred if available.<\/p>\n<\/div>\n<div class=\"markdown\">\n<div class=\"codehilite\">\n<pre class=\"twlo-code\"><span class=\"code-line\">brew install dfu-util libusb\n<\/span><\/pre>\n<\/div>\n<\/div>\n<div class=\"rich-text\">\n<p>For Windows users there is a different set of\u00a0<a href=\"http:\/\/wiki.seeedstudio.com\/Wio_LTE_Cat_M1_NB-IoT_Tracker\/#install-usb-driver\">USB Drivers<\/a>\u00a0that are needed.<\/p>\n<h2>Set up the software environment<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/original_images\/breakout-setup.gif\" alt=\"breakout-setup.gif\" width=\"591\" height=\"384\" \/><\/p>\n<p>The development board uses the\u00a0<a href=\"https:\/\/www.arduino.cc\/en\/main\/software\">Arduino IDE<\/a>\u00a0to program the microcontroller. Twilio has developed a NB-IoT specific software development kit called\u00a0<a href=\"https:\/\/github.com\/twilio\/Breakout_Arduino_Library#setting-up-your-development-environment\">Breakout<\/a>. This SDK makes it possible for devices to send M2M Commands over the T-Mobile NB-IoT network. The Breakout SDK can be found on\u00a0<a href=\"https:\/\/github.com\/twilio\/Breakout_Arduino_Library#setting-up-your-development-environment\">GitHub<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/rEM2xT-EuzpDWHNRjNFmXBQBFtBowbvzbwkw3fbWHmX1NF.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/rEM2xT-EuzpDWHNRjNFmXBQBFtBowbvzbwkw3fbWHmX1NF.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/rEM2xT-EuzpDWHNRjNFmXBQBFtBowbvzbwkw3fbWHmX1N.width-1000.png 1000w\" alt=\"\" width=\"584\" height=\"419\" \/><\/p>\n<p>Download the\u00a0<em>Breakout_Arduino_Library.zip<\/em>\u00a0from GitHub. Open the Arduino IDE and add the .zip to the Arduino IDE Library.<\/p>\n<p>Go to\u00a0<em>Sketch &gt; Include Library &gt; Add .ZIP library<\/em>\u00a0and select the\u00a0<em>Breakout_Arduino_Library.zip<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/mEBwPI2Aka_d1NCYKEAXkL74xc7c0h5C9PJoosU5PZHKMM.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/mEBwPI2Aka_d1NCYKEAXkL74xc7c0h5C9PJoosU5PZHKMM.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/mEBwPI2Aka_d1NCYKEAXkL74xc7c0h5C9PJoosU5PZHKM.width-1000.png 1000w\" alt=\"\" width=\"582\" height=\"142\" \/><\/p>\n<p>After the .zip file has been installed we need to install a set of board cores. The development board is based on the\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/STM32\">STM32F4<\/a>\u00a0chipset. To develop on the board we need to download the STM32F4 cores in the Arduino IDE.<\/p>\n<p>Go to Arduino &gt; Preferences. Copy the following URL into the Additional Boards Manager URLs field:<\/p>\n<p><em>https:\/\/raw.githubusercontent.com\/Seeed-Studio\/Seeed_Platform\/master\/package_seeeduino_boards_index.json<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/suB30PXdikg0__Ve2ELah9Cy_2Xeh1oKNqZDJj2EuL-VNw.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/suB30PXdikg0__Ve2ELah9Cy_2Xeh1oKNqZDJj2EuL-VNw.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/suB30PXdikg0__Ve2ELah9Cy_2Xeh1oKNqZDJj2EuL-VN.width-1000.png 1000w\" alt=\"\" width=\"585\" height=\"484\" \/><\/p>\n<p>Click OK.<\/p>\n<p>The STM32F4 boards will now be available in the Arduino IDE\u00a0<em>Boards Manager.\u00a0<\/em>Next open the\u00a0<em>Boards Manager<\/em>\u00a0to install the STM32F4 board cores.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/7pQuh0IxuzscJ8otGW6uP26U2PqQJL7x-kktX0oi555Yyg.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/7pQuh0IxuzscJ8otGW6uP26U2PqQJL7x-kktX0oi555Yyg.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/7pQuh0IxuzscJ8otGW6uP26U2PqQJL7x-kktX0oi555Yy.width-1000.png 987w\" alt=\"\" width=\"586\" height=\"190\" \/><\/p>\n<p>In the\u00a0<em>Boards Manager<\/em>\u00a0search for \u201cSeeed\u201d. Find\u00a0and select the \u201cSeeed STM32F4 Boards\u201d version \u201c1.2.3+\u201d and click install.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/Yl8co5N2AGQarf1cXeOJKJNMD--qAQuORNP3PDf9kadhIR.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/Yl8co5N2AGQarf1cXeOJKJNMD--qAQuORNP3PDf9kadhIR.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/Yl8co5N2AGQarf1cXeOJKJNMD--qAQuORNP3PDf9kadhI.width-1000.png 1000w\" alt=\"\" width=\"588\" height=\"362\" \/><\/p>\n<p>Restart the Arduino IDE.<\/p>\n<p>With the STM32F4 cores installed the development board is now ready to be programmed. Next select the board and the board port.<\/p>\n<ul>\n<li>Click Tools &gt; Boards &gt; Wio Tracker LTE<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/mVr43mlc6Pcb9MzyATrw9cAuJehztXClErkzDMVzKde7tA.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/mVr43mlc6Pcb9MzyATrw9cAuJehztXClErkzDMVzKde7tA.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/mVr43mlc6Pcb9MzyATrw9cAuJehztXClErkzDMVzKde7t.width-1000.png 949w\" alt=\"\" width=\"583\" height=\"661\" \/><\/p>\n<ul>\n<li>Click Tools &gt; Port &gt; {Your Modem Port Here}\n<ul>\n<li>OSX: \/dev\/{cu|tty}.usbmodem{XXXX}<\/li>\n<li>Linux: \/dev\/ttyACM{X}<\/li>\n<li>Windows: COM{X}<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/CpD7vq0Dm4Lg0Y-jeg-LrYVDI2Qvzo9hQo7YnPImLtgBQC.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/CpD7vq0Dm4Lg0Y-jeg-LrYVDI2Qvzo9hQo7YnPImLtgBQC.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/CpD7vq0Dm4Lg0Y-jeg-LrYVDI2Qvzo9hQo7YnPImLtgBQ.width-1000.png 833w\" alt=\"\" width=\"592\" height=\"238\" \/><\/p>\n<h2>Configure\u00a0the HelloWorld.ino file<\/h2>\n<p>Open the Hello World example provided by the Breakout SDK in the Arduino IDE.<\/p>\n<ul>\n<li>Click File &gt; Examples &gt; Breakout Arduino Library &gt; HelloWorld<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/linkMuwBWe915Y8hwg3pa8G6vrDD3P_hsi3UnmRK09gUyv.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/linkMuwBWe915Y8hwg3pa8G6vrDD3P_hsi3UnmRK09gUyv.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/linkMuwBWe915Y8hwg3pa8G6vrDD3P_hsi3UnmRK09gUy.width-1000.png 554w\" alt=\"\" width=\"580\" height=\"102\" \/><\/p>\n<p>In the HelloWorld.ino we need to make a few modifications so we can connect to the T-Mobile NB-IoT network. Find the\u00a0<em>psk_key\u00a0<\/em>in the \u201cHelloWorld.ino\u201d file.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image full-width\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/A2M4K_1ER5APoAqp1d6ZL3Jx3VFvaRnR64iRtcjj7nmwsz.width-800.png\" sizes=\"627px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/A2M4K_1ER5APoAqp1d6ZL3Jx3VFvaRnR64iRtcjj7nmwsz.width-800.png 627w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/A2M4K_1ER5APoAqp1d6ZL3Jx3VFvaRnR64iRtcjj7nmws.width-1600.png 627w\" alt=\"nbiot-psk\" width=\"627\" height=\"171\" \/><\/p>\n<p>Each development board has a unique SIM ICCID and Pre-Shared Key (<em>psk<\/em>). The psk for the board we are using needs to be copied into the HelloWorld.ino sketch. This key is required to connect to the T-Mobile Narrowband network.<\/p>\n<ul>\n<li>Navigate to Programmable Wireless in the Twilio Console<\/li>\n<li>Click SIMs<\/li>\n<li>Find the Narrowband SIM that was previously registered<\/li>\n<li>Under the tab\u00a0<em>Breakout SDK<\/em>\u00a0find Credentials<\/li>\n<li>Where it says Pre-Shared Key (psk) click the eye logo to reveal the key<\/li>\n<li>Copy the psk<\/li>\n<li>Paste your psk into the HelloWorld.ino file in the code above<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image full-width\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/X4rhn9CnVankxRlj97YbjL9tLrDjyzMhxc2T4W8WJsBuY2.width-800.png\" sizes=\"761px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/X4rhn9CnVankxRlj97YbjL9tLrDjyzMhxc2T4W8WJsBuY2.width-800.png 761w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/X4rhn9CnVankxRlj97YbjL9tLrDjyzMhxc2T4W8WJsBuY.width-1600.png 761w\" alt=\"nbiot-breakoutconsole\" width=\"761\" height=\"330\" \/><\/p>\n<p>After the psk is set let\u2019s change the\u00a0<em>setPollingInterval<\/em><em>.\u00a0<\/em>This determines how often the Breakout SDK will\u00a0<a href=\"https:\/\/www.twilio.com\/docs\/wireless\/nb#sms-commands-versus-ip-based-polling-commands\">poll<\/a>\u00a0for a new Command. Find the line\u00a0<em>breakout-&gt;setPollingInterval.<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image full-width\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/ysgLD_wQuzMY38QcJgizds_I81Cvw3KcJCqCar3etA0gb5.width-800.png\" sizes=\"588px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/ysgLD_wQuzMY38QcJgizds_I81Cvw3KcJCqCar3etA0gb5.width-800.png 588w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/ysgLD_wQuzMY38QcJgizds_I81Cvw3KcJCqCar3etA0gb.width-1600.png 588w\" alt=\"nbiot-pollinginterval\" width=\"588\" height=\"74\" \/><\/p>\n<p>Change the \u2018setPollingInterval\u2019 interval from\u00a0<em>10\u00a0<\/em>to\u00a0<em>1.\u00a0<\/em>This will change the\u00a0<a href=\"https:\/\/www.twilio.com\/docs\/wireless\/nb#what-is-polling\">polling<\/a>\u00a0time from 10 minutes to 1 minute.<\/p>\n<\/div>\n<div class=\"markdown\">\n<div class=\"codehilite\">\n<pre class=\"twlo-code\"><span class=\"code-line\">  <span class=\"n\">breakout<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">setPollingInterval<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span> <span class=\"o\">*<\/span> <span class=\"mi\">60<\/span><span class=\"p\">);<\/span>\n<\/span><\/pre>\n<\/div>\n<\/div>\n<div class=\"rich-text\">\n<p>Below is the complete Arduino sketch. Further details on how to the Breakout SDK can found on\u00a0<a href=\"https:\/\/github.com\/twilio\/Breakout_Arduino_Library\">GitHub<\/a>.<\/p>\n<\/div>\n<div class=\"markdown\">\n<div class=\"codehilite\">\n<pre class=\"twlo-code\"><span class=\"code-line\"><span class=\"cp\">#include<\/span> <span class=\"cpf\">&lt;Seeed_ws2812.h&gt;<\/span>\n<\/span><span class=\"code-line\"><span class=\"cp\">#include<\/span> <span class=\"cpf\">&lt;BreakoutSDK.h&gt;<\/span>\n<\/span>\n<span class=\"code-line\"><span class=\"kr\">static<\/span> <span class=\"kr\">const<\/span> <span class=\"kr\">char<\/span> <span class=\"o\">*<\/span><span class=\"n\">device_purpose<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"Dev-Kit\"<\/span><span class=\"p\">;<\/span>\n<\/span><span class=\"code-line\"><span class=\"kr\">static<\/span> <span class=\"kr\">const<\/span> <span class=\"kr\">char<\/span> <span class=\"o\">*<\/span><span class=\"n\">psk_key<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"YOUR_PSK\"<\/span><span class=\"p\">;<\/span>\n<\/span>\n<span class=\"code-line\"><span class=\"n\">Breakout<\/span> <span class=\"o\">*<\/span><span class=\"n\">breakout<\/span> <span class=\"o\">=<\/span> <span class=\"o\">&amp;<\/span><span class=\"n\">Breakout<\/span><span class=\"o\">::<\/span><span class=\"n\">getInstance<\/span><span class=\"p\">();<\/span>\n<\/span>\n<span class=\"code-line\"><span class=\"n\">WS2812<\/span> <span class=\"n\">strip<\/span> <span class=\"o\">=<\/span> <span class=\"n\">WS2812<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"n\">RGB_LED_PIN<\/span><span class=\"p\">);<\/span>\n<\/span>\n<span class=\"code-line\"><span class=\"kr\">void<\/span> <span class=\"nf\">enableLed<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n<\/span><span class=\"code-line\">  <span class=\"nf\">pinMode<\/span><span class=\"p\">(<\/span><span class=\"n\">RGB_LED_PWR_PIN<\/span><span class=\"p\">,<\/span> <span class=\"kr\">OUTPUT<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">  <span class=\"nf\">digitalWrite<\/span><span class=\"p\">(<\/span><span class=\"n\">RGB_LED_PWR_PIN<\/span><span class=\"p\">,<\/span> <span class=\"kr\">HIGH<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">strip<\/span><span class=\"p\">.<\/span><span class=\"nf\">begin<\/span><span class=\"p\">();<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">strip<\/span><span class=\"p\">.<\/span><span class=\"n\">brightness<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">5<\/span><span class=\"p\">;<\/span>\n<\/span><span class=\"code-line\"><span class=\"p\">}<\/span>\n<\/span>\n<span class=\"code-line\"><span class=\"kr\">void<\/span> <span class=\"nb\">setup<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">owl_log_set_level<\/span><span class=\"p\">(<\/span><span class=\"n\">L_INFO<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">LOG<\/span><span class=\"p\">(<\/span><span class=\"n\">L_WARN<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Arduino setup() starting up<\/span><span class=\"se\">\\r\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">);<\/span>\n<\/span>\n<span class=\"code-line\">  <span class=\"n\">enableLed<\/span><span class=\"p\">();<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">strip<\/span><span class=\"p\">.<\/span><span class=\"n\">WS2812SetRGB<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mh\">0x20<\/span><span class=\"p\">,<\/span> <span class=\"mh\">0x20<\/span><span class=\"p\">,<\/span> <span class=\"mh\">0x00<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">strip<\/span><span class=\"p\">.<\/span><span class=\"n\">WS2812Send<\/span><span class=\"p\">();<\/span>\n<\/span>\n<span class=\"code-line\">  <span class=\"n\">breakout<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">setPurpose<\/span><span class=\"p\">(<\/span><span class=\"n\">device_purpose<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">breakout<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">setPSKKey<\/span><span class=\"p\">(<\/span><span class=\"n\">psk_key<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">breakout<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">setPollingInterval<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span> <span class=\"o\">*<\/span> <span class=\"mi\">60<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ Optional, set to 1 minute<\/span>\n<\/span>\n<span class=\"code-line\">  <span class=\"c1\">\/\/ Powering the modem and starting up the SDK<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">LOG<\/span><span class=\"p\">(<\/span><span class=\"n\">L_WARN<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Powering on module and registering...\"<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">breakout<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">powerModuleOn<\/span><span class=\"p\">();<\/span>\n<\/span>\n<span class=\"code-line\">  <span class=\"kr\">const<\/span> <span class=\"kr\">char<\/span> <span class=\"n\">command<\/span><span class=\"p\">[]<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"Hello World from BreakoutSDK test app\"<\/span><span class=\"p\">;<\/span>\n<\/span>\n<span class=\"code-line\">  <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">breakout<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">sendTextCommand<\/span><span class=\"p\">(<\/span><span class=\"n\">command<\/span><span class=\"p\">)<\/span> <span class=\"o\">==<\/span> <span class=\"n\">COMMAND_STATUS_OK<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n<\/span><span class=\"code-line\">    <span class=\"n\">LOG<\/span><span class=\"p\">(<\/span><span class=\"n\">L_INFO<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Tx-Command [%s]<\/span><span class=\"se\">\\r\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">command<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">  <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n<\/span><span class=\"code-line\">    <span class=\"n\">LOG<\/span><span class=\"p\">(<\/span><span class=\"n\">L_INFO<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Tx-Command ERROR<\/span><span class=\"se\">\\r\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">  <span class=\"p\">}<\/span>\n<\/span>\n<span class=\"code-line\">  <span class=\"c1\">\/\/ Set RGB-LED to green<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">strip<\/span><span class=\"p\">.<\/span><span class=\"n\">WS2812SetRGB<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mh\">0x00<\/span><span class=\"p\">,<\/span> <span class=\"mh\">0x40<\/span><span class=\"p\">,<\/span> <span class=\"mh\">0x00<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">strip<\/span><span class=\"p\">.<\/span><span class=\"n\">WS2812Send<\/span><span class=\"p\">();<\/span>\n<\/span>\n<span class=\"code-line\">  <span class=\"n\">LOG<\/span><span class=\"p\">(<\/span><span class=\"n\">L_WARN<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"... done powering on and registering.<\/span><span class=\"se\">\\r\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">LOG<\/span><span class=\"p\">(<\/span><span class=\"n\">L_WARN<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Arduino loop() starting up<\/span><span class=\"se\">\\r\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\"><span class=\"p\">}<\/span>\n<\/span>\n<span class=\"code-line\"><span class=\"kr\">void<\/span> <span class=\"nf\">your_application_example<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n<\/span><span class=\"code-line\">  <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">breakout<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">hasWaitingCommand<\/span><span class=\"p\">())<\/span> <span class=\"p\">{<\/span>\n<\/span><span class=\"code-line\">    <span class=\"kr\">char<\/span> <span class=\"n\">command<\/span><span class=\"p\">[<\/span><span class=\"mi\">141<\/span><span class=\"p\">];<\/span>\n<\/span><span class=\"code-line\">    <span class=\"kt\">size_t<\/span> <span class=\"n\">commandLen<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n<\/span><span class=\"code-line\">    <span class=\"kr\">bool<\/span> <span class=\"n\">isBinary<\/span>     <span class=\"o\">=<\/span> <span class=\"kr\">false<\/span><span class=\"p\">;<\/span>\n<\/span><span class=\"code-line\">    <span class=\"n\">command_status_code_e<\/span> <span class=\"n\">code<\/span> <span class=\"o\">=<\/span> <span class=\"n\">breakout<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">receiveCommand<\/span><span class=\"p\">(<\/span><span class=\"mi\">140<\/span><span class=\"p\">,<\/span> <span class=\"n\">command<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"n\">commandLen<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"n\">isBinary<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">    <span class=\"k\">switch<\/span> <span class=\"p\">(<\/span><span class=\"n\">code<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n<\/span><span class=\"code-line\">      <span class=\"k\">case<\/span> <span class=\"nl\">COMMAND_STATUS_OK<\/span><span class=\"p\">:<\/span>\n<\/span><span class=\"code-line\">        <span class=\"n\">LOG<\/span><span class=\"p\">(<\/span><span class=\"n\">L_INFO<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Rx-Command [%.*s]<\/span><span class=\"se\">\\r\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">commandLen<\/span><span class=\"p\">,<\/span> <span class=\"n\">command<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">        <span class=\"k\">break<\/span><span class=\"p\">;<\/span>\n<\/span><span class=\"code-line\">      <span class=\"k\">case<\/span> <span class=\"nl\">COMMAND_STATUS_ERROR<\/span><span class=\"p\">:<\/span>\n<\/span><span class=\"code-line\">        <span class=\"n\">LOG<\/span><span class=\"p\">(<\/span><span class=\"n\">L_INFO<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Rx-Command ERROR<\/span><span class=\"se\">\\r\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">        <span class=\"k\">break<\/span><span class=\"p\">;<\/span>\n<\/span><span class=\"code-line\">      <span class=\"k\">case<\/span> <span class=\"nl\">COMMAND_STATUS_BUFFER_TOO_SMALL<\/span><span class=\"p\">:<\/span>\n<\/span><span class=\"code-line\">        <span class=\"n\">LOG<\/span><span class=\"p\">(<\/span><span class=\"n\">L_INFO<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Rx-Command BUFFER_TOO_SMALL<\/span><span class=\"se\">\\r\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">        <span class=\"k\">break<\/span><span class=\"p\">;<\/span>\n<\/span><span class=\"code-line\">      <span class=\"k\">case<\/span> <span class=\"nl\">COMMAND_STATUS_NO_COMMAND_WAITING<\/span><span class=\"p\">:<\/span>\n<\/span><span class=\"code-line\">        <span class=\"n\">LOG<\/span><span class=\"p\">(<\/span><span class=\"n\">L_INFO<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Rx-Command NO_COMMAND_WAITING<\/span><span class=\"se\">\\r\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">        <span class=\"k\">break<\/span><span class=\"p\">;<\/span>\n<\/span><span class=\"code-line\">      <span class=\"k\">default<\/span><span class=\"o\">:<\/span>\n<\/span><span class=\"code-line\">        <span class=\"n\">LOG<\/span><span class=\"p\">(<\/span><span class=\"n\">L_INFO<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Rx-Command ERROR %d<\/span><span class=\"se\">\\r\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">code<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\">    <span class=\"p\">}<\/span>\n<\/span><span class=\"code-line\">  <span class=\"p\">}<\/span>\n<\/span><span class=\"code-line\"><span class=\"p\">}<\/span>\n<\/span>\n<span class=\"code-line\"><span class=\"kr\">void<\/span> <span class=\"nb\">loop<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">your_application_example<\/span><span class=\"p\">();<\/span>\n<\/span><span class=\"code-line\">  <span class=\"n\">breakout<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">spin<\/span><span class=\"p\">();<\/span>\n<\/span><span class=\"code-line\">  <span class=\"nf\">delay<\/span><span class=\"p\">(<\/span><span class=\"mi\">50<\/span><span class=\"p\">);<\/span>\n<\/span><span class=\"code-line\"><span class=\"p\">}<\/span>\n<\/span><\/pre>\n<\/div>\n<\/div>\n<div class=\"rich-text\">\n<h2>Enter Bootloader Mode<\/h2>\n<p>To upload code to the development board the unit needs to be put into Bootloader mode.<\/p>\n<p>Press and hold the BOOT0 button underneath the Developer Board.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/pKBfBLRxI72Ylj_eSvUjjDgCSlkDPeeXAK6yE-48qEqnaP.width-500.jpg\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/pKBfBLRxI72Ylj_eSvUjjDgCSlkDPeeXAK6yE-48qEqnaP.width-500.jpg 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/pKBfBLRxI72Ylj_eSvUjjDgCSlkDPeeXAK6yE-48qEqna.width-1000.jpg 1000w\" alt=\"\" width=\"579\" height=\"567\" \/><\/p>\n<p>Press and hold the RST on the top of the Developer Board.<br \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/BsDNvUrPuG9__SN2Q6ljKNkJq_zmqHmD7n3Qdo2f70cYnh.width-500.jpg\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/BsDNvUrPuG9__SN2Q6ljKNkJq_zmqHmD7n3Qdo2f70cYnh.width-500.jpg 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/BsDNvUrPuG9__SN2Q6ljKNkJq_zmqHmD7n3Qdo2f70cYn.width-1000.jpg 1000w\" alt=\"\" width=\"570\" height=\"623\" \/><\/p>\n<p>Release the RST on the top of the Developer Board.<\/p>\n<p>Release the BOOT0 button to enable Bootloader mode.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/on7nB1GZ4psOsSvBnVIm79zIhyaNwZNEcvjAMPKdyI6rvh.width-500.jpg\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/on7nB1GZ4psOsSvBnVIm79zIhyaNwZNEcvjAMPKdyI6rvh.width-500.jpg 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/on7nB1GZ4psOsSvBnVIm79zIhyaNwZNEcvjAMPKdyI6rv.width-1000.jpg 1000w\" alt=\"\" width=\"581\" height=\"569\" \/><\/p>\n<p>Press Upload in the Arduino IDE.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/rWCDjfTI0avbhzoqhQt605b_kXdG3a2CwItq4Q4lKyvL9r.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/rWCDjfTI0avbhzoqhQt605b_kXdG3a2CwItq4Q4lKyvL9r.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/rWCDjfTI0avbhzoqhQt605b_kXdG3a2CwItq4Q4lKyvL9.width-1000.png 626w\" alt=\"\" width=\"574\" height=\"70\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image full-width aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/original_images\/7yv0QJkXUAbfAva9IuTcEkVNLYCQh_uSVigMG_JzpwjbaEtnnEGN1fhJdYwRiQGERc8OCHSYZvjdfv\" alt=\"nbiot-gif\" width=\"800\" height=\"487\" \/><\/p>\n<p>After the code has been uploaded to the development board press the RST button. This will take the board out of Bootloader mode. The completed code can be found on the\u00a0<a href=\"https:\/\/github.com\/cskonopka\/TwilioIoT\/tree\/master\/Blog\">TwilioIoT GitHub<\/a>.<\/p>\n<h2>Connect to the network\u00a0and sending\u00a0a Command<\/h2>\n<p>After resetting the board start the NB-IoT network registration process. This will register the board on the network and allocate bandwidth for the device. During this process the Network Connectivity LED will glow orange.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/LAn_Rscpq1FNcjcqy-nLreUEAUvXABM4h40tuIe2v0B5Nm.width-500.png\" sizes=\"500px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/LAn_Rscpq1FNcjcqy-nLreUEAUvXABM4h40tuIe2v0B5Nm.width-500.png 500w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/LAn_Rscpq1FNcjcqy-nLreUEAUvXABM4h40tuIe2v0B5N.width-1000.png 500w\" alt=\"\" width=\"579\" height=\"636\" \/><\/p>\n<p>Open the Serial Monitor to observe the board registering and connecting\u00a0to the network.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image full-width\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/breakout-startup.width-800.png\" sizes=\"800px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/breakout-startup.width-800.png 800w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/breakout-startup.width-1600.png 1600w\" alt=\"breakout-startup.png\" width=\"800\" height=\"177\" \/><\/p>\n<p>When the development board successfully registers to the NB-IoT network the Network Connectivity LED will glow blue. The following message will display in the Arduino Serial Monitor when the connection is stable:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image full-width aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/nb-registered1.width-800.png\" sizes=\"800px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/nb-registered1.width-800.png 800w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/nb-registered1.width-1600.png 1600w\" alt=\"nb-registered1.png\" width=\"800\" height=\"62\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image full-width aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/nb-registered2.width-800.png\" sizes=\"800px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/nb-registered2.width-800.png 800w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/nb-registered2.width-1600.png 1600w\" alt=\"nb-registered2.png\" width=\"800\" height=\"174\" \/><\/p>\n<p>When the board successfully connects to the NB-IoT network,\u00a0the Breakout SDK will be initialized.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image full-width aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/SAWtCdoZ09gXhhAptXZMzzUW3jhhcTJXF8_s3nmtJ6zf1L.width-800.png\" sizes=\"800px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/SAWtCdoZ09gXhhAptXZMzzUW3jhhcTJXF8_s3nmtJ6zf1L.width-800.png 800w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/SAWtCdoZ09gXhhAptXZMzzUW3jhhcTJXF8_s3nmtJ6zf1.width-1600.png 1599w\" alt=\"nbiot-breakout\" width=\"800\" height=\"257\" \/><\/p>\n<p>This is the Serial Monitor output when the Breakout SDK sends a Command to Twilio.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image full-width aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/PGASZqyumRnj-PmvAR7tfs-Hpxt0iZdnbh6Xy05lR4rtqd.width-800.png\" sizes=\"800px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/PGASZqyumRnj-PmvAR7tfs-Hpxt0iZdnbh6Xy05lR4rtqd.width-800.png 800w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/PGASZqyumRnj-PmvAR7tfs-Hpxt0iZdnbh6Xy05lR4rtq.width-1600.png 1600w\" alt=\"nbiot-sendcommand\" width=\"800\" height=\"154\" \/><\/p>\n<p>Every Command sent and received by the Breakout SDK is logged. Commands sent over the NB-IoT network can be found in the Twilio Console under Programmable Wireless.<\/p>\n<ul>\n<li>Navigate to Programmable Wireless in the Twilio Console<\/li>\n<li>Click SIMs<\/li>\n<li>Find the Narrowband SIM that was previously registered<\/li>\n<li>Click the\u00a0<em>Commands<\/em>\u00a0tab<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image full-width aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/UYlULzuBHPMdcyViLuLqkuPLoGteLV2hsVjJVO4Vmqnck5.width-800.png\" sizes=\"800px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/UYlULzuBHPMdcyViLuLqkuPLoGteLV2hsVjJVO4Vmqnck5.width-800.png 800w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/UYlULzuBHPMdcyViLuLqkuPLoGteLV2hsVjJVO4Vmqnck.width-1600.png 1600w\" alt=\"nbiot-consolecommand\" width=\"800\" height=\"51\" \/><\/p>\n<h2>Receive\u00a0a Command with the Breakout SDK<\/h2>\n<p>The Breakout SDK will poll for a new Command every minute. Using\u00a0<a href=\"https:\/\/curl.haxx.se\/\">cURL<\/a>, you can\u00a0send a Command to the NB-IoT board by\u00a0using the Sim unique name.<\/p>\n<\/div>\n<div class=\"markdown\">\n<div class=\"codehilite\">\n<pre class=\"twlo-code\"><span class=\"code-line\">curl -X POST https:\/\/wireless.twilio.com\/v1\/Commands <span class=\"se\">\\ <\/span>--data-urlencode <span class=\"s2\">\"Sim=Breakout\"<\/span> <span class=\"se\">\\ <\/span>--data-urlencode <span class=\"s2\">\"Command=this is a test\"<\/span> <span class=\"se\">\\ <\/span>-u ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token\n<\/span><\/pre>\n<\/div>\n<\/div>\n<div class=\"rich-text\">\n<p>Watch the Arduino IDE Serial Monitor to see the Command\u00a0as it is received:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image full-width aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/nb-curlcommand.width-800.png\" sizes=\"761px\" srcset=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/nb-curlcommand.width-800.png 761w, https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/images\/nb-curlcommand.width-1600.png 761w\" alt=\"nb-curlcommand.png\" width=\"761\" height=\"136\" \/><\/p>\n<p>How does it feel to be one of the first pioneers of NB-IoT?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"richtext-image left aligncenter\" src=\"https:\/\/s3.amazonaws.com\/com.twilio.prod.twilio-docs\/original_images\/file.gif\" alt=\"nb-pioneer.gif\" width=\"577\" height=\"392\" \/><\/p>\n<h2>The future of \u201cthings\u201d using NB-IoT<\/h2>\n<p>It\u2019s a special time for IoT development on\u00a0both the hardware and software side. Many processes are becoming optimized&#8230;\u00a0and many are still shrouded in mystery.<\/p>\n<p>These \u201cthings\u201d impact our daily lives\u00a0\u2013\u00a0often without us even realizing\u00a0it. Every\u00a0segment\u00a0from scooters to home automation\u00a0now has some element of interconnectivity.<\/p>\n<p>NB-IoT takes it a step further still. The low cost, low power consumption, wide area coverage and long battery life of Narrowband make \u201cSmart Devices\u201d even smarter. Become an IoT pioneer with Twilio Narrowband. Let\u2019s build dreams together.<\/p>\n<p><em>If you ever want to chat about IoT, hardware or modular synthesizers ping me anytime on Twitter or via Email. Let\u2019s connect.<\/em><\/p>\n<ul>\n<li>Email: ckonopka@twilio.com<\/li>\n<li>Github:\u00a0<a href=\"http:\/\/github.com\/cskonopka\">cskonopka<\/a><\/li>\n<li>Twitter:\u00a0<a href=\"http:\/\/twitter.com\/cskonopka\">@cskonopka<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you were an attendee of Twilio\u2019s SIGNAL 2018 in San Francisco last October, you<\/p>\n","protected":false},"author":49,"featured_media":19328,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[1160],"class_list":["post-19327","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-nb-iot"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pioneer NB-IoT with Twilio\u2019s Alfa Development Kit - Latest News from Seeed Studio<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pioneer NB-IoT with Twilio\u2019s Alfa Development Kit - Latest News from Seeed Studio\" \/>\n<meta property=\"og:description\" content=\"If you were an attendee of Twilio\u2019s SIGNAL 2018 in San Francisco last October, you\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/\" \/>\n<meta property=\"og:site_name\" content=\"Latest News from Seeed Studio\" \/>\n<meta property=\"article:published_time\" content=\"2019-01-04T03:38:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-01-04T03:38:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png\" \/>\n\t<meta property=\"og:image:width\" content=\"468\" \/>\n\t<meta property=\"og:image:height\" content=\"404\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lily\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lily\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/\",\"name\":\"Pioneer NB-IoT with Twilio\u2019s Alfa Development Kit - Latest News from Seeed Studio\",\"isPartOf\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png\",\"datePublished\":\"2019-01-04T03:38:02+00:00\",\"dateModified\":\"2019-01-04T03:38:04+00:00\",\"author\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/2c4649ac4300f806534ce102966132be\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/#primaryimage\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png\",\"contentUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png\",\"width\":468,\"height\":404},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.seeedstudio.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pioneer NB-IoT with Twilio\u2019s Alfa Development Kit\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/\",\"name\":\"Latest News from Seeed Studio\",\"description\":\"Emerging IoT, AI and Autonomous Applications on the Edge\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/2c4649ac4300f806534ce102966132be\",\"name\":\"Lily\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e09551e741c84cf6d622dcf7c68e2e5?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e09551e741c84cf6d622dcf7c68e2e5?s=96&r=g\",\"caption\":\"Lily\"},\"description\":\"Nature lover, baker, cook, DIYer, bug hunter in daily life, and wanna code. Love writing. Words are my natural expression.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/meilily-li-94587078\/\",\"https:\/\/www.instagram.com\/meililyli\/\"],\"url\":\"https:\/\/www.seeedstudio.com\/blog\/author\/lily\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pioneer NB-IoT with Twilio\u2019s Alfa Development Kit - Latest News from Seeed Studio","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/","og_locale":"en_US","og_type":"article","og_title":"Pioneer NB-IoT with Twilio\u2019s Alfa Development Kit - Latest News from Seeed Studio","og_description":"If you were an attendee of Twilio\u2019s SIGNAL 2018 in San Francisco last October, you","og_url":"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/","og_site_name":"Latest News from Seeed Studio","article_published_time":"2019-01-04T03:38:02+00:00","article_modified_time":"2019-01-04T03:38:04+00:00","og_image":[{"width":468,"height":404,"url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png","type":"image\/png"}],"author":"Lily","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lily","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/","url":"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/","name":"Pioneer NB-IoT with Twilio\u2019s Alfa Development Kit - Latest News from Seeed Studio","isPartOf":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/#primaryimage"},"image":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/#primaryimage"},"thumbnailUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png","datePublished":"2019-01-04T03:38:02+00:00","dateModified":"2019-01-04T03:38:04+00:00","author":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/2c4649ac4300f806534ce102966132be"},"breadcrumb":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/#primaryimage","url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png","contentUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png","width":468,"height":404},{"@type":"BreadcrumbList","@id":"https:\/\/www.seeedstudio.com\/blog\/2019\/01\/04\/pioneer-nb-iot-with-twilios-alfa-development-kit\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.seeedstudio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Pioneer NB-IoT with Twilio\u2019s Alfa Development Kit"}]},{"@type":"WebSite","@id":"https:\/\/www.seeedstudio.com\/blog\/#website","url":"https:\/\/www.seeedstudio.com\/blog\/","name":"Latest News from Seeed Studio","description":"Emerging IoT, AI and Autonomous Applications on the Edge","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/2c4649ac4300f806534ce102966132be","name":"Lily","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e09551e741c84cf6d622dcf7c68e2e5?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e09551e741c84cf6d622dcf7c68e2e5?s=96&r=g","caption":"Lily"},"description":"Nature lover, baker, cook, DIYer, bug hunter in daily life, and wanna code. Love writing. Words are my natural expression.","sameAs":["https:\/\/www.linkedin.com\/in\/meilily-li-94587078\/","https:\/\/www.instagram.com\/meililyli\/"],"url":"https:\/\/www.seeedstudio.com\/blog\/author\/lily\/"}]}},"modified_by":"Lily","views":5357,"featured_image_urls":{"full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png",468,404,false],"thumbnail":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808-80x80.png",80,80,true],"medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808-300x259.png",300,259,true],"medium_large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png",468,404,false],"large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png",468,404,false],"1536x1536":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png",468,404,false],"2048x2048":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png",468,404,false],"visody_icon":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png",32,28,false],"magazine-7-slider-full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png",468,404,false],"magazine-7-slider-center":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png",468,404,false],"magazine-7-featured":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png",468,404,false],"magazine-7-medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png",440,380,false],"magazine-7-medium-square":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2019\/01\/MKoJIoIsK4_PFrh9eCTFyy1uA_Jx4rb4LU_u97K9PQbgsk.width-808.png",468,404,false]},"author_info":{"display_name":"Lily","author_link":"https:\/\/www.seeedstudio.com\/blog\/author\/lily\/"},"category_info":"<a href=\"https:\/\/www.seeedstudio.com\/blog\/category\/news\/\" rel=\"category tag\">News<\/a>","tag_info":"News","comment_count":"0","_links":{"self":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/19327","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/comments?post=19327"}],"version-history":[{"count":11,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/19327\/revisions"}],"predecessor-version":[{"id":19344,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/19327\/revisions\/19344"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media\/19328"}],"wp:attachment":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media?parent=19327"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/categories?post=19327"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/tags?post=19327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}