🏁 Get Started with the Notecard and Cellular IoT on June 8th !

Blues Developers
Search
Documentation Results
End of results
Community Results
End of results
What’s New
Blues.io
Notehub.io
Shop
Sign In
What’s New
Blues.io
Notehub.io
Shop
×
HomeQuickstart
Blues Quickstart
Notecard QuickstartIntroductionBefore You BeginConnect Your Notecard and NotecarrierSet up NotehubSet up NotecardQueue Notes to your NotecardSend Notes from Notecard to NotehubView Notes on NotehubSend Notes from Notehub to NotecardNext Steps
Swan Quickstart
Sparrow Quickstart

Notecard Quickstart

Get started with a
Notecard and Notecarrier-ANotecard and Notecarrier-BNotecard and Notecarrier-FNotecard and Notecarrier-PiNotecard and SparkFun MicroMod Cellular Function BoardNotecard and SparkFun Qwiic CellularNotecard Simulator

Introduction

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

This guide will introduce you to the Blues ecosystem, including the Notecard, Notecarrier, and Notehub.

Throughout this guide, you'll issue serial requests to configure the Notecard, simulate sending data from sensors to the 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. The following video provides an overview of what you'll learn.

Key Concepts to Know

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

  • The Notecard is a device-to-cloud data pump that reduces the complexity of building connected solutions with a secure, reliable cellular or Wi-Fi connection. It's a 30x35 millimeter System-on-Module (SOM) that's ready for embedding into any project.

  • Notecarriers are development boards that help you get started quickly with the Notecard. There are a variety of Notecarriers designed to fit different needs, from prototyping with a Feather-based MCU to deploying a production solution.

  • Notehub is the cloud service the 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):

animation of outbound communication from notecard to notehub to cloud

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

animation of inbound communication from cloud to notehub to notecard

Before You Begin

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

  • Notecard and SparkFun MicroMod Cellular Function Board - Blues Wireless Notecarrier .

  • SMA-compatible antenna to connect to a cellular network, such as this one from SparkFun .

  • (Optional, but needed for the GPS/GNSS capabilities of the Notecard) SMA passive GPS antenna, such as this one from SparkFun .

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

  • Computer with an available USB port.

  • A browser that supports the Web Serial API, like Chrome 89+, Edge 89+, or Opera. If you prefer to not use one of these browsers you can follow-along with this guide by installing the Notecard CLI and using the play command to send Notecard requests interactively.

  • If you're using a Cellular Notecard, make sure you're in a location with stable cellular coverage.
  • An internet connection that allows access to Notehub .

Connect Your Notecard and Notecarrier

The SparkFun MicroMod Cellular Function Board includes a Cellular Notecard.

You'll also need an SMA-compatible antenna to connect to a cellular network, and an SMA passive GPS/GNSS antenna if you want to use the GPS/GNSS capabilities of the Notecard. If you're unsure which to use, this PCB antenna from SparkFun works well as a cellular antenna, and this Molex antenna from SparkFun works well as a GPS/GNSS antenna.

  1. Remove the screw from the mounting receptacle on the SparkFun MicroMod Cellular Function Board.

    Image of mounting receptacle on Notecarrier

  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

  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

  4. Secure the u.FL cable from your cellular antenna to the Notecard's MAIN socket. And, if you're using a GPS/GNSS antenna, attach its u.FL cable to the Notecard's GPS socket.

Image of GPS antenna and GPS SMA connection

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

Power Up the Notecard and Notecarrier

Connect a USB-C cable from the SparkFun MicroMod Cellular Function Board to your computer's USB port.

note

If you're using a Wi-Fi Notecard you have one additional step: complete our guide to connecting to a Wi-Fi Access Point, as you'll need a network connection to complete the rest of this tutorial.

Connect to the Notecard

If you want to use the in-browser terminal for this guide, take notice of the window to the right or below. You will be using this interface to communicate over USB with your Notecard.

In 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

  • 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.

  • 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 request. Copy and paste the following request into the in-browser terminal (click the COPY button below).

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

>
{"req":"card.version"}
{
 "body": {
  "org": "Blues Wireless",
  "product": "Notecard",
  "version": "notecard-3.3.1",
  "ver_major": 3,
  "ver_minor": 3,
  "ver_patch": 1,
  "ver_build": 14612,
  "built": "May 18 2022 11:21:51"
 },
 "version": "notecard-3.3.1.14612",
 "device": "dev:868050040247765",
 "name": "Blues Wireless Notecard",
 "sku": "NOTE-WBNA-500",
 "board": "1.11",
 "api": 3
}

The JSON response above provides version information of the firmware on the Notecard, as well as device-specific information.

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

Set up Notehub

