☀️ Learn how to design solar power into your connected product on December 11th

Blues Developers
What’s New
Resources
Blog
Technical articles for developers
Newsletter
The monthly Blues developer newsletter
Terminal
Connect to a Notecard in your browser
Developer Certification
Get certified on wireless connectivity with Blues
Webinars
Listing of Blues technical webinars
Blues.comNotehub.io
Shop
Docs
Button IconHelp
Notehub StatusVisit our Forum
Button IconSign In
Docs Home
What’s New
Resources
Blog
Technical articles for developers
Newsletter
The monthly Blues developer newsletter
Terminal
Connect to a Notecard in your browser
Developer Certification
Get certified on wireless connectivity with Blues
Webinars
Listing of Blues technical webinars
Blues.comNotehub.io
Shop
Docs
Quickstart
Cell+WiFi Quickstart
LoRaWAN Quickstart
Starnote for Skylo Quickstart
IntroductionBefore You BeginUnderstanding NTN Transport ModeUsing NTN ModeConnecting a Starnote for SkyloPairing a Starnote for SkyloSending Data Over SatelliteNext Steps
Wireless for Opta Quickstart
Notecard Quickstart
Notecard LoRa Quickstart
Cygnet Quickstart
Swan Quickstart
Mojo Quickstart
Sparrow Quickstart
homechevron_rightDocschevron_rightQuickstartchevron_rightStarnote for Skylo Quickstart

Starnote for Skylo Quickstart

Introduction

This tutorial should take approximately 40–50 minutes to complete.

This guide will introduce you to Starnote for Skylo, an affordable satellite IoT fallback device. Like cellular-based Notecards, which include prepaid cellular data and service, Starnote for Skylo includes satellite uplink and downlink data in the cost of the device.

Starnote for Skylo communicates through a paired Notecard, so developers continue to use the Notecard's JSON-based programming interface. This allows developers to send and receive data over NTN (Non-Terrestrial Networks) using straightforward, accessible semantics.

Starnote for Skylo is a cost-optimized "Notecard accessory" and must be paired with a Notecard device to function (specifically a Notecard Cellular, Notecard Cell+WiFi, or Notecard WiFi - Notecard for LoRa is not supported for use with Starnote for Skylo).

In a nutshell, you use the Notecard API to specify the mode of operations for when to fallback to satellite and what data to sync, and Notecard handles communications between itself and Starnote, as depicted in the flowchart below:

notecard starnote data flow

Starnote for Skylo is offered in two variants. One with onboard satellite and GPS/GNSS antennas from Ignion and one with u.FL connectors on the back of the board for use with the included Skylo-certified flexible antennas.

Starnote for Skylo with Ignion AntennasStarnote for Skylo with u.FL Connectors
Starnote with Ignion Antennas (front)Starnote with u.FL Connectors (front)

Before You Begin

note

New to Notecard? We recommend reviewing the Notecard Quickstart before proceeding, to better understand how Notecard operates.

To complete this guide you must have access to the following:

  • A computer with an available USB port.

  • A browser that supports the Web Serial API, like Chrome, Microsoft Edge, or Opera.

  • A free Notehub.io account.

  • A Notecard Cellular, Notecard Cell+WiFi, or Notecard WiFi device on firmware version >= v9.1.1.

To complete the final sections of this guide, Connecting a Starnote for Sklyo and Sending Data Over Satellite, you must additionally have the following hardware (all of which is available in a Starnote for Skylo Starter Kit).

  • A Starnote for Skylo (either the u.FL or Ignion antenna version).

    • If you have the Starnote for Skylo with u.FL connectors you will also need:

      • A Skylo-certified external LTE antenna (i.e. the flexible antenna that ships with Starnote for Skylo).

      • An external GPS/GNSS antenna (though Starnote for Skylo can use fixed location coordinates for testing).

  • A Notecarrier XS.

Understanding NTN Transport Mode

Notecard transport modes (via the card.transport API) let developers configure which Radio Access Technology (RAT) a Notecard should use, and enable a Notecard to fallback from one RAT to another, such as falling back from Wi-Fi to cellular.

With the release of Starnote for Skylo, we've added a new transport mode to Notecard called NTN (Non-Terrestrial Networks). NTN is the 3GPP standard for satellite-based interaction with cellular networks as provided by Skylo, our connectivity partner for Starnote for Skylo.

Notecard's NTN mode is a byte-constrained mode that attempts to send as little data as possible over the network. NTN mode is compatible with all variants of Notecard Cellular, Notecard Cell+WiFi, and Notecard WiFi.

