<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blues &#8211; Voltaic Systems Blog</title>
	<atom:link href="https://blog.voltaicsystems.com/tag/blues/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.voltaicsystems.com</link>
	<description>Solar Tutorial and DIY Solar Guides</description>
	<lastBuildDate>Wed, 19 Feb 2025 16:00:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://blog.voltaicsystems.com/wp-content/uploads/2024/07/cropped-Favicon_48x48-32x32.png</url>
	<title>Blues &#8211; Voltaic Systems Blog</title>
	<link>https://blog.voltaicsystems.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Solar Power a Blues Connected IoT Device</title>
		<link>https://blog.voltaicsystems.com/a-deep-dive-into-blues/</link>
					<comments>https://blog.voltaicsystems.com/a-deep-dive-into-blues/#respond</comments>
		
		<dc:creator><![CDATA[Lizabeth Arum]]></dc:creator>
		<pubDate>Fri, 31 Jan 2025 22:01:10 +0000</pubDate>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[IoT Tutorial]]></category>
		<category><![CDATA[Blues]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[temperature sensor]]></category>
		<guid isPermaLink="false">https://blog.voltaicsystems.com/?p=114381</guid>

					<description><![CDATA[Blues provides an ecosystem of hardware and software to simplify wireless connectivity for IoT devices. Voltaic uses Blues’ Notecard and Notecarrier in our battery health monitoring module for our solar powered systems and we have customers using our solar panels to power their IoT applications.  This is an introduction to create a simple, solar powered, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;">Blues provides an ecosystem of hardware and software to simplify wireless connectivity for IoT devices. Voltaic uses Blues’ Notecard and Notecarrier in our battery health monitoring module for our </span><a href="https://voltaicsystems.com/iot/"><span style="font-weight: 400;">solar powered systems</span></a><span style="font-weight: 400;"> and we have customers using our solar panels to power their IoT applications. </span></p>
<p><span style="font-weight: 400;">This is an introduction to create a simple, solar powered, cellular connected device. In this post, we:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Explain the Blues ecosystem (The </span><a href="https://dev.blues.io/"><span style="font-weight: 400;">Blues Developer Center</span></a><span style="font-weight: 400;"> is also an invaluable resource)</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Show you how to program a device in the Arduino IDE to measure and report temperature then go to sleep</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Measure the power consumption with a </span><a href="https://www.qoitech.com/"><span style="font-weight: 400;">Qoitech</span></a><span style="font-weight: 400;"> Otii Ace and size a solar system to support it</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Display that data to a </span><a href="https://www.qubitro.com/"><span style="font-weight: 400;">Qubitro</span></a><span style="font-weight: 400;"> dashboard</span></li>
</ul>
<h2><span style="font-weight: 400;">The Blues Notecard</span></h2>
<p><span style="font-weight: 400;">Blues’ core hardware product is the Blues Notecard, a “device-to-cloud data pump” that connects physical devices to cloud applications via low-power cellular, Wi-Fi, or LoRa.</span></p>
<p><span style="font-weight: 400;">      <img fetchpriority="high" decoding="async" class="size-medium wp-image-114382 aligncenter" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-10.01.46 AM-750x243.png" alt="Notecards" width="750" height="243" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-10.01.46 AM-750x243.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-10.01.46 AM-768x249.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-10.01.46 AM.png 1190w" sizes="(max-width: 750px) 100vw, 750px" /></span></p>
<p><span style="font-weight: 400;">There are available starter kits and the basic  </span><a href="https://shop.blues.com/collections/development-kits?__hstc=171785791.682252c7f2045590b2529cfccade57d0.1726497217142.1728254411211.1728307689603.13&amp;__hssc=171785791.4.1728307689603&amp;__hsfp=3990537976&amp;_ga=2.50081318.1813368378.1728242770-1426223929.1726497216&amp;_gac=1.221123818.1727726382.Cj0KCQjwr9m3BhDHARIsANut04bgLcoxQOT_AXlc0wELcxRfzWBZWMgyVLf0KtzE-lxMsiRXPtQbkrgaAj87EALw_wcB&amp;_gl=1*iulvgr*_gcl_aw*R0NMLjE3Mjc3MjYzODEuQ2owS0NRandyOW0zQmhESEFSSXNBTnV0MDRiZ0xjb3hRT1RfQVhsYzB3RUxjeFJmeldCWldNZ3lWTGYwS3R6RS1seE1zaVJYUHRRYmtyZ2FBajg3RUFMd193Y0I.*_gcl_au*MTAzODM2NTA2MS4xNzI2NDk3MjE2*_ga*MTQyNjIyMzkyOS4xNzI2NDk3MjE2*_ga_PJ7RGMWWBX*MTcyODMwNzY4OS4zNS4xLjE3MjgzMDk3MDYuNTIuMC4w"><span style="font-weight: 400;">Blues Starter Kit</span></a><span style="font-weight: 400;"> includes a Notecarrier F Development board and Notecard with a low power cellular and GPS module and on-board temperature sensor. The Notecard also ships with an embedded SIM and 10 years + 500 MB of data. No SIM setup is required. </span></p>
<p><span style="font-weight: 400;">To configure the Notecard firmware (including the cellular modem) you use JSON commands. No AT commands are needed.</span></p>
<p><span style="font-weight: 400;">This is the request to get information about your card:</span></p>
<pre><span style="font-weight: 400;">{"req":"card.version"}</span></pre>
<p><span style="font-weight: 400;">The request will return something similar to the following response:</span></p>
<pre><span style="font-weight: 400;">{</span>
<span style="font-weight: 400;">  "body":{</span>
<span style="font-weight: 400;">    "org":"Blues Wireless",</span>
<span style="font-weight: 400;">    "product":"Notecard",</span>
<span style="font-weight: 400;">    "version":"notecard-1.5.6",</span>
<span style="font-weight: 400;">    "ver_major":1,</span>
<span style="font-weight: 400;">    "ver_minor":5,</span>
<span style="font-weight: 400;">    "ver_patch":6,</span>
<span style="font-weight: 400;">    "ver_build":13807,</span>
<span style="font-weight: 400;">    "built":"Oct  7 2021 14:32:14"</span>
<span style="font-weight: 400;">  },</span>
<span style="font-weight: 400;">  "version":"notecard-1.5.6.13807",</span>
<span style="font-weight: 400;">  "device":"dev:864475040543182",</span>
<span style="font-weight: 400;">  "name":"Blues Wireless Notecard",</span>
<span style="font-weight: 400;">  "sku":"NOTE-NBGL-500",</span>
<span style="font-weight: 400;">  "board":"1.11",</span>
<span style="font-weight: 400;">  "api":1</span>
<span style="font-weight: 400;">}</span></pre>
<p><span style="font-weight: 400;">To get location data you issue the following JSON command:</span></p>
<p>[js]{“req”:”card.location”}[/js]</p>
<p><span style="font-weight: 400;">In a C/C++ environment you make your JSON requests like this:</span></p>
<p>[code lang=&#8221;arduino&#8221;]J *req= NoteNewRequest(“card.location”);[/code]</p>
<p><span style="font-weight: 400;">And to parse the request’s response in C/C++ you can use statements like these::</span></p>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]J *rsp= NoteRequestResponse(req);<br />
J *status=JGetString(rsp, “status”);<br />
J *mode=JGetString(rsp, “mode”);[/code]</p>
<p><span style="font-weight: 400;">All interaction between the Notecard and a host microcontroller or microprocessor occurs using this JSON protocol. It is important to note that to send a subsequent request to the Notecard, you must wait to receive the response from the previous request as it is unsafe to send a second request without waiting for the first to complete.</span></p>
<p><span style="font-weight: 400;">Notecards are connected to </span><b>Notecarriers</b><span style="font-weight: 400;"> through I2C.  The I2C interface is available at address 0x17 and can be reconfigured using a </span><a href="https://dev.blues.io/api-reference/notecard-api/card-requests/#card-io"><span style="font-weight: 400;">card.io</span></a><span style="font-weight: 400;"> request.</span></p>
<h2><span style="font-weight: 400;">The Blues Notecarrier</span></h2>
<p><span style="font-weight: 400;">Notecarriers are development boards. The Notecarrier F which comes in the Blues Starter Kit works with any feather compatible MCU, while the Notecarrier R is compatible with the Arduino MKR and Pro boards.</span></p>
<p><span style="font-weight: 400;">Notecarriers A and F ship with low-profile cellular and GPS antennas and allow for connections to solar panels and Lithium Ion batteries.</span></p>
<p><span style="font-weight: 400;"><img decoding="async" class="size-medium wp-image-114383 aligncenter" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-10.05.00 AM-658x500.png" alt="Notecarriers A and F " width="658" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-10.05.00 AM-658x500.png 658w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-10.05.00 AM-768x584.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-10.05.00 AM-80x60.png 80w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-10.05.00 AM.png 1126w" sizes="(max-width: 658px) 100vw, 658px" /></span></p>
<h2><span style="font-weight: 400;">The Blues Notehub</span></h2>
<p><span style="font-weight: 400;">The Blues </span><b>Notehub</b><span style="font-weight: 400;"> is a cloud-based software as a service (SaaS) platform found at </span><a href="https://notehub.io/projects"><span style="font-weight: 400;">Notehub.io</span></a><span style="font-weight: 400;"> and is the central hub for device management, data routing, and cloud integration. Notehub is where you can view your Notecard’s event data and securely route that data to third-party cloud applications, like </span><a href="https://aws.amazon.com/free/?trk=fce796e8-4ceb-48e0-9767-89f7873fac3d&amp;sc_channel=ps&amp;ef_id=Cj0KCQjwjY64BhCaARIsAIfc7YYqs7v7ijSAJ-HJwvQevxt2S4WYuc14Tt7nJgu5Q5h8rFgMKr2tqTsaAqcwEALw_wcB:G:s&amp;s_kwcid=AL!4422!3!432339156150!e!!g!!aws!1644045032!68366401852&amp;gclid=Cj0KCQjwjY64BhCaARIsAIfc7YYqs7v7ijSAJ-HJwvQevxt2S4WYuc14Tt7nJgu5Q5h8rFgMKr2tqTsaAqcwEALw_wcB"><span style="font-weight: 400;">AWS</span></a><span style="font-weight: 400;">, </span><a href="https://azure.microsoft.com/en-us"><span style="font-weight: 400;">Azure</span></a><span style="font-weight: 400;">, or </span><a href="https://www.qubitro.com/"><span style="font-weight: 400;">Qubitro</span></a><span style="font-weight: 400;">. </span></p>
<p><img decoding="async" class="size-medium wp-image-114384 aligncenter" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image34-750x441.png" alt="third-party cloud applications" width="750" height="441" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image34-750x441.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image34-1500x881.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image34-768x451.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image34-1536x902.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image34.png 1920w" sizes="(max-width: 750px) 100vw, 750px" /></p>
<p><span style="font-weight: 400;">Notehub also provides functionality for managing Notecard and host firmware and allows users to create and manage their projects, fleets, and teams. </span></p>
<h2><span style="font-weight: 400;">A Note</span></h2>
<p><span style="font-weight: 400;">A </span><b>Note</b><span style="font-weight: 400;"> is a JSON object containing your content, and is the primary means of sending data to/from a Notecard.</span></p>
<div id="attachment_114385" style="width: 760px" class="wp-caption aligncenter"><a href="https://dev.blues.io/notecard/notecard-walkthrough/overview/"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-114385" class="wp-image-114385 size-medium" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image31-750x287.png" alt="Notecard overview" width="750" height="287" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image31-750x287.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image31-768x294.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image31.png 1336w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a><p id="caption-attachment-114385" class="wp-caption-text">https://dev.blues.io/notecard/notecard-walkthrough/overview/</p></div>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">Getting Started with Blues</span></h2>
<p><span style="font-weight: 400;">The low power consumption of the notecard makes it ideal for low power applications including those powered by solar panels. Here is an outline of the basic steps to follow to set up your IoT device:</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Setup the hardware</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Register your Blues Wireless device in Notehub</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Assign your Notecard to a Cloud Project </span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Validate your ProductUID and Connection</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Develop your IoT application</span>
<ol>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Queue Notes to Your Notecard</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Set up a microcontroller</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Integrate a Notecard into your code</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Power your device</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Size your system</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Route data to the cloud</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Use JSONata to get your data in the format that suits your needs</span></li>
</ol>
<h2><span style="font-weight: 400;">Hardware for a Low Power Solar Device with Blues</span></h2>
<p><span style="font-weight: 400;">This device will read and report temperature. It is powered by a pair of 0.3 watt solar panels and an LIC (lithium Ion Capacitor)</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><a href="https://shop.blues.com/products/blues-global-starter-kit"><span style="font-weight: 400;">The Blues Starter Kit for Cell and WiFi</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://www.amazon.com/HiLetgo-Temperature-Humidity-Electronic-Practice/dp/B0795F19W6/ref=asc_df_B0795F19W6/"><span style="font-weight: 400;">DHT22 temperature sensor</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://voltaicsystems.com/Solar-System-Lithium-Ion-Capacitor"><span style="font-weight: 400;">E-Peas Energy Harvester (C117)</span></a><span style="font-weight: 400;"> with LIC</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">2 x </span><a href="https://voltaicsystems.com/0-3-watt-2-volt-solar-panel-etfe/"><span style="font-weight: 400;">0.3 Watt 2 Volt Mini Solar Panel &#8211; ETFE</span></a></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">2 x </span><a href="https://voltaicsystems.com/G105"><span style="font-weight: 400;">High Bonding Gasket for P121 and P122</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://voltaicsystems.com/mini-solar-ready-enclosure/"><span style="font-weight: 400;">Mini Solar Enclosure</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://www.digikey.com/en/products/detail/stmicroelectronics/STLINK-V3MINIE/16284301"><span style="font-weight: 400;">STLINK-V3MINIE ST-LINK V3 PROG FOR STM32</span></a></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Computer with two available USB ports.</span></li>
<li style="font-weight: 400;" aria-level="1"><b>single-cell </b><span style="font-weight: 400;">3.7V LiPo or LiIon battery cell with a 2-pin JST PH connector (for testing)</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">MicroUSB cable</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">USB-C cable2 x</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Phillips head screwdriver</span></li>
</ul>
<h2><span style="font-weight: 400;">Software</span></h2>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">A browser that supports the Web Serial API, like Chrome, Microsoft Edge, or Opera.</span></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://www.arduino.cc/en/software"><span style="font-weight: 400;">Arduino IDE</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://www.st.com/en/development-tools/stm32cubeclt.html"><span style="font-weight: 400;">STM32CubeCLT</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://github.com/stm32duino/Arduino_Core_STM32"><span style="font-weight: 400;">Arduino_Core_STM32</span></a><span style="font-weight: 400;"> </span></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://github.com/stm32duino/STM32LowPower"><span style="font-weight: 400;">STM32LowPower </span></a></li>
</ul>
<h2><span style="font-weight: 400;">URLS</span></h2>
<ul>
<li style="font-weight: 400;" aria-level="1"><a href="https://notehub.io/"><span style="font-weight: 400;">notehub.io</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://dev.blues.io/terminal/"><span style="font-weight: 400;">In-Browser Terminal</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://webhook.site/"><span style="font-weight: 400;">Webhook.site</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://qubitro.com"><span style="font-weight: 400;">Qubitro</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://dev.blues.io/"><span style="font-weight: 400;">Blues Developer Center</span></a></li>
<li style="font-weight: 400;" aria-level="1"><a href="https://dev.blues.io/guides-and-tutorials/notecard-guides/using-jsonata-to-transform-json/"><span style="font-weight: 400;">Blues JSONata Guide</span></a></li>
</ul>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">1. Setup Hardware</span></h2>
<p><span style="font-weight: 400;">You’ve ordered the Starter Kit and now it’s time to put it to use.</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Remove the screw with a Phillips head screwdriver from the Notecarrier:</span>
<div id="attachment_114386" style="width: 677px" class="wp-caption aligncenter"><a href="https://dev.blues.io/quickstart/notecard-quickstart/notecard-and-notecarrier-f/"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-114386" class="wp-image-114386 size-medium" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image12-667x500.png" alt="Notecard setup" width="667" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image12-667x500.png 667w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image12-768x576.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image12-80x60.png 80w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image12.png 900w" sizes="auto, (max-width: 667px) 100vw, 667px" /></a><p id="caption-attachment-114386" class="wp-caption-text">https://dev.blues.io/quickstart/notecard-quickstart/notecard-and-notecarrier-f/</p></div>
<p>&nbsp;</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Place the Notecard into the M.2 slot on the Notecarrier. Once inserted, press gently until the Notecard is inserted and the screw receptacle hole is completely visible. Re-insert the screw, being sure NOT to over tighten the screw:</span>
<div id="attachment_114387" style="width: 677px" class="wp-caption aligncenter"><a href="https://dev.blues.io/quickstart/notecard-quickstart/notecard-and-notecarrier-f/"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-114387" class="wp-image-114387 size-medium" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image49-667x500.png" alt="Notecard and Notecarrier" width="667" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image49-667x500.png 667w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image49-768x576.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image49-80x60.png 80w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image49.png 900w" sizes="auto, (max-width: 667px) 100vw, 667px" /></a><p id="caption-attachment-114387" class="wp-caption-text">https://dev.blues.io/quickstart/notecard-quickstart/notecard-and-notecarrier-f/</p></div>
<p>&nbsp;</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Push the cable end from the antenna labeled </span><b>LTE</b><span style="font-weight: 400;"> firmly onto the </span><b>MAIN</b><span style="font-weight: 400;"> socket on the Notecard. When seated properly, you will feel it &#8220;click&#8221; into place. </span>NOTE: If you are using the Molex 213353 antenna, the <b>LTE</b> and <b>GPS</b> labels may be absent. Use the center wire (the wire on the left) for <b>LTE</b>.
<div id="attachment_114388" style="width: 600px" class="wp-caption aligncenter"><a href="https://dev.blues.io/quickstart/notecard-quickstart/notecard-and-notecarrier-f/"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-114388" class="wp-image-114388 size-medium" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image30-590x500.png" alt="Notecarrier and antenna" width="590" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image30-590x500.png 590w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image30-768x651.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image30.png 900w" sizes="auto, (max-width: 590px) 100vw, 590px" /></a><p id="caption-attachment-114388" class="wp-caption-text">https://dev.blues.io/quickstart/notecard-quickstart/notecard-and-notecarrier-f/</p></div>
<p>&nbsp;</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Push the cable end from the antenna labeled </span><b>GPS</b><span style="font-weight: 400;"> onto the </span><b>GPS</b><span style="font-weight: 400;"><span style="font-weight: 400;"> socket on the Notecard.</span></span>
<p><div id="attachment_114389" style="width: 408px" class="wp-caption aligncenter"><a href="https://dev.blues.io/quickstart/notecard-quickstart/notecard-and-notecarrier-f/"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-114389" class="wp-image-114389 size-medium" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image50-398x500.png" alt="Notecarrier and GPS" width="398" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image50-398x500.png 398w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image50-795x1000.png 795w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image50-768x966.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image50.png 900w" sizes="auto, (max-width: 398px) 100vw, 398px" /></a><p id="caption-attachment-114389" class="wp-caption-text">https://dev.blues.io/quickstart/notecard-quickstart/notecard-and-notecarrier-f/</p></div></li>
</ol>
<h2><span style="font-weight: 400;">2. Register Your Blues Wireless device in </span><a href="https://dev.blues.io/notehub/"><span style="font-weight: 400;">Notehub</span></a><span style="font-weight: 400;">.</span></h2>
<p><span style="font-weight: 400;">To set up your first simple solar powered IoT device, you need to create a </span><b>ProductUID</b><span style="font-weight: 400;"> and then configure your Notecard to connect to a cloud project on </span><a href="https://dev.blues.io/notehub/"><span style="font-weight: 400;">Notehub</span></a><span style="font-weight: 400;">. You need to do this in order to sync data. </span></p>
<ol>
<li style="list-style-type: none;">
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Navigate your browser to </span><a href="https://www.notehub.io/?_gl=1*13w6mpg*_gcl_au*MTAzODM2NTA2MS4xNzI2NDk3MjE2*_ga*MTQyNjIyMzkyOS4xNzI2NDk3MjE2*_ga_PJ7RGMWWBX*MTcyNzEwODY1Mi45LjEuMTcyNzEwOTI2My41OS4wLjA.&amp;_ga=2.22806907.1569385337.1726678772-1426223929.1726497216"><span style="font-weight: 400;">Notehub.io</span></a><span style="font-weight: 400;"> and sign in or sign up:<img loading="lazy" decoding="async" class="size-medium wp-image-114391 aligncenter" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image45-750x400.png" alt="Blues Sign up" width="750" height="400" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image45-750x400.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image45-1500x800.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image45-768x410.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image45-1536x819.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image45.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Blues</span><b> Projects</b><span style="font-weight: 400;"> provide a way to organize fleets of devices, distribute firmware, organize teams, and provide controls for team access. Click on the </span><b>+Create Project </b><span style="font-weight: 400;">button to get started:</span><span style="font-weight: 400;"> <img loading="lazy" decoding="async" class="aligncenter size-full wp-image-114392" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image69.png" alt="Create Project Button" width="382" height="138" /></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">A </span><b>Project</b><span style="font-weight: 400;"> is composed of one or more identifiers called </span><a href="https://dev.blues.io/api-reference/glossary/#productuid"><span style="font-weight: 400;">ProductUIDs</span></a><span style="font-weight: 400;">. Each Project is created with an initial ProductUID, enabling you to associate your Notecard(s) with your Project as soon as it is created. Complete the fields in the popup and click on the </span><b>+Create Project</b><span style="font-weight: 400;"> button:<img loading="lazy" decoding="async" class="aligncenter wp-image-114667 size-medium" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/my_first-403x500.jpg" alt="First Project" width="403" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/my_first-403x500.jpg 403w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/my_first-806x1000.jpg 806w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/my_first-768x953.jpg 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/my_first.jpg 920w" sizes="auto, (max-width: 403px) 100vw, 403px" /></span><span style="font-weight: 400;"> In order to help ensure your ProductUID is unique, every ProductUID is prepended with the reverse domain name notation of your account email. </span><span style="font-weight: 400;">For example, I signed up with liz@voltaicsystems.com, so my product takes the form of </span><code>com.voltaicsystems.liz:your_product_uid</code>.</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Copy/take note of your ProductUID because this identifier will be used by Notehub to associate your Notecard to your project.</span><span style="font-weight: 400;">In my case the ProductUID is: </span><i><code>com.voltaicsystems.liz:my_first_project</code></i><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114394" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image23-750x345.png" alt="Add a New Device" width="750" height="345" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image23-750x345.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image23.png 755w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
</ol>
</li>
</ol>
<h2><span style="font-weight: 400;">3. Assign Your Notecard to a Cloud Project</span></h2>
<p><span style="font-weight: 400;">You need to tell the Notecard about your Notehub project so it knows where to send your data. To associate the Notecard with your project in Notehub you assign the </span><b>ProductUID</b><span style="font-weight: 400;"> to your Notecard. Note that while a Notecard can easily be moved between projects over time, it can only belong to one project at a time.</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Connect a microUSB cable from the </span><b>Notecarrier&#8217;s USB port</b><span style="font-weight: 400;"> to your computer&#8217;s USB port.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Open the </span><a href="https://dev.blues.io/terminal/"><span style="font-weight: 400;">In-Browser Terminal</span></a><span style="font-weight: 400;">.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Within the In-Browser Terminal, click the </span><b>USB Notecard</b><span style="font-weight: 400;"> button. A browser prompt might appear asking for permission to connect to a USB serial device. If it appears click on Connect:<img loading="lazy" decoding="async" class="size-medium wp-image-114395 alignnone" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image54-750x259.png" alt="In-Browser Terminal" width="750" height="259" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image54-750x259.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image54-1500x518.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image54-768x265.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image54-1536x530.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image54.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114396" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image37-506x500.png" alt="usbmodem" width="506" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image37-506x500.png 506w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image37-768x759.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image37-125x125.png 125w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image37.png 902w" sizes="auto, (max-width: 506px) 100vw, 506px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">All requests and responses to/from the Notecard are in JSON format and are structured with the command as the value of a </span><b>req</b><span style="font-weight: 400;"> key. Additional arguments are written as additional key-value pairs. You issue commands at the command prompt:</span><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114397" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image65-440x500.png" alt="JSON" width="440" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image65-440x500.png 440w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image65-880x1000.png 880w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image65-768x872.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image65.png 1000w" sizes="auto, (max-width: 440px) 100vw, 440px" /><br />
To get started, paste either this line at the command prompt:<code><br />
{"req":"card.version"}</code><br />
<span style="font-weight: 400;">The first request returns metadata about your Notecard. Something similar to this:</span></p>
<p>[code lang=&#8221;js&#8221;]{<br />
 &quot;version&quot;: &quot;notecard-7.4.2.16888&quot;,<br />
 &quot;device&quot;: &quot;dev:351077454527113&quot;,<br />
 &quot;name&quot;: &quot;Blues Wireless Notecard&quot;,<br />
 &quot;sku&quot;: &quot;NOTE-WBGLW&quot;,<br />
 &quot;ordering_code&quot;: &quot;HB0YT1N0AEAU&quot;,<br />
 &quot;board&quot;: &quot;5.13&quot;,<br />
 &quot;wifi&quot;: true,<br />
 &quot;cell&quot;: true,<br />
 &quot;gps&quot;: true,<br />
 &quot;api&quot;: 7,<br />
 &quot;body&quot;: {<br />
  &quot;org&quot;: &quot;Blues Wireless&quot;,<br />
  &quot;product&quot;: &quot;Notecard&quot;,<br />
  &quot;target&quot;: &quot;u5&quot;,<br />
  &quot;version&quot;: &quot;notecard-u5-7.4.2&quot;,<br />
  &quot;ver_major&quot;: 7,<br />
  &quot;ver_minor&quot;: 4,<br />
  &quot;ver_patch&quot;: 2,<br />
  &quot;ver_build&quot;: 16888,<br />
  &quot;built&quot;: &quot;Aug 27 2024 19:08:01&quot;<br />
 }<br />
}<br />
[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">The next step is to set the ProductUID. You&#8217;ll start by sending a </span><b>hub.set</b><span style="font-weight: 400;"> JSON request to your Notecard. Once the Notecard has finished processing your request, it will send a JSON response back to your computer to let you know that the request is complete.</span><span style="font-weight: 400;">The JSON object </span><b>hub.set</b><span style="font-weight: 400;"> consists of two key-value pairs. The first provides the name of the request, denoted with the key </span><b>req</b><span style="font-weight: 400;"> and a value of </span><b>hub.set</b><span style="font-weight: 400;">. The second (</span><b>product</b><span style="font-weight: 400;">) is one of the arguments for the </span><b>hub.set</b><span style="font-weight: 400;"> request.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Copy and paste the following Notecard request, making sure to replace </span><i><span style="font-weight: 400;">com.your-company.your-name:your_product</span></i> <span style="font-weight: 400;">with your </span><b>ProductUID</b><span style="font-weight: 400;">:</span><b><code>{“req”: “hub.set” “product”:”com.your-company.your-name:your_product”}</code></b><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114399" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image33-750x89.png" alt="hub.set" width="750" height="89" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image33-750x89.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image33-768x91.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image33.png 996w" sizes="auto, (max-width: 750px) 100vw, 750px" /><span style="font-weight: 400;">An empty JSON object (</span><b>{}</b><span style="font-weight: 400;">) from the Notecard indicates a successful request. If an error occurs, the Notecard will return a JSON object with an </span><b>err</b><span style="font-weight: 400;"> key and a string describing the error that occurred.</span><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114400" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image7-750x220.png" alt="Error described" width="750" height="220" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image7-750x220.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image7-768x225.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image7.png 988w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
</ol>
<h2><span style="font-weight: 400;">4. Validate ProductUID and Connection</span></h2>
<p><span style="font-weight: 400;">You now need to validate the Notecard configuration. To do this you’ll perform a </span><b>manual sync</b><span style="font-weight: 400;"> with Notehub and then request </span><b>sync</b><span style="font-weight: 400;"> status updates from the Notecard.</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Initiate a synchronization between the Notecard and Notehub with a </span><b>hub.sync</b><span style="font-weight: 400;"> request, as shown below:</span><b><code>{“req”:”hub.sync”}</code></b><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114398" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image64-750x95.png" alt="hub command" width="750" height="95" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image64-750x95.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image64-768x97.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image64.png 1012w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Once a sync has started, you can monitor the state of the sync by watching the status bar at the top of the in-browser terminal.</span><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114402" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image63-750x161.png" alt="Before Sync" width="750" height="161" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image63-750x161.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image63-768x165.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image63.png 1006w" sizes="auto, (max-width: 750px) 100vw, 750px" /><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114401" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image2-750x157.png" alt="Sync Update" width="750" height="157" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image2-750x157.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image2-768x161.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image2.png 1002w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">As soon as you see &#8220;Successful Notehub sync [x]s ago&#8221;, the sync is complete. If you&#8217;re having trouble connecting, enter {&#8220;req&#8221;:&#8221;hub.sync.status&#8221;} and check if your status includes &#8220;no project was found&#8221; or &#8220;can&#8217;t open Notehub&#8221; errors.</span><b>If you’re having problems:</b><br />
<span style="font-weight: 400;">You may have a typo, or you may have passed a project name to your </span><b>hub.set</b><span style="font-weight: 400;"> request&#8217;s product instead of a ProductUID. If this is the case, run another </span><b>hub.set</b><span style="font-weight: 400;"> request with the correct ProductUID, and then issue another hub.sync request.</span><span style="font-weight: 400;">If your </span><b>ProductUID</b><span style="font-weight: 400;"> seems correct and you’re still having no luck, you may have a connectivity issue. In this case consult the Blues guide on </span><a href="https://dev.blues.io/guides-and-tutorials/notecard-guides/diagnosing-cellular-connectivity-issues/"><span style="font-weight: 400;">Diagnosing Cellular Connectivity Issues</span></a><span style="font-weight: 400;">.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Return to </span><a href="https://notehub.io/projects"><span style="font-weight: 400;">Notehub</span></a><span style="font-weight: 400;"> and refresh the </span><b>Devices</b><span style="font-weight: 400;"> page. You should see that a device has been added to your project:</span><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114403" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image56-750x291.png" alt="Devices" width="750" height="291" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image56-750x291.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image56-1500x582.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image56-768x298.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image56-1536x595.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image56.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
</ol>
<h2><span style="font-weight: 400;">5. Develop your IoT Application</span></h2>
<p><span style="font-weight: 400;">You can continue to use the terminal for simple projects, like this </span><a href="https://www.hackster.io/brandonsatrom/reindeer-recon-a-notecard-powered-tracker-97cded?f=1"><span style="font-weight: 400;">GPS reindeer  tracker</span></a><span style="font-weight: 400;"> application, or you can program a compatible microcontroller.</span></p>
<p><span style="font-weight: 400;">In either case you will work with the Notecard, Notecarrier, and Notehub by queueing and adding Notes  with data to your Notecard.</span></p>
<p><span style="font-weight: 400;">Let’s assume you have connected a sensor like the DHT22 to read temperature and humidity data to a MCU like the Blues Swan. To add a Note, you will use the Notecard&#8217;s </span><a href="https://dev.blues.io/api-reference/notecard-api/note-requests/#note-add"><span style="font-weight: 400;">note.add API</span></a><span style="font-weight: 400;"> that includes a body argument which accepts any arbitrary JSON data.</span></p>
<p><span style="font-weight: 400;">In its simplest form, adding a Note could look like this:</span></p>
<p><span style="font-weight: 400;">JSON:</span></p>
<div>
<p>[code lang=&#8221;js&#8221;]{&quot;req&quot;:&quot;note.add&quot;,&quot;body&quot;:{&quot;temp&quot;:35.5,&quot;humid&quot;:56.23}}[/code]</p>
<p><span style="font-weight: 400;">C/C++:</span></p>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]{<br />
   J *req = notecard.newRequest(&quot;note.add&quot;);<br />
   if (req != NULL) {<br />
     JAddStringToObject(req, &quot;file&quot;, &quot;sensors.qo&quot;);<br />
     JAddBoolToObject(req, &quot;sync&quot;, true);<br />
     J *body = JAddObjectToObject(req, &quot;body&quot;);<br />
     if (body != NULL) {<br />
	JAddNumberToObject(body, &quot;temperature&quot;, temperature);<br />
       JAddNumberToObject(body, &quot;humidity&quot;, humidity);<br />
     }<br />
     notecard.sendRequest(req);<br />
   }<br />
 }[/code]</p>
</div>
</li>
</ol>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">To view the data navigate to </span><a href="https://notehub.io/"><span style="font-weight: 400;">Notehub.io</span></a><span style="font-weight: 400;">:</span><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114404" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image66-748x500.png" alt="First Project" width="748" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image66-748x500.png 748w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image66-768x514.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image66-300x200.png 300w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image66-360x240.png 360w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image66-600x400.png 600w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image66.png 972w" sizes="auto, (max-width: 748px) 100vw, 748px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click on the “card” with your Project. The device dashboard for your Project will load and you&#8217;ll see your Notecard in the </span><b>Devices</b><span style="font-weight: 400;"> list.</span><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114405" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image1-750x196.png" alt="Devices" width="750" height="196" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image1-750x196.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image1-1500x392.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image1-768x201.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image1-1536x402.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image1.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click </span><b>Events</b><span style="font-weight: 400;"> in the left-side navigation. In the Events list, you should see your Note in the list with the sensor data in the body. </span><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114406" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image21-750x272.png" alt="Events" width="750" height="272" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image21-750x272.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image21-1500x545.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image21-768x279.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image21-1536x558.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image21.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /><span style="font-weight: 400;">You don’t necessarily need to have a MCU, but having one allows you to create more sophisticated applications..</span></li>
</ol>
<h2><span style="font-weight: 400;">6. Setting up a microcontroller</span></h2>
<p><span style="font-weight: 400;">The Starter Kit comes with the Blues Swan, a feather compatible MCU. The Swan can be programmed in the Arduino IDE, with a programmer like the </span><a href="https://www.digikey.com/en/products/detail/stmicroelectronics/STLINK-V3MINIE/16284301"><span style="font-weight: 400;">STLINK-V3MINIE ST-LINK V3 PROG FOR STM32</span></a><span style="font-weight: 400;">. Blues sells a clone, the </span><a href="https://shop.blues.com/products/stlink-v3mini"><span style="font-weight: 400;">SWD Programmer &amp; Debugger</span></a><span style="font-weight: 400;">, but I ran into some difficulties with it not consistently recognizing my USB ports.</span></p>
<p><span style="font-weight: 400;">Download and install </span><a href="https://www.st.com/en/development-tools/stm32cubeclt.html"><span style="font-weight: 400;">STM32CubeCLT</span></a><span style="font-weight: 400;">, which is a toolset that allows third-party IDEs to work with STM32-based host MCUs.</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Open up Arduino and add the following URL to the </span><b>Additional Boards URL</b><span style="font-weight: 400;"> in </span><b>Preferences</b><span style="font-weight: 400;">: </span><a href="https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json"><span style="font-weight: 400;">https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json</span></a><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114407" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image61-750x482.png" alt="Arduino Board Manager" width="750" height="482" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image61-750x482.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image61-1500x963.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image61-768x493.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image61-1536x987.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image61.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Restart Arduino IDE.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Go to the </span><b>Tools &gt; Boards &gt; Boards Manager&#8230; </b><span style="font-weight: 400;">menu option.  Search for &#8220;STM32 MCU based boards&#8221;, and install or update to version 2.8.1 or greater.</span><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114408" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image32-750x425.png" alt="STM32 boards" width="750" height="425" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image32-750x425.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image32-1500x851.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image32-768x436.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image32-1536x871.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image32.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Under</span><b> Tools &gt; Board</b><span style="font-weight: 400;">, select &#8220;STM32 MCU based boards&#8221;, and then &#8220;Blues boards&#8221;</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Under </span><b>Tools &gt; Board Part Number</b><span style="font-weight: 400;">, select &#8220;Swan R5.&#8221;</span><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114409" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image57-745x500.png" alt="Swan" width="745" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image57-745x500.png 745w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image57-1490x1000.png 1490w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image57-768x516.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image57-1536x1031.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image57-300x200.png 300w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image57.png 1999w" sizes="auto, (max-width: 745px) 100vw, 745px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Under </span><b>Tools &gt; USB support (if available)</b><span style="font-weight: 400;">, select &#8220;CDC (generic &#8216;Serial&#8217; supersede U(S)ART)</span><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114410" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image16-750x485.png" alt="usbmodem" width="750" height="485" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image16-750x485.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image16-1500x969.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image16-768x496.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image16-1536x993.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image16.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;"> Under </span><b>Tools &gt; Upload method</b><span style="font-weight: 400;">, select &#8220;STM32CubeProgrammer (SWD).&#8221;</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Plug the STLINK-V3MINI into your computer over USB.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Plug the Cortex-Debug connector from the STLINK-V3MINI into the Swan.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">You can plug the Swan into a power source (e.g. a LiIon cell), but if you want to see Serial output from the Swan, you’ll need to either use a USB cable as the power source or </span><a href="https://gist.github.com/rdlauer/bca35bad6624f6981ad52cddb3c07cf9"><span style="font-weight: 400;">customize your sketch</span></a><span style="font-weight: 400;"> to use the STLINK-V3MINI for Serial output.</span><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-114411" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image48.png" alt="STLINK-V3MINI" width="600" height="482" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Test your setup with a simple sketch:</span>
<ol>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">In the Arduino IDE, use </span><b>File &gt; New</b><span style="font-weight: 400;"> to create a new sketch.</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Overwrite the provided boilerplate code with the following to cause the onboard LED to blink repeatedly:</span>
<div>
<p>[code lang=&#8221;arduino&#8221;]// the setup function runs once when you press reset or power the board<br />
void setup() {<br />
 // initialize digital pin LED_BUILTIN as an output.<br />
 pinMode(LED_BUILTIN, OUTPUT);<br />
}</p>
<p>// the loop function runs over and over again forever<br />
void loop() {<br />
 digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)<br />
 delay(1000);                       // wait for a second<br />
 digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW<br />
 delay(1000);                       // wait for a second<br />
}[/code]</p>
</div>
</li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Select the port connected to the STLINK.</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Upload the sketch.</span></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">If all goes well, the Swan’s LED will blink. </span></li>
</ol>
<p><span style="font-weight: 400;">The next step is to create a program that incorporates the Notecard.</span></p>
<h2><span style="font-weight: 400;">7. Integrating a Notecard into an Arduino Program</span></h2>
<p><span style="font-weight: 400;">To communicate with the Notecard over I2C, you need to install the </span><a href="https://github.com/blues/note-arduino"><span style="font-weight: 400;">note-arduino library</span></a><span style="font-weight: 400;">. </span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Add the </span><b>Blues Wireless Notecard</b><span style="font-weight: 400;"> library to the Arduino IDE.</span><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114412" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image17-750x489.png" alt="Arduino IDE" width="750" height="489" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image17-750x489.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image17-1500x978.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image17-768x501.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image17-1536x1001.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image17.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Create a new sketch and add the library to your sketch by selecting </span><b>Sketch &gt; Include Library &gt; Contributed Libraries &gt; Blues Wireless Notecard</b><span style="font-weight: 400;"> menu option:</span><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114413" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image24-353x500.png" alt="Blues Notecard" width="353" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image24-353x500.png 353w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image24-706x1000.png 706w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image24-768x1088.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image24-1084x1536.png 1084w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image24.png 1330w" sizes="auto, (max-width: 353px) 100vw, 353px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Follow these steps to set up the Notecard in your program:</span>
<ul>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Configure a Serial interface:</span>
<p>[code lang=&#8221;arduino&#8221;]#define usbSerial Serial[/code]</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114414" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image10-750x487.png" alt="USBSerial" width="750" height="487" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image10-750x487.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image10-1500x973.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image10-768x498.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image10-1536x997.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image10.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Add a </span><b>definition for your ProductUID</b><span style="font-weight: 400;"> using the value you created in  Notehub:</span>
<p>[code lang=&#8221;arduino&#8221;]#define productUID &quot;com.your-company.your-name:your_product&quot;[/code]</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114415" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image26-750x472.png" alt="ProductUID" width="750" height="472" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image26-750x472.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image26-1500x943.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image26-768x483.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image26-1536x966.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image26-430x270.png 430w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image26.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Declare a global object to represent the Notecard: </span>
<p>[code language=&#8221;lang=&#8221;]Notecard notecard;[/code]</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114416" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image70-750x472.png" alt="Declare Notecard" width="750" height="472" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image70-750x472.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image70-1500x945.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image70-768x484.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image70-1536x967.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image70-430x270.png 430w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image70.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">In </span><b>setup()</b><span style="font-weight: 400;">, initialize the </span><b>usbSerial</b><span style="font-weight: 400;"> object and tell the Notecard library to use this serial object for sending debug output.</span>
<p>[code lang=&#8221;arduino&#8221;]delay(2500);<br />
usbSerial.begin(115200);[/code]</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114417" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image3-750x448.png" alt="setup" width="750" height="448" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image3-750x448.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image3-1500x895.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image3-768x458.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image3-1536x917.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image3.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Initialize an instance of the Notecard class and initialize an I2C connection to the Notecard using the </span><b>notecard.begin() </b><span style="font-weight: 400;">function.</span>
<p>[code lang=&#8221;arduino&#8221;]notecard.begin();[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Use </span><b>setDebugOutputStream()</b><span style="font-weight: 400;"> to link the debug output to </span><b>usbSerial</b><span style="font-weight: 400;"> with the following code:</span>
<p>[code lang=&#8221;arduino&#8221;]notecard.setDebugOutputStream(usbSerial);[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;">Create a </span><b>hub.set </b><span style="font-weight: 400;">request, to associate the Notecard with the </span><b>ProductUID</b><span style="font-weight: 400;"> of your project . Set the Notecard to operate in </span><b>continuous</b><span style="font-weight: 400;"> mode. This mode indicates that the device should immediately make a connection to Notehub and keep it active.</span>
<p>[code language=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]{<br />
 	J *req = notecard.newRequest(&quot;hub.set&quot;);<br />
 	JAddStringToObject(req, &quot;product&quot;, productUID);<br />
 	JAddStringToObject(req, &quot;mode&quot;, &quot;continuous&quot;);<br />
 	notecard.sendRequest(req);<br />
}[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="2"><span style="font-weight: 400;"> Click the </span><b>Upload</b><span style="font-weight: 400;"> button (right arrow icon) to flash the firmware to your device. You need to use the USB connected to the STLINK-V3MINI to upload.</span><span style="font-weight: 400;">Open a new sketch and connect the port to the other USB port. You can now use a Serial Monitor on the USB Port connected to the Swan to view the device output.</span><span style="font-weight: 400;"> Here is the basic starter code:</span>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]#include &lt;Notecard.h&gt;<br />
#define usbSerial Serial<br />
#define productUID &quot;[your ProductUID]&quot;</p>
<p>Notecard notecard;</p>
<p>void setup() {<br />
 // put your setup code here, to run once:<br />
 delay(2500);<br />
 usbSerial.begin(115200);<br />
 notecard.begin();<br />
 notecard.setDebugOutputStream(usbSerial);<br />
	{<br />
 	J *req = notecard.newRequest(&quot;hub.set&quot;);<br />
 	JAddStringToObject(req, &quot;product&quot;, productUID);<br />
 	JAddStringToObject(req, &quot;mode&quot;, &quot;continuous&quot;);<br />
 	notecard.sendRequest(req);<br />
    }<br />
}<br />
void loop() {<br />
 // put your main code here, to run repeatedly:<br />
}<br />
[/code]</p>
</li>
</ul>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">The next step is to connect to Notehub. Once you start capturing readings, your Notecard will initiate a connection to Notehub and will start transferring Notes. </span><span style="font-weight: 400;">To follow along, add a DHT22 temperature sensor:</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Connect the data line to pin D5</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Install the following libraries</span>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Adafruit’s DHT Sensor Library (In IDE)</span></li>
<li><span style="font-weight: 400;">STM32duino’s</span><a href="https://github.com/stm32duino/Arduino_Core_STM32"><span style="font-weight: 400;"> Arduino_Core_STM32</span></a><span style="font-weight: 400;"> library (download and install)</span></li>
<li><span style="font-weight: 400;">STM32duino’s</span><a href="https://github.com/stm32duino/STM32LowPower"><span style="font-weight: 400;"> STM32LowPower </span></a><span style="font-weight: 400;">library (download and install)</span></li>
</ul>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Create a new sketch.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Add the following Include statements:</span>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]#include &quot;DHT.h&quot;<br />
#include &lt;Notecard.h&gt;<br />
#include &quot;STM32LowPower.h&quot;[/code]</p>
</li>
<li>Add the following definitions:
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]#define usbSerial Serial<br />
#define DHTPIN 5  // Digital pin connected to the DHT sensor</p>
<p>// Uncomment whatever type you&#039;re using!<br />
//#define DHTTYPE DHT11   // DHT 11<br />
#define DHTTYPE DHT22  // DHT 22  (AM2302), AM2321<br />
//#define DHTTYPE DHT21   // DHT 21 (AM2301)</p>
<p>// This is the unique Product Identifier for your device<br />
#define productUID &quot;[your productUID]&quot;<br />
[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;"> Initialize the sensor:</span>
<p>[code lang=&#8221;arduino&#8221;]// Initialize DHT sensor.<br />
DHT dht(DHTPIN, DHTTYPE);[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Create variables. The notecard will be the global object that  represents the Notecard: </span>
<p>[code lang=&#8221;arduino&#8221;]Notecard notecard;<br />
static bool registerNotefileTemplate();<br />
static const size_t PERIOD_S = 60;[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Define the </span><b>registerNotefileTemplate() </b><span style="font-weight: 400;">function. This function will create a template.  Templates allow you to optimize data storage and transmission and are an important feature of the ecosystem</span>.<span style="font-weight: 400;">Templates serve two main purposes:</span>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Optimize storage space on the Notecard</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Reduce bandwidth usage when syncing data to Notehub</span></li>
</ol>
<p><span style="font-weight: 400;">Templates act as a </span><b>schema</b><span style="font-weight: 400;"> or structure for Notes added to a specific Notefile. When you create a template, you&#8217;re essentially telling the Notecard how future Notes in that Notefile will be structured.</span></p>
<p><span style="font-weight: 400;">To create a template, you use the </span><b>file</b><span style="font-weight: 400;"> argument to specify the Notefile to which the template should be applied. You use the </span><b>body</b><span style="font-weight: 400;"> argument to specify a template body, similar to the way you&#8217;d make a note.add request. That body must contain the name of each field expected in each </span><b>note.add</b><span style="font-weight: 400;"> request, and a value that serves as the hint indicating the data type to the Notecard. Each field can be a boolean, integer, float, or string:</span></p>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]static bool registerNotefileTemplate() {<br />
 // Create the request<br />
 J *req = notecard.newRequest(&quot;note.template&quot;);<br />
 if (req == NULL) {<br />
   Serial.println(&quot;Could not create fall template request&quot;);<br />
   return false;<br />
 }<br />
 // Create the body<br />
 J *body = JCreateObject();<br />
 if (body == NULL) {<br />
   Serial.println(&quot;Could not create fall template body&quot;);<br />
   JDelete(req);<br />
   return false;<br />
 }</p>
<p> // Setup name and parameters for template<br />
 JAddStringToObject(req, &quot;file&quot;, &quot;sensors.qo&quot;);<br />
 JAddStringToObject(req, &quot;format&quot;, &quot;compact&quot;);<br />
 JAddNumberToObject(body, &quot;temperature&quot;, TFLOAT64);<br />
 JAddNumberToObject(body, &quot;humidity&quot;, TFLOAT64);<br />
 JAddNumberToObject(body, &quot;heat_index_F&quot;, TFLOAT64);<br />
 JAddNumberToObject(body, &quot;heat_index_C&quot;, TFLOAT64);<br />
 JAddNumberToObject(body, &quot;voltage&quot;, TFLOAT64);<br />
 JAddNumberToObject(body, &quot;time&quot;, TUINT32);</p>
<p> // Attach the body to the request, and send it to the gateway<br />
 JAddItemToObject(req, &quot;body&quot;, body);</p>
<p> Serial.println(&quot;Template created&quot;);<br />
 if (!NoteRequest(req)) {<br />
   Serial.println(&quot;Could not send  template request&quot;);<br />
   return false;<br />
 }<br />
 return true;<br />
}[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Navigate to </span><b>setup()</b><span style="font-weight: 400;">, and add the following to setup the Serial connection:</span>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]#ifdef usbSerial<br />
 // If you open Arduino&#039;s serial terminal window, you&#039;ll be able to watch<br />
 // JSON objects being transferred to and from the Notecard for each request.<br />
 usbSerial.begin(115200);<br />
 const size_t usb_timeout_ms = 3000;<br />
 for (const size_t start_ms = millis(); !usbSerial &amp;&amp; (millis() &#8211; start_ms) &lt; usb_timeout_ms;)<br />
   ;</p>
<p>   // For low-memory platforms, don&#039;t turn on internal Notecard logs.<br />
#ifndef NOTE_C_LOW_MEM<br />
 notecard.setDebugOutputStream(usbSerial);<br />
#else<br />
#pragma message(&quot;INFO: Notecard debug logs disabled. (non-fatal)&quot;)<br />
#endif  // !NOTE_C_LOW_MEM<br />
#endif  // usbSerial</p>
<p> // Initialize the physical I/O channel to the Notecard<br />
#ifdef txRxPinsSerial<br />
 notecard.begin(txRxPinsSerial, 9600);<br />
#else<br />
 notecard.begin();<br />
#endif<br />
 usbSerial.begin(115200);</p>
<p> usbSerial.println(&quot;Setup Start&quot;);[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Configure LowPower so that you can put the Swan into deep sleep:</span>
<p>[code lang=&#8221;arduino&#8221;]// Configure low power<br />
 LowPower.begin();<br />
[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Configure the sensor:</span>
<p>[code lang=&#8221;arduino&#8221;]dht.begin();[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Instead of using the </span><a href="https://dev.blues.io/terminal/"><span style="font-weight: 400;">In-Browser Terminal</span></a><span style="font-weight: 400;">, we’re going to call </span><b>hub.set()</b><span style="font-weight: 400;"> from within the Arduino IDE. The following connects the Notecard to the project and sets up how the Notecard will communicate. In this case it is in continuous mode as long as the Notecard is connected to USB. Once the power source switches to battery, the mode switches to periodic in order to save power. In the code snippet below, the </span><b>voutbound</b><span style="font-weight: 400;"> syncs every 10 minutes if the device is powered by USB, every 60 minutes if the battery level is high, every 360 minutes if the battery is not high or low, every 720 minutes if the voltage level is low, and stops syncing if the battery is dead. It is the  </span><b>uperiodic</b><span style="font-weight: 400;"> argument in the hub.set request that configures the Notecard to use periodic mode when the USB/line power is disconnected.:</span>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]{<br />
   J *req = NoteNewRequest(&quot;hub.set&quot;);<br />
   JAddStringToObject(req, &quot;product&quot;, productUID);<br />
   JAddStringToObject(req, &quot;mode&quot;, &quot;continuous&quot;);<br />
   JAddBoolToObject(req, &quot;sync&quot;, true);<br />
    JAddStringToObject(req, &quot;voutbound&quot;, &quot;usb:10;high:60;normal:360;low:720;dead:0&quot;);<br />
   JAddStringToObject(req, &quot;vinbound&quot;, &quot;usb:60;high:120;normal:720;low:1440;dead:0&quot;);<br />
   JAddBoolToObject(req, &quot;uperiodic&quot;, true);<br />
   notecard.sendRequest(req);<br />
 }[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Now add code to tell the Notecard that we will be powering it by a lic. </span><span style="font-weight: 400;">This is used for comparing voltage thresholds:</span>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]{<br />
//Lithium-ion capacitors. Equivalent to &quot;usb:4.6;high:3.8;normal:3.1;low:0&quot;<br />
   J *req = notecard.newRequest(&quot;card.voltage&quot;);<br />
   JAddStringToObject(req, &quot;mode&quot;, &quot;lic&quot;);<br />
   notecard.sendRequest(req);<br />
 }<br />
[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Next we add error checking to make sure our template was created:</span>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]if (!registerNotefileTemplate()) {<br />
   usbSerial.println(&quot;Notefile Template setup failed&quot;);<br />
   while (1) {};<br />
 }<br />
[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Add a call to a function to add a new note:</span>
<p>[code lang=&#8221;arduino&#8221;]addNote();[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">For debugging add a print statement that informs you that your setup is complete:</span>
<p>[code lang=&#8221;arduino&#8221;]usbSerial.println(&quot;Setup End&quot;);[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Define the </span><b>addNote()</b><span style="font-weight: 400;"> function. It’s important that your Note matches your template. If there is a mismatch, you will get an error. </span><span style="font-weight: 400;">At the end of the function, we’ll call </span><b>sleep()</b><span style="font-weight: 400;"><span style="font-weight: 400;"> to conserve power. We’ll change the duration of this function after testing.</span></span>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]static void addNote() {</p>
<p> int currentTime = getTime();<br />
// Do the same to retrieve the voltage that is detected by the Notecard on<br />
 // its `V+` pin.<br />
 //get voltage<br />
 float voltage = getVoltage();<br />
 float t = dht.readTemperature();<br />
 float h = dht.readHumidity();<br />
 float f = dht.readTemperature(true);</p>
<p>// Check if any reads failed and exit early (to try again).<br />
 if (isnan(h) || isnan(t) || isnan(f)) {<br />
   Serial.println(F(&quot;Failed to read from DHT sensor!&quot;));<br />
   return;<br />
 }</p>
<p> // Compute heat index in Fahrenheit (the default)<br />
 float hif = dht.computeHeatIndex(f, h);<br />
 // Compute heat index in Celsius (isFahreheit = false)<br />
 float hic = dht.computeHeatIndex(t, h, false);<br />
Serial.print(F(&quot;Humidity: &quot;));<br />
 Serial.print(h);<br />
 Serial.print(F(&quot;%  Temperature: &quot;));<br />
 Serial.print(t);<br />
 Serial.print(F(&quot;°C &quot;));<br />
 Serial.print(f);<br />
 Serial.print(F(&quot;°F  Heat index: &quot;));<br />
 Serial.print(hic);<br />
 Serial.print(F(&quot;°C &quot;));<br />
 Serial.print(hif);<br />
 Serial.println(F(&quot;°F&quot;));<br />
 {<br />
   J *req = notecard.newRequest(&quot;note.add&quot;);<br />
   if (req != NULL) {<br />
     JAddStringToObject(req, &quot;file&quot;, &quot;sensors.qo&quot;);<br />
     JAddBoolToObject(req, &quot;sync&quot;, true);<br />
     J *body = JAddObjectToObject(req, &quot;body&quot;);<br />
     if (body != NULL) {</p>
<p>       JAddNumberToObject(body, &quot;temperature&quot;, t);<br />
       JAddNumberToObject(body, &quot;humidity&quot;, h);<br />
       JAddNumberToObject(body, &quot;heat_index_F&quot;, hif);<br />
       JAddNumberToObject(body, &quot;heat_index_C&quot;, hic);<br />
       JAddNumberToObject(body, &quot;voltage&quot;, voltage);<br />
       JAddNumberToObject(body, &quot;time&quot;, currentTime);<br />
     }<br />
     notecard.sendRequest(req);<br />
   }<br />
 }<br />
 usbSerial.println(&quot;note added&quot;);<br />
 LowPower.deepSleep(60 *1000);<br />
}<br />
[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Define the </span><b>getVoltage()</b><span style="font-weight: 400;"> function to poll the voltage level on the Notecard:</span>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]float getVoltage() {<br />
 // retrieve the voltage that is detected by the Notecard on<br />
 // its `V+` pin.<br />
 float v = 0;<br />
 J *rsp = notecard.requestAndResponse(notecard.newRequest(&quot;card.voltage&quot;));<br />
 if (rsp != NULL) {<br />
   v = JGetNumber(rsp, &quot;value&quot;);<br />
   notecard.deleteResponse(rsp);<br />
 }<br />
 return v;<br />
}<br />
[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Define the </span><b>getTime()</b><span style="font-weight: 400;"> function which  returns the time expressed as a Unix epoch value:</span>
<p>[code lang=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]int getTime() {<br />
 int t = 0;<br />
 J *rsp = notecard.requestAndResponse(notecard.newRequest(&quot;card.time&quot;));<br />
 if (rsp != NULL) {<br />
   t = JGetInt(rsp, &quot;time&quot;);<br />
   usbSerial.println(t);<br />
   notecard.deleteResponse(rsp);<br />
 }<br />
 return t;<br />
}[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Navigate to the </span><b>loop()</b><span style="font-weight: 400;"> function and add a call to </span><b>addNote()</b><span style="font-weight: 400;">:</span>
<p>[code lang=&#8221;arduino&#8221;]addNote();[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Here is the complete program:</span>
<p>[code language=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]<br />
#include &quot;DHT.h&quot;<br />
#include &lt;Notecard.h&gt;<br />
#include &quot;STM32LowPower.h&quot;</p>
<p>// #define txRxPinsSerial Serial1<br />
#define usbSerial Serial<br />
#define DHTPIN 5  // Digital pin connected to the DHT sensor</p>
<p>// Uncomment whatever type you&#039;re using!<br />
//#define DHTTYPE DHT11   // DHT 11<br />
#define DHTTYPE DHT22  // DHT 22  (AM2302), AM2321<br />
//#define DHTTYPE DHT21   // DHT 21 (AM2301)</p>
<p>// This is the unique Product Identifier for your device<br />
#define productUID &quot;com.voltaicsystems.liz:c117_example&quot;  // &quot;com.my-company.my-name:my-project&quot;</p>
<p>// Initialize DHT sensor.<br />
DHT dht(DHTPIN, DHTTYPE);</p>
<p>Notecard notecard;</p>
<p>static bool registerNotefileTemplate();<br />
static const size_t PERIOD_S = 60;</p>
<p>// Register the notefile template for our data<br />
static bool registerNotefileTemplate() {<br />
 // Create the request</p>
<p> J *req = notecard.newRequest(&quot;note.template&quot;);<br />
  if (req == NULL) {<br />
   Serial.println(&quot;Could not create fall template request&quot;);<br />
   return false;<br />
 }</p>
<p> // Create the body<br />
 J *body = JCreateObject();<br />
 if (body == NULL) {<br />
   Serial.println(&quot;Could not create fall template body&quot;);<br />
   JDelete(req);<br />
   return false;<br />
 }</p>
<p> // Setup name and parameters for template<br />
 JAddStringToObject(req, &quot;file&quot;, &quot;sensors.qo&quot;);<br />
 JAddStringToObject(req, &quot;format&quot;, &quot;compact&quot;);<br />
 JAddNumberToObject(body, &quot;temperature&quot;, TFLOAT64);<br />
 JAddNumberToObject(body, &quot;humidity&quot;, TFLOAT64);<br />
 JAddNumberToObject(body, &quot;heat_index_F&quot;, TFLOAT64);<br />
 JAddNumberToObject(body, &quot;heat_index_C&quot;, TFLOAT64);<br />
 JAddNumberToObject(body, &quot;voltage&quot;, TFLOAT64);<br />
 JAddNumberToObject(body, &quot;time&quot;, TUINT32);</p>
<p> // Attach the body to the request, and send it to the gateway<br />
 JAddItemToObject(req, &quot;body&quot;, body);</p>
<p> Serial.println(&quot;Template created&quot;);<br />
 if (!NoteRequest(req)) {<br />
   Serial.println(&quot;Could not send  template request&quot;);<br />
   return false;<br />
 }<br />
 return true;<br />
}</p>
<p>void setup() {<br />
pinMode(LED_BUILTIN, OUTPUT);<br />
digitalWrite(LED_BUILTIN, HIGH);<br />
 // Set up for debug output (if available).<br />
#ifdef usbSerial<br />
 // If you open Arduino&#039;s serial terminal window, you&#039;ll be able to watch<br />
 // JSON objects being transferred to and from the Notecard for each request.<br />
 usbSerial.begin(115200);<br />
 const size_t usb_timeout_ms = 3000;<br />
 for (const size_t start_ms = millis(); !usbSerial &amp;amp;&amp;amp; (millis() &#8211; start_ms) &amp;lt; usb_timeout_ms;)<br />
   ;</p>
<p>   // For low-memory platforms, don&#039;t turn on internal Notecard logs.<br />
#ifndef NOTE_C_LOW_MEM<br />
 notecard.setDebugOutputStream(usbSerial);<br />
#else<br />
#pragma message(&quot;INFO: Notecard debug logs disabled. (non-fatal)&quot;)<br />
#endif  // !NOTE_C_LOW_MEM<br />
#endif  // usbSerial</p>
<p> // Initialize the physical I/O channel to the Notecard<br />
#ifdef txRxPinsSerial<br />
 notecard.begin(txRxPinsSerial, 9600);<br />
#else<br />
 notecard.begin();<br />
#endif<br />
 usbSerial.begin(115200);</p>
<p> usbSerial.println(&quot;Setup Start&quot;);<br />
 // Configure low power<br />
 LowPower.begin();<br />
 notecard.begin();<br />
 dht.begin();</p>
<p> {<br />
   J * req = notecard.newRequest(&quot;hub.set&quot;);<br />
   JAddStringToObject(req, &quot;product&quot;, productUID);<br />
   JAddStringToObject(req, &quot;mode&quot;, &quot;periodic&quot;);<br />
   JAddStringToObject(req, &quot;vinbound&quot;, &quot;usb:60;high:120;normal:240;low:480;dead:0&quot;);<br />
   JAddStringToObject(req, &quot;voutbound&quot;, &quot;usb:1;high:40;normal:60;low:120;dead:0&quot;);<br />
   notecard.sendRequest(req);<br />
 }</p>
<p> {<br />
   J *req = notecard.newRequest(&quot;card.voltage&quot;);<br />
   JAddStringToObject(req, &quot;mode&quot;, &quot;lic&quot;);<br />
   notecard.sendRequest(req);<br />
 }</p>
<p> if (!registerNotefileTemplate()) {<br />
   usbSerial.println(&quot;Notefile Template setup failed&quot;);<br />
   while (1) {};<br />
 }</p>
<p> addNote();<br />
 usbSerial.println(&quot;Setup End&quot;);<br />
 digitalWrite(LED_BUILTIN, LOW);<br />
}<br />
float getVoltage() {<br />
 //Retrieve the voltage that is detected by the Notecard on<br />
 // its `V+` pin.<br />
 float v = 0;<br />
 J *rsp = notecard.requestAndResponse(notecard.newRequest(&quot;card.voltage&quot;));<br />
 if (rsp != NULL) {<br />
   v = JGetNumber(rsp, &quot;value&quot;);<br />
   notecard.deleteResponse(rsp);<br />
 }<br />
 return v;<br />
}</p>
<p>int getTime() {<br />
 int t = 0;<br />
 J *rsp = notecard.requestAndResponse(notecard.newRequest(&quot;card.time&quot;));<br />
 if (rsp != NULL) {</p>
<p>   t = JGetInt(rsp, &quot;time&quot;);<br />
   usbSerial.println(t);<br />
   notecard.deleteResponse(rsp);<br />
 }<br />
 return t;<br />
}</p>
<p>static void addNote() {<br />
 digitalWrite(LED_BUILTIN, HIGH);<br />
 int currentTime = getTime();<br />
 // Do the same to retrieve the voltage that is detected by the Notecard on<br />
 // its `V+` pin.<br />
 //get voltage<br />
 float voltage = getVoltage();<br />
 float t = dht.readTemperature();<br />
 float h = dht.readHumidity();<br />
 float f = dht.readTemperature(true);<br />
// Check if any reads failed and exit early (to try again).<br />
 if (isnan(h) || isnan(t) || isnan(f)) {<br />
   Serial.println(F(&quot;Failed to read from DHT sensor!&quot;));<br />
   return;<br />
 }</p>
<p> // Compute heat index in Fahrenheit (the default)<br />
 float hif = dht.computeHeatIndex(f, h);<br />
 // Compute heat index in Celsius (isFahreheit = false)<br />
 float hic = dht.computeHeatIndex(t, h, false);<br />
Serial.print(F(&quot;Humidity: &quot;));<br />
 Serial.print(h);<br />
 Serial.print(F(&quot;%  Temperature: &quot;));<br />
 Serial.print(t);<br />
 Serial.print(F(&quot;°C &quot;));<br />
 Serial.print(f);<br />
 Serial.print(F(&quot;°F  Heat index: &quot;));<br />
 Serial.print(hic);<br />
 Serial.print(F(&quot;°C &quot;));<br />
 Serial.print(hif);<br />
 Serial.println(F(&quot;°F&quot;));<br />
 {<br />
   J *req = notecard.newRequest(&quot;note.add&quot;);<br />
   if (req != NULL) {<br />
     JAddStringToObject(req, &quot;file&quot;, &quot;sensors.qo&quot;);<br />
     JAddBoolToObject(req, &quot;sync&quot;, true);<br />
     J *body = JAddObjectToObject(req, &quot;body&quot;);<br />
     if (body != NULL) {<br />
       // JAddStringToObject(body, &quot;status&quot;, temperature &gt; 26.67 ? &quot;hot&quot; : &quot;normal&quot;);  // 80F<br />
       JAddNumberToObject(body, &quot;temperature&quot;, t);<br />
       JAddNumberToObject(body, &quot;humidity&quot;, h);<br />
       JAddNumberToObject(body, &quot;heat_index_F&quot;, hif);<br />
       JAddNumberToObject(body, &quot;heat_index_C&quot;, hic);<br />
       JAddNumberToObject(body, &quot;voltage&quot;, voltage);<br />
       JAddNumberToObject(body, &quot;time&quot;, currentTime);<br />
     }</p>
<p>     notecard.sendRequest(req);<br />
   }<br />
 }</p>
<p> usbSerial.println(&quot;note added&quot;);<br />
 digitalWrite(LED_BUILTIN, LOW);<br />
 LowPower.deepSleep(60 *1000);<br />
}<br />
void loop() {<br />
 addNote();<br />
}<br />
[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Upload the program.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">If everything is working you can adjust the sleep duration. You can keep reprogramming the Swan to adjust the sleep interval, or you could add an ENV variable to control the interval and then modify that variable in Notehub to change the duration.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Return to your </span><a href="https://notehub.io"><span style="font-weight: 400;">Notehub</span></a><span style="font-weight: 400;"> project, go to the </span><b>Devices</b><span style="font-weight: 400;"> page, and double click your device. You should see a screen that looks like this.</span><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114419" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image62-429x500.png" alt="Devices Page" width="429" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image62-429x500.png 429w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image62-858x1000.png 858w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image62-768x896.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image62.png 1180w" sizes="auto, (max-width: 429px) 100vw, 429px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click the </span><b>Environment</b><span style="font-weight: 400;"> tab:</span><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114420" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image20-750x323.png" alt="Environment Tab" width="750" height="323" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image20-750x323.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image20-1500x645.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image20-768x330.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image20-1536x661.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image20.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Under the </span><b>Device</b><span style="font-weight: 400;"> header, click on </span><b>Go to project environment</b><span style="font-weight: 400;">.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Define a new environment variable named </span><b>sleep_interval</b><span style="font-weight: 400;"> and set its value to </span><b>60</b><span style="font-weight: 400;">. Click on </span><b>Apply Changes</b><span style="font-weight: 400;">.</span><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114421" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image8-750x347.png" alt="Apply Changes" width="750" height="347" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image8-750x347.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image8-1500x694.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image8-768x355.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image8-1536x711.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image8.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Back in the Arduino sketch go to </span><b>setup()</b><span style="font-weight: 400;"> and adjust your existing </span><b>hub.set</b><span style="font-weight: 400;"> configuration to set the sync argument to true. When sync is true, the Notecard synchronizes inbound environment variable changes as soon as they&#8217;re made in Notehub. Add the following line before </span><b>notecard.sendRequest(req);</b>
<p>[code language=&#8221;arduino&#8221;]JAddBoolToObject(req, &quot;sync&quot;, true); // ADD THIS LINE[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Add this line after the </span><b>#include</b><span style="font-weight: 400;"> lines at the top of the file:</span>
<p>[code language=&#8221;arduino&#8221;]int getSleepInterval();[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Change the the call to </span><span style="font-weight: 400;">LowPower</span><span style="font-weight: 400;">.</span><span style="font-weight: 400;">deepSleep</span><span style="font-weight: 400;">()</span><span style="font-weight: 400;"> in the </span><b>addNote()</b><span style="font-weight: 400;"> function to the following:</span>
<p>[code language=&#8221;arduino&#8221;]int sleep_interval = getSleepInterval();<br />
 LowPower.deepSleep(sleep_interval * 1000);[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Add a new function at the bottom of your sketch:</span>
<p>[code language=&#8221;arduino&#8221; quickcode=&#8221;true&#8221;]int getSleepInterval(){<br />
int sleepIntervalSeconds = 60;<br />
 J *req = notecard.newRequest(&quot;env.get&quot;);<br />
 if (req != NULL) {<br />
     JAddStringToObject(req, &quot;name&quot;, &quot;sleep_interval&quot;);<br />
     JAddBoolToObject(req, &quot;sync&quot;, true);<br />
     J *rsp = notecard.requestAndResponse(req);<br />
     int sleepingIntervalEnvVar = atoi(JGetString(rsp, &quot;text&quot;));<br />
     if (sleepingIntervalEnvVar &amp;gt; 0) {<br />
       sleepIntervalSeconds = sleepingIntervalEnvVar;<br />
     }<br />
     notecard.deleteResponse(rsp);<br />
 }<br />
 return sleepIntervalSeconds;<br />
}[/code]</p>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Upload the modified program.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">With those modifications,  you can change the sleep interval from your web browser by modifying the variable under </span><b>Environment&gt;Device</b><span style="font-weight: 400;">.</span><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114422" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image68-750x269.png" alt="Update variable" width="750" height="269" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image68-750x269.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image68-1500x539.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image68-768x276.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image68-1536x552.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image68.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
</ol>
<h2><span style="font-weight: 400;">8. Powering the Device</span></h2>
<p><span style="font-weight: 400;">To power the Blues Notecard you can use:</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">A</span><b> single-cell </b><span style="font-weight: 400;">3.7V LiIon cell with a 2-pin JST PH connector.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">A  solar cell (must be accompanied by LiIon cell). Note that there is an internal  solar charging circuit that is designed for use with 4.5-7V solar panels. You could use a single-cell 3.7 LiIon cell with the following Voltaic solar panels:</span>
<ul>
<li style="font-weight: 400;" aria-level="2"><a href="https://voltaicsystems.com/0-6-watt-6-volt-solar-panel-etfe/"><span style="font-weight: 400;">P123</span></a></li>
<li style="font-weight: 400;" aria-level="2"><a href="https://voltaicsystems.com/P124/"><span style="font-weight: 400;">P124</span></a></li>
<li style="font-weight: 400;" aria-level="2"><a href="https://voltaicsystems.com/P105/"><span style="font-weight: 400;">P105</span></a></li>
</ul>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">You can also power the device by </span><span style="font-weight: 400;">applying 2.5-5.5VDC to the V+ pin.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">You could also power the board with a solar-powered lithium-ion capacitor (LIC).</span></li>
</ol>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">9. Sizing your system</span></h2>
<p><span style="font-weight: 400;">Depending on signal strength and coverage in your area, it may take a few minutes for your Notecard to connect to Notehub and transfer data. But let’s say that everything is working as expected. Let’s disconnect the Notecard and Swan from the computer and use a </span><b>single-cell </b><span style="font-weight: 400;">3.7V LiIon cell with a 2-pin JST PH connector to provide power.</span></p>
<p><span style="font-weight: 400;">Theoretically, you should be able to find the power consumption of your IoT device with two multimeters: one set to read current and the other set to read voltage. You would then multiply the amps by the voltage to get the watts and then you would multiply the watts by 24 to get your device’s daily consumption in watt hours.</span></p>
<p><span style="font-weight: 400;">The multimeter reading voltage should be connected to the positive and negative terminals of the power source. In this case a single-cell 3.7V LiPo or Lithium Ion Battery. You would also connect the red power cable to the V+  or VBAT pin on the Notecarrier.</span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">The GND cable of the multimeter measuring current should be connected to the ground connection of the battery and GND cable of the voltage multimeter. The red cable should be connected to the GND pin of the Notecarrier.<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114426" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image35-750x284.jpg" alt="Measuring" width="750" height="284" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image35-750x284.jpg 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image35-768x290.jpg 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image35.jpg 1280w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></p>
<p><span style="font-weight: 400;">Why this doesn’t work well is because the current mostly falls below what the multimeter can display. This is a good thing. It’s actually great. It means that the device is low powered and a perfect candidate for being powered by solar.</span></p>
<p><span style="font-weight: 400;">In this case we need to use an Qoitech Otii Ace to get an accurate measurement.</span></p>
<p><span style="font-weight: 400;">First we need to look at the Notecard’s DC Characteristics:</span></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114427" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image51-750x111.png" alt="DC Characteristics" width="750" height="111" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image51-750x111.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image51-1500x222.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image51-768x114.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image51-1536x227.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image51.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /><br />
<span style="font-weight: 400;">Then we set up the Otii Ace with the following settings:</span></p>
<table>
<tbody>
<tr>
<td><b>Label</b></td>
<td><b>Value</b></td>
</tr>
<tr>
<td><span style="font-weight: 400;">Voltage</span></td>
<td><span style="font-weight: 400;">3.3V</span></td>
</tr>
<tr>
<td><span style="font-weight: 400;">General Settings</span></td>
<td><span style="font-weight: 400;">Power Box</span></td>
</tr>
<tr>
<td><span style="font-weight: 400;">OC protection</span></td>
<td><span style="font-weight: 400;">2A</span></td>
</tr>
<tr>
<td><span style="font-weight: 400;">Channels</span></td>
<td><span style="font-weight: 400;">Main current, Main power, Main voltage</span></td>
</tr>
<tr>
<td><span style="font-weight: 400;">Baudrate</span></td>
<td><span style="font-weight: 400;">115200</span></td>
</tr>
</tbody>
</table>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114428" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image40-151x500.jpg" alt="Qoitech Settings" width="151" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image40-151x500.jpg 151w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image40.jpg 327w" sizes="auto, (max-width: 151px) 100vw, 151px" /><br />
<span style="font-weight: 400;">After starting the Qoitech Otii Ace by clicking on the power button on the screen, we record our values over a period of time:</span><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114431" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.09.36 PM-513x500.png" alt="Qoitech Results" width="513" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.09.36 PM-513x500.png 513w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.09.36 PM-1026x1000.png 1026w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.09.36 PM-768x749.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.09.36 PM.png 1272w" sizes="auto, (max-width: 513px) 100vw, 513px" /><span style="font-weight: 400;">After capturing an hour of data, we can determine our power consumption. The Qoitech Otii Ace shows that with a 20 minute sleep cycle (I set my ENV sleep_interval variable to 1200), my device’s  daily consumption is 0.0204wh * 24 or  about 0.48Wh per day.</span></p>
<p><span style="font-weight: 400;">0.00112A during sleep </span><br />
<span style="font-weight: 400;">1.97A during transmitting</span><br />
<span style="font-weight: 400;">0.06 during sensing</span></p>
<p><span style="font-weight: 400;">Based on this information we can select a solar system to power the device.</span></p>
<p><span style="font-weight: 400;">We look for a solar panel that can, on average, produce at least 1.5 times the device’s daily power consumption. A larger panel will help maintain uptime.</span></p>
<p><b>Power ratio</b><span style="font-weight: 400;">=Power Available /Power Consumed</span></p>
<p><b>Power Available</b><span style="font-weight: 400;"> = Panel Power * Equivalent Sunlight Hours </span></p>
<p><b>Power Consumed</b><span style="font-weight: 400;"> = System Power * 24 hours</span></p>
<p><span style="font-weight: 400;">To find average sunlight hours per day for the month of December (the month with the least sun in the Northern Hemisphere):</span></p>
<p>&nbsp;</p>
<ol>
<li style="font-weight: 400;" aria-level="1">Open <a href="https://re.jrc.ec.europa.eu/pvg_tools/en/tools.html">JRC Photovoltaic Geographical Information System (PVGIS) tool</a>.</li>
<li aria-level="1">Find your location:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114459" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-3.47.19 PM-750x419.png" alt="Location" width="750" height="419" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-3.47.19 PM-750x419.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-3.47.19 PM-1500x837.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-3.47.19 PM-768x429.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-3.47.19 PM-1536x857.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-3.47.19 PM-2048x1143.png 2048w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li aria-level="1">Set the following fields to the following values.<br />
<table>
<tbody>
<tr>
<th>Field name</th>
<th>Field value</th>
</tr>
<tr>
<td><a class="text-help icon-help" href="https://re.jrc.ec.europa.eu/pvg_tools/en/tools.html" data-toggle="modal" data-id="opeakpower"><span id="tr_peakp3">Installed peak PV power</span> [Wp] </a><span class="asterisk">*</span></td>
<td>1.0</td>
</tr>
<tr>
<td><a class="text-help icon-help" href="https://re.jrc.ec.europa.eu/pvg_tools/en/tools.html" data-toggle="modal" data-id="batterysize"><span id="tr_batterycp">Battery capacity</span> [Wh]</a><span class="asterisk">*</span></td>
<td>0.01</td>
</tr>
<tr>
<td><a class="text-help icon-help" href="https://re.jrc.ec.europa.eu/pvg_tools/en/tools.html" data-toggle="modal" data-id="cutoff"><span id="tr_dischargelim">Discharge cutoff limit</span> [%] </a><span class="asterisk">*</span></td>
<td>0.01</td>
</tr>
<tr>
<td><a class="text-help icon-help" href="https://re.jrc.ec.europa.eu/pvg_tools/en/tools.html" data-toggle="modal" data-id="consumptionday"><span id="tr_daycons">Consumption per day</span> [Wh] </a><span class="asterisk">*</span></td>
<td>0.01</td>
</tr>
<tr>
<td><a class="text-help icon-help" href="https://re.jrc.ec.europa.eu/pvg_tools/en/tools.html" data-toggle="modal" data-id="slope"><span id="tr_slope4">Slope</span> [°] </a><span class="asterisk">*</span></td>
<td>55</td>
</tr>
<tr>
<td><a class="text-help icon-help" href="https://re.jrc.ec.europa.eu/pvg_tools/en/tools.html" data-toggle="modal" data-id="azimuth"><span id="tr_azimuth2">Azimuth</span> [°] </a><span class="asterisk">*</span></td>
<td>0</td>
</tr>
</tbody>
</table>
<p>The numbers we enter sets a panel to 1W and battery storage to 0. This allows us to capture the Watt hours per day:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114460" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.03 PM-653x500.png" alt="Entered fields for calculation" width="653" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.03 PM-653x500.png 653w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.03 PM-1306x1000.png 1306w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.03 PM-768x588.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.03 PM-80x60.png 80w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.03 PM.png 1470w" sizes="auto, (max-width: 653px) 100vw, 653px" /></li>
<li aria-level="1">Click on Visualize results:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114461" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.21 PM-750x249.png" alt="Results" width="750" height="249" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.21 PM-750x249.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.21 PM-1500x498.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.21 PM-768x255.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.21 PM-1536x510.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-4.39.21 PM-2048x680.png 2048w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li aria-level="1">Click on December. The <strong>Energy not captured</strong> is the value we&#8217;re looking for. In my case it is 2.28Wh. Since the panel was set to 1W, watts are canceled out and we are left with hours</li>
</ol>
<p><span style="font-weight: 400;">For my location, my result is 2.28 hours of equivalent full per day on average.  If we use a single 0.3 watt panel, we fall below the 1.5 threshold.</span></p>
<pre><i><span style="font-weight: 400;"><i>0.3W x 2.28h</i> (sun in NY in December)/0.48=<b>1.42</b></span></i></pre>
<p><span style="font-weight: 400;">If we use two panels in parallel, we fall above the 1.5 threshold:</span></p>
<pre><i><span style="font-weight: 400;">2*0.3W x 2.28h</span></i><span style="font-weight: 400;"> (sun in NY in December)/0.48= </span><b>2.85 </b></pre>
<p><span style="font-weight: 400;">We’re going to connect our circuit to the C117 Lithium Ion Capacitor with two panels in parallel (0.6 Watt 3.3 Volt Solar Power System), connecting the black lead to GND and the red to the V+ pin. The LIC (Lithium Ion Capacitor) is admittedly too small here, most IoT devices should be designed with a minimum of 5 days of storage capacity with no solar and this example is closer to 1 day.</span><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114432" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image4-375x500.jpg" alt="In case" width="375" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image4-375x500.jpg 375w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image4-750x1000.jpg 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image4-768x1024.jpg 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image4.jpg 960w" sizes="auto, (max-width: 375px) 100vw, 375px" /></p>
<h2><span style="font-weight: 400;">10. Routing Data to the Cloud: General HTTP/HTTPS</span></h2>
<p><span style="font-weight: 400;">A feature of Notehub is that it allows you to forward your data from Notehub. (Notehub operates under a &#8220;pay-as-you-go&#8221; model with </span><a href="https://dev.blues.io/notehub/notehub-walkthrough/#understanding-consumption-credits"><span style="font-weight: 400;">Consumption Credits</span></a><span style="font-weight: 400;">. A Consumption Credit is only used upon event egress (e.g. when events are routed out of Notehub)).</span></p>
<p><span style="font-weight: 400;">A </span><b>Route</b><span style="font-weight: 400;"> is an external API, or server location, where Notes can be forwarded upon receipt.</span></p>
<p><span style="font-weight: 400;">Routes are defined in Notehub for a </span><a href="https://dev.blues.io/api-reference/glossary/#project"><span style="font-weight: 400;">Project</span></a><span style="font-weight: 400;"> and can target Notes from one or more </span><a href="https://dev.blues.io/api-reference/glossary/#fleet"><span style="font-weight: 400;">Fleets</span></a><span style="font-weight: 400;"> or </span><a href="https://dev.blues.io/api-reference/glossary/#device"><span style="font-weight: 400;">Devices</span></a><span style="font-weight: 400;">. A Project can have multiple routes defined and active at any one time.</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Make sure the data you want to route is available in Notehub by navigating to the </span><b>Events</b><span style="font-weight: 400;"> view:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114433" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.12.53 PM-750x416.png" alt="Events View" width="750" height="416" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.12.53 PM-750x416.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.12.53 PM-768x426.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.12.53 PM.png 1154w" sizes="auto, (max-width: 750px) 100vw, 750px" /><br />
</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Navigate to </span><a href="https://webhook.site/"><span style="font-weight: 400;">webhook.site</span></a><span style="font-weight: 400;">. When the page loads, you&#8217;ll be presented with a unique URL that you can use as a </span><b>Route destination</b><span style="font-weight: 400;">. Copy that URL:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114434" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.13.21 PM-750x398.png" alt="Routes" width="750" height="398" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.13.21 PM-750x398.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.13.21 PM-768x407.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.13.21 PM.png 1086w" sizes="auto, (max-width: 750px) 100vw, 750px" /><br />
</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Navigate to the </span><a href="https://notehub.io/"><span style="font-weight: 400;">Notehub.io</span></a><span style="font-weight: 400;"> project.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click on </span><b>Routes.</b></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click on </span><b>Create Route:<span style="font-weight: 400;"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114435" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.13.57 PM-750x284.png" alt="Create Route" width="750" height="284" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.13.57 PM-750x284.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.13.57 PM-768x291.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.13.57 PM.png 1152w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></b></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Select the </span><b>General HTTP/HTTPS Request/Response</b><span style="font-weight: 400;"> route type:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114436" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image55-750x458.png" alt="Select Route" width="750" height="458" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image55-750x458.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image55-1500x915.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image55-768x469.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image55-1536x937.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image55.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Give the route a name (for example, &#8220;Weather&#8221;).<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114437" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image67-750x222.png" alt="Name Route" width="750" height="222" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image67-750x222.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image67-1500x444.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image67-768x227.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image67-1536x455.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image67.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">For the Route </span><b>URL</b><span style="font-weight: 400;">, use the unique URL you obtained from </span><a href="https://webhook.site/"><span style="font-weight: 400;">webhook.site<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114438" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image18-750x396.png" alt=" webhook.site" width="750" height="396" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image18-750x396.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image18-1500x792.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image18-768x405.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image18-1536x811.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image18.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></a></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Under </span><b>Filters</b><span style="font-weight: 400;">, choose </span><b>Select Notefiles</b><span style="font-weight: 400;"> and enter the name of the Notefile to monitor. For example, we used </span><b>sensors.qo</b><span style="font-weight: 400;"> in our program:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114439" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image27-750x311.png" alt="sensors.qo" width="750" height="311" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image27-750x311.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image27-1500x621.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image27-768x318.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image27-1536x636.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image27-600x250.png 600w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image27.png 1994w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Make sure the </span><b>Enabled</b><span style="font-weight: 400;"> switch remains selected, and click </span><b>Create Route</b><span style="font-weight: 400;">:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114440" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image28-750x89.png" alt="Create Routes" width="750" height="89" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image28-750x89.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image28-1500x177.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image28-768x91.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image28-1536x182.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image28.png 1996w" sizes="auto, (max-width: 750px) 100vw, 750px" /><br />
</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Return to </span><b>webhook.site</b><span style="font-weight: 400;">. This page will update automatically with data from your Notecard as it is received in Notehub. The data from your sensor is contained within the </span><b>body</b><span style="font-weight: 400;"> attribute. Notice that Notehub provides you with a lot of information, by default.</span><span style="font-weight: 400;"> <img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114441" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.20.17 PM-750x448.png" alt="webhook.site data " width="750" height="448" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.20.17 PM-750x448.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.20.17 PM-768x459.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.20.17 PM.png 1248w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></li>
</ol>
<h2><span style="font-weight: 400;">9. </span><a href="https://dev.blues.io/guides-and-tutorials/routing-data-to-cloud/general-http-https/#use-jsonata-to-transform-json"><span style="font-weight: 400;">Use JSONata to Transform JSON</span></a><span style="font-weight: 400;"> data</span></h2>
<p><span style="font-weight: 400;">To help simplify what you see, you can use JSONata.</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Navigate to the Routes page in Notehub and click </span><b>View</b><span style="font-weight: 400;"> next to the Route you wish to edit.<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114442" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.21.31 PM-750x307.png" alt="Edit Weather Route" width="750" height="307" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.21.31 PM-750x307.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.21.31 PM-768x314.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.21.31 PM.png 1124w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">In the </span><b>Transform Data</b><span style="font-weight: 400;"> drop-down, select </span><b>JSONata Expression:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114443" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image9-750x193.png" alt="JSONata" width="750" height="193" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image9-750x193.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image9-1500x387.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image9-768x198.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image9-1536x396.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image9.png 1994w" sizes="auto, (max-width: 750px) 100vw, 750px" /></b></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">In the JSONata expression text area, add the following query to select the values you want to track. JSONata allows you to manipulate your data, like formatting your numbers or creating a location field by concatenating the </span><b>tower_location</b><span style="font-weight: 400;"> and</span><b> tower_country</b><span style="font-weight: 400;"> fields:</span>
<div>
<p>[code language=&#8221;js&#8221;]{<br />
&quot;Heat_index_C&quot;: $number($formatNumber(body.heat_index_C, &quot;#0.00;(#0.00)&quot;)),<br />
   	&quot;Humidity&quot;: $number($formatNumber(body.humidity, &quot;#0.00;(#0.00)&quot;)),<br />
    	&quot;Temperature (F)&quot;: (body.temperature *9)/5+32,<br />
    	&quot;Time&quot;: body.time,<br />
    	&quot;Voltage&quot;: body.voltage,<br />
    	&quot;Location&quot;: tower_location &amp;amp; &#039;, &#039; &amp;amp; tower_country<br />
}[/code]</p>
</div>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click </span><b>Apply Changes</b><span style="font-weight: 400;"> and </span><b>Confirm</b><span style="font-weight: 400;">. Then, navigate back to your webhook.site url. As requests come in, you&#8217;ll see your custom, JSONata-transformed payload in the </span><b>Raw Content</b><span style="font-weight: 400;"> section:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114444" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.23.30 PM-750x230.png" alt="Raw Content" width="750" height="230" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.23.30 PM-750x230.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.23.30 PM-768x236.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.23.30 PM.png 1250w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">To explore JSONata further, </span><a href="https://dev.blues.io/notecard/notecard-walkthrough/json-fundamentals/"><span style="font-weight: 400;">visit the Blues JSON Fundamentals guide</span></a></li>
</ol>
<p>&nbsp;</p>
<h2><span style="font-weight: 400;">10. Qubitro</span></h2>
<ol>
<li style="list-style-type: none;">
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Create an account or log into </span><a href="https://qubitro.com"><span style="font-weight: 400;">Qubitro</span></a><span style="font-weight: 400;">.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Create a new project. Enter a name and a description:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114445" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.24.37 PM-750x435.png" alt="New Qubitro Project" width="750" height="435" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.24.37 PM-750x435.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.24.37 PM-768x445.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-03-at-2.24.37 PM.png 1284w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click on the project then click on </span><b>Browse Data Sources</b><span style="font-weight: 400;">:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114446" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image11-750x332.png" alt="Browse Data Sources" width="750" height="332" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image11-750x332.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image11-1500x665.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image11-768x340.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image11-1536x681.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image11.png 1972w" sizes="auto, (max-width: 750px) 100vw, 750px" /></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click on Notehub:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114447" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image38-698x500.png" alt="Data Sources" width="698" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image38-698x500.png 698w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image38-1395x1000.png 1395w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image38-768x550.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image38-1536x1101.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image38.png 1722w" sizes="auto, (max-width: 698px) 100vw, 698px" /></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Back in Notehub, edit the </span><b>Route</b><span style="font-weight: 400;">.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Copy the URL from Qubitro and paste into the URL field of Notehub.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">In Notehub click on Additional Headers. Set the following key-value pairs:</span>
<div>
<p>[code language=&#8221;js&#8221;]note-device: weather[/code]</p>
<p>projectId: [projectId from Qubitro]<br />
webhookSigningKey: [webhookSigningKey from Qubitro]</p>
</div>
</li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Apply Changes</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">In Qubitro open </span><b>Functions</b><span style="font-weight: 400;"> Tab and select </span><b>Create…</b><span style="font-weight: 400;">:</span><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114448" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image59-750x353.png" alt="Functions Tab" width="750" height="353" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image59-750x353.png 750w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image59-1500x707.png 1500w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image59-768x362.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image59-1536x724.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image59.png 1999w" sizes="auto, (max-width: 750px) 100vw, 750px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Select </span><b>Blank template</b><span style="font-weight: 400;">, then select </span><b>Transformation function</b><span style="font-weight: 400;">:</span><br />
<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114449" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image22-678x500.png" alt="Transformation Function" width="678" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image22-678x500.png 678w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image22-1355x1000.png 1355w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image22-768x567.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image22-1536x1133.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image22-80x60.png 80w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image22.png 1694w" sizes="auto, (max-width: 678px) 100vw, 678px" /></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Create your JSONata expressions:<img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-114450" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image47-731x500.png" alt="JSONata in Qubitro" width="731" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image47-731x500.png 731w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image47-1462x1000.png 1462w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image47-768x525.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image47-1536x1050.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/image47.png 1999w" sizes="auto, (max-width: 731px) 100vw, 731px" /></span><br />
<span style="font-weight: 400;">Some JSONata possibilities:</span></li>
</ol>
</li>
</ol>
</li>
</ol>
<div>
<p>[code language=&#8221;js&#8221;]{<br />
 &quot;Heat_index_C&quot;: Heat_index_C,<br />
 &quot;Humidity&quot;: Humidity,<br />
 &quot;Location&quot;: Location,<br />
 &quot;Temperature_F&quot;:$number($formatNumber(Temperature_F, &quot;#0.00;(#0.00)&quot;)),<br />
 &quot;Date&quot;: $fromMillis(Time*1000, &#039;[M01]/[D01]/[Y0001]&#039;),<br />
 &quot;Time&quot;: $fromMillis(Time*1000, &#039;[h#1]:[m01][P]&#039;),<br />
 &quot;Date/Time&quot;: $fromMillis(Time*1000, &#039;[M01]/[D01]/[Y0001] [h#1]:[m01][P]&#039;),<br />
 &quot;Voltage&quot;: $number($formatNumber(Voltage, &quot;#0.00;(#0.00)&quot;)),<br />
 &quot;EST&quot;:$fromMillis(Time*1000, &#039;[H01]:[m01]&#039;, &#039;-0400&#039;),<br />
 &quot;Raw Time&quot;:Time</p>
<p>}[/code]</p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Click on</span><b> Save and complete.</b></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Name your function.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Create your <a href="https://portal.qubitro.com/9f75016f-f6a0-43f8-87ec-a6ce41f8dd73">dashboard</a></span></li>
</ul>
<p><a href="https://portal.qubitro.com/9f75016f-f6a0-43f8-87ec-a6ce41f8dd73"><img loading="lazy" decoding="async" class="aligncenter wp-image-114654 size-medium" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-31-at-4.53.42 PM-643x500.png" alt="Qubitro Dashboard" width="643" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-31-at-4.53.42 PM-643x500.png 643w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-31-at-4.53.42 PM-1286x1000.png 1286w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-31-at-4.53.42 PM-768x597.png 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-31-at-4.53.42 PM-1536x1194.png 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/Screenshot-2025-01-31-at-4.53.42 PM.png 1538w" sizes="auto, (max-width: 643px) 100vw, 643px" /></a></p>
<p><span style="font-weight: 400;">Running the device for several weeks showed that the C117 Lithium Ion Capacitor was providing insufficient capacity. I could see this in notehub.io dashboard.</span></p>
<p><span style="font-weight: 400;">I could also see in the dashboard that the system was dying at night without the sun and recovering when exposed to the sunlight the next  day.</span></p>
<p><span style="font-weight: 400;">With this information, I can change my sleep environmental variable on the dashboard from 1200 to 3600 seconds without having to gather my device and connect it to my computer.</span></p>
<div id="attachment_114652" style="width: 547px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-114652" class="size-medium wp-image-114652" src="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/c117-537x500.jpg" alt="Notehub.io Dashboard " width="537" height="500" srcset="https://blog.voltaicsystems.com/wp-content/uploads/2025/01/c117-537x500.jpg 537w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/c117-1073x1000.jpg 1073w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/c117-768x716.jpg 768w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/c117-1536x1431.jpg 1536w, https://blog.voltaicsystems.com/wp-content/uploads/2025/01/c117.jpg 1584w" sizes="auto, (max-width: 537px) 100vw, 537px" /><p id="caption-attachment-114652" class="wp-caption-text">Notehub.io Dashboard</p></div>
<p><span style="font-weight: 400;">Now that you know how to interact with the Blues ecosystem, you can start to build more advanced applications that can be powered by solar. What will you build?</span></p>
<p style="text-align: center;"><a class="maxbutton-46 maxbutton maxbutton-solar-consultation" title="Set Up a Consultation" href="https://voltaicsystems.com/contact-us/"><span class='mb-text'>Sign Up for a Consultation</span></a></p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.voltaicsystems.com/a-deep-dive-into-blues/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