Notehub is a secure proxy cloud service that communicates with the 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 and create your first ProductUID. A ProductUID is the unique identifier you will use to associate a Notecard with a Notehub Project, and ensure that data from the Notecard ends up in the right location.

Create a Notehub Project

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

    Create a Notehub Account

    Already have an account? 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

    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 your Notecard to your project.

    The location of the ProductUID within a Notehub project

Set up Notecard

Now that you know how to send requests to the Notecard, let's next configure the Notecard so it knows where to send data.

To associate the 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 the Notecard has finished processing your request, it will send a JSON response back to your computer to let you know that the request is complete.

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

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 COPY button below).

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

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 the Notecard.

Start a Sync

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

>
{"req":"hub.sync"}
{}

Once a sync has started, you can optionally check on the state of the 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. You can call hub.sync.status multiple times to follow the process of your first sync if you wish.

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

>
{"req":"hub.sync.status"}
{
  "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.

>
{"req":"hub.sync.status"}
{
 "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

Sync not completing, or having trouble connecting?

If you're having trouble connecting, check if your status includes "no project was found" or "can't open Notehub" errors.

>
{"req":"hub.sync.status"}
{
  "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, run another hub.set request with the correct product, and then issue another hub.sync request.

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

If your ProductUID seems correct, you may have a connectivity issue. Please consult our guide on Diagnosing Cellular Connectivity Issues.

If you've tried these troubleshooting steps and are still having issues, please reach out on our community forum .

Why doesn't the Notecard sync data immediately?

We designed the Notecard to be low-power friendly by default. The Notecard is extremely low power in its idle state (consuming only ~8uA 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, the 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.

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

In this section, you will add Notes simulating sensor data to your Notecard. Imagine your Notecard is connected to a Host MCU that reads temperature and humidity information from a sensor. Your sample data might look like this: {"temp":35.5,"humid":56.23}.

Copy and paste the following request into the Notecard Terminal, then press Enter to send it to the Notecard.

>
{"req":"note.add","body":{"temp":35.5,"humid":56.23}}
{"total":1}

This request will create a Note that includes your JSON body and additional metadata like creation time and location. In response, the 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 the Notecard queues your Notes until it is time to sync them to the cloud.

Excellent work! You have queued your first Note to the 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:

>
{"req":"hub.sync"}
{}

Behind the scenes, your Notecard will again search for a network connection and connect to Notehub. Once the connection is made, the Notecard uploads your Note and closes the connection. As before, you can use hub.sync.status to monitor your in-progress sync:

>
{"req":"hub.sync.status"}
{
  "status": "begin (anything pending) {sync-begin}",
  "requested": 1
}
...
{
  "status": "upload data.qo (1 changes) {sync-get-local-changes}",
  "requested": 2
}
...
{
  "status": "completed {sync-end}",
  "requested": 4
}

By default, the Notecard places Notes in a Notefile called data.qo. The .qo extension means that the file is an "outbound queue," or a queue that originates on the Notecard and is synchronized with Notehub.

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

note

The Notecard is a low-power device (consuming only ~8uA when idle) and is built to be continuously powered. This is important to know because certain features of the Notecard require the current time, which is established upon the Notecard successfully connecting to a cellular network upon startup.

View Notes on Notehub

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

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

Create a Notehub Account

Already have an account? Sign in

Navigate to Notehub.io .

You will see your project dashboard:

List of projects in Notehub

Click on the card 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

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 the Notecard.

List of events in Notehub

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 the Notecard and Notehub is bi-directional, both outbound (from the Notecard to the cloud, as documented above) and inbound (from the cloud to the Notecard).

While not part of the quickstart, you can learn more about inbound data syncing in the Notehub Walkthrough.

Next Steps

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

If you're following the Blues Quickstart, next we recommend setting up your microcontroller:

  1. Use the Notecard to Send Data
  2. Set Up Your Microcontroller
  3. Build Your First IoT App With Blues
  4. Send Data to Your Cloud

At any time, if you find yourself stuck, please reach out on the community forum .

Can we improve this page? Send us feedback
© 2023 Blues Inc.Terms & ConditionsPrivacy
blues.ioTwitterLinkedInGitHubHackster.io
Disconnected
Notecard Disconnected
Having trouble connecting?

Try changing your Micro USB cable as some cables do not support transferring data. If that does not solve your problem, contact us at support@blues.com and we will get you set up with another tool to communicate with the Notecard.

Advanced Usage

The help command gives more info.

Connect a Notecard
Use USB to connect and start issuing requests from the browser.
Try Notecard Simulator
Experiment with Notecard's latest firmware on a Simulator assigned to your free Notehub account.

Don't have an account? Sign up