During phases of application development and testing, NTN mode can be used without the presence a Starnote device. This means you can develop and debug firmware using cellular or Wi-Fi without using satellite data. Once your firmware is complete and ready for deployment, your application will be able to use Starnote for Skylo for satellite fallback without any firmware changes.

The NTN-related card.transport method arguments are as follows:

  • {"req":"card.transport","method":"ntn"} to always use NTN for network communications (useful for testing NTN mode over cellular or Wi-Fi, not recommended for production deployments).

  • {"req":"card.transport","method":"wifi-ntn"} to prefer Wi-Fi and fallback to NTN.

  • {"req":"card.transport","method":"cell-ntn"} to prefer cellular and fallback to NTN

  • {"req":"card.transport","method":"wifi-cell-ntn"} to prefer Wi-Fi, then fallback to Cellular, and lastly to NTN.

  • {"req":"card.transport","method":"-"} to reset the transport mode to the device default.

Let's start the hands-on portion of this tutorial by looking at how to use these modes on a Notecard.

warning

For a Note synced with Starnote for Skylo, the minimum packet size is 50 bytes and the maximum packet size is 256 bytes. You are billed based on that packet size.

Using NTN Mode

In this section of the guide you'll set your Notecard to use NTN mode and send your first Note over NTN mode to Notehub. To complete this section you must have a Notecard Cellular, Notecard Cell+WiFi, or Notecard WiFi connected to a compatible Notecarrier. If you are unsure how to do this refer to the Notecard quickstart.

If you're using a Starnote for Skylo Starter Kit, you can complete this section by connecting your Notecard WiFi to the appropriate M.2 connector on your Notecarrier XS.

A Notecard WiFi connected to a Notecarrier XS

warning

Do NOT hook up your Starnote for Skylo yet. Notecard automatically detects the presence of Starnote for Skylo and will start using it when your Notecard is in NTN mode.

