---
title: Notecard Quickstart
description: Learn the Notecard API and sync data between your Notecard and Notehub to build an IoT application using Cellular, Satellite, LoRa, and WiFi connectivity.
source_url: https://dev.blues.io/quickstart/notecard-quickstart/notecard-and-sparkfun-qwiic-cellular/
canonical_url: https://dev.blues.io/quickstart/notecard-quickstart/notecard-and-sparkfun-qwiic-cellular/
markdown_url: https://dev.blues.io/quickstart/notecard-quickstart/notecard-and-sparkfun-qwiic-cellular.md
---

# Notecard Quickstart: Notecard and SparkFun Qwiic Cellular

## Introduction

#### Watch a video of this tutorial

[Video: Notecard Quickstart](https://www.youtube-nocookie.com/embed/yicvFkVUXOg)

*This tutorial should take approximately 20-30 minutes to complete.*

In this guide you'll learn how to use **Notecard**, our system-on-module that simplifies connectivity for connected products.

Throughout this tutorial, you'll issue serial requests to configure Notecard, simulate sending data from sensors to Notecard, and synchronize that data with the cloud.

By the end of this tutorial you'll have a basic understanding of the process for building connected solutions with Blues.

### Key Concepts to Know

Before you dive in, it's important to understand a few key concepts:

- **Notecard** is a device-to-cloud data pump that reduces the complexity of building connected solutions with a secure, reliable [cellular](https://dev.blues.io/cellular-iot/), [satellite](https://dev.blues.io/satellite-ntn-iot/), [WiFi](https://dev.blues.io/wifi-iot/), or [LoRa](https://dev.blues.io/lora-lorawan-iot/) connection. It's a System-on-Module (SOM) that's ready for embedding into any product. Notecard stores your data locally in onboard flash and syncs it with the cloud on a schedule you choose, so your application keeps collecting through connectivity gaps.

  ![Notecard devices](https://dev.blues.io/images/quickstart/notecards.png?v=384340b5)

- **Notecarriers** are development boards that help you get started quickly with Notecard. There are a [variety of Notecarriers](https://shop.blues.com/collections/notecarrier?utm_source=dev-blues\&utm_medium=web\&utm_campaign=store-link) designed to fit different needs, from prototyping with a Feather-based MCU to deploying a production solution.

- **Notehub** is the cloud service Notecard uses to securely send and receive data. Notehub also provides a console for fleet management and secure connectors for routing data to 3rd-party cloud applications.

- A **Note** is a JSON object containing developer-provided content. A Note is the primary means of sending data to/from a Notecard.

Notecard and Notehub work together to provide *bidirectional* wireless communication capabilities, both *outbound* (from your microcontroller or single-board computer to the cloud):

[Video: animation of outbound communication from notecard to notehub to cloud](https://dev.blues.io/images/reference/notecard-api/outbound.mp4)

And *inbound* (from the cloud to your microcontroller or single-board computer):

[Video: animation of inbound communication from cloud to notehub to notecard](https://dev.blues.io/images/reference/notecard-api/inbound.mp4)

## Before You Begin

To complete this quickstart, make sure you have access to the following:

- Notecard and [SparkFun Qwiic Cellular](https://www.sparkfun.com/products/17114) Kit.

- USB-C cable for connecting the Notecarrier to your laptop or computer.

* A browser that supports the Web Serial API, like Chrome, Microsoft Edge, or Firefox.

- A location with stable cellular coverage (if you're using a Notecard Cellular or Notecard Cell+WiFi).

* An internet connection that allows access to [Notehub](https://notehub.io).

## Connect Your Notecard and Notecarrier

The [SparkFun Qwiic Cellular](https://www.sparkfun.com/products/17114) Kit includes a SparkFun Qwiic Cellular Notecarrier, a Notecard, and two u.FL cables for cellular and GPS (each with one side connected to the Notecarrier and one to the Notecard).

You'll also need an SMA-compatible antenna to connect to a cellular network, and an SMA passive GPS antenna if you want to use the GPS/GNSS capabilities of the Notecard. We've included pictures of common antennas here, but SparkFun has a number of great options to choose from.

> **Note:**
>
> If your SparkFun Qwiic Notecarrier came with a Notecard pre-installed, you can skip directly to connecting a cellular antenna in step six!

![Picture of SparkFun Qwiic Cellular Notecarrier, Notecard, Cellular antenna & GPS antenna](https://dev.blues.io/images/hardware/hookup/sparkfun-1.png?v=4ac69960)

1. Remove the screw from the mounting receptacle on the SparkFun Qwiic Cellular Notecarrier, and rotate the u.FL cables away from the M.2 socket.

   ![Image of mounting receptacle on Notecarrier](https://dev.blues.io/images/hardware/hookup/sparkfun-2.png?v=e6eb5ddb)

2. Place the Notecard into the M.2 slot on the Notecarrier. Once inserted, press gently until the Notecard is inserted and the screw receptacle hole is completely visible.

   ![Image of notecard plugged into Receptacle](https://dev.blues.io/images/hardware/hookup/sparkfun-3.png?v=f685b89d)

3. Re-insert the screw into the mounting receptacle and tighten to secure the Notecard to the Notecarrier. Be sure to not overtighten the screw.

   ![Image of Notecard affixed to Notecarrier](https://dev.blues.io/images/hardware/hookup/sparkfun-4.png?v=43cd48c3)

4. Secure the free end of the u.FL cable connected to the socket labeled `LTE` on the Notecarrier to the `MAIN` socket on the Notecard.

   ![Image of MAIN u.FL cable](https://dev.blues.io/images/hardware/hookup/sparkfun-5.png?v=77c36165)

5. Secure the free end of the u.FL cable connected to the socket labeled `GPS` on the Notecarrier to the `GPS` socket on the Notecard.

   ![Image of GPS u.FL cable](https://dev.blues.io/images/hardware/hookup/sparkfun-6.png?v=09693461)

6. Attach your cellular antenna to the SMA connector labeled `LTE` on the SparkFun Qwiic Cellular Notecarrier and screw to tighten.

   ![Image of cellular antenna and LTE SMA connection](https://dev.blues.io/images/hardware/hookup/sparkfun-7.png?v=0fbd9e84)

7. If using, attach a passive GPS antenna to the SMA connector labeled `GPS` on the SparkFun Qwiic Cellular Notecarrier and screw to tighten.

   ![Image of GPS antenna and GPS SMA connection](https://dev.blues.io/images/hardware/hookup/sparkfun-8.png?v=c8b10758)

Now you're ready connect to your Notecard over USB and continue with the Quickstart!

### Power Up the Notecard and Notecarrier

Connect a USB-C cable from the **Sparkfun Qwiic Cellular's USB port** to your computer's USB port.

### Connect to the Notecard

With your Notecard connected your next step is to communicate with the Notecard over USB. To do so, first locate the panel on the right-hand side of your browser window, which we call the **In-Browser Terminal**.

Within the In-Browser Terminal, click the **USB Notecard** button. A browser prompt will appear asking for permission to connect to a USB serial device:

![Browser prompt for connecting serial](https://dev.blues.io/images/quickstart/serial-prompt.gif?v=385ee8e6)

- If you're on a Mac, select either `Notecard (cu.usbmodemNOTE1)` or `Notecard (tty.usbmodemNOTE1)`.

- On Windows, the option will show up as `USB Serial Device (COMx)`.

- On Linux the option will show up as `Notecard (ttyACM0)`.

**Having trouble connecting?**

- Try using a different micro USB cable. Some micro USB cables are only capable of transferring power, not data.

- If Linux is your operating system, try adding your user to the `dialout` group. Run the command `sudo usermod -aG dialout $USER` and restart your computer for the change to take effect (as logging out and back in may not be enough).

**Prefer to use the Notecard CLI instead?**

- Visit the [Notecard CLI Guide for installation instructions](https://dev.blues.io/tools-and-sdks/notecard-cli.md#installation).

- Once installed, use the `notecard -play` command to begin interactive request mode.

* Copy each request from this guide into your CLI console to run it against your connected Notecard.

### Validate Serial Connection

Now you're ready to send your first [JSON](https://dev.blues.io/api-reference/glossary.md#json) request to the Notecard! All requests and responses to/from the Notecard are in JSON format and are structured with the command as the value of a `req` key. Additional arguments are written as additional key-value pairs. For example, `{"req":"card.version"}` or `{"req":"hub.set", "mode":"continuous"}`.

The first request you'll send invokes the `card.version` API, which returns metadata about your Notecard.

Copy and paste the following request into the In-Browser Terminal *(click the **TRY IT** button below)*.

Hit **Enter** and you'll see a response similar to the example output.

```json
{"req":"card.version"}
```

```json
{
 "version": "notecard-11.1.1.17494",
 "device": "dev:868531060199390",
 "name": "Blues Wireless Notecard",
 "sku": "NOTE-MBGLN",
 "ordering_code": "EB0WT1N0AXBP",
 "board": "5.13",
 "cell": true,
 "gps": true,
 "ntn": true,
 "body": {
  "org": "Blues Wireless",
  "product": "Notecard",
  "target": "u5",
  "version": "notecard-u5-11.1.1",
  "ver_major": 11,
  "ver_minor": 1,
  "ver_patch": 1,
  "ver_build": 17494,
  "built": "Dec 8 2025 10:13:37"
 }
}
```

***Well done! You have properly set up, configured, and validated your hardware. Next, you'll configure your Notecard to communicate with Notehub.***

> **Note:**
>
> If you’re using **Notecard WiFi** you have one additional step: complete our guide to [connecting to a WiFi access point](https://dev.blues.io/guides-and-tutorials/notecard-guides/connecting-to-a-wifi-access-point.md), as you'll need a network connection to complete the rest of this tutorial.
>
> If you’re using a **Notecard Cell+WiFi** you *can* connect your Notecard to a WiFi Access Point, but we recommend holding off so you can see your device work over cellular first

## Set up Notehub

[Notehub](https://notehub.io) is a secure proxy cloud service that communicates with Notecard, provides tooling for managing fleets of devices, allows you to perform over-the-air Notecard and host MCU firmware updates, and makes it easy for you to route data to your own cloud applications.

In this section, you'll set up a Notehub [Project](https://dev.blues.io/api-reference/glossary.md#project) and create your first [ProductUID](https://dev.blues.io/api-reference/glossary.md#productuid). A ProductUID is the unique identifier you will use to associate a Notecard with a Notehub Project, and ensure that data from Notecard ends up in the right location.

### Create a Notehub Project

1. Sign in or sign up for Notehub using the links below.

   [Sign up for a free Notehub account](https://notehub.io/sign-up) or [sign in to an existing account](https://notehub.io/sign-in).

2. Click "Create Project" on the dashboard. In the New Project card, give your project a name and ProductUID.

   ![The dialog for creating a project in Notehub](https://dev.blues.io/images/guides/notehub/create-project.png?v=bf29a47a)

   > **Note:**
   >
   > The ProductUID must be globally unique. To reduce collisions, Notehub prepends a generated namespace based on your account email, for instance `com.your-company.your-name:`. Enter any identifier you like in the input on the right.

3. Take note of your ProductUID. This identifier is used by Notehub to associate a Notecard to your project.

   ![The location of the ProductUID within a Notehub project](https://dev.blues.io/images/guides/notehub/product-uid.png?v=d829ab1d)

## Set up Notecard

Now that you know how to send requests to Notecard, let's next tell Notecard about your Notehub project so it knows where to send data.

To associate Notecard with your project in Notehub you must assign the ProductUID you created to your Notecard. A Notecard can easily be moved between projects over time, but it can only belong to one project at a time

To set the ProductUID, you'll start by sending a `hub.set` JSON request to your Notecard. Once Notecard has finished processing your request, it will send a JSON response back to your computer to let you know that the request is complete.

An empty JSON object (`{}`) from Notecard indicates a successful request. If an error occurs, Notecard will return a JSON object with an `err` key and a string describing the error.

Copy and paste the following Notecard request, making sure to replace `com.your-company.your-name:your_product` with the ProductUID you created in the last step *(click the **TRY IT** button below)*.

```json
{"req":"hub.set", "product":"com.your-company.your-name:your_product"}
```

```json
{}
```

The JSON object above consists of two key-value pairs. The first provides the name of the request, denoted with the key `req` and a value of `hub.set`. The second, `product`, is one of the arguments for the `hub.set` request. You can see all the arguments for this, and all Notecard requests, in the [API Documentation](https://dev.blues.io/api-reference/notecard-api/hub-requests.md#hub-set).

### Validate Your ProductUID and Connection

In this section, you'll validate your Notecard configuration by performing a manual sync with Notehub and then request sync status updates from Notecard.

#### Start a Sync

Initiate a synchronization between Notecard and Notehub with a `hub.sync` request, as shown below.

```json
{"req":"hub.sync"}
```

```json
{}
```

Once a sync has started, you can monitor the state of the sync by watching the status bar at the top of the In-Browser Terminal.

![In-Browser Terminal sync pending](https://dev.blues.io/images/quickstart/terminal-sync-pending.png?v=93f9e77c)

As soon as you see "Successful Notehub sync \[x]s ago", the sync is complete!

![In-Browser Terminal sync complete](https://dev.blues.io/images/quickstart/terminal-sync-complete.png?v=8c8f85d9)

**Optional: Manually check on the state of a sync with the hub.sync.status API**

You can also manually check on the state of a sync with a `hub.sync.status` request. When the sync is ongoing, the response will return a `status` field with the current progress of the sync and a `requested` field with the number of seconds since the sync was initiated.

Depending on the timing of your `hub.sync.status` requests, your responses may differ from what is displayed here:

```json
{"req":"hub.sync.status"}
```

```json
{
  "status": "starting communications {wait-module} {connecting}",
  "requested": 2
}
...
{
  "status": "modem now ON {modem-on}",
  "requested": 6
}
...
{
  "status": "waiting for wireless service 6 sec [+---] {cell-registration-wait}",
  "requested": 12
}
```

Once the sync has completed, the response to `hub.sync.status` includes the UNIX Epoch time of the last sync, and the number of seconds since the last completed sync.

```json
{"req":"hub.sync.status"}
```

```json
{
 "time": 1615585299,
 "completed": 4
}
```

You should now be able to return to Notehub, refresh the **Devices** page, and see that a device has been added to your project:

![device in notehub](https://dev.blues.io/images/quickstart/view-device-notehub.png?v=becf1bd4)

**Sync not completing, or having trouble connecting?**

1. Check if the response to a `hub.sync.status` request includes "no project was found" or "can't open Notehub" errors:

   ```json
   {"req":"hub.sync.status"}
   ```

   ```json
   {
     "status": "opening notehub: no project was found with product UID product:com.your-company.your-name:your_product {product-noexist} {notehub-open-failure}",
     "requested": 10
   }
   ...
   {
     "status": "can't open notehub: opening notehub: no project was found with product UID product:com.your-company.your-name:your_product {product-noexist} {notehub-open-failure}",
     "requested": 11
   }
   ```

   If so, you may have a typo, or may have passed a project name to your `hub.set` request's `product` instead of a ProductUID. If this is the case, send another `hub.set` request with the correct `product`, and then send a `hub.sync` request.

   **REMINDER:** The ProductUID is typically in the form of `com.your-company.your-name:your_product`.

2. If your ProductUID seems correct, you may have a connectivity issue. Please consult our guide on [Diagnosing Cellular Connectivity Issues](https://dev.blues.io/support/diagnosing-cellular-connectivity-issues.md).

3. It may be helpful to view a detailed trace of the Notecard's activity during a connection attempt. To do this, type `sync-trace` into the In-Browser Terminal and press return to initate a sync and start logging. Once the trace is complete, click the save button in the terminal to export the log for further analysis.

4. If you've tried these troubleshooting steps and are still having issues, please reach out on our [community forum](https://discuss.blues.com/).

**Why doesn't Notecard sync data immediately?**

We designed Notecard to be [low-power friendly](https://dev.blues.io/notecard/notecard-walkthrough/low-power-firmware-design.md) by default. Notecard is extremely low power in its idle state (consuming only \~8-18µA\@5V when idle) and when queuing data with `note.add` requests, but uses a nontrivial amount of energy when the cellular modem is on and transmitting data to and from a network.

However, Notecard is also very configurable, and you can easily set up a Notecard to synchronize data immediately. You can read more about that approach in our guide on [Minimizing Latency](https://dev.blues.io/guides-and-tutorials/notecard-guides/minimizing-latency.md).

***You're doing great! You have now configured your Notecard and are ready to send Notes to your Notehub Project!***

## Queue Notes to Your Notecard

Think of Notecard as a durable, on-device queue.

Your application writes data to Notecard, where it is safely stored in onboard flash. Notecard then syncs that data with Notehub based on your sync settings and available connectivity (e.g. immediately, periodically, or later when a connection is available). In this section, you will learn how to store data simulating sensor readings on your Notecard.

Imagine your Notecard is connected to a [Host MCU](https://dev.blues.io/api-reference/glossary.md#host-mcu) that reads temperature and humidity data from a sensor. Your sample data might look like this: `{"temp":35.5,"humid":56.23}`.

To do this, you will use Notecard's [note.add API](https://dev.blues.io/api-reference/notecard-api/note-requests.md#note-add) that includes a `body` argument which accepts any arbitrary JSON data.

Copy and paste the following request into the In-Browser Terminal, then press **Enter** to send it to your Notecard.

```json
{"req":"note.add","body":{"temp":35.5,"humid":56.23}}
```

```json
{"total":1}
```

This request will create a [Note](https://dev.blues.io/api-reference/glossary.md#note) that includes your JSON body and additional metadata like creation time and location.

As with other requests, the first key-value pair of the JSON specifies the `note.add` request, but in this case, the argument of `body` contains a full JSON object of your data as the value. There are a number of other possible arguments to `note.add`, as listed in the [documentation](https://dev.blues.io/api-reference/notecard-api/note-requests.md#note-add).

In response, Notecard returns a JSON object indicating the total number of Notes ready to sync to Notehub. You won't see your Note in Notehub just yet, because Notecard queues your Notes until it is time to sync them to the cloud.

***Excellent work! You have queued your first Note to your Notecard!***

## Send Notes from Notecard to Notehub

In this section, you'll perform another sync to send your Note to Notehub.

As before, you can manually initiate a sync by entering the following JSON request in the In-Browser Terminal:

```json
{"req":"hub.sync"}
```

```json
{}
```

Behind the scenes, your Notecard will again search for a network connection and connect to Notehub. Once the connection is made, Notecard uploads your Note and closes the connection.

As before, you can monitor the state of the sync by watching the status bar at the top of the In-Browser Terminal, or use a `hub.sync.status` request.

By default, Notecard places Notes in a [Notefile](https://dev.blues.io/api-reference/glossary.md#note) called `data.qo`. The `.qo` extension means that the file is an "outbound queue," or a queue that originates on Notecard and is synchronized with Notehub.

***Great work! Your Note has now been transferred from Notecard to the cloud and stored in your Notehub project!***

> **Note:**
>
> Notecard is a low-power device (consuming only \~8-18µA\@5V when idle) and is built to be continuously powered. This is important to know because [certain features of Notecard](https://dev.blues.io/notecard/notecard-walkthrough/advanced-notecard-configuration.md#functions-that-require-setting-time) require the current time, which is established upon Notecard successfully connecting to a network upon startup.

## View Notes on Notehub

In this section, you'll learn how to view and interact with your Note on Notehub.

1. First, navigate back to [Notehub.io](https://notehub.io). You will see your project dashboard: ![List of projects in Notehub](https://dev.blues.io/images/quickstart/projects-screen.png?v=5cf54f8f)

2. Click on the tile with your Project, and the device dashboard for your Project will load. You'll see your Notecard in the Devices list. ![List of devices in Notehub](https://dev.blues.io/images/quickstart/devices-screen.png?v=ba1603c5)

3. Click **Events** in the left-side navigation. In the Events list, you should see your Note in the list with a simulated sensor reading body. Your Note will be listed in the table, along with other session and environment-specific events sent automatically by Notecard. ![List of events in Notehub](https://dev.blues.io/images/quickstart/events-screen.png?v=7c2f6c6a)

***It's that simple, your product and data are now online!***

## Send Notes from Notehub to Notecard

It's important to remember that communication between Notecard and Notehub is *bi-directional*, both **outbound** (from Notecard to the cloud, as documented above) and **inbound** (from the cloud to Notecard).

While not part of the quickstart, you can learn more about inbound data syncing in the [Notehub Walkthrough](https://dev.blues.io/notehub/notehub-walkthrough.md#sending-data-from-notehub-to-notecard).

## Next Steps

**Congratulations!** You've now queued sensor data on a Notecard and sent that data to the cloud!

If you're following a Cell+WiFi Quickstart, next we recommend setting up your microcontroller:

1. ~~Use the Notecard to Send Data~~
2. [Set Up Your Microcontroller](https://dev.blues.io/quickstart/cygnet-quickstart.md)
3. [Build Your First IoT App With Blues](https://dev.blues.io/guides-and-tutorials/collecting-sensor-data.md)
4. [Send Data to Your Cloud](https://dev.blues.io/guides-and-tutorials/routing-data-to-cloud.md)

At any time, if you find yourself stuck, please reach out on the [community forum](https://discuss.blues.com/).
