SparkFun Tutorials
urn:uuid:5902bec3-4187-acaf-e181-2f685478e85a
SparkFun Arduino UNO R4 WiFi Qwiic Kit Hookup Guide
Ell C
https://www.sparkfun.com/users/18520
urn:uuid:c76f3f51-7509-7992-8b32-cdfa47ffd3f6
2023-07-11T00:00:00-06:00
<h1>
SparkFun Arduino UNO R4 WiFi Qwiic Kit Hookup Guide <small>a <a href="https://learn.sparkfun.com/tutorials">learn.sparkfun.com tutorial</a></small>
</h1>
<h3>
Available online at: <a href="http://sfe.io/t3243">http://sfe.io/t3243</a>
</h3>
<a name="#introduction"></a>
<h2 id="introduction">Introduction</h2>
<p>The <a href="https://www.sparkfun.com/products/22641">SparkFun Arduino UNO R4 WiFi Qwiic Kit</a> is a great way to get started with Arduino and the Qwiic-connect system. This kit includes everything you need to build a WiFi-enabled project, including an Arduino UNO R4 board, an assortment of Qwiic-enabled sensors and input boards, a Qwiic OLED Display, and a variety of other components to get you connected. Hooking up a handful of inputs and outputs to a Arduino UNO R4 has never been so easy.</p>
<p>The UNO universe expands with the Arduino UNO R4 WiFi: the same industry-standard form factor at 5V operating voltage, but with the enhanced performance of a RA4M1 32-bit microcontroller by Renesas with ESP32-S3-MINI coprocessor – for increased computational power, memory and speed – as well as WiFi® and Bluetooth® connectivity, a 12 x 8 LED matrix, and a Qwiic connector.</p>
<p>The SparkFun Arduino UNO R4 WiFi Qwiic Kit is a great way to learn about Arduino, WiFi, and electronics. With this kit, you can build your own WiFi-enabled projects and start connecting your devices to the Internet of Things.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="product-22641">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/22641">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/2/2/8/0/4/22641-_KIT_-1.jpg" alt="SparkFun Arduino UNO R4 WiFi Qwiic Kit" height="500">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="22641">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_22641" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_22641 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_22641"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/22641">
<span>SparkFun Arduino UNO R4 WiFi Qwiic Kit</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="26 available"><span class=sfe-icon-stock-low><span class=visuallyhidden>26 available</span></span></a>
</span>
<span class="sku">
KIT-22641 </span>
<p class="description" style="display:none">
The SparkFun Arduino UNO R4 WiFi Qwiic Kit has everything you need to start using the UNO R4 WiFi and Qwiic ecosystem togethe… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$99.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="22641">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">6</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="22641" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<h3>Parts List</h3>
<p>To follow this experiment, you will need the following materials. If you did not order the kit, you may need some of the items here. You may not need everything though, depending on what you have. Add it to your cart, read through the guide, and adjust the cart as necessary.</p>
<script src="https://www.sparkfun.com/wish_lists/171835.js"></script>
<h3>Suggested Reading</h3>
<p>If you aren’t familiar with the following concepts, we recommend checking out these tutorials before continuing.</p>
<table class="table table-bordered">
<tr align="center">
<td><center><a href="https://www.sparkfun.com/qwiic"><img src="https://cdn.sparkfun.com/assets/custom_pages/2/7/2/qwiic-logo.png" alt="Qwiic Connect System" title="Qwiic Connect System"></a></center></td>
</tr>
<tr align="center">
<td><i><a href="https://www.sparkfun.com/qwiic">Qwiic Connect System</a></i></td>
</tr>
</table>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-50">
<a href="https://learn.sparkfun.com/tutorials/what-is-an-arduino">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/3/b/6/e/b/512e66bece395f492b000000.jpg)"></div>
</div>
<h3 class="title">What is an Arduino?</h3>
</a>
<div class="description">
What is this 'Arduino' thing anyway? This tutorials dives into what an Arduino is and along with Arduino projects and widgets.
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="50">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">56</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-61">
<a href="https://learn.sparkfun.com/tutorials/installing-arduino-ide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/1/arduinoThumb.jpg)"></div>
</div>
<h3 class="title">Installing Arduino IDE</h3>
</a>
<div class="description">
A step-by-step guide to installing and testing the Arduino software on Windows, Mac, and Linux. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="61">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">17</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-62">
<a href="https://learn.sparkfun.com/tutorials/logic-levels">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/2/Input_Output_Logic_Level_Tolerances_tutorial_tile.png)"></div>
</div>
<h3 class="title">Logic Levels</h3>
</a>
<div class="description">
Learn the difference between 3.3V and 5V devices and logic levels. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="62">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">89</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-82">
<a href="https://learn.sparkfun.com/tutorials/i2c">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/8/2/I2C-Block-Diagram.jpg)"></div>
</div>
<h3 class="title">I2C</h3>
</a>
<div class="description">
An introduction to I2C, one of the main embedded communications protocols in use today. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="82">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">136</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div> <a name="#the-arduino-uno-r4-wifi-board"></a>
<h2 id="the-arduino-uno-r4-wifi-board">The Arduino Uno R4 Wifi Board</h2>
<p>This board is jam packed with functionality. We'll cover some of the basics here, but to read about the full shebang, refer to the <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/ABX00087-datasheet.pdf">Product Reference Manual</a>.</p>
<h3>Microcontroller</h3>
<p>The Arduino UNO R4 board is equipped with a powerful RA4M1 series 32-bit microcontroller from Renesas, which offers increased processing power, memory, and on-board peripherals. Importantly, these enhancements do not compromise compatibility with existing shields and accessories, nor do they require any changes to the standard form factor or 5V operating voltage.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22632-CPU.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22632-CPU.jpg" alt="The Renesas microcontroller is highlighted" /></a> </div></p>
<h3>ESP32-S3-MINI CoProcessor</h3>
<p>The UNO R4 WiFi features an ESP32-S3-MINI coprocessor that enhances the capabilities of the RA4M1 microcontroller. With WiFi and Bluetooth connectivity, this board allows makers to easily connect to the internet and create IoT projects.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22632-Espressif.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22632-Espressif.jpg" alt="The ESP32 CoProcessor is highlighted here" /></a> </div></p>
<h3>Power</h3>
<p>You can provide power via the USB-C connector or the Barrel Jack. A USB-C cable is included in the kit, the <a href="https://www.sparkfun.com/products/15312">Barrel Jack</a> can be purchased separately. The RA4M1's operating voltage is fixed at <strong>5 V</strong>, whereas the ESP32-S3 module is <strong>3.3 V</strong>. Communication between these two MCUs are performed via a logic level translator (TXB0108DQSR).</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22632-Power.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22632-Power.jpg" alt="Both the barrel jack and the USBC are highlighted" /></a> </div></p>
<h3>LED Matrix</h3>
<p>The UNO R4 WiFi includes a bright 12x8 red LED matrix (96 dots total). This feature is ideal for creative projects using animations or for plotting sensor data, without the need for any additional hardware.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22632-LEDMatrix.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22632-LEDMatrix.jpg" alt="The LED Matrix is highlighted" /></a> </div></p>
<h3>Qwiic Connector</h3>
<p>The UNO R4 WiFi includes an industry-standard Qwiic I<sup>2</sup>C connector that facilitates quick prototyping. With a wide variety of compatible modules that can be connected over I<sup>2</sup>C, makers can easily create custom projects and expand the capabilities of the UNO R4 WiFi.</p>
<div class="alert alert-warning" role="alert">
<span class="glyphicon glyphicon-warning-sign"></span> <b>Warning:</b> The Qwiic connector on this board is connected to a secondary I<sup>2</sup>C bus on this board, IIC0. This connector is <b>3.3V</b> only, connecting higher voltages may damage your board. To initialize this bus, use Wire1.begin().
</div>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22632-QwiicConnector.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22632-QwiicConnector.jpg" alt="The Qwiic connector is highlighted" /></a> </div></p>
<h3>GPIO</h3>
<p>The board features 14 digital I/O ports, 6 analog channels, dedicated pins for I<sup>2</sup>C, SPI and UART connections. The pins on either side of the board are highlighted here.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22632-GPIO.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22632-GPIO.jpg" alt="The GPIO pins are highlighted on either swide of the board" /></a> </div></p>
<p>Their functionality is shown below; for more details, refer to the <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/ABX00087-datasheet.pdf">Product Reference Manual</a>.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/ABX00087-pinout.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/ABX00087-pinout.png" alt="Pinout definitions" /></a> </div></p>
<p><div class="center-block text-center"><em>Image courtesy of Arduino</em></div>
<div class="center-block text-center"><em>Click the image for a closer view</em></div></p> <a name="#installing-arduino"></a>
<h2 id="installing-arduino">Installing Arduino</h2>
<p>The following steps are a basic overview of getting started with the Arduino IDE. For more detailed, step-by-step instructions for setting up the Arduino IDE on your computer, please check out the following tutorial.</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-61">
<a href="https://learn.sparkfun.com/tutorials/installing-arduino-ide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/6/1/arduinoThumb.jpg)"></div>
</div>
<h3 class="title">Installing Arduino IDE</h3>
<h4 class="metaline">March 26, 2013</h4> </a>
<div class="description">
A step-by-step guide to installing and testing the Arduino software on Windows, Mac, and Linux. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="61">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">17</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<h3>Download the Arduino IDE</h3>
<p>In order to get your microcontroller up and running, you'll need to download the newest version of the Arduino software first (it's free and open source!).</p>
<p><div class="center-block text-center"> <a href="https://www.arduino.cc/en/Main/Software" class="btn btn-default">Download the Arduino IDE</a> </div></p>
<p>This software, known as the Arduino IDE, will allow you to program the board to do exactly what you want. It’s like a word processor for writing code.</p> <a name="#connecting-the-arduino-uno-r4-wifi"></a>
<h2 id="connecting-the-arduino-uno-r4-wifi">Connecting the Arduino UNO R4 WiFi</h2>
<p>Use the USB cable provided in the kit to connect the Arduino UNO R4 to one of your computer’s USB inputs.</p>
<h3>Install the Arduino Uno R4 Board Definition</h3>
<p>If you haven't already done so, make sure you have the Board Definitions installed for the Arduino Uno R4 boards. Go up to the <strong>Tools</strong> menu, hover over <strong>Board</strong>, and select <strong>Boards Manager</strong>. Type in Arduino R4, and you should see the following. Click <strong>Install</strong> to install the board defs.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/InstallBoardDefFile.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/InstallBoardDefFile.png" alt="Arduino Uno R4 Board Def File" /></a> </div></p>
<h3>Select Your Board: Arduino Uno R4</h3>
<p>Before we can start jumping into the experiments, there are a couple adjustments we need to make. This step is required to tell the Arduino IDE <em>which</em> of the <a href="https://learn.sparkfun.com/tutorials/choosing-an-arduino-for-your-project">many Arduino boards</a> we have. Go up to the <strong>Tools</strong> menu. Then hover over <strong>Board</strong> and subsequently the <strong>Arduino UNO R4 Boards</strong> menus, and make sure <strong>Arduino Uno R4 WiFi</strong> is selected.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/SelectingR4WiFiBoard.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/SelectingR4WiFiBoard.png" alt="Arduino IDE Board Selection" /></a> </div></p>
<h3>Select a Serial Port</h3>
<p>Next up we need to tell the Arduino IDE which of our computer's serial ports the microcontroller is connected to. For this, again go up to <strong>Tools</strong>, then hover over <strong>Port</strong> and select your Arduino Uno R4 WiFi's serial port.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/R4WiFiPortSelection.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/R4WiFiPortSelection.png" alt="COM Port Selection" /></a> </div></p> <a name="#software"></a>
<h2 id="software">Software</h2>
<div class="alert alert-info">
<b>Note:</b> If this is your first time using Arduino, please review our tutorial on <a href="https://learn.sparkfun.com/tutorials/installing-arduino-ide">installing the Arduino IDE.</a> If you have not previously installed an Arduino library, please check out our <a href="https://learn.sparkfun.com/tutorials/installing-an-arduino-library">installation guide.</a>
</div>
<p>We have compiled a set of examples to show how the basics work on this board. You can download the examples here:</p>
<p><div class="center-block text-center"> <a href="https://github.com/sparkfun/SparkFun_Arduino_UNO_R4_Qwiic_Kit/archive/refs/heads/main.zip" class="btn btn-default">SparkFun Arduino UNO R4 Qwiic Examples Library (ZIP)</a> </div></p>
<p>These are just the ino files. Each of the examples requires a separate library to be installed. Each example in this guide will walk you through installing the required library. Let's get hacking!</p> <a name="#example-1-qwiic-led-button"></a>
<h2 id="example-1-qwiic-led-button">Example 1: Qwiic LED Button</h2>
<p>This first example shows how the Qwiic LED Button can be hooked up and programmed to pulse while pressed.</p>
<h3>Library Installation</h3>
<p>In order for this example to work, you'll need to also install the library for the SparkFun Qwiic Button. The easiest way to install this library is to search for <b>SparkFun Qwiic Button</b> in the Arduino Library Manager tool. You can also manually install the Qwiic Button Library from the <a href="https://github.com/sparkfun/SparkFun_Qwiic_Button_Arduino_Library">GitHub Repository</a> or you can download it by clicking the button below.</p>
<p><div class="center-block text-center"> <a href="https://github.com/sparkfun/SparkFun_Qwiic_Button_Arduino_Library/archive/master.zip" class="btn btn-default">Download the SparkFun Qwiic Button Library (ZIP)</a> </div></p>
<h3>Hardware Hookup</h3>
<p>Plug one end of the Qwiic connector into the Qwiic port on the breakout board, and the other end into the Qwiic connector on the Arduino Uno R4 WiFi board like so:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22641-ArduinoUnoR4WiFIKit-LEDButton.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22641-ArduinoUnoR4WiFIKit-LEDButton.jpg" alt="Plug one end of the qwiic connector into the qwiic port on the breakout board, and the other end into the qwiic connector on the Arduino Uno R4 WiFi board" /></a> </div></p>
<h3>Software Example - Pulse When Pressed</h3>
<p>The following example is taken from Example 3 of the SparkFun Qwiic Button library and is titled "Pulse When Pressed". The code connects the Qwiic Button to the I<sup>2</sup>C bus and runs the Button LED through a configured sequence when the button is pressed. The code configures the LED settings for brightness, cycleTime and offTime to pulse the Button LED while it is pressed. Try playing around with these settings to change the behavior of the LED.</p>
<pre><code>language:c
/******************************************************************************
Checks whether the button is pressed, and light it up if it is! Also prints
status to the serial monitor.
Fischer Moseley @ SparkFun Electronics
Original Creation Date: July 24, 2019
This code is Lemonadeware; if you see me (or any other SparkFun employee) at the
local, and you've found our code helpful, please buy us a round!
Hardware Connections:
Attach the Qwiic Shield to your Arduino/Photon/ESP32 or other
Plug the button into the shield
Print it to the serial monitor at 115200 baud.
Distributed as-is; no warranty is given.
******************************************************************************/
#include <SparkFun_Qwiic_Button.h>
QwiicButton button;
//Define LED characteristics
uint8_t brightness = 250; //The maximum brightness of the pulsing LED. Can be between 0 (min) and 255 (max)
uint16_t cycleTime = 1000; //The total time for the pulse to take. Set to a bigger number for a slower pulse, or a smaller number for a faster pulse
uint16_t offTime = 200; //The total time to stay off between pulses. Set to 0 to be pulsing continuously.
void setup() {
Serial.begin(115200);
Serial.println("Qwiic button examples");
Wire1.begin(); //Join I2C bus
//check if button will acknowledge over I2C
if (button.begin(SFE_QWIIC_BUTTON_DEFAULT_ADDRESS, Wire1) == false) {
Serial.println("Device did not acknowledge! Freezing.");
while (1);
}
Serial.println("Button acknowledged.");
button.LEDoff(); //start with the LED off
}
void loop() {
//check if button is pressed, and tell us if it is!
if (button.isPressed() == true) {
Serial.println("The button is pressed!");
button.LEDconfig(brightness, cycleTime, offTime);
while (button.isPressed() == true)
delay(10); //wait for user to stop pressing
Serial.println("The button is not pressed.");
button.LEDoff();
}
delay(20); //let's not hammer too hard on the I2C bus
}
</code></pre>
<p>Notice that the code uses Wire1. The Qwiic connector on the Arduino UNO R4 WiFi Board is connected to a secondary I<sup>2</sup>C bus on this board, IIC0. This connector is <b>3.3V</b> only, connecting higher voltages may damage your board. To initialize this bus, use Wire1.begin() instead.</p>
<p>You should have the correct board and port selected, as per the Software section of this guide. Upload the code, and when you press the button you should see the button pulse as below:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22641_QwiicButtonExample.gif"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22641_QwiicButtonExample.gif" alt="GIF showing the button pulsing red when it is pushed" /></a> </div></p> <a name="#example-2-qwiic-twist"></a>
<h2 id="example-2-qwiic-twist">Example 2: Qwiic Twist</h2>
<h3>Library Installation</h3>
<p>We’ve written an easy to use Arduino library that covers the gamut of features on the Qwiic Twist. The easiest way to install the library is by searching <strong>SparkFun Twist</strong> within the Arduino library manager. We’ve even got a tutorial on <a href="https://learn.sparkfun.com/tutorials/installing-an-arduino-library/all">installing an Arduino library</a> if you need it. You can also manually install the <a href="https://github.com/sparkfun/SparkFun_Qwiic_Twist_Arduino_Library">Qwiic Twist library</a> by downloading a zip:</p>
<p><div class="center-block text-center"> <a href="https://github.com/sparkfun/SparkFun_Qwiic_Twist_Arduino_Library/archive/master.zip" class="btn btn-default">Download the SparkFun Qwiic Twist Library (ZIP)</a> </div></p>
<h3>Hardware Hookup</h3>
<p>Plug one end of the Qwiic connector into the Qwiic port on the breakout board, and the other end into the Qwiic connector on the Arduino Uno R4 WiFi board like so:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22641-ArduinoUnoR4WiFIKit-QwiicTwist.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22641-ArduinoUnoR4WiFIKit-QwiicTwist.jpg" alt="Plug one end of the qwiic connector into the qwiic port on the breakout board, and the other end into the qwiic connector on the Arduino Uno R4 WiFi board" /></a> </div></p>
<h3>Software Example - Basic Readings</h3>
<p>This example is a basic one from the SparkFun Twist Library and just prints the number of times the knob has been turned to the serial output.</p>
<pre><code>language:c
/*
Read and interact with the SparkFun Qwiic Twist digital RGB encoder
By: Nathan Seidle
SparkFun Electronics
Date: December 3rd, 2018
License: MIT. See license file for more information but you can
basically do whatever you want with this code.
This example prints the number of steps the encoder has been twisted.
Feel like supporting open source hardware?
Buy a board from SparkFun! https://www.sparkfun.com/products/15083
Hardware Connections:
Plug a Qwiic cable into the Qwiic Twist and a BlackBoard
If you don't have a platform with a Qwiic connection use the SparkFun Qwiic Breadboard Jumper (https://www.sparkfun.com/products/14425)
Open the serial monitor at 115200 baud to see the output
*/
#include "SparkFun_Qwiic_Twist_Arduino_Library.h" //Click here to get the library: http://librarymanager/All#SparkFun_Twist
TWIST twist; //Create instance of this object
void setup()
{
Serial.begin(115200);
Serial.println("Qwiic Twist Example");
if (twist.begin(Wire1) == false)
{
Serial.println("Twist does not appear to be connected. Please check wiring. Freezing...");
while (1)
;
}
}
void loop()
{
Serial.print("Count: ");
Serial.print(twist.getCount());
if (twist.isPressed())
Serial.print(" Pressed!");
Serial.println();
delay(10);
}
</code></pre>
<p>As before, you should have the correct board and port selected in the <strong>Tools</strong> menu. Go ahead and upload the code, and open a <a href="https://learn.sparkfun.com/tutorials/terminal-basics">Serial Monitor</a>. You should see something like the below:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/QwiicTwistExampleOutput.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/QwiicTwistExampleOutput.png" alt="Output of the software in the Serial Monitor" /></a> </div></p> <a name="#example-3-qwiic-oled"></a>
<h2 id="example-3-qwiic-oled">Example 3: Qwiic OLED</h2>
<h3>Library Installation</h3>
<p>The easiest way to install the Qwiic OLED library is to search for <b>SparkFun Qwiic OLED</b> in the Arduino Library Manager tool. You can also manually install the Qwiic OLED Library from the <a href="https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library">SparkFun Qwiic OLED Arduino GitHub Repository</a>. Alternatively, you can download by clicking the button below.</p>
<p><div class="center-block text-center"> <a href="https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library/archive/refs/heads/main.zip" class="btn btn-default">Download the SparkFun Qwiic OLED Arduino Library (ZIP)</a> </div></p>
<h3>Hardware Hookup</h3>
<p>Plug one end of the Qwiic connector into the Qwiic port on the breakout board, and the other end into the Qwiic connector on the Arduino Uno R4 WiFi board like so:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22641-ArduinoUnoR4WiFIKit-OLED.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22641-ArduinoUnoR4WiFIKit-OLED.jpg" alt="Plug one end of the qwiic connector into the qwiic port on the breakout board, and the other end into the qwiic connector on the Arduino Uno R4 WiFi board" /></a> </div></p>
<h3>Software Example</h3>
<p>The following example is taken from Example 1 of the SparkFun Qwiic OLED library and is titled "Hello".</p>
<pre><code>language:c
/*
Example-01_Hello.ino
This demo shows the basic setup of the OLED library, generating simple graphics and displaying
the results on the target device.
Micro OLED https://www.sparkfun.com/products/14532
Transparent OLED https://www.sparkfun.com/products/15173
"Narrow" OLED https://www.sparkfun.com/products/17153
Written by Kirk Benell @ SparkFun Electronics, March 2022
Repository:
https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library
Documentation:
https://sparkfun.github.io/SparkFun_Qwiic_OLED_Arduino_Library/
SparkFun code, firmware, and software is released under the MIT License(http://opensource.org/licenses/MIT).
*/
#include <SparkFun_Qwiic_OLED.h> //http://librarymanager/All#SparkFun_Qwiic_Graphic_OLED
// The Library supports three different types of SparkFun boards. The demo uses the following
// defines to determine which device is being used. Uncomment the device being used for this demo.
// QwiicMicroOLED myOLED;
// QwiicTransparentOLED myOLED;
QwiicNarrowOLED myOLED;
void setup()
{
Serial.begin(115200);
Serial.println("Running OLED example");
Wire1.begin();
// Initalize the OLED device and related graphics system
if (myOLED.begin(Wire1) == false)
{
Serial.println("Device begin failed. Freezing...");
while (true)
;
}
Serial.println("Begin success");
// Do a simple test - fill a rectangle on the screen and then print hello!
// Fill a rectangle on the screen that has a 4 pixel board
myOLED.rectangleFill(4, 4, myOLED.getWidth() - 8, myOLED.getHeight() - 8);
String hello = "hello"; // our message
// Center our message on the screen. Get the screen size of the "hello" string,
// calling the getStringWidth() and getStringHeight() methods on the oled
// starting x position - screen width minus string width / 2
int x0 = (myOLED.getWidth() - myOLED.getStringWidth(hello)) / 2;
// starting y position - screen height minus string height / 2
int y0 = (myOLED.getHeight() - myOLED.getStringHeight(hello)) / 2;
// Draw the text - color of black (0)
myOLED.text(x0, y0, hello, 0);
// There's nothing on the screen yet - Now send the graphics to the device
myOLED.display();
// That's it - HELLO!
}
void loop()
{
delay(1000); // Do nothing
}
</code></pre>
<p>As before, make sure you select the correct board and port in the tools menu. Upload the code, and you should see something like the image below.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22632-_1.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22632-_1.jpg" alt="The OLED says hello!" /></a> </div></p>
<p>Play with the settings, make your OLED say different things!</p>
<div class="alert alert-info" role="alert">
<span class="glyphicon glyphicon-info"></span> <b>Note:</b> As in other examples, the Qwiic bus is connected to a secondary I<sup>2</sup>C bus on the Arduino board, IIC0. This connector is <b>3.3V</b> only, connecting higher voltages may damage your board. To initialize this bus, we use Wire1.begin(). In addition, this particular OLED requires the definition of "QwiicNarrowOLED".
</div> <a name="#example-4-qwiic-ambient-light-sensor-veml6030"></a>
<h2 id="example-4-qwiic-ambient-light-sensor-veml6030">Example 4: Qwiic Ambient Light Sensor (VEML6030)</h2>
<h3>Library Installation</h3>
<p>The Qwiic Ambient Light Sensor (VEML6030) library will give you the full functionality of the sensor and provides example code to get the most our of your project. You can obtain these libraries through the Arduino Library Manager by searching <strong>SparkFun Ambient Light Sensor</strong>. The second option is to download the ZIP file below from its <a href="https://github.com/sparkfun/SparkFun_Ambient_Light_Sensor_Arduino_Library">GitHub repository</a> to manually install.</p>
<p><div class="center-block text-center"> <a href="https://github.com/sparkfun/SparkFun_Ambient_Light_Sensor_Arduino_Library/archive/master.zip" class="btn btn-default">SparkFun Ambient Light Sensor Arduino Library (ZIP)</a> </div></p>
<h3>Hardware Hookup</h3>
<p>Plug one end of the Qwiic connector into the Qwiic port on the breakout board, and the other end into the Qwiic connector on the Arduino Uno R4 WiFi board like so:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22641-ArduinoUnoR4WiFIKit-LightSensor.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22641-ArduinoUnoR4WiFIKit-LightSensor.jpg" alt="Plug one end of the qwiic connector into the qwiic port on the breakout board, and the other end into the qwiic connector on the Arduino Uno R4 WiFi board" /></a> </div></p>
<h3>Software Example</h3>
<p>In this example, we'll get you comfortable with gathering ambient light and setting two vital properties of the sensor's ability to read light: the <strong>gain</strong> and the <strong>integration time</strong>. These two properties determine the resolution (accuracy) of the reading and the available ranges of light that you can read! For example, a gain of 1/8 and 800ms integration time cannot read anything above 3775 Lux. This means you'll max out your sensor outdoors but would be a proper setting for dim rooms due to it's higher resolution.</p>
<pre><code>language:c
/*
This example code will walk you through how to read ambient light values.
Chances are good that you'll use this sensor in various environments so it'll
also walk you through setting the gain and integration time that allow for
different ranges of lux values. For example using the default gain of 100ms
gives you a maximum reading of 30,199 Lux. This is great for daylight
readings but not DIRECT sun. Higher integration times mean higher
resoultions but lower lux values and vice versa: the lowest integration time
and lowest gain should be used for mid day direct light. Check our hookup
guide for more information.
SparkFun Electronics
Author: Elias Santistevan
Date: July 2019
License: This code is public domain but if you use this and we meet someday, get me a beer!
Feel like supporting our work? Buy a board from Sparkfun!
https://www.sparkfun.com/products/15436
*/
#include <Wire.h>
#include "SparkFun_VEML6030_Ambient_Light_Sensor.h"
#define AL_ADDR 0x48
SparkFun_Ambient_Light light(AL_ADDR);
// Possible values: .125, .25, 1, 2
// Both .125 and .25 should be used in most cases except darker rooms.
// A gain of 2 should only be used if the sensor will be covered by a dark
// glass.
float gain = .125;
// Possible integration times in milliseconds: 800, 400, 200, 100, 50, 25
// Higher times give higher resolutions and should be used in darker light.
int timeLength = 100;
long luxVal = 0;
void setup(){
Wire1.begin();
Serial.begin(115200);
if(light.begin(Wire1))
Serial.println("Ready to sense some light!");
else
Serial.println("Could not communicate with the sensor!");
// Again the gain and integration times determine the resolution of the lux
// value, and give different ranges of possible light readings. Check out
// hoookup guide for more info.
light.setGain(gain);
light.setIntegTime(timeLength);
Serial.println("Reading settings...");
Serial.print("Gain: ");
float gainVal = light.readGain();
Serial.print(gainVal, 3);
Serial.print(" Integration Time: ");
int timeVal = light.readIntegTime();
Serial.println(timeVal);
}
void loop(){
luxVal = light.readLight();
Serial.print("Ambient Light Reading: ");
Serial.print(luxVal);
Serial.println(" Lux");
delay(1000);
}
</code></pre>
<p>Make sure you have the correct board and port selected, and upload the code. Open a <a href="https://learn.sparkfun.com/tutorials/terminal-basics">Serial Monitor</a> and you should see something like the below:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/LightSensorOutput.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/LightSensorOutput.png" alt="Output of the software in the Serial Monitor" /></a> </div></p> <a name="#example-5-triple-axis-accelerometer-breakout---bma400-qwiic"></a>
<h2 id="example-5-triple-axis-accelerometer-breakout---bma400-qwiic">Example 5: Triple Axis Accelerometer Breakout - BMA400 (Qwiic)</h2>
<h3>Library Installation</h3>
<p>The SparkFun BMA400 Arduino Library is based off the API for the sensor from Bosch to let users get started reading data from the sensor and using the various interrupt options. Install the library through the Arduino Library Manager tool by searching for <b>"SparkFun BMA400"</b>. Users who prefer to manually install the library can download a copy of it from the GitHub repository by clicking the button below:</p>
<p><div class="center-block text-center"> <a href="https://github.com/sparkfun/SparkFun_BMA400_Arduino_Library/archive/refs/heads/main.zip" class="btn btn-default">SparkFun BMA400 Arduino Library (ZIP)</a> </div></p>
<h3>Hardware Hookup</h3>
<p>Plug one end of the Qwiic connector into the Qwiic port on the breakout board, and the other end into the Qwiic connector on the Arduino Uno R4 WiFi board like so:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22641-ArduinoUnoR4WiFIKit-BMA400.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22641-ArduinoUnoR4WiFIKit-BMA400.jpg" alt="Plug one end of the qwiic connector into the qwiic port on the breakout board, and the other end into the qwiic connector on the Arduino Uno R4 WiFi board" /></a> </div></p>
<h3>Software Example</h3>
<p>This example demonstrates how to set the BMA400 up to communicate basic motion data over I<sup>2</sup>C.</p>
<pre><code>language:c
#include <Wire.h>
#include "SparkFun_BMA400_Arduino_Library.h"
// Create a new sensor object
BMA400 accelerometer;
// I2C address selection
uint8_t i2cAddress = BMA400_I2C_ADDRESS_DEFAULT; // 0x14
//uint8_t i2cAddress = BMA400_I2C_ADDRESS_SECONDARY; // 0x15
void setup()
{
// Start serial
Serial.begin(115200);
Serial.println("BMA400 Example 1 - Basic Readings I2C");
// Initialize the I2C library
Wire1.begin();
// Check if sensor is connected and initialize
// Address is optional (defaults to 0x14)
while(accelerometer.beginI2C(i2cAddress, Wire1) != BMA400_OK)
{
// Not connected, inform user
Serial.println("Error: BMA400 not connected, check wiring and I2C address!");
// Wait a bit to see if connection is established
delay(1000);
}
Serial.println("BMA400 connected!");
}
void loop()
{
// Get measurements from the sensor. This must be called before accessing
// the acceleration data, otherwise it will never update
accelerometer.getSensorData();
// Print acceleration data
Serial.print("Acceleration in g's");
Serial.print("\t");
Serial.print("X: ");
Serial.print(accelerometer.data.accelX, 3);
Serial.print("\t");
Serial.print("Y: ");
Serial.print(accelerometer.data.accelY, 3);
Serial.print("\t");
Serial.print("Z: ");
Serial.println(accelerometer.data.accelZ, 3);
// Pause
delay(2000);
}
</code></pre>
<p>Select your Board and Port and click Upload. Open the <a href="https://learn.sparkfun.com/tutorials/terminal-basics">serial monitor</a> after the upload completes with the baud set to <strong>115200</strong> to watch motion data print out.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/QwiicBMA400ExampleOutput.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/QwiicBMA400ExampleOutput.png" alt="Example output of the BMA400 in the serial monitor" /></a> </div></p>
<p>Move the sensor around in different directions and watch the acceleration data change with the motion.</p> <a name="#example-6-qwiic-atmospheric-sensor-bme280-"></a>
<h2 id="example-6-qwiic-atmospheric-sensor-bme280-">Example 6: Qwiic Atmospheric Sensor (BME280) </h2>
<h3>Library Installation</h3>
<p>We've written a library to easily get setup and take readings from the Qwiic Atmospheric Sensor, which you can install through the Arduino Library Manager. Search for <strong>SparkFun BME280 Arduino Library</strong> and you should be able to install the latest version. If you prefer manually downloading the libray from the <a href="https://github.com/sparkfun/SparkFun_BME280_Arduino_Library">GitHub repository</a>, you can grab it here:</p>
<p><div class="center-block text-center"> <a href="https://github.com/sparkfun/SparkFun_BME280_Arduino_Library/archive/master.zip" class="btn btn-default">Download the SparkFun BME280 Library (ZIP)</a> </div></p>
<h3>Hardware Hookup</h3>
<p>Plug one end of the Qwiic connector into the Qwiic port on the breakout board, and the other end into the Qwiic connector on the Arduino Uno R4 WiFi board like so:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/22641-_KIT-_09.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/22641-_KIT-_09.jpg" alt="Plug one end of the qwiic connector into the qwiic port on the breakout board, and the other end into the qwiic connector on the Arduino Uno R4 WiFi board" /></a> </div></p>
<h3>Software Example</h3>
<p>This basic example configures an BME280 on the I<sup>2</sup>C bus and reports out the data to the <a href="https://learn.sparkfun.com/tutorials/terminal-basics">Serial Monitor</a> at a baud rate of <strong>115200 baud</strong>.</p>
<pre><code>language:c
/*
Get basic environmental readings from the BME280
By: Nathan Seidle
SparkFun Electronics
Date: March 9th, 2018
License: This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).
Feel like supporting our work? Buy a board from SparkFun!
https://www.sparkfun.com/products/14348 - Qwiic Combo Board
https://www.sparkfun.com/products/13676 - BME280 Breakout Board
This example shows how to read humidity, pressure, and current temperature from the BME280 over I2C.
Hardware connections:
BME280 -> Arduino
GND -> GND
3.3 -> 3.3
SDA -> A4
SCL -> A5
*/
#include <Wire.h>
#include "SparkFunBME280.h"
BME280 mySensor;
void setup()
{
Serial.begin(115200);
Serial.println("Reading basic values from BME280");
Wire1.begin();
if (mySensor.beginI2C(Wire1) == false) //Begin communication over I2C
{
Serial.println("The sensor did not respond. Please check wiring.");
while(1); //Freeze
}
}
void loop()
{
Serial.print("Humidity: ");
Serial.print(mySensor.readFloatHumidity(), 0);
Serial.print(" Pressure: ");
Serial.print(mySensor.readFloatPressure(), 0);
Serial.print(" Alt: ");
//Serial.print(mySensor.readFloatAltitudeMeters(), 1);
Serial.print(mySensor.readFloatAltitudeFeet(), 1);
Serial.print(" Temp: ");
//Serial.print(mySensor.readTempC(), 2);
Serial.print(mySensor.readTempF(), 2);
Serial.println();
delay(50);
}
</code></pre>
<p>Select your Board and Port and click Upload. Open the <a href="https://learn.sparkfun.com/tutorials/terminal-basics">serial monitor</a> after the upload completes with the baud set to <strong>115200</strong> to watch data print out.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/4/3/QwiicBME280ExampleOutput.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/4/3/QwiicBME280ExampleOutput.png" alt="BME280 output" /></a> </div></p> <a name="#troubleshooting"></a>
<h2 id="troubleshooting">Troubleshooting</h2>
<!---
This section doesn't need any changes - it is our standard troubleshooting template as of 12/4/2019.
--->
<div class="alert alert-info" role="alert">
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
<strong> Need help? </strong> <br /><br />
If your product is not working as you expected or you need technical assistance or information, head on over to the <a href="https://www.sparkfun.com/technical_assistance">SparkFun Technical Assistance</a> page for some initial troubleshooting. <br /><br />
If you don't find what you need there, the <a href="https://forum.sparkfun.com/index.php">SparkFun Forums</a> are a great place to find and ask for help. If this is your first visit, you'll need to <a href="https://forum.sparkfun.com/ucp.php?mode=register">create a Forum Account</a> to search product forums and post questions. </div> <a name="#resources--going-further"></a>
<h2 id="resources--going-further">Resources and Going Further</h2>
<p>This is a basic guide to get you started with your SparkFun Arduino UNO R4 WiFi Kit. For more information, check out the resources below:</p>
<h4>Qwiic LED Button</h4>
<ul>
<li><a href="https://cdn.sparkfun.com/assets/8/b/a/2/f/Qwiic_Button.pdf">Schematic (PDF)</a></li>
<li><a href="https://cdn.sparkfun.com/assets/2/9/c/e/7/Qwiic_Button.zip">Eagle Files (ZIP)</a></li>
<li><a href="https://cdn.sparkfun.com/assets/learn_tutorials/1/1/0/8/SparkFun_Qwiic_Button_Board_Dimensions.png">Board Dimensions (PNG)</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_Qwiic_Button_Arduino_Library">Qwiic Button Arduino Library</a></li>
<li><a href="https://github.com/sparkfun/Qwiic_Button">GitHub Hardware Repo</a></li>
</ul>
<h4>Qwiic Twist</h4>
<ul>
<li><a href="https://cdn.sparkfun.com/assets/2/f/2/c/c/Qwiic_Twist.pdf">Schematic (PDF)</a></li>
<li><a href="https://cdn.sparkfun.com/assets/d/f/5/1/2/SparkFun_Qwiic_Twist.zip">Eagle (ZIP)</a></li>
<li><a href="https://cdn.sparkfun.com/r/600-600/assets/5/3/d/5/6/RegisterMap.jpg">Qwiic Twist Register Map</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_Qwiic_Twist_Arduino_Library">SparkFun Qwiic Twist Arduino Library</a></li>
<li><a href="https://github.com/sparkfun/Qwiic_Twist">GitHub Hardware Repo</a> - For Qwiic Twist that includes the firmware for the ATtiny84</li>
</ul>
<h4>Qwiic OLED</h4>
<ul>
<li><a href="https://cdn.sparkfun.com/assets/5/9/0/6/f/OLED_Display.pdf">Schematic (PDF)</a></li>
<li><a href="https://cdn.sparkfun.com/assets/3/7/f/9/b/SparkFun_Qwiic_OLED_Display__0.91_in__128x32_.zip">Eagle Files (ZIP)</a></li>
<li><a href="https://www.smart-prototyping.com/blog/Zio-OLED-Display-Qwiic-Guide">Quick Start Guide</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library">SparkFun Arduino Library</a></li>
</ul>
<h4>Qwiic Ambient Light Sensor (VEML6030)</h4>
<ul>
<li><a href="https://cdn.sparkfun.com/assets/learn_tutorials/9/1/5/SparkFun_Ambient_Light_Sensor_VEML6030.pdf">Schematic (PDF)</a></li>
<li><a href="https://cdn.sparkfun.com/assets/a/f/c/5/5/SparkFun_Ambient_Light_Sensor_VEML6030_V10.zip">Eagle Files (ZIP)</a></li>
<li><a href="https://cdn.sparkfun.com/assets/d/7/4/2/9/veml6030_datasheet.pdf">Datasheet (PDF)</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_Ambient_Light_Sensor_Arduino_Library">SparkFun Ambient Light Sensor Arduino LIbrary</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_Ambient_Sensor_VEML6030">GitHub Hardware Repo</a></li>
</ul>
<h4>Triple Axis Accelerometer Breakout - BMA400 (Qwiic)</h4>
<ul>
<li><a href="https://cdn.sparkfun.com/assets/0/2/5/5/b/SparkFun_Triple_Axis_Accelerometer_Breakout_-_BMA400__Qwiic_.pdf">Schematic (PDF)</a></li>
<li><a href="https://cdn.sparkfun.com/assets/6/b/9/5/3/SparkFun_Triple_Axis_Accelerometer_Breakout_-_BMA400__Qwiic_.zip">Eagle Files (ZIP)</a></li>
<li><a href="https://cdn.sparkfun.com/assets/7/a/3/1/e/SparkFun_Triple_Axis_Accelerometer_Breakout_-_BMA400__Qwiic__Dimensions.png">Board Dimensions (PNG)</a></li>
<li><a href="https://cdn.sparkfun.com/assets/e/9/e/6/0/BMA400-Datasheet.pdf">Datasheet</a> (BMA400)</li>
<li><a href="https://github.com/sparkfun/SparkFun_BMA400_Arduino_Library">BMA400 Arduino Library</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_Qwiic_Accelerometer_BMA400">GitHub Hardware Repo</a></li>
</ul>
<h4>Qwiic Atmospheric Sensor (BME280)</h4>
<ul>
<li><a href="https://cdn.sparkfun.com/assets/0/9/6/b/4/Qwiic_BME280_Schematic_attempt2.pdf">Schematic (PDF)</a></li>
<li><a href="https://cdn.sparkfun.com/assets/7/e/6/e/c/Qwiic_Atmospheric_Sensor__BME280_.zip">Eagle Files (ZIP)</a></li>
<li><a href="https://cdn.sparkfun.com/assets/e/7/3/b/1/BME280_Datasheet.pdf">BME280 Datasheet</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_BME280_Arduino_Library">SparkFun BME280 Arduino Library</a></li>
<li><a href="https://github.com/sparkfun/Qwiic_Atmospheric_Sensor_Breakout_BME280">GitHub Hardware Repo</a></li>
</ul>
<p>Need help getting started with Arduino and I<sup>2</sup>C? Check out these resources:</p>
<ul>
<li><a href="https://playground.arduino.cc/Main/I2cScanner">Arduino I<sup>2</sup>C Scanner Example</a></li>
<li><a href="https://www.arduino.cc/en/reference/wire">Arduino Wire Library Reference Page</a></li>
<li><a href="https://playground.arduino.cc/Main/WireLibraryDetailedReference">Arduino Wire Library (In-Depth) Reference</a></li>
<li><a href="https://www.sparkfun.com/qwiic">Qwiic Info Page</a></li>
</ul>
<hr>
<p><a href="https://learn.sparkfun.com">learn.sparkfun.com</a> |
<a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>
| SparkFun Electronics | Niwot, Colorado</p>
MicroMod STM32WB5MMG Hookup Guide
El Duderino
https://www.sparkfun.com/users/17904
urn:uuid:73904fb0-d108-759c-b445-6a2de4c29cef
2023-06-29T00:00:00-06:00
<h1>
MicroMod STM32WB5MMG Hookup Guide <small>a <a href="https://learn.sparkfun.com/tutorials">learn.sparkfun.com tutorial</a></small>
</h1>
<h3>
Available online at: <a href="http://sfe.io/t3144">http://sfe.io/t3144</a>
</h3>
<a name="#introduction"></a>
<h2 id="introduction">Introduction</h2>
<p>The MicroMod STM32WB5MMG Processor expands on SparkFun's MicroMod ST product line with a powerful combination of computing and wireless capabilities all on one Processor. The STM32WB5MMG from STMicroelectronics<sup>™</sup> is an ultra-low power microcontroller that combines a pair of Arm<sup>®</sup> Cortex<sup>®</sup> processors; a Cortex-M4 processor for primary computing and a Cortex-M0 to run the 2.4 GHz radio. The radio is Bluetooth<sup>®</sup> Low Energy 5.3, Zigbee<sup>®</sup> 3.0, and OpenThread certified.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="product-21438">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/21438">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/2/1/2/6/8/21438-_DEV_MM_STM32WB-_01.jpg" alt="SparkFun MicroMod STM32WB5MMG Processor" height="500">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="21438">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_21438" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_21438 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_21438"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/21438">
<span>SparkFun MicroMod STM32WB5MMG Processor</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
DEV-21438 </span>
<p class="description" style="display:none">
The MicroMod STM32WB5MMG Processor has a powerful combination of computing and wireless capabilities all on one Processor. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$19.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="2 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-empty" data-star-index="2"></span>
<span class="sfe-icon-star-empty" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="21438">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">5</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="21438" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>The STM32WB5MMG Processor boasts a host of interface and peripheral options including SPI, multiple UARTs, I<sup>2</sup>C buses, as well as I2S. This guide covers the hardware present on this MicroMod Processor, how to assemble it into a MicroMod circuit, and how to install and use the board in the Arduino IDE.</p>
<h3>Required Materials</h3>
<p>You'll need a Carrier Board or Main Board to plug the Processor into. Below are a few options for both types of boards:</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-16885">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/16885">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/5/8/1/2/16885-SparkFun_MicroMod_ATP_Carrier_Board-01a.jpg" alt="SparkFun MicroMod ATP Carrier Board" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="16885">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_16885" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_16885 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_16885"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/16885">
<span>SparkFun MicroMod ATP Carrier Board</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
DEV-16885 </span>
<p class="description" style="display:none">
If you need a "lot" of GPIO with a simple to program, ready to go to market module, the ATP is the fix you need. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$19.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="16885">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">18</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="16885" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-20748">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/20748">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/0/5/7/7/20748-DEV_SparkFun_MicroMod_Main_Board_Single_v21-01.jpg" alt="SparkFun MicroMod Main Board - Single" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="20748">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_20748" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_20748 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_20748"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/20748">
<span>SparkFun MicroMod Main Board - Single</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="18 available"><span class=sfe-icon-stock-low><span class=visuallyhidden>18 available</span></span></a>
</span>
<span class="sku">
DEV-20748 </span>
<p class="description" style="display:none">
The MicroMod Main Board is a specialized carrier board that allows you to interface a MicroMod Processor Board with a single … </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$15.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="20748">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">4</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="20748" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-20595">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/20595">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/0/4/2/5/20595-DEV_SparkFun_MicroMod_Main_Board_Double_v22-01.jpg" alt="SparkFun MicroMod Main Board - Double" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="20595">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_20595" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_20595 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_20595"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/20595">
<span>SparkFun MicroMod Main Board - Double</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
DEV-20595 </span>
<p class="description" style="display:none">
The MicroMod Main Board is a specialized carrier board that allows you to interface a MicroMod Processor Board with up to two… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$19.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="20595">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">5</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="20595" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-17723">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/17723">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/6/8/3/4/17723-SparkFun_MicroMod_Qwiic_Carrier_Board_-_Single-01.jpg" alt="SparkFun MicroMod Qwiic Carrier Board - Single" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="17723">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_17723" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_17723 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_17723"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/17723">
<span>SparkFun MicroMod Qwiic Carrier Board - Single</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
DEV-17723 </span>
<p class="description" style="display:none">
The Single MicroMod Qwiic Carrier Board can be used to rapidly prototype with other Qwiic devices. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$9.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="17723">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">3</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="17723" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="alert alert-info">
<b>Note:</b> Users who wish to take full advantage of all of the STM32WB5MMG's interfaces (I2S, QSPI, etc.) should use the ATP Carrier Board to access all the pins on this Processor though QSPI and I2S are <i>not</i> supported in the Arduino IDE. We recommend using the <a href="https://www.st.com/en/development-tools/stm32cubeide.html">STMCube IDE</a> to use these interfaces.
</div>
<p>You'll also need a USB-C cable to connect the Carrier Board to your computer and if you want to add some Qwiic breakouts to your MicroMod project you'll want at least one Qwiic cable to connect it all together. Below are some options for both of those cables:</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-15081">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/15081">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/3/4/3/1/15081-_01.jpg" alt="SparkFun Qwiic Cable Kit" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="15081">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_15081" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_15081 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_15081"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/15081">
<span>SparkFun Qwiic Cable Kit</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
KIT-15081 </span>
<p class="description" style="display:none">
To make it even easier to get started, we've assembled this Qwiic Cable Kit with a variety of Qwiic cables from 50mm to 500mm… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$8.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">20</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="15081">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">78</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="15081" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-17259">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/17259">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/6/2/4/6/17259-Flexible_Qwiic_Cable_-_100mm-01.jpg" alt="Flexible Qwiic Cable - 100mm" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="17259">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_17259" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_17259 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_17259"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/17259">
<span>Flexible Qwiic Cable - 100mm</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-17259 </span>
<p class="description" style="display:none">
This polarized I2C cable insulation is made from silicon making it more flexible than our original Qwiic cable particularly i… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$1.60</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="17259">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">13</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="17259" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-15424">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/15424">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/3/9/8/3/15424-Reversible_USB_A_to_C_Cable_-_2m-01.jpg" alt="Reversible USB A to C Cable - 2m" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="15424">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_15424" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_15424 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_15424"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/15424">
<span>Reversible USB A to C Cable - 2m</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
CAB-15424 </span>
<p class="description" style="display:none">
These 2m cables have minor modifications that allow them to be be plugged into their ports regardless of orientation on the U… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$8.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-empty" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="15424">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">5</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="15424" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-14743">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/14743">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/9/7/2/14743-USB_3.1_Cable_A_to_C_-_3_Foot-01.jpg" alt="USB 3.1 Cable A to C - 3 Foot" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="confirm_backorder" method="post">
<input type=hidden name=id value="14743">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_14743" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-default" value="Backorder">
</form>
</div>
<div class="added_to_cart_14743 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_14743"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/14743">
<span>USB 3.1 Cable A to C - 3 Foot</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="out of stock"><span class=sfe-icon-stock-out><span class=visuallyhidden>Out of stock</span></span></a>
</span>
<span class="sku">
CAB-14743 </span>
<p class="description" style="display:none">
USB C is fantastic. But until we have converted all our hubs, chargers, and ports over to USB C this is the cable you're goin… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$5.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">4</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14743">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">11</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14743" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<h3>Suggested Reading</h3>
<p>The SparkFun MicroMod ecosystem offers a unique way to allow users to customize their project to their needs. Do you want to send your weather data via a wireless signal (e.g. Bluetooth or WiFi)? There's a MicroMod Processor Board for that. Looking to instead maximize efficiency and processing power? You guessed it, there's a MicroMod Processor Board for that. If you are not familiar with the MicroMod ecosystem, take a look here:</p>
<p>If you aren't familiar with the MicroMod ecosystem, we recommend reading <a href="https://www.sparkfun.com/micromod">here for an overview</a>.</p>
<table class="table table-bordered table-hover">
<tr align="center">
<td><center><a href="https://www.sparkfun.com/micromod"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/1/1/8/9/micromod-logo.jpg" alt="MicroMod Logo" title="Click to learn more about the MicroMod ecosystem!"></a></center></td>
</tr>
<tr align="center">
<td><i><a href="https://www.sparkfun.com/micromod">MicroMod Ecosystem</a></i></td>
</tr>
</table>
<p>We also recommend reading through the following tutorials if you are not familiar with the concepts covered in them:</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-8">
<a href="https://learn.sparkfun.com/tutorials/serial-communication">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/7/d/f/9/9/50d24be7ce395f1f6c000000.jpg)"></div>
</div>
<h3 class="title">Serial Communication</h3>
</a>
<div class="description">
Asynchronous serial communication concepts: packets, signal levels, baud rates, UARTs and more! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="8">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">106</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-61">
<a href="https://learn.sparkfun.com/tutorials/installing-arduino-ide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/1/arduinoThumb.jpg)"></div>
</div>
<h3 class="title">Installing Arduino IDE</h3>
</a>
<div class="description">
A step-by-step guide to installing and testing the Arduino software on Windows, Mac, and Linux. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="61">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">17</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-117">
<a href="https://learn.sparkfun.com/tutorials/bluetooth-basics">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/1/7/blut.jpg)"></div>
</div>
<h3 class="title">Bluetooth Basics</h3>
</a>
<div class="description">
An overview of the Bluetooth wireless technology. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="117">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">44</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-1189">
<a href="https://learn.sparkfun.com/tutorials/getting-started-with-micromod">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com//assets/learn_tutorials/1/1/8/9/MicroMod_Hardware_Hookup.gif)"></div>
</div>
<h3 class="title">Getting Started with MicroMod</h3>
</a>
<div class="description">
Dive into the world of MicroMod - a compact interface to connect a microcontroller to various peripherals via the M.2 Connector! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1189">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">3</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div> <a name="#hardware-overview"></a>
<h2 id="hardware-overview">Hardware Overview</h2>
<p>Let's take a closer look at the STM32WB5MMG and other hardware on this MicroMod Processor.</p>
<h3>STM32WB5MMG Multiprotocol Wireless Module</h3>
<p>The STM32WB5MMG module is an ultra-low power combination of two Arm-Cortex processors that provides a powerful computing platform with Bluetooth Low Energy 5.3 and 802.15.4 wireless capabilities. The module uses a Cortex-M4 CPU with FPU and ART for primary computing and a Cortex-M0 for the radio and security. For a complete overview of the module, refer to the <a href="https://cdn.sparkfun.com/assets/b/b/6/4/5/STM32WB55xx_Datasheet.pdf">STM32WB5MMG datasheet</a> and <a href="https://cdn.sparkfun.com/assets/1/6/c/b/b/STM32WB55xx_Reference_Manual.pdf">application manual</a>.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/4/4/MM_STM32WB-ICs.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/4/4/MM_STM32WB-ICs.jpg" alt="Highlighting the STMWB & Flash IC" /></a> </div></p>
<p>The STM32WB5MMG boasts a wide range of interface options and this Processor routes the following interfaces to the pinout on the M.2 connector:</p>
<ul>
<li>2x UART (Standard and Low Power)</li>
<li>2x I<sup>2</sup>C</li>
<li>SPI</li>
<li>I2S<sup><a href="#I2S_Note">[1]</a></sup></li>
<li>16-bit Advanced Four-Channel Timer</li>
</ul>
<p>The module features multiple low-power modes including a shutdown mode that consumes only <b>13 nA</b> and draws </b>5.2 mA</b> during radio transmission (Tx at 0 dBm). The module uses an integrated chip antenna for the RF stack with Tx output power up to +6 dBm and Rx sensitivity of -96 dBm for BLE and -100 dBm for 802.15.4 protocols.</p>
<h4>W25Q128JVPIM Flash IC</h4>
<p>This Processor includes a W25Q128JVPIM 128 Mbit (16 MB) Flash IC to provide extra storage functionality. The Flash IC connects to the STM32WB5MMG's QSPI interface.</p>
<div class="well">
<a name="#I2S_Note"></a><a href="https://learn.sparkfun.com/tutorials/micromod-stm32wb5mmg-hookup-guide#I2S_Note"><b>1.</b></a> I2S control is <i>not</i> supported in the SparkFun Arduino boards package for this Processor. Users who wish to use I2S with this Processor should use ST's <a href="https://www.st.com/en/development-tools/stm32cubeide.html">STM32Cube IDE</a>.
</div>
<h3>Status LED</h3>
<p>The lone LED on this board is tied to the module's PA2 I/O pin to act as a status LED.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/4/4/MM_STM32WB-LEDs.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/4/4/MM_STM32WB-LEDs.jpg" alt="Highlighting the STAT LED." /></a> </div></p>
<h3>MicroMod Pinout</h3>
<p>The table below outlines the pin map of this Processor Board as well as the general MicroMod pinout and pin descriptions. Refer to this or the <a href="https://cdn.sparkfun.com/assets/e/4/c/7/8/MicroMod_Processor_STM32WB5MMG.pdf">schematic</a> for the complete overview of the pin map.</p>
<ul class="nav nav-tabs nav-justified">
<li class="active"><a data-toggle="tab" href="#STM32WB">STM32WB5MMG Processor Pinout Table</a></li>
<li><a data-toggle="tab" href="#MMGen">MicroMod General Pinout Table</a></li>
<li><a data-toggle="tab" href="#MMDescript">MicroMod General Pin Descriptions</a></li>
</ul>
<table class="table table-hover table-bordered">
<tr>
<tr align="center">
<td bgcolor="#46bdc6" style="width:14%;"><b>AUDIO</b></td>
<td bgcolor="#4285f4" style="width:14%;"><b>UART</b></td>
<td bgcolor="#c27ba0" style="width:14%;"><b>GPIO/BUS</b></td>
<td bgcolor="#ff6d01" style="width:14%;"><b>I<sup>2</sup>C</b></td>
<td bgcolor="#34a853" style="width:14%;"><b>SDIO</b></td>
<td bgcolor="#fbbc04" style="width:14%;"><b>SPI</b></td>
<td bgcolor="#9ACD32" style="width:14%;"><b>Dedicated</b></td>
</tr>
</table>
<div class="tab-content">
<div id="STM32WB" class="tab-pane fade in active" style="overflow-x:auto;">
<table class="table table-hover table-striped table-bordered">
<COLGROUP><COL WIDTH=100><COL WIDTH=100><COL WIDTH=50><COL WIDTH=50><COL WIDTH=100><COL WIDTH=100></COLGROUP>
<tr align="center">
<th class="text-center" colspan="1">STM32WB Pin</th>
<th class="text-center" colspan="1">Primary Function</th>
<th class="text-center">Bottom<br /> Pin</th>
<th class="text-center"> Top <br /> Pin</th>
<th class="text-center" colspan="1">Primary Function</th>
<th class="text-center" colspan="1">STM32WB Pin</th>
</tr>
<tr align="center">
<td>-</td>
<td>(Not Connected)</td>
<td></td>
<td><b>75</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td>-</td>
</tr>
<tr align="center">
<td>-</td>
<td bgcolor="#ea4335">3.3V</td>
<td><b>74</b></td>
<td><b>73</b></td>
<td bgcolor="#c27ba0">G5 / BUS5</td>
<td>PA0</td>
</tr>
<tr align="center">
<td>-</td>
<td bgcolor="#ea4335">V_BATT</td>
<td><b>72</b></td>
<td><b>71</b></td>
<td bgcolor="#c27ba0">G6 / BUS6 </td>
<td>PH1</td>
</tr>
<tr align="center">
<td>-</td>
<td>-</td>
<td><b>70</b></td>
<td><b>69</b></td>
<td bgcolor="#c27ba0">G7 / BUS7</td>
<td>PH0</td>
</tr>
<tr align="center">
<td>-</td>
<td>-</td>
<td><b>68</b></td>
<td><b>67</b></td>
<td>-</td>
<td>-</td>
</tr>
<tr align="center">
<td>-</td>
<td>-</td>
<td><b>66</b></td>
<td><b>65</b></td>
<td>-</td>
<td>-</td>
</tr>
<tr align="center">
<td>-</td>
<td>-</td>
<td><b>64</b></td>
<td><b>63</b></td>
<td>-</td>
<td>-</td>
</tr>
<tr align="center">
<td>-</td>
<td>-</td>
<td><b>62</b></td>
<td><b>61</b></td>
<td bgcolor="#fbbc04">SPI_POCI (O)</td>
<td>PA6</td>
</tr>
<tr align="center">
<td>-</td>
<td>-</td>
<td><b>60</b></td>
<td><b>59</b></td>
<td bgcolor="#fbbc04">SPI_PICO (I)</td>
<td>PA7</td>
</tr>
<tr align="center">
<td>PB8</td>
<td bgcolor="#46bdc6">AUD_MCLK</td>
<td><b>58</b></td>
<td><b>57</b></td>
<td bgcolor="#fbbc04">SPI_SCK (O)</td>
<td>PA5</td>
</tr>
<tr align="center">
<td>PB15</td>
<td bgcolor="#46bdc6">AUD_I2S_OUT</td>
<td><b>56</b></td>
<td><b>55</b></td>
<td bgcolor="#fbbc04">SPI_CS</td>
<td>PA4</td>
</tr>
<tr align="center">
<td>PB5</td>
<td bgcolor="#46bdc6">AUD_I2S_IN</td>
<td><b>54</b></td>
<td><b>53</b></td>
<td bgcolor="#ff6d01">I2C_SCL1 (I/O)</td>
<td>PB6</td>
</tr>
<tr align="center">
<td>PA4</td>
<td bgcolor="#46bdc6">AUD_FSYNC</td>
<td><b>52</b></td>
<td><b>51</b></td>
<td bgcolor="#ff6d01">I2C_SDA1 (I/O)</td>
<td>PB7</td>
</tr>
<tr align="center">
<td>PB9</td>
<td bgcolor="#46bdc6">AUD_BCLK</td>
<td><b>50</b></td>
<td><b>49</b></td>
<td bgcolor="#ea4335">BATT_VIN / 3 (I - ADC) (0 to 3.3V)</td>
<td>COMP1_INM/PC4</td>
</tr>
<tr align="center">
<td>PE3</td>
<td bgcolor="#c27ba0">G4 / BUS4</td>
<td><b>48</b></td>
<td><b>47</b></td>
<td bgcolor="#9ACD32">PWM1</td>
<td>PD15/TIM1_CH2</td>
</tr>
<tr align="center">
<td>PD8</td>
<td bgcolor="#c27ba0">G3 / BUS3</td>
<td><b>46</b></td>
<td><b>45</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td>-</td>
</tr>
<tr align="center">
<td>PC13</td>
<td bgcolor="#c27ba0">G2 / BUS2</td>
<td><b>44</b></td>
<td><b>43</b></td>
<td>-</td>
<td>-</td>
</tr>
<tr align="center">
<td>PC11</td>
<td bgcolor="#c27ba0">G1 / BUS1</td>
<td><b>42</b></td>
<td><b>41</b></td>
<td>-</td>
<td>-</td>
</tr>
<tr align="center">
<td>PE4</td>
<td bgcolor="#c27ba0">G0 / BUS0</td>
<td><b>40</b></td>
<td><b>39</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td>-</td>
</tr>
<tr align="center">
<td>PC3/LPTIM1_ETR</td>
<td bgcolor="#9ACD32">A1</td>
<td><b>38</b></td>
<td><b>37</b></td>
<td>-</td>
<td>-</td>
</tr>
<tr align="center">
<td>-</td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td><b>36</b></td>
<td><b>35</b></td>
<td>-</td>
<td>-</td>
</tr>
<tr align="center">
<td>PC2/LPTIM1_IN2</td>
<td bgcolor="#9ACD32">A0</td>
<td><b>34</b></td>
<td><b>33</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td>-</td>
</tr>
<tr align="center">
<td>PD14/TIM1_CH1</td>
<td bgcolor="#9ACD32">PWM0</td>
<td><b>32</b></td>
<td><b>31</b></td>
<td>Module Key</td>
<td>-</td>
</tr>
<tr align="center">
<td>-</td>
<td>Module Key</td>
<td><b>30</b></td>
<td><b>29</b></td>
<td>Module Key</td>
<td>-</td>
</tr>
<tr align="center">
<td>-</td>
<td>Module Key</td>
<td><b>28</b></td>
<td><b>27</b></td>
<td>Module Key</td>
<td>-</td>
</tr>
<tr align="center">
<td>-</td>
<td>Module Key</td>
<td><b>26</b></td>
<td><b>25</b></td>
<td>Module Key</td>
<td>-</td>
</tr>
<tr align="center">
<td>-</td>
<td>Module Key</td>
<td><b>24</b></td>
<td><b>23</b></td>
<td>SWDIO</td>
<td>PA13</td>
</tr>
<tr align="center">
<td>PC1/LPUART1_RX</td>
<td bgcolor="#4285f4">TX2 (O)</td>
<td><b>22</b></td>
<td><b>21</b></td>
<td>SWDCK</td>
<td>PA14</td>
</tr>
<tr align="center">
<td>PC0/LPUART1_TX</td>
<td bgcolor="#4285f4">RX2 (I)</td>
<td><b>20</b></td>
<td><b>19</b></td>
<td bgcolor="#4285f4">RX1 (I)</td>
<td>PA10/DEV_TX1</td>
</tr>
<tr align="center">
<td>PE0/TIM1_ETR</td>
<td bgcolor="#9ACD32">D1/TIM1_ETR</td>
<td><b>18</b></td>
<td><b>17</b></td>
<td bgcolor="#4285f4">TX1 (0)</td>
<td>PA9/DEV_RX1</td>
</tr>
<tr align="center">
<td>PA1</td>
<td bgcolor="#ff6d01">I2C_INT</td>
<td><b>16</b></td>
<td><b>15</b></td>
<td bgcolor="#4285f4">CTS1</td>
<td>PB4</td>
</tr>
<tr align="center">
<td>PB6</td>
<td bgcolor="#ff6d01">I2C_SCL (I/0)</td>
<td><b>14</b></td>
<td><b>13</b></td>
<td bgcolor="#4285f4">RTS1</td>
<td>PB3</td>
</tr>
<tr align="center">
<td>PB7</td>
<td bgcolor="#ff6d01">I2C_SDA (I/0)</td>
<td><b>12</b></td>
<td><b>11</b></td>
<td>BOOT# (I - Open Drain)</td>
<td>BOOT0/PH3</td>
</tr>
<tr align="center">
<td>PB12</td>
<td bgcolor="#9ACD32">D0/TIM1_BKIN</td>
<td><b>10</b></td>
<td><b>9</b></td>
<td>-</td>
<td>-</td>
</tr>
<tr align="center">
<td>-</td>
<td>-</td>
<td><b>8</b></td>
<td><b>7</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td>-</td>
</tr>
<tr align="center">
<td>-</td>
<td>RESET# (I - Open Drain)</td>
<td><b>6</b></td>
<td><b>5</b></td>
<td>USB_D-</td>
<td>PA11/USB_DM</td>
</tr>
<tr align="center">
<td>-</td>
<td>-</td>
<td><b>4</b></td>
<td><b>3</b></td>
<td>USB_D+</td>
<td>PA12/USB_DP</td>
</tr>
<tr align="center">
<td>-</td>
<td bgcolor="#ea4335">3.3V</td>
<td><b>2</b></td>
<td><b>1</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td>-</td>
</tr>
</table> </div>
<div id="MMGen" class="tab-pane fade" style="overflow-x:auto;">
<table class="table table-hover table-striped table-bordered">
<COLGROUP>
<COL WIDTH=100>
<COL WIDTH=100>
<COL WIDTH=100>
<COL WIDTH=100>
<COL WIDTH=50>
<COL WIDTH=50>
<COL WIDTH=100>
<COL WIDTH=100>
<COL WIDTH=100>
<COL WIDTH=100>
</COLGROUP>
<tr align="center">
<th class="text-center" colspan="4">Function</th>
<th class="text-center">Bottom<br /> Pin</th>
<th class="text-center"> Top <br /> Pin</th>
<th class="text-center" colspan="4">Function</th>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td>(Not Connected)</td>
<td></td>
<td><b>75</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#ea4335">3.3V</td>
<td><b>74</b></td>
<td><b>73</b></td>
<td bgcolor="#c27ba0">G5 / BUS5</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#ea4335">RTC_3V_BATT</td>
<td><b>72</b></td>
<td><b>71</b></td>
<td bgcolor="#c27ba0">G6 / BUS6 </td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td bgcolor="#fbbc04">SPI_CS1#</td>
<td bgcolor="#34a853">SDIO_DATA3 (I/O)</td>
<td><b>70</b></td>
<td><b>69</b></td>
<td bgcolor="#c27ba0">G7 / BUS7</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#34a853">SDIO_DATA2 (I/O)</td>
<td><b>68</b></td>
<td><b>67</b></td>
<td bgcolor="#c27ba0">G8</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#34a853">SDIO_DATA1 (I/O)</td>
<td><b>66</b></td>
<td><b>65</b></td>
<td bgcolor="#c27ba0">G9</td>
<td>ADC_D- </td>
<td>CAM_HSYNC</td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td bgcolor="#fbbc04">SPI_PICO1</td>
<td bgcolor="#34a853">SDIO_DATA0 (I/O)</td>
<td><b>64</b></td>
<td><b>63</b></td>
<td bgcolor="#c27ba0">G10</td>
<td>ADC_D+</td>
<td>CAM_VSYNC</td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td bgcolor="#fbbc04">SPI POCI1</td>
<td bgcolor="#34a853">SDIO_CMD (I/O)</td>
<td><b>62</b></td>
<td><b>61</b></td>
<td bgcolor="#fbbc04">SPI_PICO (I)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td bgcolor="#fbbc04">SPI SCK1</td>
<td bgcolor="#34a853">SDIO_SCK (O)</td>
<td><b>60</b></td>
<td><b>59</b></td>
<td bgcolor="#fbbc04">SPI_POCI (O)</td>
<td>LED_DAT</td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#46bdc6">AUD_MCLK (O)</td>
<td><b>58</b></td>
<td><b>57</b></td>
<td bgcolor="#fbbc04">SPI_SCK (O)</td>
<td>LED_CLK</td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td>CAM_MCLK</td>
<td bgcolor="#46bdc6">PCM_OUT</td>
<td bgcolor="#46bdc6">I2S_OUT</td>
<td bgcolor="#46bdc6">AUD_OUT</td>
<td><b>56</b></td>
<td><b>55</b></td>
<td bgcolor="#fbbc04">SPI_CS#</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td>CAM_PCLK</td>
<td bgcolor="#46bdc6">PCM_IN</td>
<td bgcolor="#46bdc6">I2S_IN</td>
<td bgcolor="#46bdc6">AUD_IN</td>
<td><b>54</b></td>
<td><b>53</b></td>
<td bgcolor="#ff6d01">I2C_SCL1 (I/O)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td bgcolor="#46bdc6">PDM_DATA</td>
<td bgcolor="#46bdc6">PCM_SYNC</td>
<td bgcolor="#46bdc6">I2S_WS</td>
<td bgcolor="#46bdc6">AUD_LRCLK</td>
<td><b>52</b></td>
<td><b>51</b></td>
<td bgcolor="#ff6d01">I2C_SDA1 (I/O)</td>
<td></td>
<td></td><td></td>
</tr>
<tr align="center">
<td bgcolor="#46bdc6">PDM_CLK</td>
<td bgcolor="#46bdc6">PCM_CLK</td>
<td bgcolor="#46bdc6">I2S_SCK</td>
<td bgcolor="#46bdc6">AUD_BCLK</td>
<td><b>50</b></td>
<td><b>49</b></td>
<td bgcolor="#ea4335">BATT_VIN / 3 (I - ADC) (0 to 3.3V)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#c27ba0">G4 / BUS4</td>
<td><b>48</b></td>
<td><b>47</b></td>
<td bgcolor="#9ACD32">PWM1</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#c27ba0">G3 / BUS3</td>
<td><b>46</b></td>
<td><b>45</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#c27ba0">G2 / BUS2</td>
<td><b>44</b></td>
<td><b>43</b></td>
<td>CAN_TX</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#c27ba0">G1 / BUS1</td>
<td><b>42</b></td>
<td><b>41</b></td>
<td>CAN_RX</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#c27ba0">G0 / BUS0</td>
<td><b>40</b></td>
<td><b>39</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#9ACD32">A1</td>
<td><b>38</b></td>
<td><b>37</b></td>
<td>USBHOST_D-</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td><b>36</b></td>
<td><b>35</b></td>
<td>USBHOST_D+</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#9ACD32">A0</td>
<td><b>34</b></td>
<td><b>33</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#9ACD32">PWM0</td>
<td><b>32</b></td>
<td><b>31</b></td>
<td>Module Key</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td>Module Key</td>
<td><b>30</b></td>
<td><b>29</b></td>
<td>Module Key</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td>Module Key</td>
<td><b>28</b></td>
<td><b>27</b></td>
<td>Module Key</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td>Module Key</td>
<td><b>26</b></td>
<td><b>25</b></td>
<td>Module Key</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td>Module Key</td>
<td><b>24</b></td>
<td><b>23</b></td>
<td>SWDIO</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#4285f4">UART_TX2 (O)</td>
<td><b>22</b></td>
<td><b>21</b></td>
<td>SWDCK</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#4285f4">UART_RX2 (I)</td>
<td><b>20</b></td>
<td><b>19</b></td>
<td bgcolor="#4285f4">UART_RX1 (I)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td>CAM_TRIG</td>
<td bgcolor="#9ACD32">D1</td>
<td><b>18</b></td>
<td><b>17</b></td>
<td bgcolor="#4285f4">UART_TX1 (0)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#ff6d01">I2C_INT#</td>
<td><b>16</b></td>
<td><b>15</b></td>
<td bgcolor="#4285f4">UART_CTS1 (I)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#ff6d01">I2C_SCL (I/0)</td>
<td><b>14</b></td>
<td><b>13</b></td>
<td bgcolor="#4285f4">UART_RTS1 (O)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#ff6d01">I2C_SDA (I/0)</td>
<td><b>12</b></td>
<td><b>11</b></td>
<td>BOOT (I - Open Drain)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#9ACD32">D0</td>
<td><b>10</b></td>
<td><b>9</b></td>
<td>USB_VIN</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td>SWO</td>
<td bgcolor="#c27ba0">G11</td>
<td><b>8</b></td>
<td><b>7</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td>RESET# (I - Open Drain)</td>
<td><b>6</b></td>
<td><b>5</b></td>
<td>USB_D-</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#ea4335">3.3V_EN</td>
<td><b>4</b></td>
<td><b>3</b></td>
<td>USB_D+</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td bgcolor="#ea4335">3.3V</td>
<td><b>2</b></td>
<td><b>1</b></td>
<td bgcolor="#0000000"><font style="color: white; background: black;">GND</font></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</div>
<div id="MMDescript" class="tab-pane fade" style="overflow-x:auto;">
<table class="table table-hover table-striped table-bordered">
<COLGROUP><COL WIDTH=50><COL WIDTH=50><COL WIDTH=25><COL WIDTH=100><COL WIDTH=25></COLGROUP>
<tr align="center">
<th class="text-center">Signal Group</th>
<th class="text-center">Signal</th>
<th class="text-center">I/O</th>
<th class="text-center">Description</th>
<th class="text-center">Voltage</th>
</tr>
</tr>
<td bgcolor="#ea4335" rowspan="6" class="text-center" style="vertical-align: middle">Power</td>
<td class="text-center">3.3V</td>
<td class="text-center">I</td>
<td>3.3V Source</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">GND</td>
<td></td>
<td>Return current path</td>
<td class="text-center">0V</td>
</tr>
<tr>
<td class="text-center">USB_VIN</td>
<td class="text-center">I</td>
<td>USB VIN compliant to USB 2.0 specification. Connect to pins on processor board that require 5V for USB functionality</td>
<td class="text-center">4.8-5.2V</td>
</tr>
<tr>
<td class="text-center">RTC_3V_BATT</td>
<td class="text-center">I</td>
<td>3V provided by external coin cell or mini battery. Max draw=100μA. Connect to pins maintaining an RTC during power loss. Can be left NC.</td>
<td class="text-center">3V</td>
</tr>
<tr>
<td class="text-center">3.3V_EN</td>
<td class="text-center">O</td>
<td>Controls the carrier board's main voltage regulator. Voltage above 1V will enable 3.3V power path.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">BATT_VIN/3</td>
<td class="text-center">I</td>
<td>Carrier board raw voltage over 3. 1/3 resistor divider is implemented on carrier board. Amplify the analog signal as needed for full 0-3.3V range</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center" rowspan="2" style="vertical-align: middle">Reset</td>
<td class="text-center">Reset</td>
<td class="text-center">I</td>
<td>Input to processor. Open drain with pullup on processor board. Pulling low resets processor.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">Boot</td>
<td class="text-center">I</td>
<td>Input to processor. Open drain with pullup on processor board. Pulling low puts processor into special boot mode. Can be left NC.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">USB</td>
<td class="text-center">USB_D±</td>
<td class="text-center">I/O</td>
<td>USB Data ±. Differential serial data interface compliant to USB 2.0 specification. If UART is required for programming, USB± must be routed to a USB-to-serial conversion IC on the processor board.
<td></td>
</tr>
<tr>
<td class="text-center">USB Host</td>
<td class="text-center">USBHOST_D±</td>
<td class="text-center">I/O</td>
<td>For processors that support USB Host Mode. USB Data±. Differential serial data interface compliant to USB 2.0 specification. Can be left NC.</td>
<td></td>
</tr>
<tr>
<td class="text-center" rowspan="2" style="vertical-align: middle">CAN</td>
<td class="text-center">CAN_RX</td>
<td class="text-center">I</td>
<td>CAN Bus receive data.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">CAN_TX</td>
<td class="text-center">O</td>
<td> CAN Bus transmit data.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td bgcolor="#4285f4" class="text-center" rowspan="6" style="vertical-align: middle">UART</td>
<td class="text-center">UART_RX1</td>
<td class="text-center">I</td>
<td>UART receive data.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">UART_TX1</td>
<td class="text-center">O</td>
<td>UART transmit data.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">UART_RTS1</td>
<td class="text-center">O</td>
<td>UART ready to send.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">UART_CTS1</td>
<td class="text-center">I</td>
<td>UART clear to send.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">UART_RX2</td>
<td class="text-center">I</td>
<td>2nd UART receive data.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">UART_TX2</td>
<td class="text-center">O</td>
<td>2nd UART transmit data.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td bgcolor="#ff6d01"class="text-center" rowspan="5" style="vertical-align: middle">I</sup>2</sup>C</td>
<td class="text-center">I2C_SCL</td>
<td class="text-center">I/O</td>
<td>I<sup>2</sup>C clock. Open drain with pullup on carrier board.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">I2C_SDA</td>
<td class="text-center">I/O</td>
<td>I<sup>2</sup>C data. Open drain with pullup on carrier board</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">I2C_INT#</td>
<td class="text-center">I</td>
<td>Interrupt notification from carrier board to processor. Open drain with pullup on carrier board. Active LOW</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">I2C_SCL1</td>
<td class="text-center">I/O</td>
<td>2nd I<sup>2</sup>C clock. Open drain with pullup on carrier board.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">I2C_SDA1</td>
<td class="text-center">I/O</td>
<td>2nd I<sup>2</sup>C data. Open drain with pullup on carrier board.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td bgcolor="#fbbc04" class="text-center" rowspan="4" style="vertical-align: middle">SPI</td>
<td class="text-center">SPI_POCI</td>
<td class="text-center">O</td>
<td>SPI Controller Output/Peripheral Input.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">SPI_PICO</td>
<td class="text-center">I</td>
<td>SPI Controller Input/Peripheral Output.</td>
<td class="text-center">3.3V</td>
</td>
<tr>
<td class="text-center">SPI_SCK</td>
<td class="text-center">O</td>
<td>SPI Clock.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">SPI_CS#</td>
<td class="text-center">O</td>
<td>SPI Chip Select. Active LOW. Can be routed to GPIO if hardware CS is unused.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td bgcolor="#34a853" class="text-center" rowspan="6" style="vertical-align: middle">SPI/SDIO</td>
<td class="text-center">SPI_SCK1/SDIO_CLK</td>
<td class="text-center">O</td>
<td>2nd SPI Clock. Secondary use is SDIO Clock.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">SPI_POCI1/SDIO_CMD</td>
<td class="text-center">I/O</td>
<td>2nd SPI Controller Output/Peripheral Input. Secondary use is SDIO command interface.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">SPI_PICO1/SDIO_DATA0</td>
<td class="text-center">I/O</td>
<td>2nd SPI Peripheral Input/Controller Output. Secondary use is SDIO data exchange bit 0.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">SDIO_DATA1</td>
<td class="text-center">I/O</td>
<td>SDIO data exchange bit 1.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">SDIO_DATA2</td>
<td class="text-center">I/O</td>
<td>SDIO data exchange bit 2.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">SPI_CS1/SDIO_DATA3</td>
<td class="text-center">I/O</td>
<td>2nd SPI Chip Select. Secondary use is SDIO data exchange bit 3.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td bgcolor="#46bdc6" class="text-center" rowspan="5" style="vertical-align: middle">Audio</td>
<td class="text-center">AUD_MCLK</td>
<td class="text-center">O</td>
<td>Audio master clock.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">AUD_OUT/PCM_OUT/I2S_OUT/CAM_MCLK</td>
<td class="text-center">O</td>
<td>Audio data output. PCM synchronous data output. I2S serial data out. Camera master clock.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">AUD_IN/PCM_IN/I2S_IN/CAM_PCLK</td>
<td class="text-center">I</td>
<td>Audio data input. PCM syncrhonous data input. I2S serial data in. Camera periphperal clock.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">AUD_LRCLK/PCM_SYNC/I2S_WS/PDM_DATA</td>
<td class="text-center">I/O</td>
<td>Audio left/right clock. PCM syncrhonous data SYNC. I2S word select. PDM data.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">AUD_BCLK/PCM_CLK/I2S_CLK/PDM_CLK</td>
<td class="text-center">O</td>
<td>Audio bit clock. PCM clock. I2S continuous serial clock. PDM clock.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center" rowspan="2" style="vertical-align: middle">SWD</td>
<td class="text-center">SWDIO</td>
<td class="text-center">I/O</td>
<td>Serial Wire Debug I/O. Connect if processor board supports SWD. Can be left NC.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">SWDCK</td>
<td class="text-center">I</td>
<td>Serial Wire Debug clock. Connect if processor board supports SWD. Can be left NC.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td bgcolor="#9ACD32" class="text-center" rowspan="2" style="vertical-align: middle">ADC</td>
<td class="text-center">A0</td>
<td class="text-center">I</td>
<td>Analog to digital converter 0. Amplify the analog signal as needed to enable full 0-3.3V range.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">A1</td>
<td class="text-center">I</td>
<td>Analog to digital converter 1. Amplify the analog signal as needed to enable full 0-3.3V range.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td bgcolor="#9ACD32" class="text-center" rowspan="2" style="vertical-align: middle">PWM</td>
<td class="text-center">PWM0</td>
<td class="text-center">O</td>
<td>Pulse width modulated output 0.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">PWM1</td>
<td class="text-center">O</td>
<td>Pulse width modulated output 1.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td bgcolor="#9ACD32" class="text-center" rowspan="2" style="vertical-align: middle">Digital</td>
<td class="text-center">D0</td>
<td class="text-center">I/O</td>
<td> General digital input/output pin.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">D1/CAM_TRIG</td>
<td class="text-center">I/O</td>
<td>General digital input/output pin. Camera trigger.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td bgcolor="#c27ba0" class="text-center" rowspan="12" style="vertical-align: middle">General/Bus</td>
<td class="text-center">G0/BUS0</td>
<td class="text-center">I/O</td>
<td rowspan="8" style="align-vertical: middle">General purpose pins. Any unused processor pins should be assigned to Gx with ADC + PWM capable pins given priority (0, 1, 2, etc.) positions. The intent is to guarantee PWM, ADC and Digital Pin functionality on respective ADC/PWM/Digital pins. Gx pins do not guarantee ADC/PWM function. Alternative use is pins can support a fast read/write 8-bit or 4-bit wide bus.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">G1/BUS1</td>
<td class="text-center">I/O</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">G2/BUS2</td>
<td class="text-center">I/O</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">G3/BUS3</td>
<td class="text-center">I/O</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">G4/BUS4</td>
<td class="text-center">I/O</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">G5/BUS5</td>
<td class="text-center">I/O</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">G6/BUS6</td>
<td class="text-center">I/O</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">G7/BUS7</td>
<td class="text-center">I/O</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">G8</td>
<td class="text-center">I/O</td>
<td>General purpose pin</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">G9/ADC_D-/CAM_HSYNC</td>
<td class="text-center">I/O</td>
<td>Differential ADC input if available. Camera horizontal sync.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">G10/ADC_D+/CAM_VSYNC</td>
<td class="text-center">I/O</td>
<td>Differential ADC input if available. Camera vertical sync.</td>
<td class="text-center">3.3V</td>
</tr>
<tr>
<td class="text-center">G11/SWO</td>
<td class="text-center">I/O</td>
<td>General purpose pin. Serial Wire Output</td>
<td class="text-center">3.3V</td>
</tr>
</table>
</div>
</div>
<h3>Board Dimensions</h3>
<p>This Processor matches the MicroMod Processor standard sizing and measures 22mm x 22mm, with 15mm to the top notch and 12mm to the E key. For more information regarding the processor board physical standards, head on over to the <a href="https://learn.sparkfun.com/tutorials/getting-started-with-micromod#hardware-overview">Getting Started with MicroMod</a> and <a href="https://learn.sparkfun.com/tutorials/designing-with-micromod">Designing With MicroMod</a> tutorials.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/c/c/f/7/6/MicroMod_Processor_STM32WB5MMG.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/c/c/f/7/6/MicroMod_Processor_STM32WB5MMG.png" alt="Processor Board Dimensions" /></a> </div></p> <a name="#hardware-assembly"></a>
<h2 id="hardware-assembly">Hardware Assembly</h2>
<p>If you have not already, make sure to check out the <a href="https://learn.sparkfun.com/tutorials/getting-started-with-micromod#hardware-hookup">Getting Started with MicroMod: Hardware Hookup</a> for information on properly inserting your Processor into your Carrier Board.</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-1189">
<a href="https://learn.sparkfun.com/tutorials/getting-started-with-micromod">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com//assets/learn_tutorials/1/1/8/9/MicroMod_Hardware_Hookup.gif)"></div>
</div>
<h3 class="title">Getting Started with MicroMod</h3>
<h4 class="metaline">October 21, 2020</h4> </a>
<div class="description">
Dive into the world of MicroMod - a compact interface to connect a microcontroller to various peripherals via the M.2 Connector! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1189">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">3</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<p>Start by inserting the MicroMod STM32WB Processor into your Main or Carrier Board at roughly a 45° angle similar to the image below:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/4/4/MM_STM32WB-Processor_Inserted.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/4/4/MM_STM32WB-Processor_Inserted.jpg" alt="Processor inserted into the MicroMod Main Board." /></a> </div></p>
<p>Next, secure the Processor in place using the set screw:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/4/4/MM_STM32WB-Processor_Secure.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/4/4/MM_STM32WB-Processor_Secure.jpg" alt="Processor secured to the MicroMod Main Board." /></a> </div></p>
<h3>Connecting Everything Up</h3>
<p>With your Processor inserted and secured it's time to connect your carrier board to your computer using the USB-C connector on the Carrier. Depending on which carrier you choose and which drivers you already have installed, you may need to install drivers.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/4/4/MM_STM32WB-Complete_Asssembly.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/4/4/MM_STM32WB-Complete_Asssembly.jpg" alt="alt text" /></a> </div></p>
<div class="alert alert-info"><b>Note:</b> If you've never connected a <b>CH340</b> device to your computer before, you may need to install drivers for the USB-to-serial converter. Check out our section on <a href="https://learn.sparkfun.com/tutorials/sparkfun-serial-basic-ch340c-hookup-guide#drivers-if-you-need-them">"How to Install CH340 Drivers"</a> for help with the installation.
<br />
<br />
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-908">
<a href="https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/9/0/8/USB-to-serial_converter_CH340-closeup.jpg)"></div>
</div>
<h3 class="title">How to Install CH340 Drivers</h3>
<h4 class="metaline">August 6, 2019</h4> </a>
<div class="description">
How to install CH340 drivers (if you need them) on Windows, Mac OS X, and Linux. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="908">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">11</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
</div> <a name="#software-setup"></a>
<h2 id="software-setup">Software Setup</h2>
<div class="alert alert-info">
<b>Note:</b> This guide assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using Arduino, we recommend reading through our tutorial on <a href="https://learn.sparkfun.com/tutorials/installing-arduino-ide">installing the Arduino IDE.</a>
</div>
<h3>Installing Arduino Board Definitions</h3>
<p>The STM32WB5MMG Processor is included with the STM32duino STM32 Arduino core. Installing this core requires adding a JSON file to the "Additional Boards Files" field in the Preferences menu. Open this by navigating to <strong>"File > Preferences"</strong> and then either paste the JSON link below into the field or click the button to the right of it to open a larger window like the screenshot below shows:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/4/4/Additional_Board_Files.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/4/4/Additional_Board_Files.jpg" alt="Screenshot showing STM32duino json link added to Preferences menu." /></a> </div>
<div class="center-block text-center"> <em>Having trouble seeing detail in the image? Click on it for a larger view</em> </div></p>
<pre><code>language:c
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
</code></pre>
<p>With the JSON file added, open the <strong>Boards Manager</strong>, search for <strong>"STM32duino"</strong> and install the latest version. Once that finishes installing, check to make sure the MicroMod STM32WB5MMG option appears in the <strong>"Boards"</strong> menu by navigating to <strong>Tools > Board: > STM32 MCU Based Boards > SparkFun Boards></strong>.</p>
<div class="alert alert-info">
<b>Note:</b> The Arudino IDE lets users access most of the STM32WB's features but it does not support I2S or QSPI. If you're looking to take advantage of those features, we recommend using the <a href="https://www.st.com/en/development-tools/stm32cubeide.html">STM32CubeIDE</a>.
</div> <a name="#arduino-example---blink"></a>
<h2 id="arduino-example---blink">Arduino Example - Blink</h2>
<p>Now that we have the board package installed, it's time to make sure everything was assembled properly and we can upload code to the Processor. We'll just do a simple functionality check with the Blink example to make sure the Processor is working properly and can accept code uploads.</p>
<h3>Example - Blink</h3>
<p>Blink is one of the built-in example sketches in Arduino. Open it by navigating to <strong>File > Examples > Basics > Blink</strong>. You can also copy the code below into a blank sketch if you prefer:</p>
<pre><code>language:c
/*
Blink
Turns an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:
https://www.arduino.cc/en/Main/Products
modified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman
This example code is in the public domain.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
</code></pre>
<p>Next, select your board (MicroMod STM32) and the correct Port and click the "Upload" button. After uploading finishes, the blue STAT LED on the Processor should blink on and off every second.</p> <a name="#resources-and-going-further"></a>
<h2 id="resources-and-going-further">Resources and Going Further</h2>
<p>That's all for this Hookup Guide. For more information about the MicroMod STM32WB5MMG Processor or the MicroMod ecosystem, take a look at the following resources:</p>
<p><strong>MicroMod STM32WB5MMG Processor Documentation</strong></p>
<ul>
<li><a href="https://cdn.sparkfun.com/assets/e/4/c/7/8/MicroMod_Processor_STM32WB5MMG.pdf">Schematic</a></li>
<li><a href="https://cdn.sparkfun.com/assets/0/b/0/8/f/MicroMod_Processor_STM32WB5MMG.zip">Eagle Files</a></li>
<li><a href="https://cdn.sparkfun.com/assets/c/c/f/7/6/MicroMod_Processor_STM32WB5MMG.png">Board Dimensions</a></li>
<li><a href="https://cdn.sparkfun.com/assets/d/d/1/a/2/stm32wb5mmg.pdf">Datasheet</a> (STM32WB55MMG)</li>
<li><a href="https://cdn.sparkfun.com/assets/b/b/6/4/5/STM32WB55xx_Datasheet.pdf">Datasheet</a> (STM32WB55xx)</li>
<li><a href="https://cdn.sparkfun.com/assets/1/6/c/b/b/STM32WB55xx_Reference_Manual.pdf">Reference Manual</a> (STM32WB55xx)</li>
<li><a href="https://github.com/sparkfun/MicroMod_Processor_STM32WB5MMG">GitHub Hardware Repo</a></li>
</ul>
<p><strong>MicroMod Documentation:</strong></p>
<ul>
<li><a href="https://learn.sparkfun.com/tutorials/getting-started-with-micromod">Getting Started with MicroMod</a></li>
<li><a href="https://learn.sparkfun.com/tutorials/designing-with-micromod">Designing with MicroMod</a></li>
<li><a href="https://www.sparkfun.com/micromod">MicroMod Info Page</a></li>
<li><a href="https://forum.sparkfun.com/viewforum.php?f=167">MicroMod Forums</a></li>
</ul>
<hr>
<p><a href="https://learn.sparkfun.com">learn.sparkfun.com</a> |
<a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>
| SparkFun Electronics | Niwot, Colorado</p>
SparkFun RTK Reference Station Hookup Guide
PaulZC
https://www.sparkfun.com/users/17834
urn:uuid:89f39f7a-eb0f-7dae-0652-67af70ba5b8f
2023-05-23T00:00:00-06:00
<h1>
SparkFun RTK Reference Station Hookup Guide <small>a <a href="https://learn.sparkfun.com/tutorials">learn.sparkfun.com tutorial</a></small>
</h1>
<h3>
Available online at: <a href="http://sfe.io/t3210">http://sfe.io/t3210</a>
</h3>
<a name="#introduction"></a>
<h2 id="introduction">Introduction</h2>
<p>The <a href="https://www.sparkfun.com/products/22429">RTK Reference Station</a> from SparkFun is our most capable GNSS receiver and logger to date. It's your one stop shop for high precision geolocation, surveying and time reference needs. For basic users, it is incredibly easy to get up and running; for advanced users, the Reference Station is a flexible and powerful tool. We took everything we learned while developing our other RTK products, refined it and the Reference Station is the end result.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="product-22429">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/22429">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/2/2/5/2/3/SparkFun-Reference-Station--05.jpg" alt="SparkFun RTK Reference Station" height="500">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="22429">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_22429" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_22429 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_22429"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/22429">
<span>SparkFun RTK Reference Station</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
GPS-22429 </span>
<p class="description" style="display:none">
The SparkFun RTK Reference Station is the perfect solution for your high-precision geolocation, surveying, and time reference… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$699.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">4</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="22429">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">12</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="22429" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>Is this just a <a href="https://www.sparkfun.com/products/19984">RTK Facet</a> in a metal box? Oh no! It is <em>so</em> much more... Sure, it is based on the same ESP32-WROOM processor and u-blox ZED-F9P multi-band GNSS module as the Facet. And it runs the same core firmware as the rest of the RTK product family. But there the similarities end. The Reference Station has 10/100 Mbps Ethernet connectivity provided by a WIZnet W5500 and it can be powered by Power-over-Ethernet (PoE) too. With just a few minutes of setup and survey-in, your Reference Station can be serving RTCM correction data to an NTRIP caster of your choice, all via Ethernet!</p>
<p>Need an affordable Network Time Protocol time server for your Ethernet network? We've got you covered. The Reference Station can act as a NTP server. It supports DHCP by default, but you can give it a fixed IP address if you want to. DNS, gateway and subnet mask are all configurable too.</p>
<p>The Reference Station gets a big speed boost too. The microSD card socket is connected via full 4-bit SDIO instead of the usual SPI, providing an order or magnitude improvement in read and write speeds. Similarly, the u-blox ZED-F9P GNSS module is connected via SPI instead of the usual I2C, also providing an order of magnitude improvement in data transfer speeds. Need to log RAWX and SFRBX at 20Hz? You can with the Reference Station!</p>
<h3>Required Materials</h3>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_-_10_Crop.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_-_10_Crop.jpg" alt="Image of the RTK Reference Station kit" /></a> </div>
<div class="center-block text-center"> <em>What's in the box?</em> </div></p>
<p>The RTK Reference Station comes with everything you need to get up and running. Our kit includes:</p>
<ul>
<li>Cased Reference Station</li>
<li>L1/L2/L5 GNSS Surveying Antenna</li>
<li>Reinforced RG58 TNC-SMA Cable</li>
<li>SMA WiFi / Bluetooth Antenna</li>
<li>32GB microSD Card</li>
<li>USB-C Power Supply (wall charger)</li>
<li>USB-C Cable</li>
<li>Ethernet Cable</li>
</ul>
<p>What else might you need? Well, it depends on where you are going to install and use your Reference Station. One obvious place would be up on your roof where your antenna will have the best view of the sky. In which case you will want some hardware to help mount the antenna:</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-21257">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/21257">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/1/0/2/7/SparkFun-GNSS-Antenna-Magnetic-Mount-21257-1.jpg" alt="GNSS Magnetic Antenna Mount - 5/8" 11-TPI" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="21257">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_21257" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_21257 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_21257"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/21257">
<span>GNSS Magnetic Antenna Mount - 5/8" 11-TPI</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-21257 </span>
<p class="description" style="display:none">
A compact metal magnetic antenna mount. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$29.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="21257">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">4</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="21257" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-22197">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/22197">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/2/0/9/7/22197-_01.jpg" alt="GNSS Antenna Mounting Hardware Kit" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="22197">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_22197" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_22197 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_22197"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/22197">
<span>GNSS Antenna Mounting Hardware Kit</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
KIT-22197 </span>
<p class="description" style="display:none">
This GNSS Antenna mounting hardware kit gives you what you need to mount your antenna to a structure or support. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$14.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="22197">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">2</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="22197" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="clearfix"></div>
<p>The Reference Station itself comes in a beautiful custom extruded aluminium enclosure, with machined end panels and matching stickers. The slotted flanges make it easy to install and secure the enclosure in many locations. But the enclosure only provides limited protection against the ingress of dust and water; it is IP42. So, if you are going to permanently install it up on the roof, you're going to need a suitable weatherproof box too. We found a good one - the <a href="https://www.orbitonline.com/products/gray-outdoor-timer-cabinet">Orbit 57095</a> - also available from <a href="https://www.amazon.com/Orbit-57095-Weather-Resistant-Outdoor-Mounted-Controller/dp/B000VYGMF2">Amazon</a> - back when we put together our very first <a href="https://learn.sparkfun.com/tutorials/how-to-build-a-diy-gnss-reference-station#mini-computer-setup-option-1">DIY GNSS Reference Station</a></p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-1363">
<a href="https://learn.sparkfun.com/tutorials/how-to-build-a-diy-gnss-reference-station">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/1/3/6/3/Roof_Enclosure.jpg)"></div>
</div>
<h3 class="title">How to Build a DIY GNSS Reference Station</h3>
<h4 class="metaline">October 15, 2020</h4> </a>
<div class="description">
Learn how to affix a GNSS antenna, use PPP to get its ECEF coordinates and then broadcast your own RTCM data over the internet and cellular using NTRIP to increase rover reception to 10km! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1363">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">19</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<div class="alert alert-info" role="alert">
<strong>AC Not Required!</strong> The Orbit enclosure comes with a built-in power outlet, but you don't actually need it! The Reference Station can be powered by Power-over-Ethernet (PoE), meaning all you really need to run up to the roof is a standard 8-core CAT-6 Ethernet cable. Choose a PoE Ethernet Switch that meets your needs. We have had good experiences with the <a href="https://www.tp-link.com/us/business-networking/poe-switch/tl-sg1005p/">TP-Link TL-SG1005P</a> - available from many retailers including <a href="https://www.amazon.com/TP-Link-Compliant-Shielded-Optimization-TL-SG1005P/dp/B076HZFY3F">Amazon</a>.</div>
<p>If you want to keep your Reference Station warm and dry, it is equally at home on your desk, lab bench or in a server rack. You're still going to want to install the antenna outdoors though, so some extra SMA extension cables may be useful. The GNSS antenna connection is standard polarity. If you want to extend the ESP32 WiFi / BT antenna connection too, you need a Reverse Polarity (RP) cable for that. We have good quality RG58 extension cables available in the store:</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-21281">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/21281">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/1/0/6/5/21281-_CAB-_01.jpg" alt="Interface Cable - SMA Female to SMA Male (10m, RG58)" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="21281">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_21281" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_21281 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_21281"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/21281">
<span>Interface Cable - SMA Female to SMA Male (10m, RG58)</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
CAB-21281 </span>
<p class="description" style="display:none">
This 10m (33') SMA extension does a great job of connecting your receiver or radio to a distant antenna with as little RF los… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$9.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="21281">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">1</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="21281" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-22038">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/22038">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/1/9/0/5/22038-_CAB-_01.jpg" alt="Interface Cable - RP-SMA Male to RP-SMA Female (10M, RG58)" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="22038">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_22038" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_22038 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_22038"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/22038">
<span>Interface Cable - RP-SMA Male to RP-SMA Female (10M, RG58)</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="only 14 left!"><span class=sfe-icon-stock-low><span class=visuallyhidden>Only 14 left!</span></span></a>
</span>
<span class="sku">
CAB-22038 </span>
<p class="description" style="display:none">
This is a basic RP-SMA male to female connector cable at 10M in length and RG58 housing. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$11.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="22038">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="22038" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="clearfix"></div>
<p>Finally, if you're going to be logging a lot of data, you might want to stock up on 32GB microSD cards too. The Reference Station can log 'raw' GNSS data messages (RAWX and SFRBX) at 20Hz if desired. At that rate, you're logging about 50kB per second, 180MB per hour, or over 4GB per day! 32GB cards are the ones we recommend - as they come formatted as FAT32. The Reference Station does not support exFAT.</p>
<div >
<div class="tile product-tile has_addl_actions grid " data-id="product-19041">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/19041">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/8/6/5/3/19041-microSD_Card_-_32GB__Class_10_-02.jpg" alt="microSD Card - 32GB (Class 10)" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="19041">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_19041" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_19041 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_19041"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/19041">
<span>microSD Card - 32GB (Class 10)</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
COM-19041 </span>
<p class="description" style="display:none">
This is a class 10 32GB microSD memory card, perfect for housing operating systems for single board computers and a multitude… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$14.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="19041">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">1</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="19041" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<h3>Suggested Reading</h3>
<p>GNSS RTK is an incredible feat of engineering that has been made easy to use by powerful GNSS receivers such as the ZED-F9P by u-blox (the receiver inside RTK Reference Station). The process of setting up an RTK system will be covered in this tutorial but if you want to know more about RTK here are some good tutorials to brush up on:</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-813">
<a href="https://learn.sparkfun.com/tutorials/what-is-gps-rtk">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/8/1/3/Location-Wandering-GPS-combined.jpg)"></div>
</div>
<h3 class="title">What is GPS RTK?</h3>
</a>
<div class="description">
Learn about the latest generation of GPS and GNSS receivers to get 14mm positional accuracy! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="813">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">10</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-815">
<a href="https://learn.sparkfun.com/tutorials/getting-started-with-u-center-for-u-blox">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/8/1/5/u-center.jpg)"></div>
</div>
<h3 class="title">Getting Started with U-Center for u-blox</h3>
</a>
<div class="description">
Learn the tips and tricks to use the u-blox software tool to configure your GPS receiver. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="815">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">2</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-856">
<a href="https://learn.sparkfun.com/tutorials/gps-rtk2-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com//assets/learn_tutorials/8/5/6/GPS-RTK2_GPS_RTK_SMA_ZED-F9P__Qwiic.gif)"></div>
</div>
<h3 class="title">GPS-RTK2 Hookup Guide</h3>
</a>
<div class="description">
Get precision down to the diameter of a dime with the new ZED-F9P from u-blox. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="856">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">10</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-1362">
<a href="https://learn.sparkfun.com/tutorials/setting-up-a-rover-base-rtk-system">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/3/6/2/GNSS_RTK_DIY_Surveying_Tutorial.jpg)"></div>
</div>
<h3 class="title">Setting up a Rover Base RTK System</h3>
</a>
<div class="description">
Getting GNSS RTCM correction data from a base to a rover is easy with a serial telemetry radio! We'll show you how to get your high precision RTK GNSS system setup and running. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1362">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">17</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-1363">
<a href="https://learn.sparkfun.com/tutorials/how-to-build-a-diy-gnss-reference-station">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/3/6/3/Roof_Enclosure.jpg)"></div>
</div>
<h3 class="title">How to Build a DIY GNSS Reference Station</h3>
</a>
<div class="description">
Learn how to affix a GNSS antenna, use PPP to get its ECEF coordinates and then broadcast your own RTCM data over the internet and cellular using NTRIP to increase rover reception to 10km! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1363">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">19</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div> <a name="#hardware-overview"></a>
<h2 id="hardware-overview">Hardware Overview</h2>
<p>The RTK Reference Station is a fully enclosed, preprogrammed device. There are very few things to worry about or configure but we will cover the basics.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_-_08_Crop.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_-_08_Crop.jpg" alt="Image of the front of the RTK Reference Station" /></a> </div>
<div class="center-block text-center"> <em>RTK Reference Station - Front View</em> </div></p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_-_07_Crop.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_-_07_Crop.jpg" alt="Image of the rear of the RTK Reference Station" /></a> </div>
<div class="center-block text-center"> <em>RTK Reference Station - Rear View</em> </div></p>
<h3><strong>Antenna Connections</strong></h3>
<p>Before connecting your Reference Station to a power source, you're going to want to connect it to a couple of antennas.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Antenna.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Antenna.jpg" alt="Image of the two antenna connectors" /></a> </div>
<div class="center-block text-center"> <em>Antenna Connections</em> </div></p>
<p>The rest of the RTK product family use a version of the ESP32-WROOM which has a built-in antenna. The Reference Station does it differently. You need to connect a 2.4GHz WiFi / BT antenna to the <strong>ESP32</strong> SMA Reverse Polarity (RP) connector on the rear panel. We included one in the kit. Go ahead and screw it on there!</p>
<p>The GNSS antenna needs to be connected to the standard polarity <strong>UBLOX</strong> SMA connector. The TNC-SMA cable we included in the kit is of course perfect for the job. If you need a longer cable run, we have good quality <a href="https://www.sparkfun.com/products/21281">RG58 cables available in the store</a>.</p>
<h3><strong>microSD Card</strong></h3>
<p>Now is a good time to slot the microSD card into place. We included a 32GB card in the kit. Insert it gently into the <strong>microSD</strong> slot and give it a little push to lock it into place. It is a "push-push" socket. Push it again to release / eject the card.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_microSD.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_microSD.jpg" alt="Image of the micro SD card slot" /></a> </div>
<div class="center-block text-center"> <em>microSD Card Slot</em> </div></p>
<p>The Reference Station only supports cards formatted as FAT32, which is why we recommend 32GB cards. It does not support exFAT - and most 64GB cards come pre-formatted with exFAT.</p>
<p>If you need to re-format your card at any time, we recommend using the official <a href="https://www.sdcard.org/downloads/formatter/">SD Association Formatter</a>.</p>
<h3><strong>Power Options</strong></h3>
<p>Unlike the rest of the RTK product family, the Reference Station has no internal battery. It is designed to be "always on". It will start operating as soon as it is connected to a power source. It can operate when powered by any or all of:</p>
<ul>
<li>ESP32 USB-C connector</li>
<li>u-blox GNSS USB-C connector</li>
</ul>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Power_Front.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Power_Front.jpg" alt="Image of the front power connections" /></a> </div>
<div class="center-block text-center"> <em>Reference Station - Front Power Options</em> </div></p>
<ul>
<li>Rear USB-C power connector</li>
<li>Power-over-Ethernet (36V - 57V)</li>
<li>5V and GND I/O screw terminals (5.5V DC Maximum)</li>
</ul>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Power_Rear.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Power_Rear.jpg" alt="Image of the rear power connections" /></a> </div>
<div class="center-block text-center"> <em>Reference Station - Rear Power Options</em> </div></p>
<p>We included a USB-C wall charger in the kit. Go ahead and plug it in to the rear USB-C power connector to power the system.</p>
<h3><strong>MODE Button</strong></h3>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Reset_Mode.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Reset_Mode.jpg" alt="Image of the reset and mode buttons" /></a> </div>
<div class="center-block text-center"> <em>Reference Station - Mode and Reset Buttons</em> </div></p>
<p>The Reference Station <strong>MODE</strong> button operates in almost the same way as the <strong>SETUP</strong> button on the other RTK products.</p>
<p>A single press brings up the mode menu. Press the button again to step through the available modes. Pause on the highlighted mode to select it and change to that mode.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/menu.gif"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/menu.gif" alt="Animated image of the mode menu" /></a> </div>
<div class="center-block text-center"> <em>Mode Menu</em> </div></p>
<p>The available modes are:</p>
<ul>
<li><strong>BASE</strong> Mode</li>
<li><strong>ROVER</strong> Mode</li>
<li><strong>NTP</strong> Mode</li>
<li><strong>Cfg Eth</strong> Configure-Via-Ethernet Mode</li>
<li><strong>CfgWiFi</strong> Configure-Via-WiFi Mode</li>
<li><strong>E-Pair</strong> ESP NOW Pairing</li>
</ul>
<p>The modes are discussed in a little more detail below and in much more detail in the <a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/">RTK Product Manual</a>.</p>
<p><a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/permanent_base/">BASE Mode</a> is the default as it is the mode we think users will use the most - but you always surprise us with the novel ways you use our products!</p>
<p>A long press of the MODE button will make the Reference Station shut down. Once shut down, only a power cycle or a press of the RESET button will wake it again.</p>
<h3><strong>RESET Button</strong></h3>
<p>The RESET button is flush with the front sticker. You can still press it with your finger but it takes an assertive press, to prevent accidental resets.</p>
<p>You shouldn't need to press the RESET button often, if at all. Connecting to the ESP32 via USB and opening a serial console, or uploading new firmware, generates a reset automatically. But the RESET button is there if you need it.</p>
<h3><strong>STATUS LED</strong></h3>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Status.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Status.jpg" alt="Image of the status LED" /></a> </div>
<div class="center-block text-center"> <em>Status LED</em> </div></p>
<p>The <strong>STATUS</strong> LED is used to indicate that all is well with the Reference Station. When lit, the BASE Mode has completed its survey-in.</p>
<h3><strong>CONFIG ESP32</strong></h3>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Power_Front.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_Power_Front.jpg" alt="Image of the two USB connections" /></a> </div>
<div class="center-block text-center"> <em>Reference Station - USB-C Connections</em> </div></p>
<p>The <strong>CONFIG ESP32</strong> USB-C port provides direct access to the ESP32 Serial port / console. Connect to this from your computer and open a serial terminal at 115200 baud to see diagnostic messages from the RTK firmware. Tera Term is still a good choice for Windows users. Press any key to open the <a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/configure_with_serial/">serial configuration menu</a>.</p>
<p>The RTK product range is now able to update its own firmware Over-The-Air (OTA). But you can of course still upload your own code or our pre-compiled firmware binaries onto the ESP32 through this USB-C connection.</p>
<div class="alert alert-info" role="alert">
<strong>Don't See 'USB-Serial CH340'?</strong> If you've never connected a CH340 device to your computer before, you may need to install drivers for the USB-to-serial converter. Check out our section on <a href="https://learn.sparkfun.com/tutorials/sparkfun-serial-basic-ch340c-hookup-guide#drivers-if-you-need-them">"How to Install CH340 Drivers"</a> for help with the installation.
</div>
<h3><strong>CONFIG UBLOX</strong></h3>
<p>The <strong>CONFIG UBLOX</strong> USB-C port provides direct access to the u-blox ZED-F9P GNSS module's USB port. You can use this port to connect to the module using <a href="https://www.u-blox.com/en/product/u-center">u-blox u-center</a> (we still recommend the original u-center over u-center2). You can also use it to update the ZED-F9P's firmware - either via u-center or using our own <a href="https://github.com/sparkfun/SparkFun_RTK_Firmware_Binaries/tree/main/u-blox_Update_GUI">u-blox GNSS Firmware Update GUI</a>.</p>
<div class="alert alert-info" role="alert">
<strong>Don't See 'USB Serial Device'?</strong> The first time a u-blox module is connected to a computer you may need to adjust the COM driver. Check out our section on <a href="https://learn.sparkfun.com/tutorials/getting-started-with-u-center-for-u-blox#install-drivers">"How to Install u-blox Drivers"</a> for help with the installation.
</div>
<h3><strong>ETHERNET Port</strong></h3>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_-_07_Crop.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_-_07_Crop.jpg" alt="Image of the rear of the RTK Reference Station" /></a> </div>
<div class="center-block text-center"> <em>RTK Reference Station - Rear View</em> </div></p>
<p>The <strong>ETHERNET (PoE)</strong> RJ45 Mag Jack port on the rear of the Reference Station is - we hope - self explanatory. It is connected internally to the Power-over-Ethernet module and the WIZnet W5500 Ethernet transceiver. It supports 10/100Mbps communication with auto-negotiation. The mag jack has built-in Link and Activity LEDs. (You can disable these if needed by opening jumper links on the main PCB.) The Power-over-Ethernet module will operate from standard 36V to 57V PoE voltages. Choose a PoE Ethernet Switch that meets your needs. We have had good experiences with the <a href="https://www.tp-link.com/us/business-networking/poe-switch/tl-sg1005p/">TP-Link TL-SG1005P</a> - available from many retailers including <a href="https://www.amazon.com/TP-Link-Compliant-Shielded-Optimization-TL-SG1005P/dp/B076HZFY3F">Amazon</a>.</p>
<h3><strong>UBLOX SMA Connector</strong></h3>
<p>The L1/L2 GNSS antenna included in the kit should be connected to the <strong>UBLOX</strong> SMA connector using the provided SMA-TNC cable. The Reference Station provides 5V on this connector for an active antenna, instead of the usual 3.3V. The Reference Station also includes both short-circuit and open-circuit detection on this connection. New icons will flash on the OLED display if the antenna is not connected (open) or the cable develops a short.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/Antenna_Open.png"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/Antenna_Open.png" alt="Antenna Open Circuit Icon" /></a> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/Antenna_Short.png"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/Antenna_Short.png" alt="Antenna Short Circuit Icon" /></a> </div>
<div class="center-block text-center"> <em>Antenna Open Circuit and Short Circuit Icons</em> </div></p>
<h3><strong>TP SMA Connector</strong></h3>
<p>To try and make the Reference Station more lab-friendly, we connected the ZED-F9P's <strong>TP</strong> (Timing Pulse, Pulse-Per-Second) pin to a dedicated OpAmp circuit and SMA connector. The default output voltage is 3.3V, but you can select 5V by opening a jumper link on the main PCB. It is not intended to replace your lab signal generator, but it works well up to 100kHz. The unprocessed TP / PPS 3.3V signal is also available on the <strong>TP</strong> I/O screw terminal. Please see the <a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/configure_ports/#pulse-per-second">Product Manual</a> for more details.</p>
<h3><strong>ESP32 SMA Connector</strong></h3>
<p>The <strong>ESP32</strong> WROOM module's u.FL connector is connected to a robust Reverse Polarity (RP) SMA connector. You can screw the provided WiFi / BT antenna directly onto this connector, just like you would with any broadband router. If you want to mount the antenna further away, we have good quality <a href="https://www.sparkfun.com/products/22038">RG58 RP extension cables available in the store</a>.</p>
<h3><strong>I/O Screw Terminals</strong></h3>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_IO.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_IO.jpg" alt="Image of the input output screw connections" /></a> </div>
<div class="center-block text-center"> <em>RTK Reference Station - I/O Connections</em> </div></p>
<p>The Reference Station is equipped with a robust 10-way 3.5mm Input / Output screw terminal header. This provides access to the power rails and I/O signals:</p>
<ul>
<li><strong>TP</strong> : u-blox ZED-F9P GNSS module Timing Pulse (Pulse Per Second): 3.3V OUTPUT</li>
<li><strong>TXD</strong> : ESP32 pin 17 Serial1 (UART) transmit: 3.3V OUTPUT
<ul>
<li>The current version of the RTK firmware does not use this pin</li>
</ul></li>
<li><strong>RXD</strong> : ESP32 pin 16 Serial1 (UART) receive: 3.3V INPUT
<ul>
<li>The current version of the RTK firmware does not use this pin</li>
</ul></li>
<li><strong>TX2</strong> : u-blox ZED-F9P UART2 transmit: 3.3V OUTPUT
<ul>
<li>You can connect this pin to a radio module to provide correction data to other Rovers</li>
</ul></li>
<li><strong>RX2</strong> : u-blox ZED-F9P UART2 receive: 3.3V INPUT
<ul>
<li>You can connect this pin to a radio module to use correction data provided by another Base</li>
</ul></li>
<li><strong>SCL</strong> : ESP32 I2C (Wire / Qwiic) bus clock : 3.3V
<ul>
<li>A pull-up is provided on the main PCB. This can be disabled by opening a jumper link</li>
</ul></li>
<li><strong>SDA</strong> : ESP32 I2C (Wire / Qwiic) bus data : 3.3V
<ul>
<li>A pull-up is provided on the main PCB. This can be disabled by opening a jumper link</li>
</ul></li>
<li><strong>3V3</strong> : 3.3V power OUTPUT
<ul>
<li>This is the internal switched power rail used by the microSD card and WIZnet W5500</li>
<li>It is enabled by ESP32 pin 32 (PWREN)</li>
<li>It is disabled when the ESP32 is in reset</li>
<li>You could use it to power an external radio module or a Qwiic / I2C device</li>
</ul></li>
<li><strong>GND</strong> : power GND / 0V</li>
<li><strong>5V</strong> : 5V power INPUT
<ul>
<li>This pin can be used to power the Reference Station from a separate 5V power source</li>
<li>The maximum voltage is 5.5V DC</li>
</ul></li>
</ul> <a name="#hardware-overview---advanced-features"></a>
<h2 id="hardware-overview---advanced-features">Hardware Overview - Advanced Features</h2>
<p>Like most SparkFun products, the RTK Reference Station is completely open source. We're happy to share the full <a href="https://cdn.sparkfun.com/assets/c/e/c/2/9/Schematic.pdf">schematic</a> for the main PCB, the <a href="https://github.com/sparkfun/SparkFun_RTK_Reference_Station">Eagle CAD files</a> and the <a href="https://github.com/sparkfun/SparkFun_RTK_Firmware">full source code</a> for the firmware. The Reference Station is intended to be another hacker's paradise!</p>
<p>Taking the Reference Station apart is really easy:</p>
<ul>
<li>Disconnect all cables</li>
<li>Unplug the green 10-way 3.5mm I/O connector
<ul>
<li>This makes it easy to remove the main PCB from the enclosure</li>
<li>The connector is a firm fit. You may need to rock it from side to side as you unplug it</li>
</ul></li>
<li>Unscrew the four screws holding the front panel in place
<ul>
<li>We recommend removing the front panel first, so you can unplug the OLED display</li>
</ul></li>
<li>Remove the front panel</li>
<li>Unplug the OLED Qwiic cable</li>
<li>Slide out the main PCB</li>
</ul>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station-_11_HIGH_RES.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_-_11_Crop.jpg" alt="Image of the top of the main PCB" /></a> </div>
<div class="center-block text-center"> <em>RTK Reference Station PCB - Top Side (Click for a closer look)</em> </div></p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station-_02_HIGH_RES.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_-_02_Crop.jpg" alt="alt text" /></a> </div>
<div class="center-block text-center"> <em>RTK Reference Station PCB - Bottom Side (Click for a closer look)</em> </div></p>
<p>Let's walk you through the main components on the PCB:</p>
<h3>ESP32-WROOM</h3>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_ESP32.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_ESP32.jpg" alt="Image of the ESP microcontroller" /></a> </div>
<div class="center-block text-center"> <em>ESP32-WROOM Microcontroller</em> </div></p>
<p>Like the other members of the RTK product family, the RTK Reference Station uses the excellent ESP32-WROOM microcontroller. The only difference here is that we use a version with a built-in u.FL antenna connection. We use a small u.FL cable to connect the ESP32 to the external RP SMA antenna connector.</p>
<h3>u-blox ZED-F9P GNSS</h3>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_ZED-F9P.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_ZED-F9P.jpg" alt="Image of the GNSS module" /></a> </div>
<div class="center-block text-center"> <em>u-blox ZED-F9P GNSS Module</em> </div></p>
<p>Like most of the RTK product family, the RTK Reference Station uses the excellent ZED-F9P multi-band GNSS module, made by u-blox in Switzerland. We keep using this module because it is phenomenal and we haven't found anything better. The only difference here is that it is connected via SPI, instead of the usual I2C. This provides an order of magnitude improvement in the data transfer speeds.</p>
<h3>WIZnet W5500 Ethernet Transceiver</h3>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_W5500.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_W5500.jpg" alt="Image of the Ethernet transceiver and power connections" /></a> </div>
<div class="center-block text-center"> <em>WIZnet W5500 Ethernet transceiver, Power-over-Ethernet module and RJ45 mag jack connector</em> </div></p>
<p>The WIZnet W5500 has been around for years, but it still takes some beating for 10/100Mbps Ethernet applications. We've paired it with a high quality Power-over-Ethernet (PoE) module and shielded RJ45 connector ("mag jack").</p>
<h3>Qwiic 1"x1" Footprint</h3>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_1x1.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_1x1.jpg" alt="Image of the optional Qwiic module" /></a> </div>
<div class="center-block text-center"> <em>1" x 1" Qwiic Footprint</em> </div></p>
<p>Did we forget to include something? Absolutely not! But we did say that the Reference Station is a hacker's paradise. We've included the 1" x 1" footprint of our standard Qwiic (I2C) sensor boards just in case you want to add your own Inertial Measurement Unit, Pressure Humidity Temperature sensor, battery-backed Real Time Clock or anything else you need for your project. There's a vacant Qwiic connector right there too!</p>
<h3>Jumper Links</h3>
<p>Like most SparkFun products, the RTK Reference Station PCB has several split-pad jumper links on it, which allow you to configure the board in different ways.</p>
<p>Need to disable all of the LEDs? Not a problem. You will find jumper links for the Link, Activity and Status LEDs. Open them up and leave the OLED display disconnected to blackout your Reference Station.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station_ACT_LINK.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station_ACT_LINK.jpg" alt="Image of the ACT and LINK LED jumpers" /></a> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station_LED.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station_LED.jpg" alt="Image of the status LED jumper" /></a> </div>
<div class="center-block text-center"> <em>LED jumper links</em> </div></p>
<p>Need to change the WIZnet W5500 mode? You can do that by configuring the three PMODE jumpers. PMODE0, 1 and 2 are pulled high by default. You can pull them low by soldering the jumpers closed.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station_PMODE.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station_PMODE.jpg" alt="Image of the Ethernet configuration jumpers" /></a> </div>
<div class="center-block text-center"> <em>W5500 PMODE jumper links</em> </div></p>
<p>There may be times when you want to prevent anyone from pressing the RESET or MODE buttons. There are jumper links for those too. Open them to isolate the two buttons; the ESP32 can then still be reset via the USB-C port and CH340 interface if needed.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station_BOOT_RESET.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station_BOOT_RESET.jpg" alt="Image of the reset and mode jumpers" /></a> </div>
<div class="center-block text-center"> <em>RESET and MODE jumper links</em> </div></p>
<p>To make the Reference Station more lab friendly, we included a SMA connection for the ZED-F9P time pulse (Pulse-Per-Second). The SMA signal is 3.3V by default, but you can change it to 5V by opening the VTP jumper.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station_VTP.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/SparkFun_Reference_Station_VTP.jpg" alt="Image of the time pulse voltage jumper" /></a> </div>
<div class="center-block text-center"> <em>Time pulse voltage jumper link</em> </div></p> <a name="#modus-operandi"></a>
<h2 id="modus-operandi">Modus Operandi</h2>
<p>The following is a brief summary of the Reference Station's modes of operation. Please consult the
<a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/">RTK Product Manual</a> for much more detail.</p>
<ul>
<li><strong>BASE</strong> Mode
<ul>
<li>This is the default mode as it is the mode we think most users will want to use - but you always surprise us with the novel ways you use our products!</li>
<li>The Reference Station will perform a short 1-2 minute "survey-in" to establish the approximate position of the antenna (~1m accuracy).</li>
<li>It will then start generating RTCM correction data and - once configured - can send it to an NTRIP Caster over Ethernet.</li>
<li>The RTCM data will also be output as 3.3V Serial (UART) data on the ZED-F9P <strong>TX2</strong> I/O screw connection on the rear panel. You can connect a Radio transceiver to that pin if desired.</li>
<li>You can establish the antenna position more accurately by collecting 'raw' satellite data for ~24 hours and post-processing it. You can find full instructions in the <a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/permanent_base/">Product Manual</a>.</li>
</ul></li>
</ul>
<div class="clearfix"></div>
<ul>
<li><strong>ROVER</strong> Mode
<ul>
<li>The Reference Station can of course also be used as a RTK Rover.</li>
<li>In Rover mode, the antenna position and other data is logged to microSD card.</li>
<li>RTCM correction data can be received over Ethernet from a NTRIP Caster - once configured - and used to achieve an accuracy of ~1.4cm under good conditions.</li>
<li>Use Rover mode to collect the 'raw' satellite data to establish your antenna's position accurately for Base mode.</li>
</ul></li>
</ul>
<div class="clearfix"></div>
<ul>
<li><strong>NTP</strong> Mode
<ul>
<li>The Reference Station can also act as a Network Time Protocol Server - servicing NTP requests over Ethernet.</li>
<li>The firmware defaults to using DHCP to obtain an IP Address. But you can also configure it to use a fixed IP Address and can define the DNS, Gateway and Subnet Mask too.</li>
<li>Because NTP is unique to the Reference Station, we talk about it a bit more in the next section.</li>
</ul></li>
</ul>
<div class="clearfix"></div>
<ul>
<li><strong>CONFIGURE VIA ETHERNET</strong> Mode
<ul>
<li>Abbreviated as "<strong>Cfg Eth</strong>", Configure-Via-Ethernet mode is a dedicated mode where the Reference Station can be configured via a web page over Ethernet.</li>
<li>This mode requires exclusive access to the WIZnet W5500 chip and the SPI bus and so the Reference Station actually reboots when this mode is selected.</li>
<li>When leaving this mode - either by exiting the web page or by pressing the Mode button - the Reference Station will reboot again into Base, Rover or NTP mode. The new mode is selected by the small drop-down box on the System tab.</li>
</ul></li>
</ul>
<div class="clearfix"></div>
<ul>
<li><strong>CONFIGURE VIA WIFI</strong> Mode
<ul>
<li>Abbreviated as "<strong>CfgWiFi</strong>", Configure-Via-WiFi mode is another dedicated mode where the Reference Station can be configured via a web page over WiFi.</li>
<li>By default, the Reference Station will appear as a WiFi Hot Spot / Access Point - but it can be configured to connect to your preferred WiFi network too.</li>
<li>The Reference Station will reboot when leaving this mode - to apply any changes made.</li>
</ul></li>
</ul>
<div class="clearfix"></div>
<ul>
<li><strong>ESP NOW</strong> Mode
<ul>
<li>Abbreviated as "<strong>E-Pair</strong>", ESP NOW is a way of linking two ESP32 processors via WiFi so that they can communicate with each other, line of sight up to approximately 250m</li>
<li>The ESP NOW link allows a base to share correction data with a single rover</li>
<li>More details are provided in the <a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/menu_radios/">Product Manual</a></li>
</ul></li>
</ul> <a name="#ntp"></a>
<h2 id="ntp">NTP</h2>
<p>Network Time Protocol has been around since 1985. It is a simple way for computers to synchronize their clocks with each other, allowing the network latency (delay) to be subtracted:</p>
<ul>
<li>A client sends a NTP request (packet) to the chosen or designated server
<ul>
<li>The request contains the client's current clock time - for identification</li>
</ul></li>
<li>The server logs the time the client's request arrived and then sends a reply containing:
<ul>
<li>The client's clock time - for identification</li>
<li>The server's clock time - when the request arrived at the server</li>
<li>The server's clock time - when the reply is sent</li>
<li>The time the server's clock was last synchronized - providing the age of the synchronization</li>
</ul></li>
<li>The client logs the time the reply is received - using its own clock</li>
</ul>
<p>When the client receives the reply, it can deduce the total round-trip delay which is the sum of:</p>
<ul>
<li>How long the request took to reach the server</li>
<li>How long the server took to construct the reply</li>
<li>How long the reply took to reach the client</li>
</ul>
<p>This exchange is repeated typically five times, before the client synchronizes its clock to the server's clock, subtracting the latency (delay) introduced by the network.</p>
<p>Having your own NTP server on your network allows tighter clock synchronization as the network latency is minimized.</p>
<p>The Reference Station can be placed into its dedicated NTP mode, by pressing the <strong>MODE</strong> button until NTP is highlighted in the display and pausing there.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/NTP.gif"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/NTP.gif" alt="Animation of selecting NTP mode" /></a> </div>
<div class="center-block text-center"> <em>Selecting NTP mode</em> </div></p>
<p>The Reference Station will first synchronize its Real Time Clock (RTC) using the very accurate time provided by the u-blox GNSS module. The module's Time Pulse (Pulse-Per-Second) signal is connect to the ESP32 as an interrupt. The ESP32's RTC is synchronized to Universal Time Coordinate (UTC) on the rising edge of the TP signal using the time contained in the UBX-TIM-TP message.</p>
<p>The WIZnet W5500 interrupt signal is also connected to the ESP32, allowing the ESP32 to accurately log when each NTP request arrives.</p>
<p>The Reference Station will respond to each NTP request within a few 10's of milliseconds.</p>
<p>If desired, you can log all NTP requests to a file on the microSD card, and/or print them as diagnostic messages. The log and messages contain the NTP timing information and the IP Address and port of the Client.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/NTP_Diagnostics.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/1/0/NTP_Diagnostics.png" alt="The system debug menu showing how to enable the NTP diagnostics" /></a> </div>
<div class="center-block text-center"> <em>System Debug Menu - NTP Diagnostics (Click for a closer look)</em> </div></p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/NTP_Logging.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/2/1/0/NTP_Logging.png" alt="The logging menu showing how to log the NTP requests" /></a> </div>
<div class="center-block text-center"> <em>Logging Menu - Log NTP Requests</em> </div></p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/NTP_Log.png"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/0/NTP_Log.png" alt="NTP requests log" /></a> </div>
<div class="center-block text-center"> <em>Logged NTP Requests</em> </div></p>
<p>We have been using <a href="https://www.meinbergglobal.com/english/sw/ntp.htm#ntp_stable">Meinberg NTP</a> to synchronize Windows PCs to the Reference Station - please see the <a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/ntp/#ntp-on-windows">Product Manual</a> for more details.</p>
<p>NTP uses its own epoch - midnight January 1st 1900. This is different to the standard Unix epoch - midnight January 1st 1970 - and the GPS epoch - midnight January 6th 1980. The times shown in the log and diagnostic messages use the NTP epoch. You can use online calculators to convert between the different epochs:</p>
<ul>
<li><a href="https://weirdo.cloud/">https://weirdo.cloud/</a></li>
<li><a href="https://www.unixtimestamp.com/">https://www.unixtimestamp.com/</a></li>
<li><a href="https://www.labsat.co.uk/index.php/en/gps-time-calculator">https://www.labsat.co.uk/index.php/en/gps-time-calculator</a></li>
</ul> <a name="#system-configuration"></a>
<h2 id="system-configuration">System Configuration</h2>
<p>The SparkFun RTK products are versatile GNSS receivers straight out of the box and can be used with little or no configuration. Additionally, the line of RTK products from SparkFun are immensely configurable. Please see the <a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/">SparkFun RTK Product Manual</a> for detailed descriptions of all the available features on the RTK products.</p> <a name="#tried-and-tested-configurations"></a>
<h2 id="tried-and-tested-configurations">Tried and Tested Configurations</h2>
<p>The RTK Reference Station does <em>so</em> much that it is difficult for us to methodically test <em>everything</em> it is capable of.</p>
<p>We also need to be honest and say that the RTK firmware uses almost all of the RAM available on the ESP32-WROOM, especially on the Reference Station where we need to reserve additional RAM for the SDIO (SD_MMC) microSD interface and to buffer the high-bandwidth SPI data from the GNSS module. The Reference Station is slightly compromised as we do not have enough RAM to run WiFi, Bluetooth, SDIO and Ethernet at the same time, while pulling high message rate data from the GNSS.</p>
<p>The list below contains configurations that we have tried and tested, and have found to work well. But you will notice some missing configurations - like supporting TCP Client and Server over WiFi - for the reason outlined above.</p>
<ul>
<li>Base Mode: Survey-In or Fixed Position; NTRIP Server enabled - corrections are sent to the NTRIP Caster via Ethernet
<ul>
<li>Tested with rtk2go.com</li>
<li>A measurement rate of 1Hz is recommended (the default is 4Hz)</li>
</ul></li>
<li>Base Mode: Configuration via Bluetooth
<ul>
<li>Tested with Serial Bluetooth Terminal on Android</li>
</ul></li>
<li>Rover Mode: NTRIP Client enabled - corrections received from the NTRIP Caster via Ethernet
<ul>
<li>Tested with rtk2go.com</li>
<li>A measurement rate of 1Hz is recommended (the default is 4Hz)</li>
</ul></li>
<li>Rover Mode: NTRIP Client with location display on (e.g.) SW Maps
<ul>
<li>Tested using SW Maps on Android</li>
<li>SW Maps connected to rtk2go.com NTRIP Server / Caster via WiFi and providing corrections to the Reference Station via Bluetooth</li>
<li>Real-time display of Reference Station location and position accuracy via Bluetooth</li>
</ul></li>
<li>Rover Mode: Configuration via Bluetooth
<ul>
<li>Tested with Serial Bluetooth Terminal on Android</li>
</ul></li>
<li>NTP Mode
<ul>
<li>Tested with Raspberry Pi (with ntp and ntpq) and Windows PC (with <a href="https://www.meinbergglobal.com/english/sw/ntp.htm#ntp_stable">Meinberg NTP</a> - see the <a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/ntp/#ntp-on-windows">Product Manual</a> for details)</li>
<li>Excellent agreement with NTP Pool servers</li>
</ul></li>
<li>Configure-Via-Ethernet Mode
<ul>
<li>Reference Station is booted into a dedicated mode to allow configuration via a web page over Ethernet</li>
<li>The Ethernet IP address is displayed on the OLED display</li>
<li>Supports microSD file upload / download and deletion</li>
</ul></li>
<li>Configure-Via-WiFi Mode
<ul>
<li>Identical to the other RTK products</li>
<li>Both Access Point (Hotspot) and network modes are supported</li>
</ul></li>
<li>TCP Client: provision of NMEA and / or UBX GNSS messages to an external TCP Server via Ethernet
<ul>
<li>Configured via the Ethernet Menu / configuration tab</li>
<li>NMEA and / or UBX messages can be sent to an external TCP server (to its IP address or URL)</li>
</ul></li>
<li>Firmware Update: update Over-The-Air via WiFi</li>
</ul>
<h3>Things Which Work - If You Are Careful</h3>
<p>As we mentioned above, the Reference Station RTK firmware uses almost all of the ESP32-WROOM's RAM. Unfortunately this means you can not have both WiFi and Bluetooth running simultaneously for example. It also complicates things if you use additional RAM by: using the ESP-NOW radio link; or allocate extra RAM for high rate GNSS message storage.</p>
<p>The following configurations do work, but you do need to proceed carefully:</p>
<ul>
<li>ESP-NOW:
<ul>
<li>The E-Pair Mode does work, you can use the ESP-NOW radio link to send correction data from a Reference Station Base to a RTK Rover, but only if Bluetooth is disabled</li>
<li>Disable Bluetooth via the System Menu. Select "b" twice to: first select BLE mode; and then to disable Bluetooth completely</li>
<li>Restart the system using the System Menu \ Debug Menu: enter "s" followed by "d" followed by "r" to restart the Reference Station. This ensures the RAM used by Bluetooth is released</li>
<li>Select the E-Pair option by pressing the MODE button until "E-Pair" is displayed</li>
<li>Pair the Reference Station Base with an RTK Rover and the Rover will achieve RTK-Fix</li>
<li>Please see the <a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/menu_radios/">Product Manual</a> for more details</li>
</ul></li>
<li>RXM-RAWX and RXM-SFRBX Logging at 20Hz
<ul>
<li>The Reference Station can log RXM-RAWX and RXM-SFRBX at 20Hz, but only if you increase the size of the GNSS Handler Buffer</li>
<li>Start by disabling Bluetooth as described above</li>
<li>Open the System Menu \ Debug Menu and select option 35. Increase the GNSS Handler Buffer to 16384 - 65535 bytes for best results</li>
<li>Restart the Reference Station and then use the GNSS Receiver Menu to increase the measurement rate to 20Hz</li>
<li>For best results, use a freshly-formatted microSD card. The card write speed can reduce dramatically if it contains multiple files</li>
</ul></li>
</ul>
<h3>Unsupported Configurations</h3>
<p>The following is a summary of the configurations which the Reference Station does not <em>currently</em> support (as of firmware 3.4):</p>
<ul>
<li>Base Mode: Survey-In or Fixed Position; NTRIP Server enabled - corrections sent via WiFi</li>
<li>Rover Mode: NTRIP Client enabled - corrections received via WiFi</li>
<li>Firmware Update: update via Ethernet</li>
</ul> <a name="#firmware-updates-and-customization"></a>
<h2 id="firmware-updates-and-customization">Firmware Updates and Customization</h2>
<p>The RTK Reference Station is open source hardware meaning you have total access to the <a href="https://github.com/sparkfun/SparkFun_RTK_Firmware">firmware</a> and <a href="https://github.com/sparkfun/SparkFun_RTK_Reference_Station">hardware</a>.</p>
<p>From time to time SparkFun will release new firmware for the RTK product line to add and improve functionality. We've made updating the firmware as easy as possible. Please see <a href="https://sparkfun.github.io/SparkFun_RTK_Firmware/firmware_update/">Updating RTK Firmware</a> for a step by step tutorial.</p> <a name="#troubleshooting"></a>
<h2 id="troubleshooting">Troubleshooting</h2>
<div class="alert alert-info" role="alert">
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
<strong> Not working as expected and need help? </strong> <br /><br />
If you need technical assistance and more information on a product that is not working as you expected, we recommend heading on over to the <a href="https://www.sparkfun.com/technical_assistance">SparkFun Technical Assistance</a> page for some initial troubleshooting. <br /><br />
<div class="center-block text-center"> <a href="https://www.sparkfun.com/technical_assistance" class="btn btn-default">SparkFun Technical Assistance Page</a> </div><br /><br />
If you don't find what you need there, the <a href="https://forum.sparkfun.com/index.php">SparkFun Forums</a> are a great place to find and ask for help. The best place to ask about the RTK product range is the <a href="https://forum.sparkfun.com/viewforum.php?f=116">Global Positioning Forum</a>. If this is your first visit, you'll need to <a href="https://forum.sparkfun.com/ucp.php?mode=register">create a Forum Account</a> to search product forums and post questions.<br /><br />
<div class="text-center"><a href="https://forum.sparkfun.com/ucp.php?mode=register" class="btn btn-default">Create New Forum Account</a> <a class="btn btn-danger" href="https://forum.sparkfun.com/index.php" role="button">Log Into SparkFun Forums</a></div>
</div> <a name="#resources-and-going-further"></a>
<h2 id="resources-and-going-further">Resources and Going Further</h2>
<p>We hope you enjoy using the RTK Reference Station as much as we have!</p>
<p>Here are the pertinent technical documents for the RTK Reference Station:</p>
<ul>
<li><a href="https://docs.sparkfun.com/SparkFun_RTK_Firmware/">RTK Product Manual</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_RTK_Reference_Station">Hardware GitHub Repo</a> (contains the open source hardware electronics and enclosure design)</li>
<li><a href="https://cdn.sparkfun.com/assets/c/e/c/2/9/Schematic.pdf">Schematic</a></li>
<li><a href="https://cdn.sparkfun.com/assets/5/c/2/9/b/SparkFun_HF-A_Custom__Top_View__v3.zip">Case Dimensions</a></li>
<li><a href="https://cdn.sparkfun.com/assets/8/b/6/2/a/Dimensions.png">PCB Dimensions</a></li>
<li><a href="https://cdn.sparkfun.com/assets/f/8/d/6/d/ZED-F9P-02B_DataSheet_UBX-21023276.pdf">ZED-F9P GNSS Receiver Datasheet</a></li>
<li><a href="https://cdn.sparkfun.com/assets/learn_tutorials/1/4/6/3/MAX17048-MAX17049.pdf">MAX17048 Fuel Gauge IC</a></li>
<li><a href="https://cdn.sparkfun.com/assets/d/5/c/c/a/ATECC608A-CryptoAuthentication-Device-Summary-Data-Sheet-DS40001977B.pdf">ATECC608A Crypto Co-processor Datasheet Summary</a></li>
<li><a href="https://cdn.sparkfun.com/assets/2/9/1/5/5/w5500_ds_v109e.pdf">WIZnet W5500 Datasheet</a></li>
<li><a href="https://cdn.sparkfun.com/assets/6/9/b/9/7/Ag9900M-datasheet-ultra-miniature-isolated-Power-over-Ethernet-POE-module.pdf">Ag9900M PoE Module Datasheet</a></li>
<li><a href="https://cdn.sparkfun.com/assets/b/f/e/c/e/LPJ0284GDNL.pdf">RJ45 Ethernet Mag Jack Datasheet</a></li>
</ul>
<p>Here are the links to the firmware, update tools and stand-alone code examples:</p>
<ul>
<li><a href="https://github.com/sparkfun/SparkFun_RTK_Firmware_Binaries">RTK Firmware Binaries</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_RTK_Firmware_Uploader">RTK Firmware Uploader</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_RTK_Firmware">RTK Firmware Source</a> (contains the firmware that runs SparkFun RTK products)</li>
<li><a href="https://github.com/sparkfun/SparkFun_RTK_Firmware_Binaries/tree/main/u-blox_Update_GUI">u-blox GNSS Firmware Update GUI</a> (Windows only. Sorry!)</li>
<li><a href="https://github.com/sparkfun/SparkFun_RTK_Reference_Station/tree/main/Reference_Station_Test_Sketches">Arduino Examples / Test Sketches</a></li>
</ul>
<p>Check out these additional tutorials for your perusal:</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-626">
<a href="https://learn.sparkfun.com/tutorials/arduino-weather-shield-hookup-guide-v12">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/2/6/Arduino_Weather_Shield_2.jpg)"></div>
</div>
<h3 class="title">Arduino Weather Shield Hookup Guide V12</h3>
</a>
<div class="description">
Read humidity, pressure and luminosity quickly and easily. Add wind speed, direction and rain gauge for full weather station capabilities. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="626">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">17</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-904">
<a href="https://learn.sparkfun.com/tutorials/gps-geo-mapping-at-the-push-of-a-button">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/9/0/4/GPS_Tutorial-01.jpg)"></div>
</div>
<h3 class="title">GPS Geo-Mapping at the Push of a Button</h3>
</a>
<div class="description">
Let's ramp up our GPS tracking skills with KML files and Google Earth. We'll make a tracker that logs location and allows us to visualize our steps with Google Earth. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="904">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">10</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-1033">
<a href="https://learn.sparkfun.com/tutorials/basic-autonomous-kit-for-sphero-rvr-assembly-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/0/3/3/15302-SparkFun_Basic_Autonomous_Kit_for_Sphero_RVR-01-thumb2.jpg)"></div>
</div>
<h3 class="title">Basic Autonomous Kit for Sphero RVR Assembly Guide</h3>
</a>
<div class="description">
Get your Basic Autonomous Kit for Sphero RVR all hooked up with this guide! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1033">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">1</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-3210">
<a href="https://learn.sparkfun.com/tutorials/sparkfun-rtk-reference-station-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/3/2/1/0/SparkFun_GNSS_RTK_Reference_Station_-_05.jpg)"></div>
</div>
<h3 class="title">SparkFun RTK Reference Station Hookup Guide</h3>
</a>
<div class="description">
Setup the RTK Reference Station in minutes and start sending RTCM NTRIP corrections to your favourite caster. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="3210">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">3</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-852">
<a href="https://learn.sparkfun.com/tutorials/esp32-thing-plus-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/8/5/2/SparkFun_Transparent_Graphical_OLED_Breakout__Qwiic__Hookup_Guide-01.jpg)"></div>
</div>
<h3 class="title">ESP32 Thing Plus Hookup Guide</h3>
</a>
<div class="description">
Hookup guide for the ESP32 Thing Plus (Micro-B) using the ESP32 WROOM's WiFi/Bluetooth system-on-chip in Arduino. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="852">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">9</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-908">
<a href="https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/9/0/8/USB-to-serial_converter_CH340-closeup.jpg)"></div>
</div>
<h3 class="title">How to Install CH340 Drivers</h3>
</a>
<div class="description">
How to install CH340 drivers (if you need them) on Windows, Mac OS X, and Linux. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="908">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">11</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-1362">
<a href="https://learn.sparkfun.com/tutorials/setting-up-a-rover-base-rtk-system">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/3/6/2/GNSS_RTK_DIY_Surveying_Tutorial.jpg)"></div>
</div>
<h3 class="title">Setting up a Rover Base RTK System</h3>
</a>
<div class="description">
Getting GNSS RTCM correction data from a base to a rover is easy with a serial telemetry radio! We'll show you how to get your high precision RTK GNSS system setup and running. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1362">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">17</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-1363">
<a href="https://learn.sparkfun.com/tutorials/how-to-build-a-diy-gnss-reference-station">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/3/6/3/Roof_Enclosure.jpg)"></div>
</div>
<h3 class="title">How to Build a DIY GNSS Reference Station</h3>
</a>
<div class="description">
Learn how to affix a GNSS antenna, use PPP to get its ECEF coordinates and then broadcast your own RTCM data over the internet and cellular using NTRIP to increase rover reception to 10km! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1363">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">19</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<hr>
<p><a href="https://learn.sparkfun.com">learn.sparkfun.com</a> |
<a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>
| SparkFun Electronics | Niwot, Colorado</p>
Sending Sensor Data via Bluetooth
[redacted]
https://www.sparkfun.com/users/17435
urn:uuid:183c0000-7dcd-0e68-2657-fe4531edd335
2023-04-14T00:00:00-06:00
<h1>
Sending Sensor Data via Bluetooth <small>a <a href="https://learn.sparkfun.com/tutorials">learn.sparkfun.com tutorial</a></small>
</h1>
<h3>
Available online at: <a href="http://sfe.io/t3177">http://sfe.io/t3177</a>
</h3>
<a name="#introduction"></a>
<h2 id="introduction">Introduction</h2>
<p>Is there anything more tedious than having to connect dozens of wires to get your latest project up and running? Wouldn’t it be nice if there was some way to wirelessly send data over short distances and eliminate the need for all those pesky wires? Enter Bluetooth! It’s a relatively simple way for electronic devices to wirelessly connect by using a radio frequency to share data over short distances. In this tutorial, we’ll teach you how to get started using Bluetooth in your projects by sending sensor data between multiple SparkFun Thing Plus ESP32 Wroom USB-C devices.</p> <a name="#the-project-displaying-accelerometer-data-over-bluetooth"></a>
<h2 id="the-project-displaying-accelerometer-data-over-bluetooth">The Project: Displaying Accelerometer Data Over Bluetooth</h2>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/7/7/2.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/7/7/2.jpg" alt="alt text" /></a> </div></p>
<p>For this project, we are going to connect an accelerometer and SparkFun Thing Plus ESP32 board to display axis data over the serial monitor. We’ll keep this example as simple as possible by using Qwiic Connect hardware to eliminate the need for soldering. The parts list is simple; two ESP32 Thing Plus Wroom USB-C boards, a Qwiic SparkFun Triple Axis Accelerometer, a Qwiic cable, lithium ion battery, and USB-C cable for programming. You can add all these items to your cart using the wishlist below.</p>
<p> </p>
<script src="https://www.sparkfun.com/wish_lists/171248.js"></script>
<p> </p> <a name="#step-1-downloading-the-ch340c-driver"></a>
<h2 id="step-1-downloading-the-ch340c-driver">Step 1: Downloading the CH340C Driver</h2>
<p>The SparkFun Thing Plus ESP32 Wroom USB-C requires a different driver than previous versions of the ESP32 Thing Plus. Since CH340C serial-to-UART is used on this board, you will need to download the CH340C driver.</p>
<p>If you do not already have this driver downloaded, instructions can be found here:</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-908">
<a href="https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/9/0/8/USB-to-serial_converter_CH340-closeup.jpg)"></div>
</div>
<h3 class="title">How to Install CH340 Drivers</h3>
<h4 class="metaline">August 6, 2019</h4> </a>
<div class="description">
How to install CH340 drivers (if you need them) on Windows, Mac OS X, and Linux. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="908">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">11</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<div class="alert alert-warning"> Note: Use the “Pages” tabs on the right to navigate through different sections of the tutorial. Make sure that you use the instructions that match your computer's operating system (Windows, MacOSX, or Linux).</div> <a name="#step-2-setting-up-arduino-ide"></a>
<h2 id="step-2-setting-up-arduino-ide">Step 2: Setting up Arduino IDE</h2>
<p>In order to send code to the ESP32 Thing Plus C, you will need to install the latest ESP32 board definitions in the Arduino IDE.</p>
<p>Here is the <a href="https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json">.json file</a> for the Espressif Arduino core.</p>
<p>If you are not familiar with manually installing third-party cores, follow the instructions in this tutorial:</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-1265">
<a href="https://learn.sparkfun.com/tutorials/installing-board-definitions-in-the-arduino-ide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/1/2/6/5/sparkfun_boards.PNG)"></div>
</div>
<h3 class="title">Installing Board Definitions in the Arduino IDE</h3>
<h4 class="metaline">September 9, 2020</h4> </a>
<div class="description">
How do I install a custom Arduino board/core? It's easy! This tutorial will go over how to install an Arduino board definition using the Arduino Board Manager. We will also go over manually installing third-party cores, such as the board definitions required for many of the SparkFun development boards. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1265">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">3</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<p>Instructions for manually installing third party cores are also available <a href="https://docs.arduino.cc/learn/starting-guide/cores">here</a></p>
<p>When selecting a board to program in the Arduino IDE, you should choose the SparkFun ESP32 Thing Plus C from the Tools drop down menu (Tools -> Board -> ESP32 -> SparkFun ESP32 Thing Plus C).</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/7/7/BoardManagerTutorial1.PNG"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/7/7/BoardManagerTutorial1.PNG" alt="alt text" /></a> </div></p> <a name="#step-3-connecting-the-hardware"></a>
<h2 id="step-3-connecting-the-hardware">Step 3: Connecting the Hardware</h2>
<p>Connect the KX132 Accelerometer to one of the Thing Plus boards using a Qwiic cable, this is the "Server" board. Upload the Server code to the board using the USB-C cable (diagram shown above in "The Project" section). Feel free to use a different accelerometer, but make sure to remove the KX132 library and import the library compatible for the other module. When uploading is complete, disconnect this board from the computer. Now, connect the Lithium Ion battery to the "Server" Thing Plus. Next, connect the second Thing Plus to your computer and upload the Client code to the board.
<div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/7/8/image0.jpeg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/7/8/image0.jpeg" alt="alt text" /></a> </div></p> <a name="#step-4-uploading-the-code"></a>
<h2 id="step-4-uploading-the-code">Step 4: Uploading the Code</h2>
<p>As mentioned in the "Connecting Hardware" section, we have two Arduino sketches to upload to the Thing Plus boards. Upload the first sketch to the Server Thing Plus and the second sketch to the Client Thing Plus. If you are having trouble uploading the code, review the troubleshooting tips below and ensure that the CH340C Driver is properly installed onto your computer.</p>
<p><strong>Server code:</strong></p>
<pre><code>/*
Based on Neil Kolban example for IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleServer.cpp
Ported to Arduino ESP32 by Evandro Copercini
updates by chegewara
*/
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>
#include <Wire.h> // Must include Wire library for I2C
#include <SparkFun_KX13X.h> // Click here to get the library: http://librarymanager/All#SparkFun_KX13X
SparkFun_KX132 kxAccel;
outputData myData; // Struct for the accelerometer's data
// See the following for generating UUIDs:
// https://www.uuidgenerator.net/
#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"
#define CHARACTERISTIC_ACCX_UUID "fb6cf981-31cc-4f36-af06-1f2f3e919840"
#define CHARACTERISTIC_ACCY_UUID "35b17f66-73d1-4c92-92f6-9032ef1987d3"
#define CHARACTERISTIC_ACCZ_UUID "3cab9341-e65b-46e9-83ed-c8a7f2f841c2"
// makes the chracteristic globlal
static BLECharacteristic *pCharacteristicAccX;
static BLECharacteristic *pCharacteristicAccY;
static BLECharacteristic *pCharacteristicAccZ;
void setup() {
Serial.begin(115200);
Serial.println("Starting BLE work!");
Wire.begin();
//connect the accelerometer to the board using qwiic cables
if (!kxAccel.begin())
{
Serial.println("Could not communicate with the the KX13X.");
while (1)
;
}
if (kxAccel.softwareReset())
Serial.println("Reset.");
// Give some time for the accelerometer to reset.
// It needs two, but give it five for good measure.
delay(5);
// Many settings for KX13X can only be
// applied when the accelerometer is powered down.
// However there are many that can be changed "on-the-fly"
// check datasheet for more info, or the comments in the
// "...regs.h" file which specify which can be changed when.
kxAccel.enableAccel(false);
kxAccel.setRange(SFE_KX132_RANGE16G); // 16g Range
// kxAccel.setRange(SFE_KX134_RANGE16G); // 16g for the KX134
kxAccel.enableDataEngine(); // Enables the bit that indicates data is ready.
// kxAccel.setOutputDataRate(); // Default is 50Hz
kxAccel.enableAccel();
BLEDevice::init("Long name works now");
BLEServer *pServer = BLEDevice::createServer();
BLEService *pService = pServer->createService(SERVICE_UUID);
BLECharacteristic *pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristicAccX = pService->createCharacteristic(
CHARACTERISTIC_ACCX_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristicAccY = pService->createCharacteristic(
CHARACTERISTIC_ACCY_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristicAccZ = pService->createCharacteristic(
CHARACTERISTIC_ACCZ_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristic->setValue("Hello World says Neil");
pService->start();
// BLEAdvertising *pAdvertising = pServer->getAdvertising(); // this still is working for backward compatibility
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pAdvertising->setScanResponse(true);
pAdvertising->setMinPreferred(0x06);
pAdvertising->setMinPreferred(0x12);
BLEDevice::startAdvertising();
Serial.println("Characteristic defined!");
}
void loop() {
// put your main code here, to run repeatedly:
if (kxAccel.dataReady())
{
float tempX = myData.xData;//gives the pCharacteristic the pointer insted of the value
pCharacteristicAccX->setValue(tempX);//setValue takes uint8_t, uint16_t, uint32_t, int, float, double and string
float tempY =myData.yData;
pCharacteristicAccY->setValue(tempY);
float tempZ = myData.zData;
pCharacteristicAccZ->setValue(tempZ);
kxAccel.getAccelData(&myData);
Serial.print(tempX, 4);
Serial.print("\t");
Serial.print(tempY, 4);
Serial.print("\t");
Serial.println(tempZ, 4);
}
delay(100);// 100 ms
}
</code></pre>
<p><strong>Client code:</strong></p>
<pre><code>/**
* A BLE client example that is rich in capabilities.
* There is a lot new capabilities implemented.
* author unknown
* updated by chegewara
*/
#include "BLEDevice.h"
//#include "BLEScan.h"
// The remote service we wish to connect to.
static BLEUUID serviceUUID("4fafc201-1fb5-459e-8fcc-c5c9c331914b");
// The characteristic of the remote service we are interested in.
static BLEUUID charUUID("beb5483e-36e1-4688-b7f5-ea07361b26a8");
static BLEUUID charAccXUUID("fb6cf981-31cc-4f36-af06-1f2f3e919840");// use the same UUID as on the server
static BLEUUID charAccYUUID("35b17f66-73d1-4c92-92f6-9032ef1987d3");
static BLEUUID charAccZUUID("3cab9341-e65b-46e9-83ed-c8a7f2f841c2");
//#define CHARACTERISTIC_ACC_UUID
static boolean doConnect = false;
static boolean connected = false;
static boolean doScan = false;
static BLERemoteCharacteristic* pRemoteCharacteristic;
static BLERemoteCharacteristic* pRemoteCharacteristicACCx;
static BLERemoteCharacteristic* pRemoteCharacteristicACCy;
static BLERemoteCharacteristic* pRemoteCharacteristicACCz;
static BLEAdvertisedDevice* myDevice;
static void notifyCallback(
BLERemoteCharacteristic* pBLERemoteCharacteristic,
uint8_t* pData,
size_t length,
bool isNotify) {
Serial.print("Notify callback for characteristic ");
Serial.print(pBLERemoteCharacteristic->getUUID().toString().c_str());
Serial.print(" of data length ");
Serial.println(length);
Serial.print("data: ");
Serial.println((char*)pData);
}
class MyClientCallback : public BLEClientCallbacks {
void onConnect(BLEClient* pclient) {
}
void onDisconnect(BLEClient* pclient) {
connected = false;
Serial.println("onDisconnect");
}
};
bool connectToServer() {
Serial.print("Forming a connection to ");
Serial.println(myDevice->getAddress().toString().c_str());
BLEClient* pClient = BLEDevice::createClient();
Serial.println(" - Created client");
pClient->setClientCallbacks(new MyClientCallback());
// Connect to the remove BLE Server.
pClient->connect(myDevice); // if you pass BLEAdvertisedDevice instead of address, it will be recognized type of peer device address (public or private)
Serial.println(" - Connected to server");
pClient->setMTU(517); //set client to request maximum MTU from server (default is 23 otherwise)
// Obtain a reference to the service we are after in the remote BLE server.
BLERemoteService* pRemoteService = pClient->getService(serviceUUID);
if (pRemoteService == nullptr) {
Serial.print("Failed to find our service UUID: ");
Serial.println(serviceUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our service");
// Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID);
if (pRemoteCharacteristic == nullptr) {
Serial.print("Failed to find our characteristic UUID: ");
Serial.println(charUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
//ACC X Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristicACCx = pRemoteService->getCharacteristic(charAccXUUID);
if (pRemoteCharacteristicACCx == nullptr) {
Serial.print("Failed to find our characteristic UUID x: ");
Serial.println(charAccXUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
//ACC Y Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristicACCy = pRemoteService->getCharacteristic(charAccYUUID);
if (pRemoteCharacteristicACCy == nullptr) {
Serial.print("Failed to find our characteristic UUID y: ");
Serial.println(charAccYUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
//ACC Z Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristicACCz = pRemoteService->getCharacteristic(charAccZUUID);
if (pRemoteCharacteristicACCz == nullptr) {
Serial.print("Failed to find our characteristic UUID z: ");
Serial.println(charAccZUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
// Read the value of the characteristic.
if(pRemoteCharacteristic->canRead()) {
std::string value = pRemoteCharacteristic->readValue();
Serial.print("The characteristic value was: ");
Serial.println(value.c_str());
}
if(pRemoteCharacteristic->canNotify())
pRemoteCharacteristic->registerForNotify(notifyCallback);
connected = true;
return true;
}
/**
* Scan for BLE servers and find the first one that advertises the service we are looking for.
*/
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
/**
* Called for each advertising BLE server.
*/
void onResult(BLEAdvertisedDevice advertisedDevice) {
Serial.print("BLE Advertised Device found: ");
Serial.println(advertisedDevice.toString().c_str());
// We have found a device, let us now see if it contains the service we are looking for.
if (advertisedDevice.haveServiceUUID() && advertisedDevice.isAdvertisingService(serviceUUID)) {
BLEDevice::getScan()->stop();
myDevice = new BLEAdvertisedDevice(advertisedDevice);
doConnect = true;
doScan = true;
} // Found our server
} // onResult
}; // MyAdvertisedDeviceCallbacks
void setup() {
Serial.begin(115200);
Serial.println("Starting Arduino BLE Client application...");
BLEDevice::init("");
// Retrieve a Scanner and set the callback we want to use to be informed when we
// have detected a new device. Specify that we want active scanning and start the
// scan to run for 5 seconds.
BLEScan* pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setInterval(1349);
pBLEScan->setWindow(449);
pBLEScan->setActiveScan(true);
pBLEScan->start(5, false);
} // End of setup.
// This is the Arduino main loop function.
void loop() {
// If the flag "doConnect" is true then we have scanned for and found the desired
// BLE Server with which we wish to connect. Now we connect to it. Once we are
// connected we set the connected flag to be true.
if (doConnect == true) {
if (connectToServer()) {
Serial.println("We are now connected to the BLE Server.");
} else {
Serial.println("We have failed to connect to the server; there is nothin more we will do.");
}
doConnect = false;
}
// If we are connected to a peer BLE Server, update the characteristic each time we are reached
// with the current time since boot.
if (connected) {
String newValue = "Time since boot: " + String(millis()/1000);
//Serial.println("Setting new characteristic value to \"" + newValue + "\"");
// Set the characteristic's value to be the array of bytes that is actually a string.
// pRemoteCharacteristic->writeValue(newValue.c_str(), newValue.length());//***********JKO
}else if(doScan){
BLEDevice::getScan()->start(0); // this is just example to start scan after disconnect, most likely there is better way to do it in arduino
}
// read the Characteristics and store them in a variable
// This also makes the print command do float handling
float XValue = pRemoteCharacteristicACCx->readFloat();
float YValue = pRemoteCharacteristicACCy->readFloat();
float ZValue = pRemoteCharacteristicACCz->readFloat();
Serial.print(XValue);
Serial.print("\t");
Serial.print(YValue);
Serial.print("\t");
Serial.println(ZValue);
delay(100); // Delay a 100 ms between loops.
} // End of loop
</code></pre> <a name="#step-5-serial-monitor"></a>
<h2 id="step-5-serial-monitor">Step 5: Serial Monitor</h2>
<p>To see if uploading the code was successful, access the Serial Monitor of the Client Thing Plus in the top right corner of the IDE. There will be readings in the X, Y, and Z directions from the accelerometer. If you do not see readings, make sure the Baud rate is reading at 115200. Successful Serial Monitor reading should look similar to the diagram below. How'd you do? Comment for assistance or let us know about your experience!</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/7/7/SerialPortTutorial2.PNG"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/7/7/SerialPortTutorial2.PNG" alt="alt text" /></a> </div></p> <a name="#troubleshooting"></a>
<h2 id="troubleshooting">Troubleshooting</h2>
<p>If you’re having trouble uploading code to either of the ESP32 boards, ensure that the CH340C driver is installed correctly by following the instructions outlined in Step One of this tutorial. You should also ensure that “Sparkfun ESP32 Thing Plus C” is the selected board. You can confirm this by clicking on the “Tools” tab at the top of the Arduino IDE and then looking to see what the “Board” is listed as. Note that there are multiple boards with names that are similar to “Sparkfun ESP32 Thing Plus C”. Take care to choose the correct board.</p> <a name="#resources-and-going-further"></a>
<h2 id="resources-and-going-further">Resources and Going Further</h2>
<p>The focus of this project was to get you started with sending sensor data over Bluetooth. Feel free to play around by adding different sensors to the project and adjusting the code accordingly.</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-82">
<a href="https://learn.sparkfun.com/tutorials/i2c">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/8/2/I2C-Block-Diagram.jpg)"></div>
</div>
<h3 class="title">I2C</h3>
</a>
<div class="description">
An introduction to I2C, one of the main embedded communications protocols in use today. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="82">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">136</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-117">
<a href="https://learn.sparkfun.com/tutorials/bluetooth-basics">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/1/7/blut.jpg)"></div>
</div>
<h3 class="title">Bluetooth Basics</h3>
</a>
<div class="description">
An overview of the Bluetooth wireless technology. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="117">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">44</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-1429">
<a href="https://learn.sparkfun.com/tutorials/triple-axis-accelerometer-breakout---kx13x-qwiic-hookup-guide-">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/4/2/9/KX13x_Breakout-Thumbnail.jpg)"></div>
</div>
<h3 class="title">Triple Axis Accelerometer Breakout - KX13x (Qwiic) Hookup Guide </h3>
</a>
<div class="description">
Get started measuring acceleration and vibration using the Triple Axis Accelerometer Breakout - KX134 (Qwiic) & KX132 (Qwiic) following this Hookup Guide. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1429">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-2353">
<a href="https://learn.sparkfun.com/tutorials/esp32-thing-plus-usb-c-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/2/3/5/3/assembly_batt.jpg)"></div>
</div>
<h3 class="title">ESP32 Thing Plus (USB-C) Hookup Guide</h3>
</a>
<div class="description">
Meet the updated ESP32 Thing Plus (USB-C) development board. We have included some extra bells and whistles that users will appreciate, so check out out hookup guide for all the details! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="2353">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">2</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div> <a name="#recognition"></a>
<h2 id="recognition">Recognition</h2>
<p>This tutorial was developed by a team of high school students from The Innovation Center at St. Vrain Valley School District. Special thanks to Frances Hudson, Aidan Lawall, and Jonathan Otte for their work on this tutorial. <a href="https://innovation.svvsd.org/about/our-story/">The Innovation Center</a> is an educational center in Longmont, CO that connects students to real-world experiences in engineering, aviation, media production, and more.</p>
<hr>
<p><a href="https://learn.sparkfun.com">learn.sparkfun.com</a> |
<a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>
| SparkFun Electronics | Niwot, Colorado</p>
Connecting Thing Plus Matter to Google Nest Hub
Mariah
https://www.sparkfun.com/users/17336
urn:uuid:26c080a0-f0e5-2c1b-8e1c-8d432886e544
2023-03-30T00:00:00-06:00
<h1>
Connecting Thing Plus Matter to Google Nest Hub <small>a <a href="https://learn.sparkfun.com/tutorials">learn.sparkfun.com tutorial</a></small>
</h1>
<h3>
Available online at: <a href="http://sfe.io/t3111">http://sfe.io/t3111</a>
</h3>
<a name="#introduction"></a>
<h2 id="introduction">Introduction</h2>
<p>Hey y’all! We’re chomping at the bit to share some Matter projects with you, so our amazing engineer Dryw has created a demo for y’all to follow along with! In this example, he is helping us get our Thing Plus Matter board connected to a Google Nest Hub, as well as the Google Home app, and set up as a light device. This tutorial is available in both video and written format, so pick your favorite and let’s dive in!</p>
<p><strong>Note:</strong> If this is your first time working with the Thing Plus Matter, be sure to check out the <a href="https://learn.sparkfun.com/tutorials/sparkfun-thing-plus-matter---mgm240p-hookup-guide?_ga=2.29288956.1720065218.1678473580-1075750680.1650579414">hookup guide</a> and <a href="https://www.youtube.com/watch?v=POVRRuVCr-Q&ab_channel=SparkFunElectronics">walkthrough video</a> to get started with Simplicity Studio, as you will need all of that up and running before following along here.</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/QtY499N2AFY/?autohide=1&border=0&wmode=opaque&enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div> <a name="#required-materials"></a>
<h2 id="required-materials">Required Materials</h2>
<p>Here are all of the parts you’ll need to follow along with this tutorial; this project is super self-contained, so hooking it up is as simple as plugging in your board! The smart hub used in this demo is the Google Nest Hub (Gen 2), which you can find <a href="https://store.google.com/us/product/nest_hub_2nd_gen?pli=1&hl=en-US">here</a>; because we are taking advantage of a Google product, you will also need access to an Android device to get connected.</p>
<p> </p>
<script src="https://www.sparkfun.com/wish_lists/171175.js"></script>
<p> </p> <a name="#thing-plus-matter-setup-and-programming"></a>
<h2 id="thing-plus-matter-setup-and-programming">Thing Plus Matter Setup and Programming</h2>
<p>Alrighty! So, first things first, we’re gonna hop over to Simplicity Studio with our board connected, and install an SDK for Matter integration. To get to that, click on the ‘Install’ button on the top left of the studio; this will open up the installation manager, and from there we’ll select ‘Manage Installed Packages’. With that opened up, make your way to the ‘SDK’ tab and install the latest ‘Silicon Labs Matter’ package.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/image.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/1/1/image.png" alt="Open Installation Manager" /></a> </div></p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/image__1_.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/1/1/image__1_.png" alt="Install Package" /></a> </div></p>
<p>Now that that’s done, close out of the installation manager and navigate to the ‘Example Projects & Demos’ tab: here we’ll select the ‘Matter’ filter on the left, and hit ‘Create’ on the ‘Matter - SoC Light over Thread’ resource.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/createproject.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/1/1/createproject.png" alt="Create Matter Light Project" /></a> </div></p>
<p>This will prompt a window where you can customize the project and name it to your liking; for today, we’re gonna stick with the default settings and hit ‘Finish’ to build out the project. Next, we’ll go up to the top left and right click on the ‘MatterLightOverThread’ dropdown, hover over ‘Run As’, and select ‘1 Silicon Labs ARM Program’. This will compile the project and automatically flash your board!</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/runas.png"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/runas.png" alt="Run As" /></a> </div></p>
<p>With that done, we’ll head up to the top right of the studio and select ‘Launcher’. Once there, scroll down within the filters options and select ‘Bootloader’ – we’re looking for the 512kB device option, which is down at the bottom of the available options. When you’ve found it, go ahead and hit create and step through the same ‘Run As’ process as before.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/launcher.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/1/1/launcher.png" alt="Bootloader" /></a> </div></p> <a name="#new-page"></a>
<h2 id="new-page">Google Nest Hub Matter Device Setup</h2>
<p>And that’s it for the Thing Plus Matter side of things, so let’s talk about getting your Google Nest Hub set up! You’ll want to go to your <a href="https://console.home.google.com/projects">Google Home Console</a> and sign in with the same account that your hub is connected to. Once you’re logged in, go ahead and create a project. This will pull up a page to either add this project to an existing one, or create a new one; we’re going to create a new one and name it something fun, like ‘Matter Test’. With our project created, we’re going to select ‘Add Matter Integration’ inside the Developer Console.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/mattertest.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/1/1/1/mattertest.png" alt="Add Matter Integration" /></a> </div></p>
<p>From there, we’ll need to enter some device information to the setup page. First, a fancy name for it and the type of device we’re creating, which in this case is a light.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/mylight.png"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/mylight.png" alt="My Light" /></a> </div></p>
<p>We also need to include a Test Vendor ID (VID) and Product ID (PID) for our device. To locate these, open up your preferred serial terminal (for this demo, we used <a href="https://www.putty.org/">PuTTY</a>) with your board connected via USB. Select the COM port for your board, set the baud rate to 115200 and the connection type as Serial, then open up the terminal.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/putty.png"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/putty.png" alt="PuTTY" /></a> </div></p>
<p>Once inside, type in ‘help’ and hit enter. This will produce a list of commands available to you, of which we will be using ‘config’, so go ahead and type that in next.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/vendorid.png"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/vendorid.png" alt="VID and PID" /></a> </div></p>
<p>This will output our VID and PID, which you can now input into the device setup page on the Google Home Developer Console (we’ll be using the hexadecimal values). With that done, we can hit ‘Continue’ and move on! There will be a page brought up where you can customize the images for your device, but we’re just going to leave it as is for now.</p>
<p>Since we’ve got it open, we’ll go ahead and input ‘onboardingcodes ble’ into our serial terminal. This will output a link to a QR code for the test certificate to our board. Copy that link and throw it into a web browser; we’ll need it later. If, for some reason, you are unable to acquire the link via serial terminal, it is available <a href="https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A6FCJ142C00KA0648G00">here</a>!</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/qrurl.png"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/1/1/1/qrurl.png" alt="QR Code URL" /></a> </div></p>
<p>Woohoo! Almost there! Next we need to commission our Thing Plus Matter to the Google Nest Hub; to do this, go ahead and get your Android device paired with the hub. Once that’s done, open up the Google Home app and click the ‘+’ in the top left corner, then select ‘Setup a Device’. Create a new device and select which home your Google Nest Hub is connected to; this will prompt a bluetooth scan to start running. This scan can be a bit finicky sometimes, so if for some reason it does not detect your device, you will be prompted to select a device type: select ‘Matter Enabled Device’ and scan the QR code we pulled up earlier. The commissioning process will automatically begin at this point, and takes about a minute or so to wrap up. Once connected, select a room and set a name for the device; this should complete the setup process and the device should appear as a light both in your Google Home app and on the Nest Hub, and you will be able to control the onboard LED from either of those devices!</p> <a name="#resources"></a>
<h2 id="resources">Resources</h2>
<div class="row">
<div class="col-md-6">
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-2979">
<a href="https://learn.sparkfun.com/tutorials/sparkfun-thing-plus-matter---mgm240p-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter_-_USB_Assembly.jpg)"></div>
</div>
<h3 class="title">SparkFun Thing Plus Matter - MGM240P Hookup Guide</h3>
<h4 class="metaline">March 2, 2023</h4> </a>
<div class="description">
Get started with the SparkFun Thing Plus Matter - MGM240P with this Hookup Guide. This guide covers the hardware on this development board along with a quick intro to using the board with Silicon Labs' Simplicity Studio IDE. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="2979">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">3</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="col-md-6"> <div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/POVRRuVCr-Q/?autohide=1&border=0&wmode=opaque&enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p style="text-align:center"> <em> A video walkthrough of how to get up and running with Thing Plus Matter and Simplicity Studio</em></p> </div>
</div>
<h3>Helpful Links</h3>
<ul>
<li><p><a href="https://store.google.com/us/product/nest_hub_2nd_gen?pli=1&hl=en-US">Google Nest Hub (Gen 2)</a></p></li>
<li><p><a href="https://console.home.google.com/projects">Google Home Console</a></p></li>
<li><p><a href="https://www.putty.org/">PuTTY</a></p></li>
<li><p><a href="https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A6FCJ142C00KA0648G00">Test Certificate (QR Code)</a></p></li>
</ul>
<hr>
<p><a href="https://learn.sparkfun.com">learn.sparkfun.com</a> |
<a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>
| SparkFun Electronics | Niwot, Colorado</p>
Displaying Sensor Data with Bluetooth
[redacted]
https://www.sparkfun.com/users/17831
urn:uuid:4119d315-b0fd-2d6c-e186-8c2833aa8311
2023-03-28T00:00:00-06:00
<h1>
Displaying Sensor Data with Bluetooth <small>a <a href="https://learn.sparkfun.com/tutorials">learn.sparkfun.com tutorial</a></small>
</h1>
<h3>
Available online at: <a href="http://sfe.io/t3078">http://sfe.io/t3078</a>
</h3>
<a name="#introduction"></a>
<h2 id="introduction">Introduction</h2>
<p>Bluetooth-enabled technology has become ubiquitous in today’s world. The average person would be hard pressed not to use Bluetooth during their daily activities. Although Bluetooth may seem difficult to work with, it’s fairly straightforward to start incorporating Bluetooth into your projects.</p>
<p>In our previous Bluetooth tutorial <a href="https://learn.sparkfun.com/tutorials/sending-sensor-data-via-bluetooth">Sending Sensor Data Via Bluetooth</a>, we showed how to use Bluetooth to transmit data from a triple axis accelerometer. Continuing off of the first tutorial, we are going to expand this project to include more capabilities for visualizing and interacting with your accelerometer data once you're transmitting.</p>
<p>For a refresher on that tutorial, check it out here:</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-3177">
<a href="https://learn.sparkfun.com/tutorials/sending-sensor-data-via-bluetooth">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/3/1/7/7/image0.jpeg)"></div>
</div>
<h3 class="title">Sending Sensor Data via Bluetooth</h3>
<h4 class="metaline">April 14, 2023</h4> </a>
<div class="description">
In this tutorial, we will show you how to get started on incorporating Bluetooth into your electronics projects. This project uses a SparkFun Thing Plus ESP32 Wroom USB-C to display data from a Triple Axis Accelerometer over Bluetooth. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="3177">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">6</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div> <a name="#the-project-displaying-accelerometer-data-over-bluetooth"></a>
<h2 id="the-project-displaying-accelerometer-data-over-bluetooth">The Project: Displaying Accelerometer Data Over Bluetooth</h2>
<p>For this project, we are going to connect an accelerometer to the SparkFun Thing Plus ESP32 board in order to display axis data using a few different methods. We’ll keep this example as simple as possible by using Qwiic Connect hardware to eliminate the need for soldering. The hardware is simple; it includes an ESP32 Thing Plus Wroom, and a Qwiic SparkFun Triple Axis Accelerometer module. You’ll also need a USB to USB-C cable to load code from the Arduino IDE onto your board, as well as a power supply for the ESP32 Thing Plus Wroom. You can add all the items that you will need for this project to your cart using the wishlist below.</p>
<p>Each option for displaying data will have a slightly different hardware hookup.</p>
<p> </p>
<script src="https://www.sparkfun.com/wish_lists/171614.js"></script>
<p> </p> <a name="#pick-your-display-method"></a>
<h2 id="pick-your-display-method">Pick Your Display Method</h2>
<p>For this tutorial, you are able to choose how you would like to display your data from the KX132 Triple Axis Accelerometer.</p>
<h4>Option 1: Display Data on an OLED</h4>
<p>Following the instructions for Option 1 will teach you how to view accelerometer data on an OLED attached to the client ESP32 board. You will need two ESP32 Thing Plus C boards, a KX132 Triple Axis Accelerometer, a Micro OLED Breakout(Qwiic), a USB A to USB C cable, and a power supply. Again, we recommend using the Lithium Ion Battery with JST-PH Connector for the server ESP32 board’s power supply. However, there are a variety of power sources that will work with this application.</p>
<h4>Option 2: Display Data over the Serial Monitor</h4>
<p>Following the instructions for Option 2 will allow you to view data from your accelerometer in real time through the Arduino IDE. You will need the following materials to complete this section of the tutorial: an ESP32 Thing Plus C board (X2), a KX132 Triple Axis Accelerometer, a USB A to USB C cable, and a power supply. We recommend using the Lithium Ion Battery with JST-PH Connector linked in this tutorial, but there are a variety of power sources that you can use to power an ESP32 Thing Plus.</p>
<h4>Option 3: Display Data on your Mobile Device</h4>
<p>Following the directions for Option 3 will show you how to display accelerometer data on your mobile device through a BLE app. For this section of the tutorial, you will need an ESP32 Thing Plus C board, a KX132 Triple Axis Accelerometer, and a USB A to USB C cable.</p> <a name="#option-1-displaying-data-with-an-oled-screen"></a>
<h2 id="option-1-displaying-data-with-an-oled-screen">Option 1: Displaying Data With an OLED Screen</h2>
<p><em>OLED displays are all the rage right now, and for good reason; use this option to display your data on the latest technology.</em></p>
<h4>Option 1: Hardware Setup</h4>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/7/8/image0__2_.jpeg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/7/8/image0__2_.jpeg" alt="alt text" /></a> </div></p>
<p>Rather than displaying accelerometer data on the serial monitor or a mobile device, option three of this tutorial connects one ESP32 board to an OLED. The other ESP32 board is connected to a KX132 Triple Axis Accelerometer and a power source.</p>
<h4>Option 1: Uploading The Code</h4>
<p>Similar to Option 1, you will need to designate one ESP32 board as the client and the other as the server. The client board is attached to the OLED breakout, while the server board is attached to the accelerometer.</p>
<p>Upload the following code to the <strong>client</strong> ESP32:</p>
<pre><code>/*
This is the BLE OLED example.
Upload this code to your Client device, which should be
connected via I2C to your OLED display. This example will display
accelerometer data from your Server Device. Enjoy!
Created by: Aidan Lawall
*/
#include <SparkFun_Qwiic_OLED.h>
QwiicMicroOLED myOLED;
// QwiicTransparentOLED myOLED;
// QwiicNarrowOLED myOLED;
#include "BLEDevice.h"
char disptext1[16];
char disptext2[16];
char disptext3[16];
char buffer[16];
float result1;
float result2;
float result3;
// The remote service we wish to connect to.
static BLEUUID serviceUUID("4fafc201-1fb5-459e-8fcc-c5c9c331914b");
// The characteristic of the remote service we are interested in.
static BLEUUID charUUID("beb5483e-36e1-4688-b7f5-ea07361b26a8");
static BLEUUID charAccXUUID("fb6cf981-31cc-4f36-af06-1f2f3e919840");// use the same UUID as on the server
static BLEUUID charAccYUUID("35b17f66-73d1-4c92-92f6-9032ef1987d3");
static BLEUUID charAccZUUID("3cab9341-e65b-46e9-83ed-c8a7f2f841c2");
//#define CHARACTERISTIC_ACC_UUID
static boolean doConnect = false;
static boolean connected = false;
static boolean doScan = false;
static BLERemoteCharacteristic* pRemoteCharacteristic;
static BLERemoteCharacteristic* pRemoteCharacteristicACCx;
static BLERemoteCharacteristic* pRemoteCharacteristicACCy;
static BLERemoteCharacteristic* pRemoteCharacteristicACCz;
static BLEAdvertisedDevice* myDevice;
static void notifyCallback(
BLERemoteCharacteristic* pBLERemoteCharacteristic,
uint8_t* pData,
size_t length,
bool isNotify) {
Serial.print("Notify callback for characteristic ");
Serial.print(pBLERemoteCharacteristic->getUUID().toString().c_str());
Serial.print(" of data length ");
Serial.println(length);
Serial.print("data: ");
Serial.println((char*)pData);
}
class MyClientCallback : public BLEClientCallbacks {
void onConnect(BLEClient* pclient) {
}
void onDisconnect(BLEClient* pclient) {
connected = false;
Serial.println("onDisconnect");
}
};
bool connectToServer() {
Serial.print("Forming a connection to ");
Serial.println(myDevice->getAddress().toString().c_str());
BLEClient* pClient = BLEDevice::createClient();
Serial.println(" - Created client");
pClient->setClientCallbacks(new MyClientCallback());
// Connect to the remove BLE Server.
pClient->connect(myDevice); // if you pass BLEAdvertisedDevice instead of address, it will be recognized type of peer device address (public or private)
Serial.println(" - Connected to server");
pClient->setMTU(517); //set client to request maximum MTU from server (default is 23 otherwise)
// Obtain a reference to the service we are after in the remote BLE server.
BLERemoteService* pRemoteService = pClient->getService(serviceUUID);
if (pRemoteService == nullptr) {
Serial.print("Failed to find our service UUID: ");
Serial.println(serviceUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our service");
// Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID);
if (pRemoteCharacteristic == nullptr) {
Serial.print("Failed to find our characteristic UUID: ");
Serial.println(charUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
//ACC X Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristicACCx = pRemoteService->getCharacteristic(charAccXUUID);
if (pRemoteCharacteristicACCx == nullptr) {
Serial.print("Failed to find our characteristic UUID x: ");
Serial.println(charAccXUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
//ACC Y Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristicACCy = pRemoteService->getCharacteristic(charAccYUUID);
if (pRemoteCharacteristicACCy == nullptr) {
Serial.print("Failed to find our characteristic UUID y: ");
Serial.println(charAccYUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
//ACC Z Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristicACCz = pRemoteService->getCharacteristic(charAccZUUID);
if (pRemoteCharacteristicACCz == nullptr) {
Serial.print("Failed to find our characteristic UUID z: ");
Serial.println(charAccZUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
// Read the value of the characteristic.
if(pRemoteCharacteristic->canRead()) {
std::string value = pRemoteCharacteristic->readValue();
Serial.print("The characteristic value was: ");
Serial.println(value.c_str());
}
if(pRemoteCharacteristic->canNotify())
pRemoteCharacteristic->registerForNotify(notifyCallback);
connected = true;
return true;
}
/**
* Scan for BLE servers and find the first one that advertises the service we are looking for.
*/
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
/**
* Called for each advertising BLE server.
*/
void onResult(BLEAdvertisedDevice advertisedDevice) {
Serial.print("BLE Advertised Device found: ");
Serial.println(advertisedDevice.toString().c_str());
// We have found a device, let us now see if it contains the service we are looking for.
if (advertisedDevice.haveServiceUUID() && advertisedDevice.isAdvertisingService(serviceUUID)) {
BLEDevice::getScan()->stop();
myDevice = new BLEAdvertisedDevice(advertisedDevice);
doConnect = true;
doScan = true;
} // Found our server
} // onResult
}; // MyAdvertisedDeviceCallbacks
void setup() {
Serial.begin(115200);
Serial.println("Starting Arduino BLE Client application...");
BLEDevice::init("");
Wire.begin();
// Retrieve a Scanner and set the callback we want to use to be informed when we
// have detected a new device. Specify that we want active scanning and start the
// scan to run for 5 seconds.
BLEScan* pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setInterval(1349);
pBLEScan->setWindow(449);
pBLEScan->setActiveScan(true);
pBLEScan->start(5, false);
if (myOLED.begin() == false)
{
Serial.println("Device begin failed. Freezing...");
while (true)
;
}
Serial.println("Begin success");
} // End of setup.
// This is the Arduino main loop function.
void loop() {
// If the flag "doConnect" is true then we have scanned for and found the desired
// BLE Server with which we wish to connect. Now we connect to it. Once we are
// connected we set the connected flag to be true.
if (doConnect == true) {
if (connectToServer()) {
Serial.println("We are now connected to the BLE Server.");
} else {
Serial.println("We have failed to connect to the server; there is nothin more we will do.");
}
doConnect = false;
}
// If we are connected to a peer BLE Server, update the characteristic each time we are reached
// with the current time since boot.
if (connected) {
String newValue = "Time since boot: " + String(millis()/1000);
//Serial.println("Setting new characteristic value to \"" + newValue + "\"");
// Set the characteristic's value to be the array of bytes that is actually a string.
// pRemoteCharacteristic->writeValue(newValue.c_str(), newValue.length());//***********JKO
}else if(doScan){
BLEDevice::getScan()->start(0); // this is just example to start scan after disconnect, most likely there is better way to do it in arduino
}
// read the Characteristics and store them in a variable
// This also makes the print command do float handling
float XValue = pRemoteCharacteristicACCx->readFloat();
float YValue = pRemoteCharacteristicACCy->readFloat();
float ZValue = pRemoteCharacteristicACCz->readFloat();
Serial.print(XValue);
Serial.print("\t");
Serial.print(YValue);
Serial.print("\t");
Serial.println(ZValue);
myOLED.erase();
result1 = XValue;
result2 = YValue;
result3 = ZValue;
OLED();
delay(100); // Delay a 100 ms between loops.
} // End of loop
void OLED() {
String accDataX = "X:"; // our message to display on OLED
String accDataY = "Y:";
String accDataZ = "Z:";
myOLED.text(0, 0, accDataX);
myOLED.text(0, 15, accDataY);
myOLED.text(0, 30, accDataZ);
//Change float "result" into string to display onto OLED
sprintf(disptext1, "%sm/s^2", dtostrf(result1, 1, 2, buffer));
sprintf(disptext2, "%sm/s^2", dtostrf(result2, 1, 2, buffer));
sprintf(disptext3, "%sm/s^2", dtostrf(result3, 1, 2, buffer));
myOLED.text(10, 0, disptext1, 1);
myOLED.text(10, 15, disptext2, 1);
myOLED.text(10, 30, disptext3, 1);
myOLED.display();
}
</code></pre>
<p>Upload the following code to the <strong>server</strong> ESP32:</p>
<pre><code>/*
Based on Neil Kolban example for IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleServer.cpp
Ported to Arduino ESP32 by Evandro Copercini
updates by chegewara.
More updates by Jonathan Otte
*/
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>
#include <Wire.h> // Must include Wire library for I2C
#include <SparkFun_KX13X.h> // Click here to get the library: http://librarymanager/All#SparkFun_KX13X
SparkFun_KX132 kxAccel;
outputData myData; // Struct for the accelerometer's data
// See the following for generating UUIDs:
// https://www.uuidgenerator.net/
#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"
#define CHARACTERISTIC_ACCX_UUID "fb6cf981-31cc-4f36-af06-1f2f3e919840"
#define CHARACTERISTIC_ACCY_UUID "35b17f66-73d1-4c92-92f6-9032ef1987d3"
#define CHARACTERISTIC_ACCZ_UUID "3cab9341-e65b-46e9-83ed-c8a7f2f841c2"
// makes the chracteristic globlal
static BLECharacteristic *pCharacteristicAccX;
static BLECharacteristic *pCharacteristicAccY;
static BLECharacteristic *pCharacteristicAccZ;
void setup() {
Serial.begin(115200);
Serial.println("Starting BLE work!");
Wire.begin();
//connect the accelerometer to the board using qwiic cables
if (!kxAccel.begin())
{
Serial.println("Could not communicate with the the KX13X.");
while (1)
;
}
if (kxAccel.softwareReset())
Serial.println("Reset.");
// Give some time for the accelerometer to reset.
// It needs two, but give it five for good measure.
delay(5);
// Many settings for KX13X can only be
// applied when the accelerometer is powered down.
// However there are many that can be changed "on-the-fly"
// check datasheet for more info, or the comments in the
// "...regs.h" file which specify which can be changed when.
kxAccel.enableAccel(false);
kxAccel.setRange(SFE_KX132_RANGE16G); // 16g Range
// kxAccel.setRange(SFE_KX134_RANGE16G); // 16g for the KX134
kxAccel.enableDataEngine(); // Enables the bit that indicates data is ready.
// kxAccel.setOutputDataRate(); // Default is 50Hz
kxAccel.enableAccel();
BLEDevice::init("Long name works now");
BLEServer *pServer = BLEDevice::createServer();
BLEService *pService = pServer->createService(SERVICE_UUID);
BLECharacteristic *pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristicAccX = pService->createCharacteristic(
CHARACTERISTIC_ACCX_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristicAccY = pService->createCharacteristic(
CHARACTERISTIC_ACCY_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristicAccZ = pService->createCharacteristic(
CHARACTERISTIC_ACCZ_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristic->setValue("Hello World says Neil");
pService->start();
// BLEAdvertising *pAdvertising = pServer->getAdvertising(); // this still is working for backward compatibility
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pAdvertising->setScanResponse(true);
pAdvertising->setMinPreferred(0x06);
pAdvertising->setMinPreferred(0x12);
BLEDevice::startAdvertising();
Serial.println("Characteristic defined!");
}
void loop() {
// put your main code here, to run repeatedly:
if (kxAccel.dataReady())
{
float tempX = myData.xData;//gives the pCharacteristic the pointer insted of the value
pCharacteristicAccX->setValue(tempX);//setValue takes uint8_t, uint16_t, uint32_t, int, float, double and string
float tempY =myData.yData;
pCharacteristicAccY->setValue(tempY);
float tempZ = myData.zData;
pCharacteristicAccZ->setValue(tempZ);
kxAccel.getAccelData(&myData);
Serial.print(tempX, 4);
Serial.print("\t");
Serial.print(tempY, 4);
Serial.print("\t");
Serial.println(tempZ, 4);
}
delay(100);// 100 ms
}
</code></pre>
<h4>Option 1: Results</h4>
<p>After uploading the code above you will receive values (m/s<sup>2</sup>) for the X, Y, and Z directions. If this is not working for you, press the reset button on both ESP32 devices. This application can work for various sensors, simply substitute the sensor libraries and convert the data outputs. You have officially created an IoT network!</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/7/8/1__2_.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/7/8/1__2_.jpg" alt="alt text" /></a> </div></p> <a name="#option-2-displaying-data-with-a-python-graph"></a>
<h2 id="option-2-displaying-data-with-a-python-graph">Option 2: Displaying Data With a Python Graph</h2>
<p><em>A simple, no-frills option for when you want to see your data graphically displayed and updated in real time.</em></p>
<h4>Option 2: Hardware</h4>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/7/8/image3.jpeg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/7/8/image3.jpeg" alt="alt text" /></a> </div></p>
<p>The set-up for Option 2 of this tutorial is fairly straightforward, simply connect the KX132 Triple Axis Accelerometer to the server ESP32 board via the Qwiic connection. You will also need to attach some form of power source to the client ESP32 board that is not connected to your computer.</p>
<h4>Option 2: Uploading The Code</h4>
<p>Designate one ESP32 as the <strong>client</strong> board and the other as the <strong>server</strong>.</p>
<p>Upload the following code to the <strong>client</strong> ESP32:</p>
<pre><code> /**
* A BLE client example that is rich in capabilities.
* There is a lot new capabilities implemented.
* author unknown
* updated by chegewara
*/
#include "BLEDevice.h"
//#include "BLEScan.h"
// The remote service we wish to connect to.
static BLEUUID serviceUUID("4fafc201-1fb5-459e-8fcc-c5c9c331914b");
// The characteristic of the remote service we are interested in.
static BLEUUID charUUID("beb5483e-36e1-4688-b7f5-ea07361b26a8");
static BLEUUID charAccXUUID("fb6cf981-31cc-4f36-af06-1f2f3e919840");// use the same UUID as on the server
static BLEUUID charAccYUUID("35b17f66-73d1-4c92-92f6-9032ef1987d3");
static BLEUUID charAccZUUID("3cab9341-e65b-46e9-83ed-c8a7f2f841c2");
//#define CHARACTERISTIC_ACC_UUID
static boolean doConnect = false;
static boolean connected = false;
static boolean doScan = false;
static BLERemoteCharacteristic* pRemoteCharacteristic;
static BLERemoteCharacteristic* pRemoteCharacteristicACCx;
static BLERemoteCharacteristic* pRemoteCharacteristicACCy;
static BLERemoteCharacteristic* pRemoteCharacteristicACCz;
static BLEAdvertisedDevice* myDevice;
static void notifyCallback(
BLERemoteCharacteristic* pBLERemoteCharacteristic,
uint8_t* pData,
size_t length,
bool isNotify) {
Serial.print("Notify callback for characteristic ");
Serial.print(pBLERemoteCharacteristic->getUUID().toString().c_str());
Serial.print(" of data length ");
Serial.println(length);
Serial.print("data: ");
Serial.println((char*)pData);
}
class MyClientCallback : public BLEClientCallbacks {
void onConnect(BLEClient* pclient) {
}
void onDisconnect(BLEClient* pclient) {
connected = false;
Serial.println("onDisconnect");
}
};
bool connectToServer() {
Serial.print("Forming a connection to ");
Serial.println(myDevice->getAddress().toString().c_str());
BLEClient* pClient = BLEDevice::createClient();
Serial.println(" - Created client");
pClient->setClientCallbacks(new MyClientCallback());
// Connect to the remove BLE Server.
pClient->connect(myDevice); // if you pass BLEAdvertisedDevice instead of address, it will be recognized type of peer device address (public or private)
Serial.println(" - Connected to server");
pClient->setMTU(517); //set client to request maximum MTU from server (default is 23 otherwise)
// Obtain a reference to the service we are after in the remote BLE server.
BLERemoteService* pRemoteService = pClient->getService(serviceUUID);
if (pRemoteService == nullptr) {
Serial.print("Failed to find our service UUID: ");
Serial.println(serviceUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our service");
// Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID);
if (pRemoteCharacteristic == nullptr) {
Serial.print("Failed to find our characteristic UUID: ");
Serial.println(charUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
//ACC X Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristicACCx = pRemoteService->getCharacteristic(charAccXUUID);
if (pRemoteCharacteristicACCx == nullptr) {
Serial.print("Failed to find our characteristic UUID x: ");
Serial.println(charAccXUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
//ACC Y Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristicACCy = pRemoteService->getCharacteristic(charAccYUUID);
if (pRemoteCharacteristicACCy == nullptr) {
Serial.print("Failed to find our characteristic UUID y: ");
Serial.println(charAccYUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
//ACC Z Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristicACCz = pRemoteService->getCharacteristic(charAccZUUID);
if (pRemoteCharacteristicACCz == nullptr) {
Serial.print("Failed to find our characteristic UUID z: ");
Serial.println(charAccZUUID.toString().c_str());
pClient->disconnect();
return false;
}
Serial.println(" - Found our characteristic");
// Read the value of the characteristic.
if(pRemoteCharacteristic->canRead()) {
std::string value = pRemoteCharacteristic->readValue();
Serial.print("The characteristic value was: ");
Serial.println(value.c_str());
}
if(pRemoteCharacteristic->canNotify())
pRemoteCharacteristic->registerForNotify(notifyCallback);
connected = true;
return true;
}
/**
* Scan for BLE servers and find the first one that advertises the service we are looking for.
*/
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
/**
* Called for each advertising BLE server.
*/
void onResult(BLEAdvertisedDevice advertisedDevice) {
Serial.print("BLE Advertised Device found: ");
Serial.println(advertisedDevice.toString().c_str());
// We have found a device, let us now see if it contains the service we are looking for.
if (advertisedDevice.haveServiceUUID() && advertisedDevice.isAdvertisingService(serviceUUID)) {
BLEDevice::getScan()->stop();
myDevice = new BLEAdvertisedDevice(advertisedDevice);
doConnect = true;
doScan = true;
} // Found our server
} // onResult
}; // MyAdvertisedDeviceCallbacks
void setup() {
Serial.begin(115200);
Serial.println("Starting Arduino BLE Client application...");
BLEDevice::init("");
// Retrieve a Scanner and set the callback we want to use to be informed when we
// have detected a new device. Specify that we want active scanning and start the
// scan to run for 5 seconds.
BLEScan* pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setInterval(1349);
pBLEScan->setWindow(449);
pBLEScan->setActiveScan(true);
pBLEScan->start(5, false);
} // End of setup.
// This is the Arduino main loop function.
void loop() {
// If the flag "doConnect" is true then we have scanned for and found the desired
// BLE Server with which we wish to connect. Now we connect to it. Once we are
// connected we set the connected flag to be true.
if (doConnect == true) {
if (connectToServer()) {
Serial.println("We are now connected to the BLE Server.");
} else {
Serial.println("We have failed to connect to the server; there is nothin more we will do.");
}
doConnect = false;
}
// If we are connected to a peer BLE Server, update the characteristic each time we are reached
// with the current time since boot.
if (connected) {
String newValue = "Time since boot: " + String(millis()/1000);
//Serial.println("Setting new characteristic value to \"" + newValue + "\"");
// Set the characteristic's value to be the array of bytes that is actually a string.
// pRemoteCharacteristic->writeValue(newValue.c_str(), newValue.length());//***********JKO
}else if(doScan){
BLEDevice::getScan()->start(0); // this is just example to start scan after disconnect, most likely there is better way to do it in arduino
}
// read the Characteristics and store them in a variable
// This also makes the print command do float handling
float XValue = pRemoteCharacteristicACCx->readFloat();
float YValue = pRemoteCharacteristicACCy->readFloat();
float ZValue = pRemoteCharacteristicACCz->readFloat();
Serial.print(XValue);
Serial.print("\t");
Serial.print(YValue);
Serial.print("\t");
Serial.println(ZValue);
delay(100); // Delay a 100 ms between loops.
} // End of loop
</code></pre>
<p>Upload the following code to the <strong>server</strong> ESP32:</p>
<pre><code>/*
Based on Neil Kolban example for IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleServer.cpp
Ported to Arduino ESP32 by Evandro Copercini
updates by chegewara
*/
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>
#include <Wire.h> // Must include Wire library for I2C
#include <SparkFun_KX13X.h> // Click here to get the library: http://librarymanager/All#SparkFun_KX13X
SparkFun_KX132 kxAccel;
outputData myData; // Struct for the accelerometer's data
// See the following for generating UUIDs:
// https://www.uuidgenerator.net/
#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"
#define CHARACTERISTIC_ACCX_UUID "fb6cf981-31cc-4f36-af06-1f2f3e919840"
#define CHARACTERISTIC_ACCY_UUID "35b17f66-73d1-4c92-92f6-9032ef1987d3"
#define CHARACTERISTIC_ACCZ_UUID "3cab9341-e65b-46e9-83ed-c8a7f2f841c2"
// makes the chracteristic globlal
static BLECharacteristic *pCharacteristicAccX;
static BLECharacteristic *pCharacteristicAccY;
static BLECharacteristic *pCharacteristicAccZ;
void setup() {
Serial.begin(115200);
Serial.println("Starting BLE work!");
Wire.begin();
//connect the accelerometer to the board using qwiic cables
if (!kxAccel.begin())
{
Serial.println("Could not communicate with the the KX13X.");
while (1)
;
}
if (kxAccel.softwareReset())
Serial.println("Reset.");
// Give some time for the accelerometer to reset.
// It needs two, but give it five for good measure.
delay(5);
// Many settings for KX13X can only be
// applied when the accelerometer is powered down.
// However there are many that can be changed "on-the-fly"
// check datasheet for more info, or the comments in the
// "...regs.h" file which specify which can be changed when.
kxAccel.enableAccel(false);
kxAccel.setRange(SFE_KX132_RANGE16G); // 16g Range
// kxAccel.setRange(SFE_KX134_RANGE16G); // 16g for the KX134
kxAccel.enableDataEngine(); // Enables the bit that indicates data is ready.
// kxAccel.setOutputDataRate(); // Default is 50Hz
kxAccel.enableAccel();
BLEDevice::init("Long name works now");
BLEServer *pServer = BLEDevice::createServer();
BLEService *pService = pServer->createService(SERVICE_UUID);
BLECharacteristic *pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristicAccX = pService->createCharacteristic(
CHARACTERISTIC_ACCX_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristicAccY = pService->createCharacteristic(
CHARACTERISTIC_ACCY_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristicAccZ = pService->createCharacteristic(
CHARACTERISTIC_ACCZ_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristic->setValue("Hello World says Neil");
pService->start();
// BLEAdvertising *pAdvertising = pServer->getAdvertising(); // this still is working for backward compatibility
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pAdvertising->setScanResponse(true);
pAdvertising->setMinPreferred(0x06);
pAdvertising->setMinPreferred(0x12);
BLEDevice::startAdvertising();
Serial.println("Characteristic defined!");
}
void loop() {
// put your main code here, to run repeatedly:
if (kxAccel.dataReady())
{
float tempX = myData.xData;//gives the pCharacteristic the pointer insted of the value
pCharacteristicAccX->setValue(tempX);//setValue takes uint8_t, uint16_t, uint32_t, int, float, double and string
float tempY =myData.yData;
pCharacteristicAccY->setValue(tempY);
float tempZ = myData.zData;
pCharacteristicAccZ->setValue(tempZ);
kxAccel.getAccelData(&myData);
Serial.print(tempX, 4);
Serial.print("\t");
Serial.print(tempY, 4);
Serial.print("\t");
Serial.println(tempZ, 4);
}
delay(100);// 100 ms
}
</code></pre>
<p>You will also need to run this Python script, which uses matplotlib to give a live plot of your data, so you can monitor at a glance.</p>
<pre><code>import serial.tools.list_ports as port_list
import serial
import numpy as np
import matplotlib.pyplot as plt
import re
import threading
import time
comPort = "";
np.set_printoptions(precision=5, suppress=True)
ports = list(port_list.comports())
for p in ports:
print ("Found Device on "+p[0]+" - "+p[1])
if 'USB-SERIAL CH340' in p[1]:
comPort = p[0]
print ("Thing Plus on "+p[0]+" - "+p[1])
serialPort = serial.Serial(port=comPort, baudrate=115200)
serialString = "" # Used to hold data coming over UART
dataGrid = []
dataGrid = np.empty([1,3])
#plt.ioff()
#plt.show()
class PHThread (threading.Thread):
def __init__(self, threadID, name):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
def run(self):
print( "Starting " + self.name)
PlotHandler()
print( "Exiting " + self.name)
class DCThread (threading.Thread):
def __init__(self, threadID, name):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
def run(self):
print( "Starting " + self.name)
DataCollector()
print( "Exiting " + self.name)
def PlotHandler():
while 1:
plt.plot(np.array([3, 8, 1, 10]),'-r')
#plt.plot(dataGrid[:,1],'-g')
#plt.plot(dataGrid[:,2],'-b')
plt.title("ACC data")
plt.xlabel("Data")
plt.ylabel("Samples")
plt.grid()
plt.show(block=False)
time.sleep(0.1)
def DataCollector():
data = np.zeros(450)
while 1:
# Wait until there is data waiting in the serial buffer
if serialPort.in_waiting > 0:
# Read data out of the buffer until a carraige return / new line is found
serialString = serialPort.readline()
# Print the contents of the serial data
try:
str = serialString.decode("Ascii").rstrip()
except:
pass
fields = str.split('\t')
nums = [float(fields[0]), float(fields[1]), float(fields[2])]
data = np.append(data,nums,axis=0)
if(np.shape(data)[0] > 450):
data = data[-450:]
# Print the contents of the serial data
#print(str)
#print(data)
global dataGrid
dataGrid = data.reshape(-1,3)
#try:
#PH = PHThread(1,"PH")
#PH.start()
DC = DCThread(2,"DC")
DC.start()
#except:
# print( "Error: unable to start thread")
while 1:
plt.clf()
plt.ylim(-3,3)
plt.xlim(0,160)
plt.plot(dataGrid[:,0],'-r',label = 'x')
plt.plot(dataGrid[:,1],'-g',label = 'y')
plt.plot(dataGrid[:,2],'-b',label = 'z')
plt.plot(150,dataGrid[-1,0], 'or',markersize = 7)
plt.plot(150,dataGrid[-1,1], '*g',markersize = 7)
plt.plot(150,dataGrid[-1,2], 'Xb',markersize = 7)
plt.title("ACC data")
plt.xlabel("Samples")
plt.ylabel("G-force")
plt.legend()
#plt.grid()
plt.show(block=False)
plt.pause(0.05)
#time.sleep(0.1)
</code></pre>
<p>This example code is geared specifically towards our hardware setup. For another example of a live-updating Python graph, check out <a href="https://learn.sparkfun.com/tutorials/graph-sensor-data-with-python-and-matplotlib/introduction">this tutorial</a>.</p>
<h4>Option 2: Results</h4>
<p>Running this python script with the sensor hooked up via Bluetooth gives us this live updating graphs, that can show you visually what your accelerometer is experiencing. While this is a simple template, using the live updating plot is a great way to emulate the dashboard experience without paying for a license with room for personal customization.</p>
<div>
<center>
<iframe src="https://giphy.com/embed/GvJXe7pcRSRTgLHihX" width="480" height="270" frameBorder="0" class="giphy-embed" allowFullScreen></iframe><p><a href="https://giphy.com/gifs/GvJXe7pcRSRTgLHihX">via GIPHY</a></p>
</center>
</div> <a name="#option-3-displaying-data-with-a-phone"></a>
<h2 id="option-3-displaying-data-with-a-phone">Option 3: Displaying Data With a Phone</h2>
<p><em>Utilizing your phone as a dashboard is a convenient way to display data. There’s no sense in carting around a laptop when a smartphone can easily fit in the palm of your hand.</em></p>
<h4>Option 3: Hardware</h4>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/7/8/image1.jpeg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/7/8/image1.jpeg" alt="alt text" /></a> </div></p>
<p>Option 2 of this tutorial attaches an accelerometer to an ESP32 board that is connected to your computer. Following the instructions for this option also requires that you have a mobile device with a BLE app installed.</p>
<h4>Option 3: Uploading The Code</h4>
<p>Upload the following code to your ESP32 Thing Plus C:</p>
<pre><code>#include "BluetoothSerial.h"
#include <Wire.h>
#include <SparkFun_KX13X.h> // Click here to get the library: http://librarymanager/All#SparkFun_KX13X
SparkFun_KX132 kxAccel;
outputData myData; // Struct for the accelerometer's data
/* Check if Bluetooth configurations are enabled in the SDK */
/* If not, then you have to recompile the SDK */
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif
BluetoothSerial SerialBT;
float tempX = 0.0; //gives the characteristic the pointer instead of the value
float tempY = 0.0;
float tempZ = 0.0;
String FullString = "";
void setup() {
Serial.begin(115200);
Wire.begin();
SerialBT.begin(" SparkFun Server");
Serial.println("Bluetooth Started! Ready to pair...");
//connect the accelerometer to the board using qwiic cables
if (!kxAccel.begin())
{
Serial.println("Could not communicate with the the KX13X.");
while (1)
;
}
if (kxAccel.softwareReset())
Serial.println("Reset.");
// Give some time for the accelerometer to reset.
// It needs two, but give it five for good measure.
delay(5);
// Many settings for KX13X can only be
// applied when the accelerometer is powered down.
// However there are many that can be changed "on-the-fly"
// check datasheet for more info, or the comments in the
// "...regs.h" file which specify which can be changed when.
kxAccel.enableAccel(false);
kxAccel.setRange(SFE_KX132_RANGE16G); // 16g Range
// kxAccel.setRange(SFE_KX134_RANGE16G); // 16g for the KX134
kxAccel.enableDataEngine(); // Enables the bit that indicates data is ready.
// kxAccel.setOutputDataRate(); // Default is 50Hz
kxAccel.enableAccel();
}
void loop() {
if (kxAccel.dataReady())
{
tempX = myData.xData;//gives the pCharacteristic the pointer insted of the value
tempY =myData.yData;
tempZ = myData.zData;
kxAccel.getAccelData(&myData);
}
FullString = "X = " + String(tempX,3) + " Y = " + String(tempY,3) + " Z = "+ String(tempZ,3) + "\r\n";
for(int i = 0; i < FullString.length(); i++)
{
SerialBT.write(FullString.c_str()[i]);
Serial.write(FullString.c_str()[i]);
}
delay(20);
}
</code></pre>
<p>Next, download a BLE app. We used "Serial Bluetooth Terminal", which can be found <a href="https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal&hl=en_US&gl=US&pli=1">here</a> on the Google Play Store. If you have a different phone OS, there are many apps like it available for different phones. Connect to your ESP32 over Bluetooth through your BLE app.</p>
<h4>Option 3: Results</h4>
<p>Our accelerometer gave a live datafeed to the cell phone through the app. Establishing a connection to a phone using Bluetooth is a great jumping off point for countless applications.</p>
<div>
<center>
<iframe src="https://giphy.com/embed/cP8OFmDNxHocpkrILv" width="270" height="480" frameBorder="0" class="giphy-embed" allowFullScreen></iframe><p><a href="https://giphy.com/gifs/cP8OFmDNxHocpkrILv">via GIPHY</a></p>
</center>
</div> <a name="#troubleshooting"></a>
<h2 id="troubleshooting">Troubleshooting</h2>
<p>If you’re having trouble uploading code to either of the ESP32 boards, ensure that the CH340C driver is installed correctly by following the instructions outlined in Step One of this tutorial. You should also ensure that “Sparkfun ESP32 Thing Plus C” is the selected board. You can confirm this by clicking on the “Tools” tab at the top of the Arduino IDE and then looking to see what the “Board” is listed as. Note that there are multiple boards with names that are similar to “Sparkfun ESP32 Thing Plus C”. Take care to choose the correct board.</p> <a name="#resources-and-going-further"></a>
<h2 id="resources-and-going-further">Resources and Going Further</h2>
<p>Given a few modifications to the code, this project can be adjusted to accommodate a wide variety of sensors. Instead of the KX132 Triple Axis Accelerometer, try sending data from STTS22H Temperature Sensor or the SGP40 Air Quality Sensor! Collecting and storing data over a longer period of time could also be a useful extension of this project</p>
<p>The following tutorials may also be useful:</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-82">
<a href="https://learn.sparkfun.com/tutorials/i2c">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/8/2/I2C-Block-Diagram.jpg)"></div>
</div>
<h3 class="title">I2C</h3>
</a>
<div class="description">
An introduction to I2C, one of the main embedded communications protocols in use today. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="82">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">136</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-117">
<a href="https://learn.sparkfun.com/tutorials/bluetooth-basics">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/1/7/blut.jpg)"></div>
</div>
<h3 class="title">Bluetooth Basics</h3>
</a>
<div class="description">
An overview of the Bluetooth wireless technology. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="117">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">44</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-1429">
<a href="https://learn.sparkfun.com/tutorials/triple-axis-accelerometer-breakout---kx13x-qwiic-hookup-guide-">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/4/2/9/KX13x_Breakout-Thumbnail.jpg)"></div>
</div>
<h3 class="title">Triple Axis Accelerometer Breakout - KX13x (Qwiic) Hookup Guide </h3>
</a>
<div class="description">
Get started measuring acceleration and vibration using the Triple Axis Accelerometer Breakout - KX134 (Qwiic) & KX132 (Qwiic) following this Hookup Guide. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1429">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-2353">
<a href="https://learn.sparkfun.com/tutorials/esp32-thing-plus-usb-c-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/2/3/5/3/assembly_batt.jpg)"></div>
</div>
<h3 class="title">ESP32 Thing Plus (USB-C) Hookup Guide</h3>
</a>
<div class="description">
Meet the updated ESP32 Thing Plus (USB-C) development board. We have included some extra bells and whistles that users will appreciate, so check out out hookup guide for all the details! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="2353">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">2</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div> <a name="#recognition"></a>
<h2 id="recognition">Recognition</h2>
<p>This tutorial was developed by a team of high school students from The Innovation Center at St. Vrain Valley School District. Special thanks to Frances Hudson, Aidan Lawall, and Jonathan Otte for their work on this tutorial. <a href="https://innovation.svvsd.org/about/our-story/">The Innovation Center</a> is an educational center in Longmont, CO that connects students to real-world experiences in aviation, engineering, media production, and more.</p>
<hr>
<p><a href="https://learn.sparkfun.com">learn.sparkfun.com</a> |
<a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>
| SparkFun Electronics | Niwot, Colorado</p>
SparkFun Thing Plus - NINA-B306 Hookup Guide
El Duderino
https://www.sparkfun.com/users/17101
urn:uuid:d8e16727-97f8-563c-1859-51cc65b58329
2023-03-23T00:00:00-06:00
<h1>
SparkFun Thing Plus - NINA-B306 Hookup Guide <small>a <a href="https://learn.sparkfun.com/tutorials">learn.sparkfun.com tutorial</a></small>
</h1>
<h3>
Available online at: <a href="http://sfe.io/t2754">http://sfe.io/t2754</a>
</h3>
<a name="#introduction"></a>
<h2 id="introduction">Introduction</h2>
<p>The <a href="https://www.sparkfun.com/products/20854">SparkFun Thing Plus - NINA-B306</a> offers a unique combination development platform in the Thing Plus form factor featuring the NINA-B306 from u-blox<sup>™</sup>, the ISM330DHCX 6 DoF IMU from STMicroelectronics<sup>™</sup> and the BME280 atmospheric sensor from Bosch Sensortec<sup>™</sup>.</p>
<p><div class="center-block text-center">
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="product-20854">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/20854">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/2/0/6/2/7/20854-_WRL_SparkFun_Thing_Plus_NINA-B306-01.jpg" alt="SparkFun Thing Plus - NINA-B306" height="500">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="20854">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_20854" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_20854 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_20854"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/20854">
<span>SparkFun Thing Plus - NINA-B306</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
WRL-20854 </span>
<p class="description" style="display:none">
The SparkFun Thing Plus - NINA-B306 offers a unique combination development platform in the Thing Plus form factor featuring … </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$89.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="20854">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">4</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="20854" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
</div></p>
<p>The combination of Bluetooth<sup>®</sup> 5 low energy module with an integrated Arm Cortex-M4 processor in the NINA-B306 with motion and environmental sensing provides a powerful and versatile wireless development platform.</p>
<p>In this guide we'll go over the hardware present on this Thing Plus development board, how to assemble it as well as integrate and use it with the Arduino IDE.</p>
<h3>Required Materials</h3>
<p>All you need to get started with the Thing Plus - NINA-B306 is a USB-C cable.</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-16905">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/16905">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/5/8/3/4/16905-USB_-_C_to_C_cable-01.jpg" alt="USB 2.0 Type-C Cable - 1 Meter" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="16905">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_16905" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_16905 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_16905"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/16905">
<span>USB 2.0 Type-C Cable - 1 Meter</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
CAB-16905 </span>
<p class="description" style="display:none">
1 Meter USB Type C to Type C cable USB 2.0 data transfer capabilities. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$4.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="16905">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">4</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="16905" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-14743">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/14743">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/9/7/2/14743-USB_3.1_Cable_A_to_C_-_3_Foot-01.jpg" alt="USB 3.1 Cable A to C - 3 Foot" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="confirm_backorder" method="post">
<input type=hidden name=id value="14743">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_14743" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-default" value="Backorder">
</form>
</div>
<div class="added_to_cart_14743 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_14743"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/14743">
<span>USB 3.1 Cable A to C - 3 Foot</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="out of stock"><span class=sfe-icon-stock-out><span class=visuallyhidden>Out of stock</span></span></a>
</span>
<span class="sku">
CAB-14743 </span>
<p class="description" style="display:none">
USB C is fantastic. But until we have converted all our hubs, chargers, and ports over to USB C this is the cable you're goin… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$5.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">4</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14743">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">11</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14743" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<h4>Optional Materials</h4>
<h3>Suggested Reading</h3>
<p>If you aren't familiar with the Qwiic system, we recommend reading <a href="https://www.sparkfun.com/qwiic">here for an overview</a>.</p>
<table class="table table-bordered">
<tr align="center">
<td><center><a href="https://www.sparkfun.com/qwiic"><img src="https://cdn.sparkfun.com/assets/custom_pages/2/7/2/qwiic-logo-registered.jpg" alt="Qwiic Connect System" title="Qwiic Connect System"></a></center></td>
</table>
<p>We also recommend checking out these tutorials if you're not familiar with the concepts covered in them or would like a refresher:</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-8">
<a href="https://learn.sparkfun.com/tutorials/serial-communication">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/7/d/f/9/9/50d24be7ce395f1f6c000000.jpg)"></div>
</div>
<h3 class="title">Serial Communication</h3>
</a>
<div class="description">
Asynchronous serial communication concepts: packets, signal levels, baud rates, UARTs and more! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="8">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">106</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-62">
<a href="https://learn.sparkfun.com/tutorials/logic-levels">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/2/Input_Output_Logic_Level_Tolerances_tutorial_tile.png)"></div>
</div>
<h3 class="title">Logic Levels</h3>
</a>
<div class="description">
Learn the difference between 3.3V and 5V devices and logic levels. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="62">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">89</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-117">
<a href="https://learn.sparkfun.com/tutorials/bluetooth-basics">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/1/7/blut.jpg)"></div>
</div>
<h3 class="title">Bluetooth Basics</h3>
</a>
<div class="description">
An overview of the Bluetooth wireless technology. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="117">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">44</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div> <a name="#hardware-overview"></a>
<h2 id="hardware-overview">Hardware Overview</h2>
<p>In this section we'll take a closer look at the hardware on the SparkFun Thing Plus - NINA-B306.</p>
<h3>NINA-B306</h3>
<p>The NINA-B306 is a Bluetooth 5 low energy module with an integrated Arm Cortex-M4 processor allowing for powerful computing power on top of Bluetooth connectivity.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Module.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Module.jpg" alt="Photo highlighting the NINA-B306 module." /></a> </div></p>
<p>The module uses the nRF52840 chip at 64 MHz clock speed with 1 MB of Flash and 256 KB of RAM for program and data storage. The NINA-B306 has an integrated PCB antenna for the 2.4 GHz radio. The NINA-B30 series features the open CPU architecture and the modules on this board comes with a bootloader to work with the Arduino IDE.</p>
<p>For a complete overview of the NINA-B306, refer to the <a href="https://cdn.sparkfun.com/assets/a/f/5/e/b/NINA-B3_DataSheet_UBX-17052099.pdf">datasheet</a>.</p>
<div class="alert alert-info">
<b>Antenna Performance:</b> Due to the design limitations of this board along with the PCB antenna on the NINA-B306, the range of the radio is quite limited with a max range of 20-25 feet with high TX power.
</div>
<h3>On Board Sensors</h3>
<p>This Thing Plus has two on board sensors; the BME280 for environmental and ISM330DHCX 6 DoF IMU for motion sensing. Both sensors communicate over the NINA-B306's I<sup>2</sup>C interface and operate at <b>3.3V</b>.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Sensors.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Sensors.jpg" alt="Photo highlighting the BME280 and ISM330DHCX" /></a> </div></p>
<h4>BME280</h4>
<p>The BME280 environmental sensor is a combined humidity and pressure sensor capable of measuring relative humidity, ambient temperature and atmospheric pressure.</p>
<p>The sensor has operational ranges of 0 to 100%RH, -40 to +85°C (full accuracy from 0 to 65°C), and 300 to 1100hPa. The table below outlines several of the sensor's operational characteristics. For a complete overview of the sensor, refer to the <a href="https://cdn.sparkfun.com/assets/e/7/3/b/1/BME280_Datasheet.pdf">datasheet</a>.</p>
<table class="table table-hover table-striped table-bordered">
<tr>
<th>Characteristic</th>
<th>Description</th>
</tr>
<tr>
<td>Operational Modes</td>
<td><b>Sleep</b> (<b>Default</b>), Normal, and Forced (<i>low power; single measurement</i>)</td>
</tr>
<tr>
<td>Current Consumption (<i>Typical</i>)</td>
<td>
Sleep: 0.3 µA<br>
Standby: 0.5 µA (inactive period of normal mode)<br>
Humidity Measurements: 340 µA (peaks at 85°C)<br>
Pressure Measurements: 714 µA (peaks at -40°C)<br>
Temperature Measurements: 350 µA (peaks at 85°C)<br>
</td>
</tr>
<tr>
<td>Data Output</td>
<td>
16-bit output from ADC<br>
(*<i>IIR filter and oversampling can increase this to 20-bit; excludes humidity data</i>.)
</td>
</tr>
<tr>
<td>Humidity Parameters</td>
<td>
Range: 0 to 100 %RH<br>
Absolute Accuracy: ±3 %RH (from 20 - 80 %RH)<br>
Resolution: 0.008 %RH<br>
</td>
</tr>
<tr>
<td>Pressure Parameters</td>
<td>
Range: 300 to 1100 hPa (30,000 - 110,000 Pa or approx. 4.35 - 15.95 PSI)<br>
Absolute Accuracy: ±(1 - 1.7) hPa<br>
Resolution: 0.18 Pa<br>
</td>
</tr>
<tr>
<td>Temperature Parameters</td>
<td>
Range: 0°C to 65°C (32°F to 149°F)<br>
Absolute Accuracy: ±(0.5 - 1.5)°C<br>
Resolution: 0.01°C<br>
</td>
</tr>
<tr>
<td>I<sup>2</sup>C Address</td>
<td><b>0x76</b></td>
</tr>
</table>
<h4>ISM330DHCX</h4>
<p>The ISM330DHCX six degrees of freedom IMU is a high-performance 3D digital accelerometer and 3D digital gyroscope tailored for Industry 4.0. The IMU has user selectable full-scale acceleration ranges of ±2/±4±/±8/±16 g and wide angular rate ranges of ±125/±250/±500/±1000/±2000/±4000 dps.</p>
<p>The ISM330DHCX includes a robust feature set including Machine Learning Core<sup><a href="#IMU_Mode">1</a></sup>, programmable FSM, FIFO, event decoding and interrupts. The Thing Plus connects both of the sensor's interrupt pins to two of the NINA-B306's GPIO pins (INT1 to IO21 and INT2 to IO22) for configuring and monitoring interrupt events from the ISM330DHCX. The table below outlines a few of the characteristics of this IMU. For a complete overview of the ISM330DHCX, refer to the <a href="https://cdn.sparkfun.com/assets/d/4/6/d/f/ism330dhcx_Datasheet.pdf">datasheet</a>.</p>
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Characteristic</th>
<th>Description</th>
</tr>
<tr>
<td>Operating Modes</td>
<td></td>
</tr>
<tr>
<td>Acceleration Ranges</td>
<td>±2/±4±/±8/±16 g</td>
</tr>
<tr>
<td>Angular Rate Ranges</td>
<td>±125/±250/±500/±1000/±2000/±4000 dps</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
<div class="alert alert-info">
<a name="IMU_Mode"></a><a href="https://learn.sparkfun.com/tutorials/sparkfun-thing-plus---nina-b306-hookup-guide#IMU_Mode"><b>1.</b></a>
<b>Heads Up!</b> The design of the Thing Plus configures the ISM330DHCX to operate <i>only</i> in Mode 1 as a peripheral I<sup>2</sup>C device to the NINA-B306. This limits the use of the ISM330DHCX's Machine Learning Core to just data taken from the IMU. Users who wish to take full advantage of the Machine Learning Core may want to purchase either the <a href="https://www.sparkfun.com/products/19764">Qwiic 6DoF IMU</a> or <a href="https://www.sparkfun.com/products/19895">9DoF IMU</a> ISM330DHCX breakouts.
</div>
<h3>Power and Battery Components</h3>
<p>The Thing Plus - NINA-B306 offers several ways to power the board. Primary power options are over USB-C or through a single-cell LiPo battery. The board includes both battery charging and monitoring circuits using the MCP78381 single cell battery charge IC and MAX17048 fuel gauge.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Power.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Power.jpg" alt="Photo highlighting the power components." /></a> </div></p>
<p>Both the USB-C and battery power inputs are regulated down to <b>3.3V</b> to power the rest of the system through a 3.3V/700mA voltage regulator. Let's take a closer look at the power components on the Thing Plus - NINA-B306.</p>
<h4>USB-C Connector</h4>
<p>The USB-C connector acts as the primary serial interface for programming and interfacing with the NINA-B306 and also provides input voltage for charging a connected LiPo battery.</p>
<h4>2-Pin JST LiPo Connector</h4>
<p>The 2-pin JST LiPo connector provides a standard connection for a single-cell lithium-ion battery. The battery is charged and monitored by the following components.</p>
<h4>MCP73831 Battery Charger</h4>
<p>The MCP73931 single-cell battery charger provides an on-board LiPo charging option at <strong>500mA@5V</strong>. The USB-C connector acts as the primary input voltage for the charge circuit. The <strong>V_USB</strong> pin can act as a <strong>5V</strong> input for the charge circuit but is not recommended for most users.</p>
<h4>MAX17048 Fuel Gauge</h4>
<p>The MAX17048 fuel gauge monitors a connected LiPo battery's voltage level over I<sup>2</sup>C. The MAX17048's I<sup>2</sup>C address is <strong>0x36</strong>. The fuel gauge's battery alert pin connects to IO39 on the NINA-B306.</p>
<h3>Pinout</h3>
<p>The board routes one UART, I<sup>2</sup>C, and SPI bus to the pair of 0.1"-spaced headers on the board as well as six analog pins labeled A0-A5, eight GPIO configured as digital pins (with D38/IO38 to the Freebie pin).</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Pinout.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Pinout.jpg" alt="Photo hlighting the Thing Plus - NINA-B306 pinout." /></a> </div></p>
<p>The headers also include the Reset and Enable pins as well as the voltage pins for VUSB, VBATT, and 3.3V. The NINA-B306 offers full multiplexing for many of the module's pins so the labeled pins are mostly software defined through the Arduino Board definition allowing for users to customize them if they prefer.</p>
<h3>LEDs</h3>
<p>The Thing Plus - NINA-B306 has four LEDs labeled <strong>PWR</strong>, <strong>CHG</strong>, <strong>STAT</strong>, and <strong>RGB</strong>.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_LEDs.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_LEDs.jpg" alt="Photo highlighting the LEDs." /></a> </div></p>
<p>The red Power LED indicates if the board is powered or not. The yellow Charge LED illuminates when a connected battery is actively being charged. The blue Status LED is tied to IO41 on the NINA-B306 and can be toggled through software. The WS2812 data in pin connects to IO34 on the NINA-B306.</p>
<h3>Solder Jumpers</h3>
<p>The board has five solder jumpers labeled: <strong>SHLD</strong>, <strong>MEAS</strong>, <strong>CHG</strong>, <strong>PWR</strong>, and <strong>I2C</strong>. The table below outlines their functionality, default state and any notes regarding their use.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Jumpers.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Jumpers.jpg" alt="Photo highlighting the solder jumpers." /></a> </div></p>
<table class="table table-striped table-bordered table-hover">
<tr>
<th>Label</th>
<th>Default State</th>
<th>Function</th>
<th>Notes</th>
</tr>
<tr>
<td>SHLD</td>
<td>CLOSED</td>
<td>Connects USB-C shield pin to ground plane.</td>
<td>Open to isolate this pin from the board's ground plane.</td>
</tr>
<tr>
<td>MEAS</td>
<td>CLOSED</td>
<td></td>
<td></td>
</tr>
<tr>
<td>CHG</td>
<td>CLOSED</td>
<td>Completes the Charge LED circuit</td>
<td>Open to disable the Charge LED</td>
</tr>
<tr>
<td>PWR</td>
<td>CLOSED</td>
<td>Completes the Power LED circuit</td>
<td>Open to disable the Power LED</td>
</tr>
<tr>
<td>I2C</td>
<td>CLOSED</td>
<td>Pulls SDA/SCL to <b>3.3V</b> through a pair of <b>2.2kΩ</b> resistors.</td>
<td>Open completely to disable I<sup>2</sup>C pull-up resistors</td>
</tr>
</table>
<h3>Board Dimensions</h3>
<p>The Thing Plus - NINA-B306 packs in a few more components than most Thing Plus boards so it is a bit longer the standard Thing Plus footprint and measures 2.60" x 0.90" (66.04mm x 22.86mm).</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Dimensions.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Dimensions.png" alt="Board dimensions screenshot." /></a> </div></p> <a name="#hardware-assembly"></a>
<h2 id="hardware-assembly">Hardware Assembly</h2>
<p>Now that we're familiar with the hardware on this Thing Plus it's time to assemble the board into a prototyping circuit or simply plug it into our computer with a USB-C cable and get right to programming.</p>
<h3>Basic Assembly</h3>
<p>For those who want to jump right in to using the Thing Plus NINA-B306 on its own or just with the wireless capabilities, all you need to do is plug the board into your computer using a USB-C cable.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Assembly.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Assembly.jpg" alt="Basic assembly" /></a> </div></p>
<h3>Soldering Headers</h3>
<p>Users who want to assemble a prototyping circuit with the Thing Plus should solder headers of their choice to the board to plug it into a breadboard. We recommend something like this <a href="https://www.sparkfun.com/products/15187">Feather Stackable Header Kit</a>.</p>
<p>If you have never soldered before or would like some tips, check out our Through Hole Soldering tutorial:</p>
<p><div class="center-block text-center">
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-5">
<a href="https://learn.sparkfun.com/tutorials/how-to-solder-through-hole-soldering">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/5/Soldering_Action-01.jpg)"></div>
</div>
<h3 class="title">How to Solder: Through-Hole Soldering</h3>
<h4 class="metaline">September 19, 2013</h4> </a>
<div class="description">
This tutorial covers everything you need to know about through-hole soldering. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="5">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">74</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
</div></p> <a name="#software-setup"></a>
<h2 id="software-setup">Software Setup</h2>
<div class="alert alert-info">
<b>Note:</b> Make sure you are using the latest stable version of the Arduino IDE on your desktop. <br /> <br />
If this is your first time using Arduino or installing an Arduino boards package, please review our tutorial on <a href="https://learn.sparkfun.com/tutorials/installing-arduino-ide">installing the Arduino IDE</a>. If you have never installed an Arduino library before, please check out our <a href="https://learn.sparkfun.com/tutorials/installing-an-arduino-library">installation guide.</a>
</div>
<h3>SparkFun Arduino Boards Package</h3>
<p>The Thing Plus - NINA-B306 is included with the SparkFun Arduino Boards package. First, we need to add the SparkFun Arduino Boards JSON link to the "Arduino Additional Board Manager URLs" list in the "Preferences" menu. Open the Preferences menu by clicking <strong>File</strong> > <strong>Preferences</strong>, and towards the bottom of the window paste the URL below into the "Additional Board Manager URLs" box:</p>
<pre><code>https://raw.githubusercontent.com/sparkfun/Arduino_Boards/main/IDE_Board_Manager/package_sparkfun_index.json
</code></pre>
<p>With that done, install the core by navigating to the Boards Manager in the <b>Tools < Boards</b> drop-down menu. With the Boards Manager open, search for <b>"SparkFun nRF"</b> and install the latest version. This install may take a while as it installs the board files and all software packages required for use. The boards package also includes libraries specific to the package, the SparkFun BLE Service for Thing Plus NINA-B306 and the Adafruit Bluefruit nRF52 libraries. These are necessary for the BLE example in the next section.</p>
<h3>Arduino Libraries</h3>
<p>We've written Arduino libraries for both sensors on the board as well as the LiPo fuel gauge to get started reading data from the BME280, ISM330DHCX, and MAX17048. Install the libraries through the Arduino Library Manager tool by searching for <b>"SparkFun BME280 Arduino Library"</b> and <b>"SparkFun Qwiic 6DoF - ISM330DHCX"</b>. Users who prefer to manually install them can get the library from the GitHub Repositories: <a href="https://github.com/sparkfun/SparkFun_BME280_Arduino_Library">BME280</a> and <a href="https://github.com/sparkfun/SparkFun_6DoF_ISM330DHCX_Arduino_Library">ISM330DHCX</a> or download the ZIP by clicking the buttons below:</p>
<p><br />
<div class="center-block text-center"> <a href="https://github.com/sparkfun/SparkFun_BME280_Arduino_Library/archive/master.zip" class="btn btn-default">Download the SparkFun BME280 Library (ZIP)</a> </div>
<br>
<div class="center-block text-center"> <a href="https://github.com/sparkfun/SparkFun_6DoF_ISM330DHCX_Arduino_Library/archive/refs/heads/main.zip" class="btn btn-default">Download the SparkFun 6DoF ISM330DHCX Arduino Library (ZIP)</a> </div>
<br>
<div class="center-block text-center"> <a href="https://github.com/sparkfun/SparkFun_MAX1704x_Fuel_Gauge_Arduino_Library/archive/refs/heads/main.zip" class="btn btn-default">Download the SparkFun MAX1704x Arduino Library (ZIP)</a> </div></p>
<h4>Extra Libraries</h4>
<p>In order to use the example in the next section you'll need to install two other libraries along with the sensor libraries linked above. These extra libraries the Adafruit TinyUSB library and Adafruit's Unified Sensor Driver. Install the TinyUSB library using the Ardiuno Library Manager tool by searching for <b>"Adafruit TinyUSB"</b>. Users who prefer to manually install the TinyUSB library can get it from the <a href="https://github.com/adafruit/Adafruit_TinyUSB_Arduino">GitHub Repository</a> or download the ZIP by clicking the button below:</p>
<p><div class="center-block text-center"> <a href="https://github.com/adafruit/Adafruit_TinyUSB_Arduino/archive/refs/heads/master.zip" class="btn btn-default">Download the Adafruit TinyUSB Library (ZIP)</a> </div></p>
<p>The Adafruit Unified Sensor Driver must be manually installed so download it from the <a href="https://github.com/adafruit/Adafruit_Sensor">GitHub repository</a> or click the button below:</p>
<p><div class="center-block text-center"> <a href="https://github.com/adafruit/Adafruit_Sensor/archive/refs/heads/master.zip" class="btn btn-default">Download the Adafruit Sensor Driver (ZIP)</a> </div></p>
<p>After downloading, extract the contents from the compressed ZIP folder. Next you need to open the Arduino Sketchbook folder. If you're not sure where this is, open the "Preferences" menu in Arduino and take note of the filepath for the "Sketchbook location". Open this folder and then drag (or copy) the "Adafruit_Sensor" folder into the "Libraries" folder in your sketchbook.</p> <a name="#ble-data-pipe-arduino-example"></a>
<h2 id="ble-data-pipe-arduino-example">BLE Data Pipe Arduino Example</h2>
<p>With everything installed in Arduino we can move on to an example sketch that sets up the Thing Plus - NINA-B306 as a BLE device to package and send data recorded by the sensors to a paired device.</p>
<h3>Example Code</h3>
<p>You can find the example in the <a href="https://github.com/sparkfun/SparkFun_Thing_Plus_NINA-B306/tree/main/Firmware/Examples">Examples folder</a> in the GitHub repository or you can copy the code below into a blank sketch in Arduino. Select your Board (<strong>SparkFun Thing Plus - NINA-B306</strong>) and Port and click the Upload button.</p>
<pre><code>language:c
/*
BLE Data Pipe
This example creates a BLE peripheral with a sensor service using the
SparkFun NINA-B306 Thing Plus. The sensor service notifies (push data to) the
central.
The sensor service contains the following characteristics:
Acceleration X,Y,Z
Gyro X,Y,Z
Temperature (degC), Humidity, Pressure
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#include <Wire.h>
#include <Adafruit_TinyUSB.h>
#include <SparkFunBME280.h>
#include <SparkFun_ISM330DHCX.h>
#include <SparkFun_MAX1704x_Fuel_Gauge_Arduino_Library.h>
#include "bluefruit.h"
#include "SparkFunBLEService.h"
#include "services/SparkFunBLE_ISM330DHCX.h"
#include "services/SparkFunBLE_BME280.h"
/* Battery Monitor */
SFE_MAX1704X lipo(MAX1704X_MAX17048);
long curr_millis = 0;
long prev_millis = 0;
long batt_interval = 5000; // 5s in ms
/* BME280 Environmental Sensor */
BME280 envSensor;
/* ISM330DHCX 6-DoF IMU Sensor */
SparkFun_ISM330DHCX imuSensor;
sfe_ism_data_t _accelData;
sfe_ism_data_t _gyroData;
/* IMU BLE Service */
SparkFunBLE_ISM330DHCX bleIMU;
/* ENV BLE Service */
SparkFunBLE_BME280 bleENV;
/* BLE Device Information
* Name - Thing Plus NINA-B306 Data Pipe
* Manufacturer - SparkFun Electronics
* Model - SparkFun Thing Plus NINA-B306
*/
BLEDis bledis;
/* BLE Battery Service helper class */
BLEBas blebas;
void setup() {
Serial.begin(115200);
//while(!Serial) delay(10);
Serial.println(F("SparkFun BLE Data Pipe Example"));
Serial.println(F("------------------------------\n"));
Wire.begin();
// Initialize Sensors
initFuelGauge();
initBME280();
initISM330DHCX();
//Initialize BLE things
Bluefruit.begin();
Bluefruit.setTxPower(8); // +8 dBm, max power.
Bluefruit.setName("Data Pipe Example");
// Configure and start Device Information Service
Serial.println(F("Configuring the Device Information Service..."));
bledis.setManufacturer("SparkFun Electronics");
bledis.setModel("Thing Plus NINA-B306");
bledis.setHardwareRev("v10");
bledis.setSoftwareRev("0.1.0");
bledis.begin();
// Configure and start BLE Battery Service and initialize to 100%
Serial.println(F("Configuring the Battery Service..."));
blebas.begin();
blebas.write(100);
// Configure and start BLE Environmental Sensor Service
// Make sure to give enough room between sensor IDs, the BME280 uses 3 IDs.
Serial.println(F("Configuring the Environmental Sensor Service..."));
bleENV.begin(&envSensor, 100); // Sensor, ID.
// Configure and start the IMU Sensor Service
// Make sure to give enough room between sensor IDs, the IMU uses 2 IDs.
Serial.println(F("Configuring the IMU Data Service..."));
bleIMU.begin(&imuSensor, 200); // Sensor, ID.
Serial.println(F("Setup complete."));
/* Start advertising BLE. It will start continuously transmitting BLE
advertising packets and will be visible to remote BLE central devices
until it receives a connection.
*/
startAdv();
Serial.println(F("BLE device active, waiting for connections..."));
}
void loop() {
// Battery service handler
curr_millis = millis();
if ((curr_millis - prev_millis) > batt_interval) { // check every batt_interval ms
prev_millis = curr_millis;
if ( lipo.isChange(true) ) { // only update if battery SOC is > +/- 1%
blebas.write(lipo.getSOC());
}
}
}
void startAdv() {
Serial.println(F("Begin advertising."));
Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
Bluefruit.Advertising.addTxPower();
// Add services
Bluefruit.Advertising.addService(bleENV, bleIMU);
Bluefruit.ScanResponse.addName();
/* Start Advertising
* - Enable auto advertising if disconnected
* - Interval: fast mode = 20 ms, slow mode = 152.5 ms
* - Timeout for fast mode is 30 seconds
* - Start(timeout) with timeout = 0 will advertise forever (until connected)
*
* For recommended advertising interval
* https://developer.apple.com/library/content/qa/qa1931/_index.html
*/
Bluefruit.Advertising.restartOnDisconnect(true);
Bluefruit.Advertising.setInterval(32, 244); // units of 0.625 ms
Bluefruit.Advertising.setFastTimeout(30); // number of seconds in fast mode
Bluefruit.Advertising.start(0); // 0 = Don't stop advertising unless connected
}
void initFuelGauge() {
Serial.println(F("Initializing MAX17048 Battery Fuel Gauge..."));
if (!lipo.begin()) {
Serial.println(F("MAX17048 not detected. Please check wiring. Freezing."));
while(1);
}
// Read and print the battery threshold
Serial.print(F("Battery empty threshold is currently: "));
Serial.print(lipo.getThreshold());
Serial.println(F("%"));
// We can set an interrupt to alert when the battery SoC gets too low.
// We can alert at anywhere between 1% and 32%:
lipo.setThreshold(20); // Set alert threshold to 20%.
// Read and print the battery empty threshold
Serial.print(F("Battery empty threshold is now: "));
Serial.print(lipo.getThreshold());
Serial.println(F("%"));
// Clear any alert that might already be generated.
lipo.clearAlert();
}
void initBME280() {
Serial.println("Initializing BME280 Environmental Sensor...");
envSensor.setI2CAddress(0x76); // Default address on NINA-B306
if (!envSensor.beginI2C()) {
Serial.println("The BME280 did not respond. Please check address and wiring.");
while(1);
}
Serial.println("BME280 initialization successful.");
}
void initISM330DHCX() {
Serial.println("Initializing ISM330DHCX...");
if (!imuSensor.begin()) {
Serial.println("The ISM330DHCX did not respond. Please check address and wiring.");
while(1);
}
Serial.println("ISM330DHCX Initialization successful. Resetting device settings...");
imuSensor.deviceReset();
while(!imuSensor.getDeviceReset()){
delay(1);
}
Serial.println("Device reset complete. Configuring ISM330DHCX...");
delay(100);
imuSensor.setDeviceConfig();
imuSensor.setBlockDataUpdate();
// Set accelerometer output data rate and data precision
imuSensor.setAccelDataRate(ISM_XL_ODR_104Hz);
imuSensor.setAccelFullScale(ISM_4g);
// Set gyro output data rate and data precision
imuSensor.setGyroDataRate(ISM_GY_ODR_104Hz);
imuSensor.setGyroFullScale(ISM_500dps);
// Turn on accelerometer's filter and apply settings.
imuSensor.setAccelFilterLP2();
imuSensor.setAccelSlopeFilter(ISM_LP_ODR_DIV_100);
// Turn on gyro's filter and apply settings.
imuSensor.setGyroFilterLP1();
imuSensor.setGyroLP1Bandwidth(ISM_MEDIUM);
Serial.println("ISM330DHCX successfully configured.");
}
uint16_t measureCallBack(uint8_t* buf, uint16_t bufsize) {
float imu_data[6];
imuSensor.getAccel(&_accelData);
imuSensor.getGyro(&_gyroData);
imu_data[0] = _accelData.xData * 0.0098067;
imu_data[1] = _accelData.yData * 0.0098067;
imu_data[2] = _accelData.zData * 0.0098067;
imu_data[3] = _gyroData.xData * 0.017453;
imu_data[4] = _gyroData.yData * 0.017453;
imu_data[5] = _gyroData.zData * 0.017453;
memcpy(buf, &imu_data, 24);
return 24;
}
</code></pre>
<h3>Device Pairing & Data Reading</h3>
<p>Once the code finishes uploading, open the <a href="https://learn.sparkfun.com/tutorials/terminal-basics">Serial Monitor</a> in Arduino to watch the printout to check if everything initializes and configures properly. After configuring the device information and BLE services for the sensors, the code will wait for a connection. You'll need a device to pair with the Thing Plus NINA-B306 like your phone or computer. We recommend using a phone with a BLE application like <a href="https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-mobile">nRF Connect for Mobile</a> from Nordic Semiconductor<sup>®</sup>. Other apps should work as well so feel free to use whichever you prefer.</p>
<p>The example sets the SparkFun service/characteristic UUID128 to the base UUID of <code>5FE0xxxx-005E-4761-9A7E-947AA3C505FE</code>. The sensor services have UUIDs unique to the 3-4ths octets. The BME280 service ID is <code>0100</code> and its sensor output characteristic is <code>0101</code>. The ISM330DHCX sensor service ID is <code>0200</code> and its sensor output characteristic is <code>0201</code>.</p>
<p>Open your BLE app and scan for devices in range and look for the Thing Plus UUID or name. Pair with this device and then enable notify for the sensor service(s) you wish to view. After selecting the service, you should start seeing hex values for data from the sensor. Unfortunately, this is not very human readable but you should be able to see the values change as you move the board or breathe on the BME280.</p>
<h3>Extra Examples</h3>
<p>The GitHub repository also includes several other examples for the Thing Plus NINA-B306 in the <a href="https://github.com/sparkfun/SparkFun_Thing_Plus_NINA-B306/tree/main/Firmware/Examples">examples folder</a> to use other components on the board like the RGB LED and µSD card.</p> <a name="#troubleshooting"></a>
<h2 id="troubleshooting">Troubleshooting</h2>
<h3>NINA-B306 Range Limitations and Optimization</h3>
<p>Due to the design limitations of this board along with the PCB antenna on the NINA-B306, the range of the radio is quite limited with a max range of 20-25 feet.</p>
<p>Users struggling with getting this range should increase the power of the antenna with the <code>Bluefruit.setTxPower(8)</code> command. The <code>8</code> value in this command references the power in dBm. Refer to the <a href="https://github.com/adafruit/Adafruit_nRF52_Arduino/tree/master/libraries/Bluefruit52Lib">Bluefruit52 library</a> for valid values for this command.</p>
<h3>General Troubleshooting</h3>
<div class="alert alert-info" role="alert">
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
<strong> Not working as expected and need help? </strong> <br /><br />
If you need technical assistance and more information on a product that is not working as you expected, we recommend heading on over to the <a href="https://www.sparkfun.com/technical_assistance">SparkFun Technical Assistance</a> page for some initial troubleshooting. <br /><br />
<div class="center-block text-center"> <a href="https://www.sparkfun.com/technical_assistance" class="btn btn-default">SparkFun Technical Assistance Page</a> </div><br /><br />
If you don't find what you need there, the <a href="https://forum.sparkfun.com/index.php">SparkFun Forums</a> are a great place to find and ask for help. If this is your first visit, you'll need to <a href="https://forum.sparkfun.com/ucp.php?mode=register">create a Forum Account</a> to search product forums and post questions.<br /><br />
<div class="text-center"><a href="https://forum.sparkfun.com/ucp.php?mode=register" class="btn btn-default">Create New Forum Account</a> <a class="btn btn-danger" href="https://forum.sparkfun.com/index.php" role="button">Log Into SparkFun Forums</a></div>
</div> <a name="#resources-and-going-further"></a>
<h2 id="resources-and-going-further">Resources and Going Further</h2>
<p>That's all for this guide. For more information on the Thing Plus - NINA-B306, take a look at the resources below:</p>
<ul>
<li><a href="https://cdn.sparkfun.com/assets/f/1/e/a/a/SparkFun_Thing_Plus_NINA-B306.pdf">Schematic</a></li>
<li><a href="https://cdn.sparkfun.com/assets/0/7/0/a/e/SparkFun_Thing_Plus_NINA-B306.zip">Eagle Files</a></li>
<li><a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/7/5/4/Thing_Plus_-_NINA-B306_-_Dimensions.png">Board Dimensions</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_Thing_Plus_NINA-B306">GitHub Hardware Repository</a></li>
<li>Datasheets:
<ul>
<li><a href="https://cdn.sparkfun.com/assets/a/f/5/e/b/NINA-B3_DataSheet_UBX-17052099.pdf">NINA-B306</a></li>
<li><a href="https://cdn.sparkfun.com/assets/e/7/3/b/1/BME280_Datasheet.pdf">BME280</a></li>
<li><a href="https://cdn.sparkfun.com/assets/d/4/6/d/f/ism330dhcx_Datasheet.pdf">ISM330DHCX</a></li>
<li><a href="https://cdn.sparkfun.com/assets/5/2/7/6/6/MAX17048-MAX17049.pdf">MAX17048</a></li>
</ul></li>
<li>Arduino Libraries:
<ul>
<li><a href="https://github.com/sparkfun/SparkFun_BME280_Arduino_Library">BME280</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_6DoF_ISM330DHCX_Arduino_Library">ISM330DHCX</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_MAX1704x_Fuel_Gauge_Arduino_Library">MAX17048</a></li>
</ul></li>
</ul>
<hr>
<p><a href="https://learn.sparkfun.com">learn.sparkfun.com</a> |
<a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>
| SparkFun Electronics | Niwot, Colorado</p>
Single Cell LiPo Battery Care
bboyho
https://www.sparkfun.com/users/17054
urn:uuid:d1cac452-a259-8c2c-9f63-c6da6d8ffe30
2023-03-16T00:00:00-06:00
<h1>
Single Cell LiPo Battery Care <small>a <a href="https://learn.sparkfun.com/tutorials">learn.sparkfun.com tutorial</a></small>
</h1>
<h3>
Available online at: <a href="http://sfe.io/t3045">http://sfe.io/t3045</a>
</h3>
<a name="#introduction"></a>
<h2 id="introduction">Introduction</h2>
<div class="well">
<b>Note:</b> This tutorial was ported over from the <a href="https://www.sparkfun.com/tutorials/241">older LiPo Battery Care tutorial</a>. Tips from the <a href="https://learn.sparkfun.com/tutorials/lilypad-basics-powering-your-project/power-options-rechargeable-lithium-polymer-batteries"> LilyPad Basics: Powering Your Project (Power Options: Rechargeable Lithium Polymer Batteries)</a> were also added to this tutorial.</div>
<p><a href="https://www.sparkfun.com/categories/tags/lithium-polymer">Lithium-Ion Polymer (LiPo) batteries</a> are a favorite of ours. Very light weight and some of the highest energy densities available. We affectionately call this battery the 'car battery' because it's huge. Not physically (it's 110 grams!) but because this 6Ah LiPo in capable of outputting 6 Amps over the period of one hour! This is a very large amount of power in our low-power embedded world. Please don't confuse this with a real car battery!</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/8484-Lithium_Ion_Battery_6Ah_JST_PH_Connector_small.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/8484-Lithium_Ion_Battery_6Ah_JST_PH_Connector_small.jpg" alt="alt text" /></a> </div></p>
<p><div class="center-block text-center"> <em>A <a href="https://www.sparkfun.com/products/13856">LiPo battery</a> capable of producing 6 Amps for one hour!</em> </div></p>
<h3>Required Materials</h3>
<p>To follow along with this tutorial, you will need the following materials at a minimum. You may not need everything though depending on what you have. Add it to your cart, read through the guide, and adjust the cart as necessary. Below is a wishlist of the parts that you need to get started if you were to charge a LiPo battery and then remove the connector.</p>
<script src="https://www.sparkfun.com/wish_lists/170979.js"></script>
<h3>Single Cell LiPo Chargers</h3>
<p>There are a variety of development boards and breakout boards with a dedicated single cell LiPo battery charge circuit. Below are a <a href="https://www.sparkfun.com/categories/tags/lipo-charger">few examples from the SparkFun catalog that have the MCP73831</a>. The charge IC used and charge rate will depend on the design.</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-19177">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/19177">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/8/8/0/0/ESP32_03.jpg" alt="SparkFun IoT RedBoard - ESP32 Development Board" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="19177">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_19177" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_19177 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_19177"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/19177">
<span>SparkFun IoT RedBoard - ESP32 Development Board</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
WRL-19177 </span>
<p class="description" style="display:none">
The IoT RedBoard is an ESP32 WROOM-equipped development board that has everything you need in an Arduino Uno with extra perks… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$29.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-empty" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">7</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="19177">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">18</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="19177" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-14380">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/14380">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/3/9/1/14380b-01.jpg" alt="SparkFun Adjustable LiPo Charger" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="confirm_backorder" method="post">
<input type=hidden name=id value="14380">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_14380" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-default" value="Backorder">
</form>
</div>
<div class="added_to_cart_14380 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_14380"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/14380">
<span>SparkFun Adjustable LiPo Charger</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="out of stock"><span class=sfe-icon-stock-out><span class=visuallyhidden>Out of stock</span></span></a>
</span>
<span class="sku">
PRT-14380 </span>
<p class="description" style="display:none">
The SparkFun Adjustable LiPo Charger is a single-cell lithium polymer (LiPo) and lithium ion battery charger. Because it’s … </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$13.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">4</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14380">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">23</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14380" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-20748">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/20748">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/0/5/7/7/20748-DEV_SparkFun_MicroMod_Main_Board_Single_v21-01.jpg" alt="SparkFun MicroMod Main Board - Single" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="20748">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_20748" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_20748 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_20748"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/20748">
<span>SparkFun MicroMod Main Board - Single</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="18 available"><span class=sfe-icon-stock-low><span class=visuallyhidden>18 available</span></span></a>
</span>
<span class="sku">
DEV-20748 </span>
<p class="description" style="display:none">
The MicroMod Main Board is a specialized carrier board that allows you to interface a MicroMod Processor Board with a single … </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$15.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="20748">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">4</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="20748" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-10401">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/10401">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/4/8/6/3/10401-SparkFun_LiPo_Charger_Basic_-_Mini-USB-02.jpg" alt="SparkFun LiPo Charger Basic - Mini-USB" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="10401">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_10401" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_10401 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_10401"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/10401">
<span>SparkFun LiPo Charger Basic - Mini-USB</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-10401 </span>
<p class="description" style="display:none">
If you need to charge LiPo batteries, this simple charger will do just that. It is designed to charge single-cell Li-Ion or L… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$10.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3.7 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-half" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">3</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="10401">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">18</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="10401" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<h3>Single Cell LiPo Battery</h3>
<p>Of course, you will also need a single cell LiPo battery. Below are a few LiPo batteries to choose from in the <a href="https://www.sparkfun.com/categories/54">SparkFun catalog</a>.</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-18286">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/18286">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/7/6/0/6/17748-Lithium_Ion_Battery_-_1250_mAh__IEC62133_certified_-01.jpg" alt="Lithium Ion Battery - 1250mAh (IEC62133 Certified)" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="confirm_backorder" method="post">
<input type=hidden name=id value="18286">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_18286" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-default" value="Backorder">
</form>
</div>
<div class="added_to_cart_18286 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_18286"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/18286">
<span>Lithium Ion Battery - 1250mAh (IEC62133 Certified)</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="out of stock"><span class=sfe-icon-stock-out><span class=visuallyhidden>Out of stock</span></span></a>
</span>
<span class="sku">
PRT-18286 </span>
<p class="description" style="display:none">
Slim, extremely light weight batteries based on Lithium Ion chemistry. Each cell outputs a nominal 3.7V at 1250 mAh and is IE… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$10.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="18286">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">10</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="18286" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-13851">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13851">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/5/8/13857-01.jpg" alt="Lithium Ion Battery - 400mAh" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13851">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13851" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13851 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13851"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13851">
<span>Lithium Ion Battery - 400mAh</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-13851 </span>
<p class="description" style="display:none">
This is a very small, extremely lightweight battery based on Lithium Ion chemistry, with the highest energy density currently… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$5.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.6 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">11</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13851">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">46</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13851" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-13854">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13854">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/6/1/13854-01.jpg" alt="Lithium Ion Battery - 850mAh" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13854">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13854" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13854 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13854"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13854">
<span>Lithium Ion Battery - 850mAh</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-13854 </span>
<p class="description" style="display:none">
These are very slim, extremely light weight batteries based on Lithium Ion chemistry. Each cell outputs a nominal 3.7V at 850… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$10.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-empty" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">2</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13854">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">21</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13854" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-13856">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13856">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/6/3/13856-01.jpg" alt="Lithium Ion Battery - 6Ah" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13856">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13856" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13856 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13856"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13856">
<span>Lithium Ion Battery - 6Ah</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-13856 </span>
<p class="description" style="display:none">
If you need some juice, this 6Ah Lithium Ion Battery is for you. These are very compact batteries based on Lithium Ion chemis… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$32.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3.9 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">7</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13856">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">42</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13856" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<h3>Tools</h3>
<p>Need some help removing the single cell LiPo battery from the JST connector? Try grabbing a needle nose plier or diagonal cutters. Or you can use a hobby knife to whittle down the JST-PH's locking tabs.</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-8793">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/8793">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/0/3/3/08793-03-L.jpg" alt="Needle Nose Pliers" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="8793">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_8793" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_8793 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_8793"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/8793">
<span>Needle Nose Pliers</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
TOL-08793 </span>
<p class="description" style="display:none">
Mini Pliers. These are great little pliers! A must have for any hobbyist or electrical engineer. Crucial for inserting device… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$3.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="8793">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">23</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="8793" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-8794">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/8794">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/0/3/4/08794-03-L.jpg" alt="Diagonal Cutters" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="8794">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_8794" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_8794 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_8794"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/8794">
<span>Diagonal Cutters</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
TOL-08794 </span>
<p class="description" style="display:none">
Mini Diagonal Cutters. These are great little cutters! A must have for clipping leads and extra solder tails. 4" long. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$2.75</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-empty" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">3</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="8794">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">14</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="8794" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-9200">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/9200">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/6/4/6/09200-Hobby_Knife-01.jpg" alt="Hobby Knife" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="9200">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_9200" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_9200 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_9200"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/9200">
<span>Hobby Knife</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
TOL-09200 </span>
<p class="description" style="display:none">
It's like an Xacto knife, only better. We use these extensively when working with PCBs. These small knives work well for cutt… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$3.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">2</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="9200">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">21</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="9200" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="alert alert-info" role="alert">
<b>Note:</b> If you decide to not use needle nose pliers, we recommend getting a low cost diagonal cutters instead of flush cutters. This will prevent users from damaging their nicer flush cutters when pulling the JST connector out.
</div>
<h3>You May Also Need</h3>
<p>For strain relief, you can use some electrical tape and scissors to secure the wires on the single cell LiPo battery. You may want a marker to label the battery.</p>
<ul>
<li>Electrical Tape</li>
<li>Scissors</li>
<li>Marker</li>
</ul>
<h3>Suggested Reading</h3>
<p>If you aren’t familiar with the following concepts, we also recommend checking out a few of these tutorials before continuing</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-18">
<a href="https://learn.sparkfun.com/tutorials/connector-basics">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/c/d/6/9/4/511421f8ce395f687e000007.jpg)"></div>
</div>
<h3 class="title">Connector Basics</h3>
</a>
<div class="description">
Connectors are a major source of confusion for people just beginning electronics. The number of different options, terms, and names of connectors can make selecting one, or finding the one you need, daunting. This article will help you get a jump on the world of connectors. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="18">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">64</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-28">
<a href="https://learn.sparkfun.com/tutorials/battery-technologies">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/a/6/5/e/f/5114447cce395f697e000009.jpg)"></div>
</div>
<h3 class="title">Battery Technologies</h3>
</a>
<div class="description">
The basics behind the batteries used in portable electronic devices: LiPo, NiMH, coin cells, and alkaline. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="28">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">50</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-222">
<a href="https://learn.sparkfun.com/tutorials/how-lithium-polymer-batteries-are-made">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/2/2/2/LiPo_Battery_31.jpg)"></div>
</div>
<h3 class="title">How Lithium Polymer Batteries are Made</h3>
</a>
<div class="description">
We got the opportunity to tour the Great Power Battery factory. Checkout how LiPos are made! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="222">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">7</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-428">
<a href="https://learn.sparkfun.com/tutorials/how-to-use-a-multimeter">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/4/2/8/01_Multimeter_Tutorial-02.jpg)"></div>
</div>
<h3 class="title">How to Use a Multimeter</h3>
</a>
<div class="description">
Learn the basics of using a multimeter to measure continuity, voltage, resistance and current. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="428">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">69</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-508">
<a href="https://learn.sparkfun.com/tutorials/what-is-a-battery">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/5/0/8/Battery-Diagram_1.png)"></div>
</div>
<h3 class="title">What is a Battery?</h3>
</a>
<div class="description">
An overview of the inner workings of a battery and how it was invented. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="508">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">23</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div> <a name="#charging-lipo-batteries-safely"></a>
<h2 id="charging-lipo-batteries-safely">Charging LiPo Batteries, Safely</h2>
<div class="alert alert-danger" role="alert">
⚡
<b>Warning:</b> Never ever charge a LiPo with anything but a special LiPo charger! We recommend you do not leave a charging battery unattended.
</div>
<p>Back in the old days, there were only two chargers available in SparkFun's catalog. The <a href="https://www.sparkfun.com/products/726">standard charger based on the old MAX1555 IC</a> and our <a href="https://www.sparkfun.com/products/10217">faster charger based on the newer MCP73831 IC</a>. You will notice the MAX1555 and MCP73831 populated as a 5-pin IC as shown in the images below. The MAX1555 was great but its limited charging current (300mA) and diminishing market availability way back when pushed us towards creating chargers based on the MCP73831 (500mA per hour charging rate).</p>
<table class="table table-hover table-striped table-bordered">
<tr align="center">
<td><a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/726-USB_Single_Cell_LiPoly_Charger_MAX1555.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/726-USB_Single_Cell_LiPoly_Charger_MAX1555.jpg" alt=""></a></td>
<td><a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/12711-USB_Single_Cell_LiPoly_Charger_MCP73831.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/12711-USB_Single_Cell_LiPoly_Charger_MCP73831.jpg" alt=""></a></td>
</tr>
<tr align="center">
<td><i>Retired USB Single Cell LiPo Charger with MAX1555</i></td>
<td><i>USB Single Cell LiPo Charger with MCP73831</i></td>
</tr>
</table>
<p>You will notice the MCP73831 populated on select development boards and a variety of breakout boards with different USB connectors. Below are a few examples with the MCP73831 populated on different boards found in the <a href="https://www.sparkfun.com/categories/tags/lipo-charger">SparkFun catalog</a>.</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-19177">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/19177">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/8/8/0/0/ESP32_03.jpg" alt="SparkFun IoT RedBoard - ESP32 Development Board" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="19177">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_19177" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_19177 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_19177"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/19177">
<span>SparkFun IoT RedBoard - ESP32 Development Board</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
WRL-19177 </span>
<p class="description" style="display:none">
The IoT RedBoard is an ESP32 WROOM-equipped development board that has everything you need in an Arduino Uno with extra perks… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$29.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-empty" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">7</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="19177">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">18</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="19177" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-14380">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/14380">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/3/9/1/14380b-01.jpg" alt="SparkFun Adjustable LiPo Charger" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="confirm_backorder" method="post">
<input type=hidden name=id value="14380">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_14380" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-default" value="Backorder">
</form>
</div>
<div class="added_to_cart_14380 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_14380"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/14380">
<span>SparkFun Adjustable LiPo Charger</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="out of stock"><span class=sfe-icon-stock-out><span class=visuallyhidden>Out of stock</span></span></a>
</span>
<span class="sku">
PRT-14380 </span>
<p class="description" style="display:none">
The SparkFun Adjustable LiPo Charger is a single-cell lithium polymer (LiPo) and lithium ion battery charger. Because it’s … </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$13.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">4</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14380">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">23</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14380" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-20748">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/20748">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/0/5/7/7/20748-DEV_SparkFun_MicroMod_Main_Board_Single_v21-01.jpg" alt="SparkFun MicroMod Main Board - Single" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="20748">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_20748" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_20748 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_20748"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/20748">
<span>SparkFun MicroMod Main Board - Single</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="18 available"><span class=sfe-icon-stock-low><span class=visuallyhidden>18 available</span></span></a>
</span>
<span class="sku">
DEV-20748 </span>
<p class="description" style="display:none">
The MicroMod Main Board is a specialized carrier board that allows you to interface a MicroMod Processor Board with a single … </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$15.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="20748">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">4</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="20748" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-10401">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/10401">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/4/8/6/3/10401-SparkFun_LiPo_Charger_Basic_-_Mini-USB-02.jpg" alt="SparkFun LiPo Charger Basic - Mini-USB" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="10401">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_10401" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_10401 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_10401"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/10401">
<span>SparkFun LiPo Charger Basic - Mini-USB</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-10401 </span>
<p class="description" style="display:none">
If you need to charge LiPo batteries, this simple charger will do just that. It is designed to charge single-cell Li-Ion or L… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$10.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3.7 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-half" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">3</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="10401">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">18</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="10401" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<p>Other notable LiPo chargers in the SparkFun catalog is the BQ24075 populated on the Battery Babysitter - LiPo Battery Manager, and LT3652 populated on the Sunny Buddy - MPPT Solar Charger. Both can be used to charge a single cell LiPo battery through USB or a solar panel, respectively.</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-12885">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/12885">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/9/7/7/2/12885-01.jpg" alt="SparkFun Sunny Buddy - MPPT Solar Charger" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="12885">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_12885" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_12885 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_12885"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/12885">
<span>SparkFun Sunny Buddy - MPPT Solar Charger</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-12885 </span>
<p class="description" style="display:none">
This is the Sunny Buddy, a maximum power point tracking (MPPT) solar charger for single-cell LiPo batteries. This MPPT solar … </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$28.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.2 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">10</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="12885">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">77</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="12885" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-13777">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13777">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/3/3/1/13777-01.jpg" alt="SparkFun Battery Babysitter - LiPo Battery Manager" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13777">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13777" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13777 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13777"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13777">
<span>SparkFun Battery Babysitter - LiPo Battery Manager</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="31 available"><span class=sfe-icon-stock-low><span class=visuallyhidden>31 available</span></span></a>
</span>
<span class="sku">
PRT-13777 </span>
<p class="description" style="display:none">
The SparkFun Battery Babysitter is an all-in-one single-cell Lithium Polymer (LiPo) battery manager. It’s half battery char… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$21.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3.8 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-half" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">10</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13777">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">78</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13777" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<h3>Recommended Charge Rate for Single Cell LiPo Batteries</h3>
<p>To avoid explosions (which are only very briefly fun), you should not charge these LiPos at a current over the battery's capacity, typically 1C for fast charging. To be safe <sup><a href="https://learn.sparkfun.com/tutorials/single-cell-lipo-battery-care#note_1">[1]</a></sup>, you should keep the charge current at or below 1C of your battery as indicated in the datasheets.</p>
<p>What does this mean? Well, lets take a look at the datasheet for the <a href="https://www.sparkfun.com/products/13854">850mAh LiPo battery</a>. The image shown below highlights the recommended standard charge rate and maximum continuous charge current, where C is the capacity of the LiPo battery. For a standard charge rate of 0.2C, an 850mAh LiPo battery can be charged at a rate of 170mA. When charging at the maximum charge rate of 1C, an 850mAh LiPo battery can be charged at a rate of 850mA.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/850mAh_LiPo_Battery_Datasheet_Highlighted.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/850mAh_LiPo_Battery_Datasheet_Highlighted.jpg" alt="alt text" /></a> </div></p>
<p><div class="center-block text-center"> <em><a href="http://cdn.sparkfun.com/datasheets/Prototyping/850mah-en-1.0ver.pdf">Datasheet highlighted</a> for the 850mAh LiPo Battery's Charge Rates</em> </div></p>
<p>What does this mean with the LiPo chargers available? Well, if you have an <strong>500mAh single cell LiPo battery</strong>, it should not be given a charge current over 500mA. You should use a charger that is able to charge the LiPo battery with a dedicated single cell LiPo charger <strong>set at or below 500mA</strong>. The minimum LiPo battery that SparkFun has available currently that is compatible at this rate that you can safely charge is 850mAh. Other larger single cell LiPo batteries can also be charged at this rate.</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-18286">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/18286">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/7/6/0/6/17748-Lithium_Ion_Battery_-_1250_mAh__IEC62133_certified_-01.jpg" alt="Lithium Ion Battery - 1250mAh (IEC62133 Certified)" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="confirm_backorder" method="post">
<input type=hidden name=id value="18286">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_18286" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-default" value="Backorder">
</form>
</div>
<div class="added_to_cart_18286 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_18286"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/18286">
<span>Lithium Ion Battery - 1250mAh (IEC62133 Certified)</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="out of stock"><span class=sfe-icon-stock-out><span class=visuallyhidden>Out of stock</span></span></a>
</span>
<span class="sku">
PRT-18286 </span>
<p class="description" style="display:none">
Slim, extremely light weight batteries based on Lithium Ion chemistry. Each cell outputs a nominal 3.7V at 1250 mAh and is IE… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$10.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="18286">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">10</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="18286" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-13854">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13854">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/6/1/13854-01.jpg" alt="Lithium Ion Battery - 850mAh" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13854">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13854" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13854 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13854"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13854">
<span>Lithium Ion Battery - 850mAh</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-13854 </span>
<p class="description" style="display:none">
These are very slim, extremely light weight batteries based on Lithium Ion chemistry. Each cell outputs a nominal 3.7V at 850… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$10.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-empty" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">2</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13854">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">21</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13854" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-13855">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13855">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/6/2/13855-01.jpg" alt="Lithium Ion Battery - 2Ah" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13855">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13855" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13855 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13855"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13855">
<span>Lithium Ion Battery - 2Ah</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-13855 </span>
<p class="description" style="display:none">
These are very slim, extremely light weight batteries based on Lithium Ion chemistry. Each cell outputs a nominal 3.7V at 200… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$13.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.6 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">9</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13855">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">50</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13855" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-13856">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13856">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/6/3/13856-01.jpg" alt="Lithium Ion Battery - 6Ah" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13856">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13856" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13856 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13856"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13856">
<span>Lithium Ion Battery - 6Ah</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-13856 </span>
<p class="description" style="display:none">
If you need some juice, this 6Ah Lithium Ion Battery is for you. These are very compact batteries based on Lithium Ion chemis… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$32.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3.9 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">7</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13856">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">42</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13856" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid retired" data-id="product-13813">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/retired/13813">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/0/1/13813-01.jpg" alt="Lithium Ion Battery - 1Ah" height="140">
</a>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/retired/13813">
<span>Lithium Ion Battery - 1Ah</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="Retired"><span class=sfe-icon-stock-retired><span class=visuallyhidden>Retired</span></span></a>
</span>
<span class="sku">
PRT-13813 </span>
<p class="description" style="display:none">
Slim, extremely light weight batteries based on Lithium Ion chemistry. Each cell outputs a nominal 3.7V at 1000 mAh! </p>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">8</span>
</span>
<strong class="retired">Retired</strong>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13813">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">74</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13813" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<p>What about a <strong>100mAh LiPo battery?</strong> Yeah, those should not be charged higher than 100mA. Make sure to find a single cell LiPo charger that is <strong>set at or below 100mA</strong>. The minimum LiPo battery that SparkFun has available currently that is compatible at this rate that you can safely charge is 110mAh. Other larger single cell LiPo batteries (like the 400mAh shown below or any of the ones shown earlier) can also be charged at this rate.</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-13851">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13851">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/5/8/13857-01.jpg" alt="Lithium Ion Battery - 400mAh" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13851">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13851" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13851 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13851"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13851">
<span>Lithium Ion Battery - 400mAh</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-13851 </span>
<p class="description" style="display:none">
This is a very small, extremely lightweight battery based on Lithium Ion chemistry, with the highest energy density currently… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$5.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.6 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">11</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13851">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">46</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13851" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-13853">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13853">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/6/0/13853-01.jpg" alt="Lithium Ion Battery - 110mAh" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13853">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13853" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13853 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13853"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13853">
<span>Lithium Ion Battery - 110mAh</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="only 12 left!"><span class=sfe-icon-stock-low><span class=visuallyhidden>Only 12 left!</span></span></a>
</span>
<span class="sku">
PRT-13853 </span>
<p class="description" style="display:none">
This is a very small, extremely light weight battery based on Lithium Ion chemistry. This is the highest energy density curre… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$5.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3.3 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-half" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">4</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13853">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">22</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13853" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<p>Depending on the designer, the charge rate can be set to a default rate of either 500mA or 100mA. Certain boards can have a 3-way jumper, switches, and/or PTH footprint to solder a resistor to adjust the charge rate. Below is a schematic of the USB LiPoly Charger. As you can see, this particular board is set at a default rate of 500mA with a 3-way jumper. <a href="https://learn.sparkfun.com/tutorials/how-to-work-with-jumper-pads-and-pcb-traces/all#cutting-a-trace-between-jumper-pads">Cutting the jumper</a> and adding a solder blob between the center pad and the other jumper pad will set the charge rate to 100mA.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/USB_LiPo_Charger_Schematic_MCP73831_highlighted.JPG"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/USB_LiPo_Charger_Schematic_MCP73831_highlighted.JPG" alt="alt text" /></a> </div></p>
<p>But what about that lone <strong>40mAh LiPo Battery</strong> in SparkFun's catalog?! If you look closely at the schematic shown earlier, there is also a footprint (not currently highlighted but it is connected to the same net) that allows users to solder a PTH resistor. This allows a user to set the charge rate to a value other than 500mA or 100mA. There's not that a lot of development boards and breakout boards that have the footprint available. Make sure to be careful when connecting a USB cable to those boards when a 40mAh battery is attached. You will want to remove the battery and connect the LiPo battery to a separate LiPo Charger that is <strong>set at or below 40mA</strong>.</p>
<div >
<div class="tile product-tile has_addl_actions grid " data-id="product-13852">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13852">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/5/9/13857-01.jpg" alt="Polymer Lithium Ion Battery - 40mAh (JST-PH)" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13852">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13852" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13852 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13852"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13852">
<span>Polymer Lithium Ion Battery - 40mAh (JST-PH)</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-13852 </span>
<p class="description" style="display:none">
This is an extremely tiny and light weight battery based on the new Polymer Lithium Ion chemistry. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$4.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13852">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">16</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13852" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<p>To calculate the resistor needed on a board with the MCP73831, you can use the following formula from <a href="https://cdn.sparkfun.com/datasheets/Components/General%20IC/33244_SPCN.pdf">its datasheet</a>. Note that this equation is specific for the MCP73831 charge IC.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/2/4/equation-charge-current.gif"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/2/2/4/equation-charge-current.gif" alt="\I_{charge} = \frac{1000V}{R_{prog}}\;\; \mathrm{(or)}\;\; R_{prog} = \frac{1000V}{I_{charge}}" /></a> </div></p>
<p>We'll just skip ahead of the calculations and tell you that the value to charge at a rate of 40mA is... 25kΩ! This is quite an odd number for a resistor value in SparkFun's catalog. You'll need to wire a few resistors wired in series and parallel to connect to the two PTHs (i.e. <a href="https://learn.sparkfun.com/tutorials/resistors">10kΩ + 10kΩ + (10kΩ || 10kΩ)</a> ). Or you could use resistor with a larger value like 47kΩ that is included in the <a href="https://www.sparkfun.com/products/10969">resistor kit</a>. However, the charge rate will be less: 21.28mA.</p>
<div class="alert alert-info" role="alert">
<sup><a name="note_1" href="https://learn.sparkfun.com/tutorials/single-cell-lipo-battery-care#note_1"><b>[1]: </b></a>Most batteries include over-current protection -- implemented on the little circuit board under the yellow tape -- which will keep the battery from blowing up if you supply too much current. But it's best to not rely on that circuit: you'll save power and your sanity.</sup>
</div>
<div class="alert alert-info" role="alert">
<b>Note:</b> For users using R/C LiPo batteries (i.e. more than one cell., make sure to use a dedicated LiPo battery balance charger to safely charge the LiPo batteries.
<br /><br />
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-11855">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/11855">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/8/2/5/1/11855-01.jpg" alt="Lithium Ion Battery - 1000mAh 7.4v" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="11855">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_11855" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_11855 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_11855"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/11855">
<span>Lithium Ion Battery - 1000mAh 7.4v</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="only 1 left!"><span class=sfe-icon-stock-low><span class=visuallyhidden>Only 1 left!</span></span></a>
</span>
<span class="sku">
PRT-11855 </span>
<p class="description" style="display:none">
This high discharge LiPo is a great way to power any R/C, robotic, or portable project. This is an excellent choice for anyth… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$10.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-empty" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">3</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="11855">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">10</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="11855" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-11856">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/11856">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/8/2/5/2/11856-01.jpg" alt="Lithium Ion Battery - 2200mAh 7.4v" height="140">
</a>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/11856">
<span>Lithium Ion Battery - 2200mAh 7.4v</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="out of stock"><span class=sfe-icon-stock-out><span class=visuallyhidden>Out of stock</span></span></a>
</span>
<span class="sku">
PRT-11856 </span>
<p class="description" style="display:none">
This high discharge LiPo is a great way to power any R/C, robotic, or portable project. This is an excellent choice for anyth… </p>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="11856">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">14</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="11856" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-16793">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/16793">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/5/7/0/2/16793-SkyRC_IMAX_B6_V2_Balance_Charger_-_Discharger-01.jpg" alt="SkyRC IMAX B6 V2 Professional Balance Charger / Discharger" height="140">
</a>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/16793">
<span>SkyRC IMAX B6 V2 Professional Balance Charger / Discharger</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="out of stock"><span class=sfe-icon-stock-out><span class=visuallyhidden>Out of stock</span></span></a>
</span>
<span class="sku">
PRT-16793 </span>
<p class="description" style="display:none">
The SkyRC B6 V2 is a DC input high-performance, micro-processor controlled charge/discharge/DC/DC converter with battery mana… </p>
</div>
<span class="star_rating">
<span class=product-rating title="4 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="16793">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">5</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="16793" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
</div> <a name="#connecting-and-disconnecting-a-lipo-batterys-jst-connector"></a>
<h2 id="connecting-and-disconnecting-a-lipo-batterys-jst-connector">Connecting and Disconnecting a LiPo Battery's JST Connector</h2>
<p>Depending on the manufacturer, there are different packages and connections for Lithium batteries. We will be going over how to connect and disconnect batteries with a JST-PH connector in this section. They will usually have a protection circuit under the yellow kapton tape, and a silver packaging (of course the exception is the <a href="https://www.sparkfun.com/products/13856">6Ah LiPo battery that is blue</a>).</p>
<table class="table table-hover table-striped table-bordered">
<tr align="center">
<td style="width:25%"><a href="https://www.sparkfun.com/products/18286"><img src="https://cdn.sparkfun.com//assets/parts/1/7/6/0/6/17748-Lithium_Ion_Battery_-_1250_mAh__IEC62133_certified_-01.jpg" alt=""></a></td>
<td style="width:25%"><a href="https://www.sparkfun.com/products/retired/13251"><img src="https://cdn.sparkfun.com//assets/parts/6/4/3/7/13251-01.jpg" alt=""></a></td>
<td style="width:25%"><a href="https://www.sparkfun.com/products/12895"><img src="https://cdn.sparkfun.com//assets/parts/9/7/8/5/12895-01_1.jpg" alt=""></a></td>
<td style="width:25%"><a href="https://www.sparkfun.com/products/retired/10319"><img src="https://cdn.sparkfun.com//assets/parts/4/7/2/6/10319-03a.jpg" alt=""></a></td>
</tr>
<tr align="center">
<td><i><a href="https://www.sparkfun.com/products/18286">1250mAh LiPo battery with JST connector</a></i></td>
<td><i><a href="https://www.sparkfun.com/products/retired/13251">110mAh LiPo battery with Solder Tabs</a></i></td>
<td><i><a href="https://www.sparkfun.com/products/12895">2600mAh Lithium Ion Battery 18650 Cell</a></i></td>
<td><i><a href="https://www.sparkfun.com/products/retired/10319">24.5mm CR2450 Coin Cell Lithium Ion Battery</a></i></td>
</tr>
</table>
<h3>JST Connector Locking Tabs</h3>
<p>Typically, single cell LiPo batteries are terminated with a two pin JST-PH female connector. These are <a href="https://learn.sparkfun.com/tutorials/connector-basics#power-connectors">polarized connectors</a> with pin 1 as +VBATT (red wire) and pin 2 connected to ground (black wire). These mate with the two pin JST-PH male connector (shroud).</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/2/6/0/7/f/51141810ce395f4d7e000007.jpg"><img src="https://cdn.sparkfun.com/assets/2/6/0/7/f/51141810ce395f4d7e000007.jpg" alt="JST Male and Female Connector" /></a> </div></p>
<div class="alert alert-danger" role="alert">
⚡ <b>Danger:</b> Always double check the orientation of the power and ground wires on the battery, depending on the manufacturer they may be reversed!!! All single cell LiPo batteries in the yellow/silver packs carried by SparkFun and SparkFun original boards use this standard configuration.
</div>
<p>If you look closely at the JST female connector, there are two locking tabs on the top of the connector for a secure connection. However, this can make it hard for anyone that wants to unplug and replug the battery back into the board. After a few inserts and removals, the locking tabs on the JST connector will wear down slightly to the point that you will be able to remove the connector by hand.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/14299_JST_PH_Connector_Close_Up_Highlighted.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/14299_JST_PH_Connector_Close_Up_Highlighted.jpg" alt="closeup locking tabs highlighted" /></a> </div></p>
<div class="alert alert-danger" role="alert">
⚡ <b>Danger:</b> Certain ecosystems use a JST connector for power as well. One example is the micro:bit. Note that the input voltage for the connector is different: it is typically around 3V and is intended to be used with 2xAA batteries. The battery chemistry is different for the AA batteries (usually alkaline with a nominal voltage of about 1.5V). Make sure to not connect the LiPo battery directly to the micro:bit's JST connector unless you have a regulated voltage.
<br /><br />
<div class="text-center"><a href="https://cdn.sparkfun.com//assets/learn_tutorials/8/5/0/Removing_JST_from_MicroBit_2.jpg"><img src="https://cdn.sparkfun.com/r/400-400/assets/learn_tutorials/8/5/0/Removing_JST_from_MicroBit_2.jpg"></a>
<br />
<br />
<i>Disconnecting JST Connectors on the micro:bit<br />from the <a href="https://learn.sparkfun.com/tutorials/wireless-remote-control-with-microbit/all
">Wireless Remote Control with micro:bit Tutorial</a></i></div>
</div>
<h3>Connecting JST Connectors</h3>
<p>Inserting the LiPo battery's JST connector into it's mating connector is a breeze. Simply hold the JST female connector with your index finger and thumb. Then hold board in a similar fashion using your other hand. Align the two JST connectors together. Insert the JST connector into the socket.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Fingers_Wiggling-1.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Fingers_Wiggling-1.jpg" alt="alt text" /></a> </div></p>
<h3>Disconnecting</h3>
<p>Now disconnecting the LiPo battery is a different story. Earlier, we talked about some locking tabs on the side of the JST connector which can make it difficult to disconnect it from a female JST connector. Depending on the manufacturer, the material of the female JST connector can add an extra layer of difficulty if it is rigid. Below are a few options if you decide to disconnect the LiPo battery.</p>
<ul>
<li>Using Your Bare <span style="text-decoration:line-through">Hands</span> Fingers!</li>
<li>Needle Nose Pliers</li>
<li>3D Print a Special Extraction Tool!!!</li>
<li>Diagonal Cutters</li>
<li>Shaving Off Locking Tabs</li>
</ul>
<div class="alert alert-warning" role="alert">
<b>Warning!</b> Make sure to not pull one the wires to disconnect. You may end up ripping the wires out from the connector.
</div>
<h4>Using Your Bare <span style="text-decoration:line-through">Hands</span> Fingers!</h4>
<p>You will need to carefully remove the connector out by pinching the sides of the JST female connector with your index finger and thumb. With your other hand, hold down the JST male connector.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Fingers_Wiggling-1.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Fingers_Wiggling-1.jpg" alt="alt text" /></a> </div></p>
<p>Wiggle the JST female connector side to side while carefully pulling away the connector from the board.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Fingers_Wiggling-2_Arrows.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Fingers_Wiggling-2_Arrows.jpg" alt="alt text" /></a> </div></p>
<p>The JST connector will slide out of the socket. Congratulations! You have successfully disconnected the LiPo battery from your board.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Fingers_Wiggling-3.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Fingers_Wiggling-3.jpg" alt="alt text" /></a> </div></p>
<h4>Needle Nose Pliers</h4>
<p>For those with long nails, you will want to use some needle nose pliers. We recommend using needle nose pliers with teeth like the one below:</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="product-8793">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/8793">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/2/0/3/3/08793-03-L.jpg" alt="Needle Nose Pliers" height="500">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="8793">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_8793" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_8793 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_8793"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/8793">
<span>Needle Nose Pliers</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
TOL-08793 </span>
<p class="description" style="display:none">
Mini Pliers. These are great little pliers! A must have for any hobbyist or electrical engineer. Crucial for inserting device… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$3.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="8793">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">23</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="8793" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>Grip the sides of the JST female connector using the needle nose pliers in one hand. With your other hand, hold down the JST male connector.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Needle_Nose_Pliers_Wiggling-1.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Needle_Nose_Pliers_Wiggling-1.jpg" alt="alt text" /></a> </div></p>
<p>Wiggle the JST female connector side to side while carefully pulling away the connector from the board. Using needle nose pliers will make it easier to remove but make sure to not angle the tool too much as the pins can be damaged if you angle the connector at an extreme angle.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Needle_Nose_Pliers_Wiggling-2_Arrows.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Needle_Nose_Pliers_Wiggling-2_Arrows.jpg" alt="alt text" /></a> </div></p>
<p>The JST connector will slide out of the socket. Congratulations! You have successfully disconnected the LiPo battery from your board.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Needle_Nose_Pliers_Wiggling-3.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Needle_Nose_Pliers_Wiggling-3.jpg" alt="alt text" /></a> </div></p>
<!-- #### 3D Print a Special Extraction Tool!!!
insert here
https://www.youtube.com/watch?app=desktop&v=j_sARNHijRQ
https://www.thingiverse.com/thing:4554126
https://www.eevblog.com/forum/projects/connector-puller-for-jst-xh-connectors/
Have a 3D printer nearby? There are some special extraction tools available. Grab the 3D model and print the tool!
insert here
test print
Slide the tool between the JST female connector. With your other hand, hold down the JST male connector. Wiggle the JST female connector side to side while carefully pulling away the connector from the board.
<table class="table table-hover table-striped table-bordered">
<tr align="center">
<td style="width:25%"><a href=""><img src="" alt=""></a></td>
<td style="width:25%"><a href=""><img src="" alt=""></a></td>
<td style="width:25%"><a href=""><img src="" alt=""></a></td>
</tr>
<tr align="center">
<td><i></i></td>
<td><i></i></td>
<td><i></i></td>
</tr>
</table>
Pictures?!
-->
<h4>Diagonal Cutters</h4>
<p>Of course you could also use some diagonal cutters as well. Wire cutters have thin jaws that allow you to grip the head of the connector. However, there is a risk of cutting the wires if the diagonal cutters slip.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="product-8794">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/8794">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/2/0/3/4/08794-03-L.jpg" alt="Diagonal Cutters" height="500">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="8794">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_8794" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_8794 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_8794"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/8794">
<span>Diagonal Cutters</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
TOL-08794 </span>
<p class="description" style="display:none">
Mini Diagonal Cutters. These are great little cutters! A must have for clipping leads and extra solder tails. 4" long. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$2.75</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-empty" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">3</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="8794">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">14</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="8794" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>Depending on the design of the board, you may need to grip from the top or bottom of the JST connector. We'll show in the following images how to remove the connector from the bottom. Position the wire cutter between the between the JST female connector's flanges on the side and the JST male connector's socket. With your other hand, hold down the JST male connector. Don't go squeezing hard on the wire cutters either. They are simply there to grip the edge of the connector.</p>
<table class="table table-hover table-striped table-bordered">
<tr align="center">
<td style="width:50%"><a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Diagonal_Cutters_Wiggling-1.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Diagonal_Cutters_Wiggling-1.jpg" alt=""></a></td>
<td style="width:50%"><a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Diagonal_Cutters_Wiggling-2.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Diagonal_Cutters_Wiggling-2.jpg" alt=""></a></td>
</tr>
<tr align="center">
<td><i>Diagonal cutters holding JST connector from the top of a PCB</i></td>
<td><i>Diagonal cutters holding JST connector from the bottom of a PCB</i></td>
</tr>
</table>
<div class="alert alert-info" role="alert">
<b>Note:</b> You can also use round nose pliers similar to the method used with diagonal cutters. However, they won't have the thin jaws like a diagonal cutter.
<br /><br />
<div align="center"><a href="https://cdn.sparkfun.com/assets/learn_tutorials/6/8/0/PliersBattery_1.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/6/8/0/PliersBattery_1.jpg"></a></div>
</div>
<p>Use the edge of the PCB as a fulcrum point and lever out the connector. Pull the JST female connector away from the board by wiggling the connector sideways back and forth</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Diagonal_Cutters_Wiggling-3_Arrows.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Diagonal_Cutters_Wiggling-3_Arrows.jpg" alt="alt text" /></a> </div></p>
<p>The JST connector will slide out of the socket. Congratulations! You have successfully disconnected the LiPo battery from your board.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Diagonal_Cutters_Wiggling-4.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Remove_2-pin_JST-PH_Connector_LiPo_Battery_Diagonal_Cutters_Wiggling-4.jpg" alt="alt text" /></a> </div></p>
<h3>Removing the Locking Tabs</h3>
<p>Another option is to removing the locking tabs using a hobby knife. Cutting the tabs will make it easier to remove by hand. While it will not be as secure as it was before, we have found that it still holds pretty well in the JST male connector socket.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="product-9200">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/9200">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/2/6/4/6/09200-Hobby_Knife-01.jpg" alt="Hobby Knife" height="500">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="9200">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_9200" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_9200 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_9200"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/9200">
<span>Hobby Knife</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
TOL-09200 </span>
<p class="description" style="display:none">
It's like an Xacto knife, only better. We use these extensively when working with PCBs. These small knives work well for cutt… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$3.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">2</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="9200">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">21</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="9200" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>Pinch the sides of the JST female connector with your index finger and thumb. With the hobby knife, slice the locking tabs off each side of the JST female connector until it is flush with the top of the connector. There's not a lot of space to work with so make sure to not cut your fingers and angle the hobby knife away from your finger tips!</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Hobby_Knife_JST-PH_Connector_Locking_Tabs.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Hobby_Knife_JST-PH_Connector_Locking_Tabs.jpg" alt="alt text" /></a> </div></p>
<p>The JST connector on the left shows the locking tabs intact. The JST connector on the right shows the locking tabs removed after. If the connector is still too tight, you can also cut down part of the fin (the slot between the two locking tabs) on the top of the connector as well.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/JST-PH_Connector_Comparison_Locking_Tabs_Removed.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/JST-PH_Connector_Comparison_Locking_Tabs_Removed.jpg" alt="alt text" /></a> </div></p> <a name="#how-much-power-is-left"></a>
<h2 id="how-much-power-is-left">How Much Power is Left?</h2>
<p>You might be asking yourself, how much power is left in my LiPo battery? This is useful to ensure that you have enough charge to power your project or storing the LiPo battery.</p>
<h3>Multimeter</h3>
<p>One way to check the voltage of a LiPo battery is <a href="https://learn.sparkfun.com/tutorials/how-to-use-a-multimeter/">using a multimeter</a>. You can set a multimeter to measure the voltage and connect to the terminals of the JST connector. Of course, you can also connect to the +VBATT and GND pins on a PCB if the battery is connected to a board as well. Just be careful not to accidentally create a short between the two terminals when measuring with the probes.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/1/01_Multimeter_Tutorial-03.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/1/01_Multimeter_Tutorial-03.jpg" alt="Measuring the voltage of a LiPo Battery" /></a> </div></p>
<p><div class="center-block text-center"> <em>Using a Multimeter to test the voltage on a LiPo Battery.</em> </div></p>
<h3>LiPo Fuel Gauge</h3>
<p>Another method is using a dedicated LiPo Fuel Gauge to output the voltage and charge remaining on a display. You are less likely to short the battery terminal pins using a LiPo Fuel Gauge (assuming that you are connecting a LiPo battery to the LiPo Fuel Gauge's JST connector or have it soldered to the PTH) compared to using a multimeter. Below are a few LiPo Fuel Gauges that you could use.</p>
<div class="row">
<div class="col-md-6">
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-2946">
<a href="https://learn.sparkfun.com/tutorials/lipo-fuel-gauge-max1704x-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/2/9/4/6/20680-_TOL_SparkFun_LiPo_Fuel_Gauge-_01.jpg)"></div>
</div>
<h3 class="title">LiPo Fuel Gauge (MAX1704X) Hookup Guide</h3>
<h4 class="metaline">February 23, 2023</h4> </a>
<div class="description">
Monitor your LiPo battery with the LiPo fuel gauge! In this tutorial, we will be using the MAX17043 and MAX17048 to monitor a single cell, LiPo battery over the Arduino Serial Monitor. We will also connect a display to view the output without the need to connect the microcontroller to a computer. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="2946">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="col-md-6">
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-530">
<a href="https://learn.sparkfun.com/tutorials/battery-babysitter-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/5/3/0/battery-babysitter-iso.jpg)"></div>
</div>
<h3 class="title">Battery Babysitter Hookup Guide</h3>
<h4 class="metaline">June 23, 2016</h4> </a>
<div class="description">
An introduction and getting started guide for the Battery Babysitter - a flexible LiPo battery charger and monitor. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="530">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">12</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
</div>
</div> <a name="#reinforcing-the-power-cables"></a>
<h2 id="reinforcing-the-power-cables">Reinforcing the Power Cables</h2>
<p>One of the down sides to using these LiPo batteries is their fragile power connections between the wires and protection circuit. These type of batteries are manufactured for a permanent install in devices, and not being removed often as can sometimes happen with projects. For users prototyping or frequently removing the battery from boards without ON/OFF switches, it can be easy to accidentally pull or break the power wires from the terminals on the protection circuit built into the battery. Luckily for us, a little electrical tape goes a long way!</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/10689-02_elecrtical_tape.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/10689-02_elecrtical_tape.jpg" alt="alt text" /></a> </div></p>
<p>The red and black wires on a LiPo will tend to wear out and break off if you swing the battery around too much. This fix is so simple, but we find that many people don't realize what a little stress-relief can do. You can provide strain relief to the wires by placing them to the side and securing with electrical tape - this will help with strain on the connection to the battery.</p>
<p>On your LiPo battery, fold the red and black wires to the side. With electrical tape, start in the middle of the battery and tape over the top. Use a little bit of tension on the tape as you go over the top of the battery. I use one and a half full wraps around the battery.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Strain_Relief_LiPo_Battery_Electrical_Tape-1.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Strain_Relief_LiPo_Battery_Electrical_Tape-1.jpg" alt="alt text" /></a> </div></p>
<p>Cut the tape with wire cutters or knife to make a clean cut. Tearing the tape can leave ugly ripples in the electrical tape.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Strain_Relief_LiPo_Battery_Electrical_Tape_2.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Strain_Relief_LiPo_Battery_Electrical_Tape_2.jpg" alt="alt text" /></a> </div></p>
<p>To make it even more secure, you can add another piece of tape across LiPo battery.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/Strain_Relief_LiPo_Battery_Electrical_Tape-3.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/Strain_Relief_LiPo_Battery_Electrical_Tape-3.jpg" alt="alt text" /></a> </div></p>
<p>This one or two wraps around the battery serve as a simple stress relief. All the mechanical stress is transferred to the tape instead of to the soldered terminals inside the top of the battery. Now when you use (or mis-use) the battery, you won't have to worry about breaking the red and black wires from the top of the battery!</p> <a name="#labeling-batteries"></a>
<h2 id="labeling-batteries">Labeling Batteries</h2>
<p>We've had a surprising collection of LiPos for various projects (they just seem to be replicating at this point!). A problem that came up was identifying the battery. What was I doing with this battery? What torture had I put it through? A Sharpie marker is perfect for marking your battery. A name such as 'heater' or 'costume' makes a world of difference. Dating the battery will let you know when you first used it. After a few years these batteries will start to lose some of their capacity. A date code helps to indicate that general health of a cell.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/BatteryCare-5_Labeling.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/3/0/4/5/BatteryCare-5_Labeling.jpg" alt="alt text" /></a> </div></p>
<p>Remember, a protection circuit is usually built into yellow and silver pack that we sell. The protection circuit board is usually under the yellow Kapton tape where the wires are connected.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/13854-03_LiPo_Battery_Protection_Circuit_under_Yellow_Kapton_Tape.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/4/5/13854-03_LiPo_Battery_Protection_Circuit_under_Yellow_Kapton_Tape.jpg" alt="alt text" /></a> </div></p>
<p>The protection circuit will prevent:</p>
<ul>
<li>over voltage (over charging)</li>
<li>over current (the battery will turn off if there is a short in your system)</li>
<li>under voltage (the battery will turn off before it runs down too low)</li>
</ul>
<p>This protection circuit prevents most misuse of the battery and we have definitely misused some batteries. You can be re-assured the protection circuit will protect you and the battery.</p> <a name="#battery-storage-and-handling"></a>
<h2 id="battery-storage-and-handling">Battery Storage and Handling</h2>
<div class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-warning-sign" aria-hidden="true"> </span> <b>Warning:</b> LiPo batteries can explode or catch fire if mishandled or damaged. They can become unstable and dangerous if punctured or exposed to high temperatures. </div>
<p>While LiPo batteries are a great option for providing rechargeable power to your project, they do have some safety considerations. This section will cover a few tips for safe handling and use of LiPo batteries for your projects.</p>
<h3>Storage</h3>
<ul>
<li><p>When not in use for long periods, it is recommended to discharge the LiPo battery to about 3.9V to 4.0V.</p></li>
<li><p>Always store your batteries in an enclosure free of sharp objects. When installing a battery in your project, take care to keep it away from parts of your project that could pinch, poke, or strain the battery.</p></li>
<li><p>Do not transport or store a LiPo battery with metal objects, such as hairpins, necklaces, or any other conductive object or material.</p></li>
<li><p>Keep or store the battery in a cool and dry place/environment while installed in a project or in storage. If you are not planning to use your project for a long time, remove the battery and store it separately.</p></li>
</ul>
<h3>Keep Away from Heat and Moisture</h3>
<ul>
<li><p>Keep your LiPo battery away from environments that will damage it. Do not immerse a LiPo battery in liquids. Remove the battery from your project if it needs to be washed (such as e-textiles and wearable projects).</p></li>
<li><p>Do not use or store the battery near any source of heat. To secure a battery to your project, velcro is a temporary option or sew into a pouch or place in a plastic enclosure. Never iron or hot glue directly on or around a LiPo battery.</p></li>
</ul>
<h3>Inspect Battery Before Each Use</h3>
<ul>
<li><p>Short circuits or damage to LiPo batteries may not always be noticeable - check the battery for puffiness, heat, or other changes. If the battery looks damaged, remove immediately.</p></li>
<li><p>If the battery gives off an odor, generates heat, becomes discolored or deformed, or in any way appears abnormal during use, recharging, or storage, immediately remove it from your project or battery charger and stop using it. Make sure to dispose of your batteries properly - do not throw them in the trash! Contact your local e-waste disposal organization for details on how to discard batteries in your area.</p></li>
</ul> <a name="#resources-and-going-further"></a>
<h2 id="resources-and-going-further">Resources and Going Further</h2>
<p>Looking for more resources on LiPo batteries? Check out a few below. There are many websites available online with this information. While the articles linked refer to multi-cell LiPo batteries, the information is still relevant for general guidelines for handling LiPo batteries and storing.</p>
<ul>
<li><a href="https://www.rogershobbycenter.com/lipoguide">A Guide to Understanding LiPo Batteries</a></li>
<li><a href="https://dronebotworkshop.com/lipo-safety/">LiPo Safety</a></li>
<li><a href="https://dwaaoz.com.au/safe-storage-of-lipo-batteries/">Safe Storage of LiPo Batteries</a></li>
</ul>
<p>Need some inspiration for your next project? Check out some of these related tutorials and articles.</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-36">
<a href="https://learn.sparkfun.com/tutorials/how-to-power-a-project">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/3/6/Bench_Power_Supply.jpg)"></div>
</div>
<h3 class="title">How to Power a Project</h3>
</a>
<div class="description">
A tutorial to help figure out the power requirements of your project. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="36">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">70</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-72">
<a href="https://learn.sparkfun.com/tutorials/electric-power">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/7/2/PowerThumb.jpg)"></div>
</div>
<h3 class="title">Electric Power</h3>
</a>
<div class="description">
An overview of electric power, the rate of energy transfer. We'll talk definition of power, watts, equations, and power ratings. 1.21 gigawatts of tutorial fun! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="72">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">58</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-225">
<a href="https://learn.sparkfun.com/tutorials/ltc4150-coulomb-counter-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/2/2/5/cc_top2.jpg)"></div>
</div>
<h3 class="title">LTC4150 Coulomb Counter Hookup Guide</h3>
</a>
<div class="description">
A "Coulomb Counter" is like a gas gauge for your battery. Here's how to use it. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="225">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">4</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-313">
<a href="https://learn.sparkfun.com/tutorials/sunny-buddy-solar-charger-v13-hookup-guide-">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/3/1/3/default.jpg)"></div>
</div>
<h3 class="title">Sunny Buddy Solar Charger V13 Hookup Guide </h3>
</a>
<div class="description">
How to hookup the Sunny Buddy: a solar-powered, MPPT (peak-power tracking), LiPo battery charger. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="313">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">15</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-530">
<a href="https://learn.sparkfun.com/tutorials/battery-babysitter-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/5/3/0/battery-babysitter-iso.jpg)"></div>
</div>
<h3 class="title">Battery Babysitter Hookup Guide</h3>
</a>
<div class="description">
An introduction and getting started guide for the Battery Babysitter - a flexible LiPo battery charger and monitor. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="530">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">12</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-668">
<a href="https://learn.sparkfun.com/tutorials/lilypad-basics-powering-your-project">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/6/8/InsertBattery.jpg)"></div>
</div>
<h3 class="title">LilyPad Basics: Powering Your Project</h3>
</a>
<div class="description">
Learn the options for powering your LilyPad projects, LiPo battery safety and care, and how to calculate and consider power constraints on your projects. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="668">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">8</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-677">
<a href="https://learn.sparkfun.com/tutorials/adjustable-lipo-charger-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/7/7/14380-01.jpg)"></div>
</div>
<h3 class="title">Adjustable LiPo Charger Hookup Guide</h3>
</a>
<div class="description">
The SparkFun Adjustable LiPo Charger is a single-cell lithium polymer (LiPo) and lithium ion battery charger. Because it’s adjustable, this charger will be able to safely charge all of our singe-cell batteries. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="677">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">6</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-2946">
<a href="https://learn.sparkfun.com/tutorials/lipo-fuel-gauge-max1704x-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/2/9/4/6/20680-_TOL_SparkFun_LiPo_Fuel_Gauge-_01.jpg)"></div>
</div>
<h3 class="title">LiPo Fuel Gauge (MAX1704X) Hookup Guide</h3>
</a>
<div class="description">
Monitor your LiPo battery with the LiPo fuel gauge! In this tutorial, we will be using the MAX17043 and MAX17048 to monitor a single cell, LiPo battery over the Arduino Serial Monitor. We will also connect a display to view the output without the need to connect the microcontroller to a computer. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="2946">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<p>Or check out some of these blog posts about batteries:</p>
<div class="tile-wrap">
<div class="tile blog-tile has_addl_actions " data-id="news-2248">
<a href="https://www.sparkfun.com/news/2248" title="December 7, 2016: If you order batteries from us, you'll want to read this. ">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/338-190/assets/home_page_posts/2/2/4/8/New_Class_9_Sticker.jpg)"></div>
<h3 class="title">Big Changes to Battery Ordering Are Coming</h3>
<div class="metaline">
<span class="meta">December 7, 2016</span>
</div>
</a>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="blog_posts" data-entity-id="2248">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> </div>
</div>
<div class="tile blog-tile has_addl_actions " data-id="news-2913">
<a href="https://www.sparkfun.com/news/2913" title="April 16, 2019: Have you ever been curious about the multitude of battery types and functions? Let's take a look at a few with guest author Andrew Shepherd.">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/338-190/assets/home_page_posts/2/9/1/3/5114447cce395f697e000009.jpg)"></div>
<h3 class="title">Batteries? What For?</h3>
<div class="metaline">
<span class="meta">April 16, 2019</span>
</div>
</a>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="blog_posts" data-entity-id="2913">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">4</span>
</span> </div>
</div>
<div class="tile blog-tile has_addl_actions " data-id="news-3798">
<a href="https://www.sparkfun.com/news/3798" title="March 22, 2021: SparkFun engineer Alex Wende reviews the DIY Supercharger Kit - from opening the kit, to building, testing and using it.">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/338-190/assets/home_page_posts/3/7/9/8/Article.png)"></div>
<h3 class="title">Product Review: Elektor DIY LiPo Supercharger Kit (by GreatScott!)</h3>
<div class="metaline">
<span class="meta">March 22, 2021</span>
</div>
</a>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="blog_posts" data-entity-id="3798">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<hr>
<p><a href="https://learn.sparkfun.com">learn.sparkfun.com</a> |
<a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>
| SparkFun Electronics | Niwot, Colorado</p>
Qwiic Dynamic NFC/RFID Tag Hookup Guide
El Duderino
https://www.sparkfun.com/users/17002
urn:uuid:ab1f514a-42ff-e7b5-b82c-c14cdec5bd7c
2023-03-09T00:00:00-07:00
<h1>
Qwiic Dynamic NFC/RFID Tag Hookup Guide <small>a <a href="https://learn.sparkfun.com/tutorials">learn.sparkfun.com tutorial</a></small>
</h1>
<h3>
Available online at: <a href="http://sfe.io/t3012">http://sfe.io/t3012</a>
</h3>
<a name="#introduction"></a>
<h2 id="introduction">Introduction</h2>
<p>The <a href="https://www.sparkfun.com/products/21274">SparkFun Qwiic Dynamic NFC/RFID Tag</a> features the ST25DV64KC dynamic Near Frequency Communication (NFC) / Radio Frequency Identification (RFID) tag IC from STMicroelectronics<sup>©</sup>. The ST25DV64KC offers 64-kBit (8-kBytes) of EEPROM memory which can be accessed over both I2C and RF (NFC)! It's a state-of-the-art tag which conforms to ISO/IEC 15693 or NFC Forum Type 5 recommendations. You can read and write the tag's memory using NFC even while the tag is powered down or disconnected!</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="product-21274">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/21274">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/2/1/0/5/3/SparkFun_Dynamic_RFID_Tag-_01.jpg" alt="SparkFun Qwiic Dynamic NFC/RFID Tag" height="500">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="21274">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_21274" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_21274 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_21274"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/21274">
<span>SparkFun Qwiic Dynamic NFC/RFID Tag</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="20 available"><span class=sfe-icon-stock-low><span class=visuallyhidden>20 available</span></span></a>
</span>
<span class="sku">
SEN-21274 </span>
<p class="description" style="display:none">
The SparkFun Qwiic Dynamic NFC/RFID Tag features the ST25DV64KC dynamic Near Frequency Communication (NFC) / Radio Frequency … </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$9.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="21274">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">13</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="21274" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>In this guide we'll go into some detail on the ST25DV64KC IC and other hardware on this Qwiic breakout, how to assemble it into a Qwiic circuit and then install the SparkFun ST25DV64KC Arduino Library.</p>
<h3>Required Materials</h3>
<p>To follow along with this guide you will need a microcontroller to communicate with the Qwiic Dynamic NFC/RFID Tag. Below are a few options that come Qwiic-enabled out of the box:</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-15663">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/15663">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/4/2/4/1/15663-SparkFun_Thing_Plus_-_ESP32_WROOM-01.jpg" alt="SparkFun Thing Plus - ESP32 WROOM (Micro-B)" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="15663">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_15663" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_15663 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_15663"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/15663">
<span>SparkFun Thing Plus - ESP32 WROOM (Micro-B)</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
WRL-15663 </span>
<p class="description" style="display:none">
The SparkFun ESP32 Thing Plus is the next step to get started with Espressif IoT ideations while still enjoying all the ameni… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$22.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.7 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">13</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="15663">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">57</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="15663" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-18158">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/18158">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/7/4/8/7/18158-SparkFun_RedBoard_Plus-01.jpg" alt="SparkFun RedBoard Plus" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="18158">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_18158" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_18158 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_18158"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/18158">
<span>SparkFun RedBoard Plus</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
DEV-18158 </span>
<p class="description" style="display:none">
The RedBoard Plus is an Arduino-compatible development board that has everything you need in an Arduino Uno with extra perks … </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$21.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.8 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">6</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="18158">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">22</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="18158" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-15574">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/15574">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/4/1/7/0/15574-SparkFun_Thing_Plus_-_Artemis-01.jpg" alt="SparkFun Thing Plus - Artemis" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="15574">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_15574" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_15574 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_15574"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/15574">
<span>SparkFun Thing Plus - Artemis</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
WRL-15574 </span>
<p class="description" style="display:none">
The SparkFun Artemis Thing Plus takes our popular Feather footprint and adds in the powerful Artemis module for ultimate func… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$22.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">2</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="15574">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">32</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="15574" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-15444">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/15444">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/4/0/1/9/15444-SparkFun_RedBoard_Artemis-01.jpg" alt="SparkFun RedBoard Artemis" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="15444">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_15444" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_15444 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_15444"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/15444">
<span>SparkFun RedBoard Artemis</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
DEV-15444 </span>
<p class="description" style="display:none">
The RedBoard Artemis takes the incredibly powerful Artemis module from SparkFun and wraps it up in an easy to use and familia… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$21.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3.4 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-half" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">10</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="15444">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">38</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="15444" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<p>If your chosen microcontroller is not already Qwiic-enabled, you can add that functionality with one or more of the following items:</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-15081">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/15081">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/3/4/3/1/15081-_01.jpg" alt="SparkFun Qwiic Cable Kit" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="15081">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_15081" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_15081 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_15081"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/15081">
<span>SparkFun Qwiic Cable Kit</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
KIT-15081 </span>
<p class="description" style="display:none">
To make it even easier to get started, we've assembled this Qwiic Cable Kit with a variety of Qwiic cables from 50mm to 500mm… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$8.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">20</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="15081">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">78</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="15081" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-14495">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/14495">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/5/5/1/14495-01.jpg" alt="SparkFun Qwiic Adapter" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="14495">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_14495" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_14495 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_14495"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/14495">
<span>SparkFun Qwiic Adapter</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
DEV-14495 </span>
<p class="description" style="display:none">
The SparkFun Qwiic Adapter provides the perfect means to make any old I<sup>2</sup>C board into a Qwiic enabled board. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$1.60</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.8 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">4</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14495">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">65</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14495" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-14352">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/14352">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/3/4/3/14352-01.jpg" alt="SparkFun Qwiic Shield for Arduino" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="14352">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_14352" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_14352 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_14352"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/14352">
<span>SparkFun Qwiic Shield for Arduino</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
DEV-14352 </span>
<p class="description" style="display:none">
The SparkFun Qwiic Shield is an easy-to-assemble board that provides a simple way to incorporate the Qwiic Connect System wit… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$7.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3.8 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-half" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">9</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14352">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">46</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14352" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-16790">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/16790">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/5/6/9/7/16790-SparkFun_Qwiic_Shield_for_Thing_Plus-05.jpg" alt="SparkFun Qwiic Shield for Thing Plus" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="16790">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_16790" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_16790 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_16790"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/16790">
<span>SparkFun Qwiic Shield for Thing Plus</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
DEV-16790 </span>
<p class="description" style="display:none">
The SparkFun Qwiic Shield for Thing Plus makes it so you can use SparkFun's Qwiic connect ecosystem with development boards t… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$4.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="16790">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">9</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="16790" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<p>You will also need at least one Qwiic cable to connect your sensor to your microcontroller.</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-14426">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/14426">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/4/5/2/14426-Qwiic_Cable_-_50mm-01.jpg" alt="Qwiic Cable - 50mm" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="14426">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_14426" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_14426 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_14426"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/14426">
<span>Qwiic Cable - 50mm</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-14426 </span>
<p class="description" style="display:none">
This is a 50mm long 4-conductor cable with 1mm JST termination. It’s designed to connect Qwiic enabled components together … </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$0.95</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14426">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">36</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14426" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-14427">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/14427">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/4/5/3/14427-Qwiic_Cable_-_100mm-01.jpg" alt="Qwiic Cable - 100mm" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="14427">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_14427" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_14427 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_14427"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/14427">
<span>Qwiic Cable - 100mm</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-14427 </span>
<p class="description" style="display:none">
This is a 100mm long 4-conductor cable with 1mm JST termination. It’s designed to connect Qwiic enabled components together… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$1.50</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14427">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">39</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14427" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid retired" data-id="product-14429">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/retired/14429">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/4/5/5/14429-Qwiic_Cable_-_500mm-01.jpg" alt="Qwiic Cable - 500mm" height="140">
</a>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/retired/14429">
<span>Qwiic Cable - 500mm</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="Retired"><span class=sfe-icon-stock-retired><span class=visuallyhidden>Retired</span></span></a>
</span>
<span class="sku">
PRT-14429 </span>
<p class="description" style="display:none">
This is a 500mm long 4-conductor cable with 1mm JST termination. It’s designed to connect Qwiic enabled components together… </p>
</div>
<span class="star_rating">
<span class=product-rating title="4 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<strong class="retired">Retired</strong>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14429">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">32</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14429" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid retired" data-id="product-14428">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/retired/14428">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/4/5/4/14428-Qwiic_Cable_-_200mm-01.jpg" alt="Qwiic Cable - 200mm" height="140">
</a>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/retired/14428">
<span>Qwiic Cable - 200mm</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="Retired"><span class=sfe-icon-stock-retired><span class=visuallyhidden>Retired</span></span></a>
</span>
<span class="sku">
PRT-14428 </span>
<p class="description" style="display:none">
This is a 200mm long 4-conductor cable with 1mm JST termination. It’s designed to connect Qwiic enabled components together… </p>
</div>
<strong class="retired">Retired</strong>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14428">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">20</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14428" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<h3>Optional Materials</h3>
<h3>Suggested Reading</h3>
<p>If you aren't familiar with the Qwiic system, we recommend reading <a href="https://www.sparkfun.com/qwiic">here for an overview</a>.</p>
<table class="table table-bordered">
<tr align="center">
<td><center><a href="https://www.sparkfun.com/qwiic"><img src="https://cdn.sparkfun.com/assets/custom_pages/2/7/2/qwiic-logo.png" alt="Qwiic Connect System" title="Qwiic Connect System"></a></center></td>
</tr>
</table>
<p>We also recommend taking a look at the following tutorials if you aren't familiar with the concepts covered in them. If you are using one of the Qwiic Shields listed above, you may want to read through their respective Hookup Guides as well before you get started with the Qwiic Dynamic NFC/RFID Tag.</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-82">
<a href="https://learn.sparkfun.com/tutorials/i2c">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/8/2/I2C-Block-Diagram.jpg)"></div>
</div>
<h3 class="title">I2C</h3>
</a>
<div class="description">
An introduction to I2C, one of the main embedded communications protocols in use today. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="82">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">136</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-633">
<a href="https://learn.sparkfun.com/tutorials/rfid-basics">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/3/3/RFID_Tag-104.png)"></div>
</div>
<h3 class="title">RFID Basics</h3>
</a>
<div class="description">
Dive into the basics of Radio Frequency Identification (RFID) technology. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="633">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">29</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-684">
<a href="https://learn.sparkfun.com/tutorials/qwiic-shield-for-arduino--photon-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/8/4/Qwic_Shield_Hookup_Guide-05.jpg)"></div>
</div>
<h3 class="title">Qwiic Shield for Arduino & Photon Hookup Guide</h3>
</a>
<div class="description">
Get started with our Qwiic ecosystem with the Qwiic shield for Arduino or Photon. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="684">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">6</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-1106">
<a href="https://learn.sparkfun.com/tutorials/sparkfun-qwiic-shield-for-arduino-nano-hookup-guide">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/1/0/6/16789-SparkFun_Qwiic_Shield_for_Arduino_Nano-05_Thumb.jpg)"></div>
</div>
<h3 class="title">SparkFun Qwiic Shield for Arduino Nano Hookup Guide</h3>
</a>
<div class="description">
Hookup Guide for the SparkFun Qwiic Shield for Arduino Nano. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1106">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">1</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div> <a name="#hardware-overview"></a>
<h2 id="hardware-overview">Hardware Overview</h2>
<p>Let's take a closer look at the ST25DV64KC and other hardware present on the Qwiic Dynamic NFC/RFID Tag.</p>
<h3>ST25DV64KC Dynamic NFC/RFID Tag</h3>
<p>The ST25DV64KC from STMicroelectronics is a unique tag IC that communicates over both I<sup>2</sup>C and RF (NFC). It conforms to ISO/IEC 15693 (13.56 MHz frequency) and NFC Forum Type 5 recommendations.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_ST25.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_ST25.jpg" alt="Highlighting the ST25DV64KC IC." /></a> </div></p>
<p>The ST25DV64KC includes 64 Kbit EEPROM for users to write and read data from, a general purpose output to act as an external interrupt reporting events such as RF field changes, RF activity, I<sup>2</sup>C writes and RF switch toggling over I<sup>2</sup>C. The IC has a supply voltage range of <b>1.8V</b> to <b>5.5V</b> though when in a Qwiic circuit it runs at <b>3.3V</b>. It also includes an energy harvesting pin capable of outputing µW of power with an RF field of sufficient strength. For a complete overview of the ST25DV64KC, refer to the <a href="https://cdn.sparkfun.com/assets/f/5/4/e/d/st25dv04kc-2450072.pdf">datasheet</a>.</p>
<p>The ST25DV64KC supports a fast transfer mode to send the contents of a 256 byte buffer between a device connected to the tag over I<sup>2</sup>C (refered to as the tag's Mailbox) and an RF device such as a reader or smartphone. This makes it so you can store data on the tag and have it available for reading by an RF device by simply bringing it into the RF read range, even if the tag is powered off. This data can also be password protected with a 64-bit value.</p>
<h3>Power and Communication Interfaces</h3>
<p>The Qwiic Dynamic NFC/RFID Tag has two interfaces for powering and communicating with the ST25DV64KC: a pair of Qwiic connectors and a plated through hole (PTH) header.</p>
<h4>Qwiic Connector</h4>
<p>The board has a pair of Qwiic connectors to integrate it into a Qwiic ecosystem.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_Qwiic.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_Qwiic.jpg" alt="Highlighting the Qwiic connectors." /></a> </div></p>
<p>The Qwiic connectors route the SDA/SCL connections as well as 3.3V and Ground to power the board and communicate with the ST25DV64KC over I<sup>2</sup>C.</p>
<h4>Plated Through Hole Header</h4>
<p>The board has a 0.1"-spaced PTH header that breaks out the power pins (3.3V and Ground), I<sup>2</sup>C interface (SDA/SCL), energy harvesting pin (VEH), and general purpose output pin (GPO).</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_Pinout.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_Pinout.jpg" alt="Highlighting the PTH header." /></a> </div></p>
<p>The Energy Harvesting Pin outputs an analog voltage when energy harvesting mode is enabled and in the presence of a strong enough RF field. Refer to section 5.5 of the <a href="https://cdn.sparkfun.com/assets/f/5/4/e/d/st25dv04kc-2450072.pdf">datasheet</a> for specifics on using this pin. The General Purpose Output is an open-drain configurable pin used for interrupt events.</p>
<h3>Antenna</h3>
<p>The board includes a PCB antenna for the ST25DV64KC to help boost the read range a bit. In our testing with a smart phone running an NFC reader app we found it had a range of a few centimeters.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_Antenna.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_Antenna.jpg" alt="Highlighting the PCB antenna." /></a> </div></p>
<h3>LED</h3>
<p>The sole LED on this board is a power status LED.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_LED.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_LED.jpg" alt="Highlighting the Power LED." /></a> </div></p>
<h3>Solder Jumpers</h3>
<p>The board has three solder jumpers labeled <b>LED</b>, <b>GPO</b> and <b>I2C</b>. The table below outlines their labels, default state, functionality, and any notes regarding their use.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_Jumpers.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_Jumpers.jpg" alt="Highlighting the solder jumpers." /></a> </div></p>
<table class="table table-striped table-bordered table-hover">
<tr>
<th>Label</th>
<th>Default State</th>
<th>Function</th>
<th>Notes</th>
</tr>
<tr>
<td>LED</td>
<td>CLOSED</td>
<td>Completes the Power LED circuit.</td>
<td>Open to disable the Power LED.</td>
</tr>
<tr>
<td>GPO</td>
<td>CLOSED</td>
<td>Pulls the interrupt (GPO) pin HIGH through a <b>10kΩ</b> resistor.</td>
<td>Open to disable the pullup resistor.</td>
</tr>
<tr>
<td>I2C</td>
<td>CLOSED</td>
<td>Pulls the SDA/SCL lines to VCC (<b>3.3V</b>) through a pair of <b>2.2kΩ</b> resistors.</td>
<td>Open to disable the pullup resistors.</td>
</tr>
</table>
<h3>Board Dimensions</h3>
<p>The Qwiic Dynamic NFC/RFID Tag matches the standard Qwiic breakout size of 1" x 1" (25.4mm x 25.4mm) and has two mounting holes that fit a <a href="https://www.sparkfun.com/products/10453">4-40 screw</a>.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/5/9/f/2/f/Qwiic_RFID_Tag.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/5/9/f/2/f/Qwiic_RFID_Tag.png" alt="Board dimensions" /></a> </div></p> <a name="#hardware-assembly"></a>
<h2 id="hardware-assembly">Hardware Assembly</h2>
<p>Now that we're familiar with the hardware on the Qwiic Dynamic NFC/RFID Tag, it's time to assemble it into a Qwiic circuit.</p>
<h3>Basic Assembly</h3>
<p>The Qwiic ecosystem makes building a circuit with the Qwiic Dynamic NFC/RFID Tag simple. Just use a Qwiic cable to connect the breakout to your development board like the image shown below:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_Assembly.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/0/1/2/Dynamic_RFID_Tag_-_Assembly.jpg" alt="Qwiic circuit assembled." /></a> </div></p>
<p>As a reminder, the Qwiic connectors only include the power pins and I<sup>2</sup>C lines so if you wish to use the Energy Harvesting pin or the General Purpose pin you'll need to solder to them or use something like these <a href="https://www.sparkfun.com/products/9741">IC Hooks</a> for a temporary prototyping connection.</p>
<h3>Soldered Assembly</h3>
<p>Users who prefer a traditional soldered connection should solder headers or wires to the Qwiic Dynamic NFC/RFID Tag and then make the appropriate connections to your development board. If you've never soldered before or would like some tips, check out our <a href="https://learn.sparkfun.com/tutorials/how-to-solder-through-hole-soldering">How to Solder Tutorial</a>.</p> <a name="#sparkfun-st25dv64kc-arduino-library"></a>
<h2 id="sparkfun-st25dv64kc-arduino-library">SparkFun ST25DV64KC Arduino Library</h2>
<div class="alert alert-info">
<p><b>Note:</b> This library assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using Arduino, please review our tutorial on <a href="https://learn.sparkfun.com/tutorials/installing-arduino-ide">installing the Arduino IDE.</a> If you have not previously installed an Arduino library, please check out our <a href="https://learn.sparkfun.com/tutorials/installing-an-arduino-library">installation guide.</a></p>
</div>
<p>The SparkFun ST25DV64KC Arduino Library provides an exhaustive collection of examples to take full advantage of the Qwiic Dynamic NFC/RFID Tag including reading and writing the user memory, controlling the read/write permissions, altering the read area sizes, and applying password control. On top of this the library includes examples showing how to use NDEF (NFC Forum Data Exchange Format) URI, WiFi, and Text records you can read with a smart phone. You'll need a compatible app on your phone like ST's "NFC Tap" App available on the <a href="https://apps.apple.com/us/app/nfc-tap/id1278913597">Apple<sup>©</sup> App store</a> or <a href="https://play.google.com/store/apps/details?id=com.st.st25nfc&hl=en_GB&gl=US">Google<sup>©</sup> Play</a>.</p>
<p>Install the library into Arduino by searching for "SparkFun ST25DV64KX Arduino Library" in the Arduino Library Manager. Users who prefer to install the library manually can download it by clicking the button below:</p>
<p><div class="center-block text-center"> <a href="https://github.com/sparkfun/SparkFun_ST25DV64KC_Arduino_Library/archive/refs/heads/main.zip" class="btn btn-default">SparkFun ST25DV64KC Arduino Library (ZIP)</a> </div></p>
<h3>Arduino Library Documentation</h3>
<p>We have an in-depth guide for the library covering all examples as well as the complete API reference you can read through here:</p>
<p><div class="center-block text-center"> <a href="https://docs.sparkfun.com/SparkFun_ST25DV64KC_Arduino_Library/" class="btn btn-default">SparkFun ST25DV64KC Arduino Library - Documentation</a> </div></p> <a name="#troubleshooting"></a>
<h2 id="troubleshooting">Troubleshooting</h2>
<h3>General Troubleshooting</h3>
<div class="alert alert-info" role="alert">
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
<strong> Not working as expected and need help? </strong> <br /><br />
If you need technical assistance and more information on a product that is not working as you expected, we recommend heading on over to the <a href="https://www.sparkfun.com/technical_assistance">SparkFun Technical Assistance</a> page for some initial troubleshooting. <br /><br />
<div class="center-block text-center"> <a href="https://www.sparkfun.com/technical_assistance" class="btn btn-default">SparkFun Technical Assistance Page</a> </div><br /><br />
If you don't find what you need there, the <a href="https://forum.sparkfun.com/index.php">SparkFun Forums</a> are a great place to find and ask for help. If this is your first visit, you'll need to <a href="https://forum.sparkfun.com/ucp.php?mode=register">create a Forum Account</a> to search product forums and post questions.<br /><br />
<div class="text-center"><a href="https://forum.sparkfun.com/ucp.php?mode=register" class="btn btn-default">Create New Forum Account</a> <a class="btn btn-danger" href="https://forum.sparkfun.com/index.php" role="button">Log Into SparkFun Forums</a></div>
</div> <a name="#resources-and-going-further"></a>
<h2 id="resources-and-going-further">Resources and Going Further</h2>
<p>That's all for this guide. For more information about the Qwiic Dynamic NFC/RFID Tag, check out the resources below:</p>
<ul>
<li><a href="https://cdn.sparkfun.com/assets/c/a/a/7/b/Qwiic_RFID_Tag.pdf">Schematic</a></li>
<li><a href="https://cdn.sparkfun.com/assets/a/5/0/4/d/Qwiic_RFID_Tag.zip">Eagle Files</a></li>
<li><a href="https://cdn.sparkfun.com/assets/5/9/f/2/f/Qwiic_RFID_Tag.png">Board Dimensions</a></li>
<li><a href="https://cdn.sparkfun.com/assets/f/5/4/e/d/st25dv04kc-2450072.pdf">Datasheet</a> - ST25DV64KC</li>
<li><a href="https://github.com/sparkfun/SparkFun_Qwiic_RFID_Tag_ST25DV64KC">GitHub Hardware Repo</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_ST25DV64KC_Arduino_Library">Arduino Library</a></li>
<li><a href="https://sparkfun.github.io/SparkFun_ST25DV64KC_Arduino_Library/">Library Documentation</a></li>
</ul>
<p>Looking for inspiration on projects to use the Qwiic Dynamic NFC/RFID Tag in? These tutorials may get you pointed in the right direction:</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-633">
<a href="https://learn.sparkfun.com/tutorials/rfid-basics">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/3/3/RFID_Tag-104.png)"></div>
</div>
<h3 class="title">RFID Basics</h3>
</a>
<div class="description">
Dive into the basics of Radio Frequency Identification (RFID) technology. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="633">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">29</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-887">
<a href="https://learn.sparkfun.com/tutorials/build-a-qwiic-jukebox-that-is-toddler-approved">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/8/8/7/Enginursday_-_Jukebox-01.jpg)"></div>
</div>
<h3 class="title">Build a Qwiic Jukebox that is Toddler Approved!</h3>
</a>
<div class="description">
Follow this tutorial to build your own custom jukebox. Note, this is designed simple and tough for use primarily with toddlers. It's also a great introduction to SparkFun's Qwiic products! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="887">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">2</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-1184">
<a href="https://learn.sparkfun.com/tutorials/rfid-beginners-tutorial">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/1/8/4/Remote_RFID_Logger-01.jpg)"></div>
</div>
<h3 class="title">RFID Beginners Tutorial</h3>
</a>
<div class="description">
In this tutorial we'll revisit some RFID basics and practice by making a remote work logger using an RFID reader and a GPS module. You'll scan a card and get ID, location, and time. All the perfect data to punch in and punch out from the middle of Nowhere! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="1184">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">14</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<hr>
<p><a href="https://learn.sparkfun.com">learn.sparkfun.com</a> |
<a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>
| SparkFun Electronics | Niwot, Colorado</p>
SparkFun Thing Plus Matter - MGM240P Hookup Guide
El Duderino
https://www.sparkfun.com/users/16974
urn:uuid:7a5d605a-218f-b9bc-811e-30666bfcc852
2023-03-02T00:00:00-07:00
<h1>
SparkFun Thing Plus Matter - MGM240P Hookup Guide <small>a <a href="https://learn.sparkfun.com/tutorials">learn.sparkfun.com tutorial</a></small>
</h1>
<h3>
Available online at: <a href="http://sfe.io/t2979">http://sfe.io/t2979</a>
</h3>
<a name="#introduction"></a>
<h2 id="introduction">Introduction</h2>
<p>The <a href="https://www.sparkfun.com/products/20270">SparkFun Thing Plus Matter - MGM240P</a> is the first easily accessible board of its kind that combines Matter<sup>®</sup> and SparkFun's Qwiic ecosystem for agile development and prototyping of Matter-based IoT devices. The board features the MGM240P wireless module from Silicon Labs<sup>®</sup>. The MGM240P provides secure connectivity for both 802.15.4 (Matter, Zigbee<sup>®</sup>, and OpenThread<sup>®</sup>) and Bluetooth Low Energy 5.3 protocols and is built to integrate seamlessly into the <a href="https://www.silabs.com/wireless/matter">Matter</a> IoT protocol using the Simplicity Studio IDE from Silicon Labs.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="product-20270">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/20270">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/2/0/0/7/6/MGM240P_Thing_Plus-_08.jpg" alt="SparkFun Thing Plus Matter - MGM240P" height="500">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="20270">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_20270" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_20270 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_20270"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/20270">
<span>SparkFun Thing Plus Matter - MGM240P</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
DEV-20270 </span>
<p class="description" style="display:none">
The SparkFun Thing Plus Matter is the first easily accessible board that combines Matter and SparkFun’s Qwiic ecosystem for… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$24.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="2.8 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-empty" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">6</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="20270">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">16</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="20270" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/TO45V9c-yFw/?autohide=1&border=0&wmode=opaque&enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p>You may be curious as to what exactly Matter <em>is</em>. In a nutshell, Matter allows for consistent operation between smart home devices and IoT platforms without an Internet connection, even from different providers. This allows communication between major IoT ecosystems to create a single wireless protocol that is easy, reliable and secure to use.</p>
<p>This guide covers the hardware present on this Thing Plus development board, basic assembly, and a quick intro to using the Thing Plus Matter in Silicon Labs' Simplicity Studio development environment.</p>
<h3>Required Materials</h3>
<p>All you need to follow along with this tutorial is the SparkFun Thing Plus MGM240P as well as a USB-C cable to connect it to your computer for programming. You may also want a single-cell LiPo battery to power the board in your application.</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-15426">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/15426">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/3/9/8/5/15426-Reversible_USB_A_to_C_Cable_-_0.3m-01.jpg" alt="Reversible USB A to C Cable - 0.3m" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="15426">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_15426" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_15426 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_15426"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/15426">
<span>Reversible USB A to C Cable - 0.3m</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
CAB-15426 </span>
<p class="description" style="display:none">
These 0.3m cables have minor modifications that allow them to be be plugged into their ports regardless of orientation on the… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$4.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="15426">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">4</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="15426" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-15424">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/15424">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/3/9/8/3/15424-Reversible_USB_A_to_C_Cable_-_2m-01.jpg" alt="Reversible USB A to C Cable - 2m" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="15424">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_15424" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_15424 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_15424"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/15424">
<span>Reversible USB A to C Cable - 2m</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
CAB-15424 </span>
<p class="description" style="display:none">
These 2m cables have minor modifications that allow them to be be plugged into their ports regardless of orientation on the U… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$8.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-empty" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">1</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="15424">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">5</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="15424" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-14743">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/14743">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/9/7/2/14743-USB_3.1_Cable_A_to_C_-_3_Foot-01.jpg" alt="USB 3.1 Cable A to C - 3 Foot" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="confirm_backorder" method="post">
<input type=hidden name=id value="14743">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_14743" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-default" value="Backorder">
</form>
</div>
<div class="added_to_cart_14743 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_14743"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/14743">
<span>USB 3.1 Cable A to C - 3 Foot</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="out of stock"><span class=sfe-icon-stock-out><span class=visuallyhidden>Out of stock</span></span></a>
</span>
<span class="sku">
CAB-14743 </span>
<p class="description" style="display:none">
USB C is fantastic. But until we have converted all our hubs, chargers, and ports over to USB C this is the cable you're goin… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$5.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">4</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14743">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">11</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14743" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<h3>Optional Accessories</h3>
<p>Depending on your application's needs, you may want some additional accessories along with the Thing Plus Matter - MGM240P and USB-C cable.</p>
<h4>LiPo Battery</h4>
<p>The Thing Plus Matter includes a 2-pin JST connector to connect a <a href="https://www.sparkfun.com/categories/54">single-cell lithium-ion battery</a> for power in mobile applications. Below are a few options we recommend:</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-13851">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13851">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/5/8/13857-01.jpg" alt="Lithium Ion Battery - 400mAh" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13851">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13851" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13851 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13851"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13851">
<span>Lithium Ion Battery - 400mAh</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-13851 </span>
<p class="description" style="display:none">
This is a very small, extremely lightweight battery based on Lithium Ion chemistry, with the highest energy density currently… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$5.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.6 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">11</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13851">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">46</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13851" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-13855">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13855">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/6/2/13855-01.jpg" alt="Lithium Ion Battery - 2Ah" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13855">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13855" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13855 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13855"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13855">
<span>Lithium Ion Battery - 2Ah</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-13855 </span>
<p class="description" style="display:none">
These are very slim, extremely light weight batteries based on Lithium Ion chemistry. Each cell outputs a nominal 3.7V at 200… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$13.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.6 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">9</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13855">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">50</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13855" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-13853">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13853">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/6/0/13853-01.jpg" alt="Lithium Ion Battery - 110mAh" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="13853">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_13853" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_13853 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_13853"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13853">
<span>Lithium Ion Battery - 110mAh</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="only 12 left!"><span class=sfe-icon-stock-low><span class=visuallyhidden>Only 12 left!</span></span></a>
</span>
<span class="sku">
PRT-13853 </span>
<p class="description" style="display:none">
This is a very small, extremely light weight battery based on Lithium Ion chemistry. This is the highest energy density curre… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$5.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="3.3 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-half" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">4</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13853">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">22</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13853" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid retired" data-id="product-13813">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/retired/13813">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/1/4/0/1/13813-01.jpg" alt="Lithium Ion Battery - 1Ah" height="140">
</a>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/retired/13813">
<span>Lithium Ion Battery - 1Ah</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="Retired"><span class=sfe-icon-stock-retired><span class=visuallyhidden>Retired</span></span></a>
</span>
<span class="sku">
PRT-13813 </span>
<p class="description" style="display:none">
Slim, extremely light weight batteries based on Lithium Ion chemistry. Each cell outputs a nominal 3.7V at 1000 mAh! </p>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">8</span>
</span>
<strong class="retired">Retired</strong>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13813">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">74</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13813" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<h4>Headers</h4>
<p>Headers allow you connect external parts to your board with just a set of jumper wires for prototyping circuits with a breadboard. The list below outlines a few options we recommend. If you don't find what you need, check out our <a href="https://www.sparkfun.com/categories/381">Headers Category</a>. If you need soldering tools, head over to our <a href="https://www.sparkfun.com/categories/49">Soldering Category</a>:</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-116">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/116">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/0/6/00116-02-L.jpg" alt="Break Away Headers - Straight" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="116">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_116" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_116 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_116"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/116">
<span>Break Away Headers - Straight</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-00116 </span>
<p class="description" style="display:none">
A row of headers - break to fit. 40 pins that can be cut to any size. Used with custom PCBs or general custom headers. </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$1.75</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.6 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-half" data-star-index="4"></span>
</span>
<span class="count">20</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="116">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">145</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="116" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-10158">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/10158">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/4/4/5/2/10158-01.jpg" alt="Break Away Headers - Long" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="10158">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_10158" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_10158 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_10158"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/10158">
<span>Break Away Headers - Long</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-10158 </span>
<p class="description" style="display:none">
These are a longer version of our [standard](http://www.sparkfun.com/commerce/product_info.php?products_id=116) break away he… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$3.25</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">3</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="10158">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">15</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="10158" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-15187">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/15187">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/3/6/0/4/15187-Feather_Stackable_Header_Kit-01.jpg" alt="Feather Stackable Header Kit" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="15187">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_15187" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_15187 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_15187"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/15187">
<span>Feather Stackable Header Kit</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
PRT-15187 </span>
<p class="description" style="display:none">
These stackable headers are made to work with the [SparkFun ESP32 Thing Plus](https://www.sparkfun.com/products/14689) to con… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$1.75</span>
</span>
</div>
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="15187">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">5</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="15187" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid retired" data-id="product-14681">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/retired/14681">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/8/8/3/14681-SparkFun_Beginner_Tool_Kit.jpg" alt="SparkFun Beginner Tool Kit" height="140">
</a>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/retired/14681">
<span>SparkFun Beginner Tool Kit</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="Retired"><span class=sfe-icon-stock-retired><span class=visuallyhidden>Retired</span></span></a>
</span>
<span class="sku">
TOL-14681 </span>
<p class="description" style="display:none">
This assortment of tools is great for those of you who need a solid set of tools to start your workbench on the right foot! </p>
</div>
<strong class="retired">Retired</strong>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14681">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">14</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14681" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<h4>Solder Jumper Modification</h4>
<p>The Thing Plus Matter - MGM240P has several solder jumpers users can modify to change behavior on the board. Modifying the jumpers requires a knife and soldering equipment. The list below covers some recommended options but in case you do not find what you need there, head over to our <a href="https://www.sparkfun.com/categories/49">Soldering Category</a>:</p>
<div class="tile-wrap">
<div class="tile product-tile has_addl_actions grid " data-id="product-9325">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/9325">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/8/7/3/09325_9161-Solder_Lead_Free_-_100-gram_Spool-01.jpg" alt="Solder Lead Free - 100-gram Spool" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="confirm_backorder" method="post">
<input type=hidden name=id value="9325">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_9325" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-default" value="Backorder">
</form>
</div>
<div class="added_to_cart_9325 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_9325"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/9325">
<span>Solder Lead Free - 100-gram Spool</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="out of stock"><span class=sfe-icon-stock-out><span class=visuallyhidden>Out of stock</span></span></a>
</span>
<span class="sku">
TOL-09325 </span>
<p class="description" style="display:none">
This is your basic spool of lead free solder with a water soluble resin core. 0.031" gauge and 100 grams. This is a good spoo… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$9.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4.9 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">8</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="9325">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">38</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="9325" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-14579">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/14579">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/7/2/5/14579-Chip_Quik_No-Clean_Flux_Pen_-_10mL-01.jpg" alt="Chip Quik No-Clean Flux Pen - 10mL" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="14579">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_14579" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_14579 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_14579"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/14579">
<span>Chip Quik No-Clean Flux Pen - 10mL</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
TOL-14579 </span>
<p class="description" style="display:none">
This 10mL no-clean flux pen from Chip Quik is great for all of your solder, de-solder, rework, and reflow purposes! </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$8.95</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="4 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">4</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14579">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">38</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14579" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid " data-id="product-9200">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/9200">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/2/6/4/6/09200-Hobby_Knife-01.jpg" alt="Hobby Knife" height="140">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" data-cart-action="add" method="post">
<input type=hidden name=id value="9200">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='$2y$04$D4AZPcM7MnvHHdba8Cyr..nKpmui66hdJO1.M2vRjYKTIqbUb1xpG'> <!-- Add to Cart -->
<div class="quantity-container">
<input aria-label="Quantity" type=text name=qty id="add_qty_9200" class="add_qty quantity form-control" data-spin-buttons='{"min": 1, "max": 10000}' value=1>
</div>
<input type="submit" class="btn btn-cart btn-action" value="Add to Cart">
</form>
</div>
<div class="added_to_cart_9200 hide added_to_cart" style="display: none;">
<p class="success-message">
added <strong class="added_qty_9200"></strong> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/9200">
<span>Hobby Knife</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku">
TOL-09200 </span>
<p class="description" style="display:none">
It's like an Xacto knife, only better. We use these extensively when working with PCBs. These small knives work well for cutt… </p>
</div>
<div>
<div class="prices">
<span class="price-sale">
<span class="price">$3.50</span>
</span>
</div>
</div>
<span class="star_rating">
<span class=product-rating title="5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-full" data-star-index="3"></span>
<span class="sfe-icon-star-full" data-star-index="4"></span>
</span>
<span class="count">2</span>
</span>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="9200">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">21</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="9200" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
<div class="tile product-tile has_addl_actions grid retired" data-id="product-14228">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/retired/14228">
<img src="https://cdn.sparkfun.com/r/140-140/assets/parts/1/2/1/7/3/14228-01.jpg" alt="Weller WLC100 Soldering Station" height="140">
</a>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/retired/14228">
<span>Weller WLC100 Soldering Station</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://learn.sparkfun.com/static/bubbles/" title="Retired"><span class=sfe-icon-stock-retired><span class=visuallyhidden>Retired</span></span></a>
</span>
<span class="sku">
TOL-14228 </span>
<p class="description" style="display:none">
The WLC100 from Weller is a versatile 5 watt to 40 watt soldering station that is perfect for hobbyists, DIYers and students.… </p>
</div>
<span class="star_rating">
<span class=product-rating title="3.5 stars">
<span class="sfe-icon-star-full" data-star-index="0"></span>
<span class="sfe-icon-star-full" data-star-index="1"></span>
<span class="sfe-icon-star-full" data-star-index="2"></span>
<span class="sfe-icon-star-half" data-star-index="3"></span>
<span class="sfe-icon-star-empty" data-star-index="4"></span>
</span>
<span class="count">2</span>
</span>
<strong class="retired">Retired</strong>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="14228">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">17</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="14228" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<h3>Suggested Reading</h3>
<p>Before getting started with this Hookup Guide, you may want to read through the tutorials below if you are not familiar with the concepts covered in them or want a refresher:</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-5">
<a href="https://learn.sparkfun.com/tutorials/how-to-solder-through-hole-soldering">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/5/Soldering_Action-01.jpg)"></div>
</div>
<h3 class="title">How to Solder: Through-Hole Soldering</h3>
</a>
<div class="description">
This tutorial covers everything you need to know about through-hole soldering. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="5">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">74</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-8">
<a href="https://learn.sparkfun.com/tutorials/serial-communication">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/7/d/f/9/9/50d24be7ce395f1f6c000000.jpg)"></div>
</div>
<h3 class="title">Serial Communication</h3>
</a>
<div class="description">
Asynchronous serial communication concepts: packets, signal levels, baud rates, UARTs and more! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="8">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">106</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-16">
<a href="https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/6/spiThumb_Updated2.png)"></div>
</div>
<h3 class="title">Serial Peripheral Interface (SPI)</h3>
</a>
<div class="description">
SPI is commonly used to connect microcontrollers to peripherals such as sensors, shift registers, and SD cards. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="16">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">93</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-62">
<a href="https://learn.sparkfun.com/tutorials/logic-levels">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/2/Input_Output_Logic_Level_Tolerances_tutorial_tile.png)"></div>
</div>
<h3 class="title">Logic Levels</h3>
</a>
<div class="description">
Learn the difference between 3.3V and 5V devices and logic levels. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="62">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">89</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-82">
<a href="https://learn.sparkfun.com/tutorials/i2c">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/8/2/I2C-Block-Diagram.jpg)"></div>
</div>
<h3 class="title">I2C</h3>
</a>
<div class="description">
An introduction to I2C, one of the main embedded communications protocols in use today. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="82">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">136</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-89">
<a href="https://learn.sparkfun.com/tutorials/analog-vs-digital">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/3/7/6/6/0/51c48875ce395f745a000000.png)"></div>
</div>
<h3 class="title">Analog vs. Digital</h3>
</a>
<div class="description">
This tutorial covers the concept of analog and digital signals, as they relate to electronics. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="89">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">72</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-117">
<a href="https://learn.sparkfun.com/tutorials/bluetooth-basics">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/1/1/7/blut.jpg)"></div>
</div>
<h3 class="title">Bluetooth Basics</h3>
</a>
<div class="description">
An overview of the Bluetooth wireless technology. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="117">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">44</span>
</span> </div>
</div>
<div class="tile tutorial-tile has_addl_actions grid " data-id="tutorial-664">
<a href="https://learn.sparkfun.com/tutorials/how-to-work-with-jumper-pads-and-pcb-traces">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/264-148/assets/learn_tutorials/6/6/4/PCB_TraceCutLumenati.jpg)"></div>
</div>
<h3 class="title">How to Work with Jumper Pads and PCB Traces</h3>
</a>
<div class="description">
Handling PCB jumper pads and traces is an essential skill. Learn how to cut a PCB trace, add a solder jumper between pads to reroute connections, and repair a trace with the green wire method if a trace is damaged.
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="664">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">11</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div> <a name="#hardware-overview"></a>
<h2 id="hardware-overview">Hardware Overview</h2>
<p>In this section we'll take a closer look at the MGM240P as well as other hardware present on the Thing Plus Matter - MGM240P.</p>
<h3>MGM240P</h3>
<p>The MGM240P wireless module provides a secure solution for both 802.15.4 (Matter, Zigbee, and OpenThread) and Bluetooth Low Energy 5.3 protocols, and is designed to integrate seamlessly into the <a href="https://www.silabs.com/wireless/matter">Matter</a> IoT convention. Matter aims to simplify and consolidate major Smart Home IoT ecosystems into a single, secure, and easy to use protocol.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-MGM240P.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-MGM240P.jpg" alt="Photo highlighting the MGM240P and J-Link debugger IC." /></a> </div></p>
<p>The MGM240P is built around Silicon Labs' EFR32MG24 wireless system-on-chip (SoC) that includes a 32-bit ARM Cortex M33 core processor and integrated 2.4 GHz radio, 1536 kB Flash memory, and 256 kB of RAM. The Thing Plus runs the MGM240P at <b>3.3V</b> by default when powered by USB or a battery. The module has a dedicated processor core for security to allow for use with Silicon Labs' <a href="https://www.silabs.com/security/secure-vault">Secure Vault</a> IoT security feature suite along with a host of software-configurable options using the Simplicity Studio IDE. This Thing Plus specifically uses the MGM240PB32VNA variant of the module which uses a built in antenna with a max transmit power of +20 dBm. For a complete overview of the MGM240P refer to the <a href="https://cdn.sparkfun.com/assets/1/4/5/e/5/MGM240P-Datasheet.pdf">datasheet</a>.</p>
<h4>J-Link Debugger</h4>
<p>The board uses the EFM32GG12B410F1024GL120-A microcontroller as a J-Link programmer and debugging IC. The Mini Simplicity Connector on the board allows users to connect an external debugger if they wish. The board pulls the debugger WAKE pin to V_USB through the <b>LP</b> jumper by default to have it operate in standard mode. Users can open this jumper to force the debugger into Low Power mode.</p>
<p>The debugger allows some seriously low-level debugging tools when used with Simplicity Studio's debugging tool. You can perform all sorts of standard debugging actions such as debugger output, placing code breaks, and can even get as granular as looking at the assembly code.</p>
<h3>Power</h3>
<p>The Thing Plus Matter - MGM240P offers several ways to power the board. The primary power options are the USB-C connector (also used for programming/serial communication) and 2-pin JST connector for a single-sell LiPo battery. The board includes the necessary components to charge and monitor the charge level of a connected battery.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-Power.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-Power.jpg" alt="Photo highlighting power components." /></a> </div></p>
<p>The board also has PTH pins connected to the <b>3.3V</b>, <b>V_USB</b>, and <b>V_BATT</b> nets.</p>
<h4>USB-C</h4>
<p>The USB-C connector on the board provides power, battery charging voltage, and a serial connection for programming and interfacing. The board also includes a USB shield jumper that controls whether or not the USB shield pin on an attached cable connects to the board's ground plane.</p>
<p>The <b>5V</b> from V_USB connects to the <b>3.3V</b> regulator as well as the VIN on the LiPo battery charger so the MCP73831 is powered with voltage present from USB so long as the <b>CHG</b> solder jumper is set to either current setting. Opening the jumper disables the MCP73831.</p>
<h4>LiPo Connector and Charge Circuit</h4>
<p>The board includes a 2-pin JST connector to plug a single-cell LiPo battery in for battery powered applications. The input voltage is regulated by a <b>3.3V</b> voltage regulator. The board also features a MCP73831 Single-Cell LiPo Charge IC to recharge a connected battery when plugged in over USB-C as well as a MAX17048 Single-Cell fuel gauge to monitor battery charge level.</p>
<p>By default the charge current is set to 500mA. A three-way jumper labeled <b>CHG</b> allows users to switch between <b>500mA</b> charge current to <b>100mA</b> as well as disabling the charge IC when not needed. More on this and all other solder jumpers in the Solder Jumpers section below.</p>
<h3>Pinout</h3>
<p>The MGM240P has 26 General Purpose Input/Output (GPIO) pins that are all individually configurable through software to act as I/O pins, peripherals (SPI, I<sup>2</sup>C, etc.) or other advanced configurations such as open-drain. This allows remapping of <em>any</em> GPIO to any supported functionality.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-GPIO_PTHs.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-GPIO_PTHs.jpg" alt="Photo highlighting PTH pinout." /></a> </div></p>
<p>The Thing Plus Matter - MGM240P breaks out 23 of these pins to PTHs on either side of the board. The board settings configures them to deliver the following functionality:</p>
<ul>
<li>Serial - TX/RX</li>
<li>I<sup>2</sup>C - SDA/SCL</li>
<li>SPI - POCI/PICO/SCK</li>
<li>Analog - A0-A5*</li>
<li>GPIO - 0-6*</li>
<li>Freebie - Feather-compatible Freebie pin tied to PC07</li>
<li>Reset</li>
<li>Enable</li>
</ul>
<div class="alert alert-info">
<b>Note:</b> Despite their labels, all GPIO pins (A0-A5 and GPIO0-GPIO6) function as either GPIO or analog.
</div>
<h3>Peripheral Accessories</h3>
<p>The Thing Plus MGM240P includes several peripheral accessories that allow users quick access to several features. Let's take a brief look at them.</p>
<table class="table table-bordered">
<tr align="center">
<td><a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-Peripherals_Top.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-Peripherals_Top.jpg" alt="Highlighting Qwiic connector and Mini Simplicity connector."></a></td>
<td><a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-microSD.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-microSD.jpg" alt="Highlighting the micro SD slot."></td>
</tr>
</table>
<h4>Mini Simplicity Connector</h4>
<p>The Mini Simplicity Connector allows users a quick and direct option to connect an external debugger to the board.</p>
<div class="alert alert-warning">
<b>Note:</b> An external Mini Simplicity debugger plugged into the board connects to the serial (TX/RX) pins of the on-board debugger IC meaning only one debugger is available at a time (either external or on-board).
</div>
<h4>µSD Slot</h4>
<p>The µSD card slot provides an option to connect a µSD card for extra memory space to the Thing Plus.</p>
<h4>Qwiic Connector</h4>
<p>The Qwiic connector provides a fast connection to the I<sup>2</sup>C bus to use with SparkFun's ever-growing <a href="https://www.sparkfun.com/qwiic">Qwiic ecosystem</a>.</p>
<h3>LEDs</h3>
<p>This board has four LEDs labeled <b>PWR</b>, <b>STAT</b>, <b>CHG</b>, and <b>DBG</b>.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-LEDs.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-LEDs.jpg" alt="Highlighting the four LEDs." /></a> </div></p>
<ul>
<li>Power (PWR) LED - Indicates power supplied to the board.</li>
<li>Status (STAT) LED - Tied to A8 for use as a general status indicator.</li>
<li>Charge (CHG) LED - Indicates whether or not the charge circuit is actively charging an attached LiPo battery.</li>
<li>Debugger (DBG) LED - Connects to the debugger IC's status output and can provide visual indication for debug behavior.</li>
</ul>
<h3>Solder Jumpers</h3>
<div class="alert alert-info">
<p>If you have never worked with solder jumpers and PCB traces before or would like a quick refresher, check out our <a href="https://learn.sparkfun.com/tutorials/664">How to Work With Solder Jumpers and PCB Traces</a> tutorial for detailed instructions and tips.
</p>
</div>
<p>The board has nine solder jumpers for user customization. The table below outlines the jumper's label, default state, function, and any notes regarding how to use them.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-Jumpers.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter-Jumpers.jpg" alt="Highlighting the nine solder jumpers." /></a> </div></p>
<table class="table table-striped table-bordered table-hover">
<tr>
<th>Jumper Label</th>
<th>Default State</th>
<th>Function</th>
<th>Notes</th>
</tr>
<tr>
<td>PWR</td>
<td>CLOSED</td>
<td>Completes the Power LED circuit</td>
<td>Open to disable the Power LED.</td>
</tr>
<tr>
<td>CHG</td>
<td>CLOSED</td>
<td>Completes the Charge LED circuit.</td>
<td>Open to disable the Charge LED.</td>
</tr>
<tr>
<td>I2C</td>
<td>CLOSED</td>
<td>Ties SDA/SCL (PB04/PB03 respectively) to <b>3.3V</b> through a pair of 2.2kΩ resistors</td>
<td>Open to disable pullup resistors on these pins.</td>
</tr>
<tr>
<td>CHG_I</td>
<td>SEE NOTE</td>
<td>Three-way jumper sets the charge current for the LiPo charge circuit.</td>
<td>Default setting is <b>500mA</b> (0.5A label). Alternate is <b>100mA</b> (0.1A label). Open completely to disable LiPo charger.</td>
</tr>
<tr>
<td>JP1</td>
<td>SEE NOTE</td>
<td>Three-way jumper that routes the MGM240P's RESET pin either to the Reset Button (Default) or the A0 PTH.</td>
<td>Connect the JP1 jumper to the A0 side to reroute the RESET pin to allow toggling of A0 by an external connection to reset the MGM240P.</td>
</tr>
<tr>
<td>D3</td>
<td>CLOSED</td>
<td>Ties A0 PTH to PD03.</td>
<td>Open to isolate PD03 if JP1 is set to the A0 side.</td>
</tr>
<tr>
<td>SHLD</td>
<td>CLOSED</td>
<td>Connects the USB-C shield pin to the PCB's ground plane.</td>
<td>Open to isolate the USB-C shield pin from the ground.</td>
</tr>
<tr>
<td>MEAS</td>
<td>CLOSED</td>
<td>Completes the power input circuit.</td>
<td>Open and use a <a href="https://learn.sparkfun.com/tutorials/how-to-use-a-multimeter#measuring-current">digital multimeter</a> to complete the circuit and measure current drawn by the board.</td>
</tr>
<tr>
<td>LP</td>
<td>CLOSED</td>
<td>Ties the J-Link debugger IC Wake pin to V_USB.</td>
<td>Open to force the debugger into Low Power mode. Open for battery powered applications where V_USB is present through a charging bank on USB-C connector.</td>
</tr>
</table>
<h3>Board Dimensions</h3>
<p>The Thing Plus - MGM240P matches the Thing Plus footprint to work with all Thing Plus-compatible accessories and shields and measures 2.30" x 0.90" (58.42mm x 22.86mm). The two mounting holes on this Thing Plus fit a <a href="https://www.sparkfun.com/products/10453">4-40 screw</a></p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/7/5/5/4/5/Thing_Plus_MGM240P-Dimensions.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/7/5/5/4/5/Thing_Plus_MGM240P-Dimensions.png" alt="Board dimensions." /></a> </div></p> <a name="#hardware-assembly"></a>
<h2 id="hardware-assembly">Hardware Assembly</h2>
<p>Now that we're familiar with the hardware on this Thing Plus it's time to assemble the board into a prototyping circuit or simply plug it into our computer with a USB-C cable and get right to programming.</p>
<h3>Basic Assembly</h3>
<p>For those who want to jump right in to using the Thing Plus Matter - MGM240P on its own or just with the wireless capabilities, all you need to do is plug the board into your computer using a USB-C cable.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter_-_USB_Assembly.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_Matter_-_USB_Assembly.jpg" alt="Thing Plus Matter connected over USB." /></a> </div></p>
<h3>Soldering Headers</h3>
<p>Users who want to assemble a prototyping circuit with the Thing Plus should solder headers of their choice to the board to plug it into a breadboard. We recommend something like this <a href="https://www.sparkfun.com/products/15187">Feather Stackable Header Kit</a>.</p> <a name="#software-setup"></a>
<h2 id="software-setup">Software Setup</h2>
<p>The MGM240P uses Silicon Labs' <a href="https://www.silabs.com/developers/simplicity-studio">Simplicity Studio IDE</a> as a development tool for programming, debugging, customizing, etc. In this section we'll cover the basics of installing the IDE and adding the Thing Plus Matter.</p>
<h3>Install and Open Simplicity Studio</h3>
<p>Simplicity Studio is available for Windows, Mac OSX and Ubuntu operating systems. You can find the installer download for your operating system by clicking the button below:</p>
<p><div class="center-block text-center"> <a href="https://www.silabs.com/developers/simplicity-studio" class="btn btn-default">Simplicity Studio Downloads</a> </div></p>
<p>Silicon Labs requires you to create a (free) account to download Simplicity Studio so make one if you do not have one already. Once the installer finishes downloading, open it and follow the installation instructions.</p>
<h3>Simplicity Studio Launcher</h3>
<p>When you first open Simplicity Studio you'll be greeted by the Launcher window. The default Launcher window lets users install board files for both connected devices and by searching for a supported product. It also lists any recent projects you've worked on as well as links to user guides and support documentation.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/SSv5_Welcome_Page.png"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/SSv5_Welcome_Page.png" alt="Screenshot of welcome page for Simplicity Studio." /></a> </div>
<div class="center-block text-center"> <em>Having trouble seeing the detail in this image? Click on it for a larger view.</em> </div></p>
<p>On the left side there are two windows for any debug adapters (top) and all installed products (bottom). In the very top right of the screen you'll see the tabs to switch between the launcher, the Simplicity IDE and the Debug window. We'll be using the IDE tab in the next section once we finish installing the Thing Plus Matter into Simplicity Studio.</p>
<h3>Adding the Thing Plus Matter - MGM240P</h3>
<p>Simplicity Studio makes adding devices extremely easy by just connecting the device to your computer over USB and then selecting <strong>"Connected Devices"</strong>. It automatically checks the device ID to matching supported products and should display either as a J-Link Silicon Labs debugger (prior to install) or "SparkFun Thing Plus MGM240P" as the connected device.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/SSv5_Thing_Plus_Connected_not_installed.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/SSv5_Thing_Plus_Connected_not_installed.jpg" alt="Silicon Labs screenshot with Thing Plus connected but not installed." /></a> </div>
<div class="center-block text-center"> <em>Having trouble seeing the detail in this image? Click on it for a larger view.</em> </div></p>
<p>With the connected Thing Plus selected, click <strong>"Start"</strong>. This opens the Installation Manager window where you can select either <strong>"Auto"</strong> or <strong>"Advanced"</strong> installation. Most users should select <strong>"Auto"</strong> and then click <strong>"Next"</strong>. You'll be prompted to agree to licensing agreements. Once you have agreed, click <strong>"Finish"</strong> and it will install all necessary software, drivers and other packages to use the Thing Plus Matter in Simplicity Studio.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/SSv5_Installation_Manager_Auto.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/SSv5_Installation_Manager_Auto.jpg" alt="Screenshot of the installation manager." /></a> </div></p>
<p>The install process can take a few minutes and once it completes you'll need to restart the program. After restarting, your Launcher window should update and look similar to the screenshot below:</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_Launcher.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/Thing_Plus_Launcher.jpg" alt="Silicon Labs launcher screenshot after installation. " /></a> </div>
<div class="center-block text-center"> <em>Having trouble seeing the detail in this image? Click on it for a larger view.</em> </div></p>
<p>This window contains several tabs that cover the general overview of the board, examples, documentation and compatible tools. Feel free to explore as much as you'd like but for now we'll move on to a basic "Blink" example to make sure everything was set up correctly and the Thing Plus Matter is working.</p>
<h3>Silicon Labs Documentation</h3>
<p>For comprehensive information on using Simplicity Studio, Silicon Labs has an in-depth user guide for the IDE available here:</p>
<p><div class="center-block text-center"> <a href="https://docs.silabs.com/simplicity-studio-5-users-guide/5.5.0/ss-5-users-guide-overview/" class="btn btn-default">Simplicity Studio Users Guide</a> </div></p>
<p>If you're itching to integrate your Thing Plus with a Matter-compatible device, Silicon Labs has documentation for Matter development here:</p>
<p><div class="center-block text-center"> <a href="https://docs.silabs.com/matter/1.0.4/matter-start/" class="btn btn-default">Silicon Labs Matter Docs</a> </div></p>
<p>They also have much more documentation covering other applications including Thread, other wireless protocols, and the Gecko SDK used in Simplicity Studio available on their main documentation page here:</p>
<p><div class="center-block text-center"> <a href="https://docs.silabs.com/" class="btn btn-default">Silicon Labs Documentation</a> </div></p> <a name="#blink-example"></a>
<h2 id="blink-example">Blink Example</h2>
<p>Now that the Thing Plus Matter - MGM240P is installed in Simplicity Studio we can move on to a basic test to make sure everything is working as intended. For this example we'll be setting up and uploading a Blink test to turn the Status LED on and off.</p>
<h3>Blink Example</h3>
<p>In the Launcher with the SparkFun Thing Plus MGM240P selected for your product, navigate to the <strong>"Example Projects & Demos"</strong> tab. Now type "Blink" into the "Filter on keywords" search bar and select <strong>"Platform - Blink Bare-metal"</strong> and click <strong>"Create"</strong>.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_blink.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/Thing_Plus_blink.jpg" alt="Screenshot of "blink" search in Example Projects and Demos." /></a> </div>
<div class="center-block text-center"> <em>Having trouble seeing the detail in this image? Click on it for a larger view.</em> </div></p>
<p>This opens the New Project Wizard window where you can change the project name, filepath, and project file options. For now, leave all of that with the default settings and click <strong>"Finish"</strong>.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/Thing_Plus_Project_Wizard.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/Thing_Plus_Project_Wizard.jpg" alt="Screenshot of Project Wizard window." /></a> </div></p>
<p>Once you've created the new project you can double-click on the containing folder in the <strong>"Project Explorer"</strong> window to open all the files included with the Blink project which includes any binaries, configs, header and C files if you prefer. For now, we're just going to build and flash the project to get the Status LED blinking. To do that, right click on the <strong>"blink_baremetal"</strong> folder and scroll down to <strong>"Run As"</strong> and select <strong>"1 Silicon Labs ARM Program"</strong>. This builds and flashes the project to your board and once it completes the Blue STAT LED should be blinking on and off every second.</p>
<p><div class="center-block text-center"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/2/9/7/9/SSv5_Run_As.jpg"><img src="https://cdn.sparkfun.com/r/600-600/assets/learn_tutorials/2/9/7/9/SSv5_Run_As.jpg" alt="Screenshot of selecting "Run As" option." /></a> </div>
<div class="center-block text-center"> <em>Having trouble seeing the detail in this image? Click on it for a larger view.</em> </div></p>
<p>This is obviously one of the most basic projects for the Thing Plus Matter so from here you can explore other example projects and demos for the Thing Plus or start building your own.</p> <a name="#troubleshooting"></a>
<h2 id="troubleshooting">Troubleshooting</h2>
<h3>Power Consumption Tips</h3>
<p>Power consumption by this board varies depending on how it is configured and powered. Below are our current consumption test results for various power options with the MGM240P operating in Low Power mode:</p>
<ul>
<li>Regulated 3.3V input on 3V3 pin - 15µA</li>
<li>LiPo JST Connector/VBAT pin - 120µA</li>
<li>USB-C/VUSB pin (LP and CHG jumpers cut) - 250µA</li>
<li>USB-C/VUSB pin (only LP jumper cut) - 300µA</li>
<li>USB-C/VUSB pin (neither jumper cut) - 21mA</li>
</ul>
<p>As you can see, for lowest current consumption, powering the board with a regulated 3.3V input directly to the 3.3V pin draws significantly less current as it bypasses the voltage regulator and battery charge/monitoring components. All of these tests were performed with the PWR jumper OPEN to disable the Power LED.</p>
<h3>Driver Installation</h3>
<p>Most operating systems will not recognize the Thing Plus Matter as a USB device by default. To install drivers, download and install the <a href="https://www.silabs.com/developers/simplicity-studio">Simplicity Studio IDE</a> and then install the Thing Plus Matter package to the IDE. This process will install all necessary board packages for the Thing Plus including USB drivers. Refer to our <a href="">Getting Started with Simplicity Studio</a> guide or Silicon Labs' <a href="https://docs.silabs.com/simplicity-studio-5-users-guide/5.5.0/ss-5-users-guide-overview/">Simplicity Studio documentation</a> for detailed instructions.</p>
<h3>General Troubleshooting</h3>
<div class="alert alert-info" role="alert">
<span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>
<strong> Not working as expected and need help? </strong> <br /><br />
If you need technical assistance and more information on a product that is not working as you expected, we recommend heading on over to the <a href="https://www.sparkfun.com/technical_assistance">SparkFun Technical Assistance</a> page for some initial troubleshooting. <br /><br />
<div class="center-block text-center"> <a href="https://www.sparkfun.com/technical_assistance" class="btn btn-default">SparkFun Technical Assistance Page</a> </div><br /><br />
If you don't find what you need there, the <a href="https://forum.sparkfun.com/index.php">SparkFun Forums</a> are a great place to find and ask for help. If this is your first visit, you'll need to <a href="https://forum.sparkfun.com/ucp.php?mode=register">create a Forum Account</a> to search product forums and post questions.<br /><br />
<div class="text-center"><a href="https://forum.sparkfun.com/ucp.php?mode=register" class="btn btn-default">Create New Forum Account</a> <a class="btn btn-danger" href="https://forum.sparkfun.com/index.php" role="button">Log Into SparkFun Forums</a></div>
</div> <a name="#resources-and-going-further"></a>
<h2 id="resources-and-going-further">Resources and Going Further</h2>
<p>That's all for this guide. For more information about the SparkFun Thing Plus Matter - MGM240P, check out the following resources:</p>
<h3>SparkFun Thing Plus Matter - MGM240P Resources</h3>
<ul>
<li><a href="https://cdn.sparkfun.com/assets/0/f/8/4/9/Thing_Plus_MGM240P.pdf">Schematic</a></li>
<li><a href="https://cdn.sparkfun.com/assets/c/c/a/7/d/Thing_Plus_MGM240P.zip">Eagle Files</a></li>
<li><a href="https://cdn.sparkfun.com/assets/7/5/5/4/5/Thing_Plus_MGM240P-Dimensions.png">Board Dimensions</a></li>
<li><a href="https://github.com/sparkfun/Fritzing_Parts/blob/main/products/20270_sfe_thing_plus_matter_mgm240p.fzpz">Fritzing Part</a></li>
<li><a href="https://github.com/sparkfun/SparkFun_Thing_Plus_MGM240P">GitHub Hardware Repo</a></li>
</ul>
<h3>Silicon Labs Resources</h3>
<ul>
<li><a href="https://cdn.sparkfun.com/assets/1/4/5/e/5/MGM240P-Datasheet.pdf">Datasheet</a> (MGM240P)</li>
<li><a href="https://www.silabs.com/developers/simplicity-studio">Simplicity Studio IDE</a></li>
<li><a href="https://docs.silabs.com/simplicity-studio-5-users-guide/5.5.0/ss-5-users-guide-overview/">Simplicity Studio User Guide</a></li>
<li><a href="https://docs.silabs.com/gecko-platform/4.1/">GeckoSDK User Guide</a></li>
<li><a href="https://www.silabs.com/wireless/matter">Silicon Labs Matter</a></li>
</ul>
<p>Looking to use the Thing Plus Matter - MGM240P with the Matter platform? Check out this tutorial on how to set up the Thing Plus with a Google Nest Hub<sup>™</sup>:</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid " data-id="tutorial-3111">
<a href="https://learn.sparkfun.com/tutorials/connecting-thing-plus-matter-to-google-nest-hub">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/3/1/1/1/new_thumbnail.png)"></div>
</div>
<h3 class="title">Connecting Thing Plus Matter to Google Nest Hub</h3>
<h4 class="metaline">March 30, 2023</h4> </a>
<div class="description">
Connect your Thing Plus Matter board to a Google Nest Hub, as well as the Google Home app, and set up as a light device! </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="3111">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">1</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<hr>
<p><a href="https://learn.sparkfun.com">learn.sparkfun.com</a> |
<a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>
| SparkFun Electronics | Niwot, Colorado</p>