You'll hook up Starnote for Skylo in a later step after you've learned how NTN mode works.

  1. Connect a USB cable from the Notecarrier's USB port to your computer's USB port.

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

    Browser prompt for connecting serial

  3. Reset your Notecard's transport method to its default mode with the card.transport API.

    {"req":"card.transport","method":"-"}
  4. If you're using a Notecard WiFi, connect to a 2.4 GHz network using the card.wifi request (as shown below), or by using the device's AP button.

    {"req":"card.wifi","ssid":"your-network-name","password":"your-network-password"}
  5. All NTN communications require use of templated Notefiles and templated environment variables to help reduce usage of satellite data.

    For example, to create a Notefile template for use with NTN, define the template with the "format":"compact" and "port":<1-100> arguments. Read more about the format and port arguments in the note.template API documentation.

    {"req":"note.template","file":"sat.qo","format":"compact","port":55,"body":{"temp":14.1,"humidity":14.1}}
  6. Likewise, if you wanted to set an inbound Notefile template you would use the same format, but with a .qi extension on the file argument.

    {"req":"note.template","file":"config.qi","format":"compact","port":44,"body":{"cmd":"*"}}
  7. After all of your Notefile templates are defined, set your Notecard to your Notehub project's ProductUID with the hub.set request below. Setting the request's "mode" to "minimum" instructs the Notecard to only connect to Notehub during explicit hub.set requests, which will help us manage satellite data usage in later sections.

    {"req":"hub.set","product":"com.your.domain:product","mode":"minimum"}
  8. Run a hub.sync request. It is required that the Notecard first syncs with Notehub over a non-NTN connection to copy all of your generated templates to your Notehub project before they may be used by Starnote for Skylo.

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

    These configuration settings persist across both Starnote for Skylo and Notecard restarts. This means that once you create or update a template and perform a single sync over cellular or Wi-Fi, the changes are retained. If the device restarts, you do not need to re-establish a new cellular or Wi-Fi connection with Notehub as the stored configuration remains in effect.

  9. Watch the progress bar in the In-Browser Terminal for updates on the syncing process.

    warning

    You must wait for your Notecard to complete a full sync with Notehub before you proceed to the next step!

    notecard completes sync with notehub

  10. Once the sync with Notehub is complete, turn on NTN mode with the card.transport API.

    {"req":"card.transport","method":"ntn"}
    warning

    We do not recommend using "method":"ntn" in production. When using a physical Starnote, NTN mode will force Notecard to send all data over satellite, which may inadvertently consume your data allocation.

  11. Add a Note to a templated Notefile. For example:

    {"req":"note.add","file":"sat.qo","body":{"temp":12.3,"humidity":45.6}}
  12. Next, watch serial communications from Starnote for Skylo by issuing the trace +req command in the In-Browser Terminal.

    trace +req

    This enables trace mode on your Notecard, and displays all requests to/from your Notecard and Starnote for Skylo. For now you'll use trace mode to verify NTN mode is working as expected, and in later sections you'll use it to display all requests to and from Notecard and Starnote for Skylo.

  13. Send a hub.sync request to sync data over NTN, using the out argument to only sync pending outbound data.

    {"req":"hub.sync","out":true}
  14. If you need to instruct your Notecard and Starnote for Skylo to check for inbound data, you must use the in argument of the hub.sync API.

    {"req":"hub.sync","in":true}
    note

    You can still use the inbound and outbound arguments in the hub.set API to specify a cadence of syncing with Notehub. However, a best practice is to either set a relatively high inbound argument or manually manage inbound connections as detailed here.

  15. Watch for the sync with Notehub to complete in the In-Browser Terminal. Eventually you may notice a fragment of text like the following, which details the size of each Note and total packet size.

    S03:05.53 ntn: enqueueing note len:15 (port 55)
    S03:05.53 ntn: enqueueing note len:15 (port 55)
    S03:05.53 ntn: enqueueing note len:15 (port 55)
    S03:05.54 sync: work: upload sat.qo (3 changes) {sync-get-local-changes}
    S03:05.54 purge sat.qo:
    S03:05.55     1 notes (0 stable, 0 queued, 1 tombstones)
    S03:05.55  -> 0 notes (0 stable, 0 queued, 0 tombstones)
    S03:05.59 sync: work to be done:
    S03:05.59       upload sat.qo
    S03:05.60 deleting /data/sat-qo.000
    S03:05.63 sync: work: completed {sync-end}
    S03:05.64 sync: advancing last sync time from 14:08:26Z to 14:09:04Z
    S03:05.76 ntn: adding downlink request note into packet (6/248)
    S03:05.77 ntn: dequeueing 15-byte note (port 55) into packet (23/248)
    S03:05.77 ntn: dequeueing 15-byte note (port 55) into packet (40/248)
    S03:05.77 ntn: dequeueing 15-byte note (port 55) into packet (57/248)
    S03:05.78 packet: sending 57 bytes (encoded as 61 bytes on-air)
    S03:05.78         to 216.245.146.112:8089
    S03:05.78 ntn: sent 57-byte packet containing 4 notes
  16. IMPORTANT: Be sure to disable trace mode by sending the trace off command in the In-Browser Terminal.

    trace off
  17. Finally, head to your Notehub project to look for the Note you just sent.

    ntn data in notehub

    note

    Events sent over NTN will not have a location, by default, because location is not included in compact Notefile templates. You can add fields that would be otherwise omitted by using a handful of reserved keywords. See Creating Compact Templates.

  18. At this point you can reset the transport mode of your Notecard to restore it to prioritizing cellular or Wi-Fi communications.

    {"req":"card.transport","method":"-"}

Connecting a Starnote for Skylo

Now that you've seen how NTN mode works, let's connect a Starnote for Skylo and see how to send data over a real satellite connection.

Starnote for Skylo must be connected to a Notecard via UART, either using the Starnote for Skylo's M.2 pins or the 6-pin JST connector on the front of the device.

The easiest way to connect Starnote for Skylo to a Notecard is via the Notecarrier XS, which was specially built to accommodate both a Starnote for Skylo and a Notecard. Alternatively, you may use your own cable to connect Starnote for Skylo to a Notecard via male jumper wires inserted into the header pins on a Notecarrier A or Notecarrier F.

warning

When you integrate a host MCU to communicate with Notecard/Starnote for Skylo after completing this guide, please note that your host must interface with Notecard using I2C or AUX UART, as Starnote for Skylo connects to your Notecard via standard UART.

Learn more about how to interface with a Notecard from a host in Notecard Interfaces.

The Notecarrier XS includes an M.2 connector for both a Starnote for Skylo and a Notecard Cellular, Notecard WiFi, or Notecard Cell+WiFi device. Both are clearly labeled and the screw connectors are aligned such that each device will only fit in the correct M.2 slot.

notecarrier xs

  1. Disconnect the USB cable from your Notecarrier XS, if still connected from the previous section.

  2. Insert a Starnote for Skylo into the M.2 connector labeled "Starnote" and secure the mounting screw. Both the Starnote for Skylo with Ignion Antennas and Starnote for Skylo with u.FL Connectors are compatible with the Notecarrier XS.

    notecarrier xs starnote

  3. Insert a Notecard Cellular, Notecard WiFi, or Notecard Cell+WiFi device into the M.2 connector labeled "Notecard" and secure the mounting screw.

    While not pictured here, be sure to attach any required cellular and/or Wi-Fi antennas to the u.FL connectors on the Notecard as well.

    notecarrier xs notecard

  4. If using a Starnote for Skylo with u.FL Connectors, connect the provided external u.FL antennas. The larger antenna should be connected to the SAT connector and the smaller antenna to the GPS connector.

    notecarrier xs antennas

To use the 6-pin JST connector on the front of Starnote for Skylo, you'll need a cable that breaks out each of the six pins into its own wire, such as this one. Insert the male connector into the 6-pin JST connector on the face of the Starnote for Skylo, and then follow this wiring guide for wiring to a Notecarrier A or Notecarrier F:

  1. Disconnect the USB cable from your Notecarrier XS, if still connected from the previous section.

  2. Connect one or both of the GND wires from the connector to GND on the Notecarrier A or F.

  3. Connect the TX wire to RX on the Notecarrier A, or to N_RX on the Notecarrier F.

  4. Connect the RX wire to TX on the Notecarrier A, or to N_TX on the Notecarrier F.

  5. Connect the VMAIN wire to VMAIN on the Notecarrier A or F.

  6. Connect the VIO wire to VIO on the Notecarrier A, or to N_VIO on the Notecarrier F.

notecard starnote cable connection

Now that you have everything connected, let's look at how to pair a Starnote for Skylo to a Notecard.

Pairing a Starnote for Skylo

When a Notecard first detects a connected Starnote for Skylo it will pair with the module. Once paired, a Notecard will look for its paired Starnote for Skylo every time it restarts, and will report errors if it can’t connect.

The pairing process happens automatically when you power on a Notecard and it's connected to a Starnote via UART (as shown in the previous section).

Let’s look at how it works.

  1. Re-connect a USB cable from the Notecarrier's USB port to your computer's USB port, and re-open the In-Browser Terminal.

  2. After Starnote for Skylo is powered on, run a hub.sync request over cellular or Wi-Fi. This will ensure that any additional templates and this new association between Notecard and Starnote for Skylo are communicated with Notehub.

    {"req":"hub.sync"}
  3. After the sync is completed, run a ntn.status request, which will report on the status of any connected NTN modules. If all went well, you should see {ntn-idle} in the response, which indicates that your Starnote for Skylo has paired and is idle.

    >
    {"req":"ntn.status"}
    {"status":"{ntn-idle}{ntn-unknown-location}"}
warning

Once you’ve connected your Notecard to a Starnote for Skylo, the presence of a physical Starnote for Skylo is stored in a permanent configuration that is not affected by a card.restore request.

If you'd like to reset this so you can go back to testing NTN over cellular or Wi-Fi, issue an ntn.reset request.

Sending Data Over Satellite

Now that you have your Starnote for Skylo paired, let's use it to send your first data over a satellite connection.

Starnote for Skylo needs to know its location so that it can find overhead satellites. Although Starnote for Skylo will determine its location during its first transmission using its onboard GPS module, you can (optionally) expedite this process by manually providing a location.

  1. (Optional) To provide a fixed location, use Notecard's card.location.mode API and substitute your current latitude and longitude for the lat and lon arguments.

    {"req":"card.location.mode","mode":"fixed","lat":12.3,"lon":45.6}

    If you take this approach, you'll also need to use Notecard's ntn.gps request to tell Notecard to use its internal GPS data (which in this case has the hardcoded location), instead of using the GPS data from the connected Starnote for Skylo.

    {"req":"ntn.gps","on":true}
  2. Issue another trace +req command in the In-Browser Terminal to watch serial communications.

    trace +req
    warning

    If you notice from your log that your Notecard is actively syncing data over cellular or Wi-Fi, please wait for it to finish before proceeding to the next step.

  3. After that, turn on NTN mode with the card.transport API.

    {"req":"card.transport","method":"ntn"}
  4. Next, queue a new Note onto the Notecard using the note.add request.

    {"req":"note.add","file":"sat.qo","body":{"temp":45.6,"humidity":78.9}}
  5. After that, you need to take your device to a location that has a clear view of the sky, away from buildings and overhead tree cover.

    If you are testing outdoors you will also need to bring a laptop that is capable of connecting to the Notecard, sending a hub.sync request, and watching the serial logs. Depending on your setup this might be a bit of a hassle, but remember—you're about to send data to space! It'll all be worth it.

  6. When you're ready to go, trigger an outbound sync with a {"req":"hub.sync","out":true} request. Notecard will again use NTN mode to send your data, but this time—because you have a Starnote for Skylo connected—your Notecard will use Starnote for Skylo to send data over a satellite connection.

    {"req":"hub.sync","out":true}
  7. Watch the serial communications in the In-Browser Terminal, as it gives detailed information on steps Starnote for Skylo takes to connect to satellites and send your data. The process may take a few minutes, but when you see an ntn.uplink command you'll know everything worked! 🛰️

    S49:31.96 sync: sync triggered by explicit sync request; NTN
    S49:31.96 sync: work: begin (anything pending) {sync-begin}
    S49:32.02 sync: work to be done:
    S49:32.02       upload sat.qo
    S49:32.05 ntn: enqueueing note len:11 (port 55)
    S49:32.05 sync: work: upload sat.qo (1 changes) {sync-get-local-changes}
    S49:32.05 purge sat.qo:
    S49:32.05     1 notes (0 stable, 0 queued, 1 tombstones)
    S49:32.06  -> 0 notes (0 stable, 0 queued, 0 tombstones)
    S49:32.09 sync: work to be done:
    S49:32.09       upload sat.qo
    S49:32.10 deleting /data/sat-qo.000
    S49:32.10 sync: work: completed {sync-end}
    S49:32.11 sync: advancing last sync time from 18:57:23Z to 18:57:50Z
    S49:32.27 ntn: dequeueing 11-byte note (port 55) into packet (13/254)
    S49:32.27 packet: sending 11 bytes (encoded as 13 bytes on-air)
    << {"cmd":"ntn.uplink","id":21,"time":1717441070,"ltime":1717428925,"lat":...,"lon":...,payload":"ADcACwBmZjZCzcydQg=="}
    S49:32.47 ntn: sent 11-byte packet containing 1 notes
  8. Return to the Events page in your Notehub project. You should see your data listed in a new Event.

    Starnote data in Notehub

Having trouble connecting?

Satellite communications are notoriously difficult to get right, due to all of the variables involved. Here are some of the more common issues to be aware of:

  1. Give it time. It can take multiple minutes for Starnote for Skylo to find and communicate with Skylo's GEO satellites that sit above the equator. Double check that your antenna is free from obstructions and has a clear view of the southern sky (from the northern hemisphere) or northern sky (from the southern hemisphere).

  2. Make sure you have successfully synced any and all templates with Notehub over cellular or Wi-Fi before attempting NTN communications with Starnote for Skylo.

  3. Likewise, after physically connecting Starnote for Skylo to your Notecard, be sure to perform a sync over cellular or Wi-Fi before attempting to use NTN mode.

  4. Due to the nature of satellite communications, sometimes packets are simply lost. If a single Note appears to have been sent (according to your Notecard) but does not appear in Notehub, this could be the case.

Congratulations! You just sent your first data to space using Starnote for Skylo. Before we wrap up let's reset a few things.

  1. First, be sure to disable trace mode by sending the trace off command in the In-Browser Terminal.

    trace off
  2. Next, if you used hardcoded GPS coordinates for your device's location during testing, you'll likely want to reset the ntn.gps request so that you use the GPS location from your Starnote for Skylo moving forward.

    {"req":"ntn.gps","off":true}
  3. Lastly, set your Notecard's transport method to an appropriate value for your product, so you don't send any more data over satellite until you're ready. For example:

    {"req":"card.transport","method":"wifi-cell-ntn"}

Next Steps

The power of Starnote for Skylo is just how easy it makes satellite connectivity, and in this tutorial you saw this ease of use in action.

You learned how Notecard transport methods work, how to use the Notecard's NTN mode, how to connect a physical Starnote for Skylo, and how to send your first data using satellite connectivity.

Now that you know the basics, your next step is to review the Starnote Best Practices guide to better understand how to build a product around Starnote for Skylo. At any time, if you find yourself stuck, please reach out on the community forum.

Can we improve this page? Send us feedback
© 2025 Blues Inc.
© 2025 Blues Inc.
TermsPrivacy
Notecard Disconnected
Having trouble connecting?

Try changing your 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 the Notecard's API on a Simulator assigned to your free Notehub account.

Don't have an account? Sign up