---
title: Updating Starnote for Skylo Firmware
description: Learn how to update the firmware on your Starnote for Skylo device.
source_url: https://dev.blues.io/starnote/starnote-for-skylo/updating-starnote-for-skylo-firmware/
canonical_url: https://dev.blues.io/starnote/starnote-for-skylo/updating-starnote-for-skylo-firmware/
markdown_url: https://dev.blues.io/starnote/starnote-for-skylo/updating-starnote-for-skylo-firmware.md
---

# Updating Starnote for Skylo Firmware

On this page you'll learn how to update the firmware on your [Starnote for Skylo](https://dev.blues.io/starnote/starnote-for-skylo.md) device.

> **Warning:**
>
> Make sure you read and understand the [Blues Firmware Release Policies and Procedures](https://dev.blues.io/starnote/starnote-firmware-releases.md#firmware-release-policies) before updating Starnote firmware.

1. [Prerequisites](#prerequisites)
2. [Placing Starnote in DFU Mode](#placing-starnote-in-dfu-mode)
3. [Flashing a New Starnote Firmware Binary](#flashing-a-new-starnote-firmware-binary)
4. [Verifying Success of a Starnote Firmware Update](#verifying-success-of-a-starnote-firmware-update)

## Prerequisites

The Starnote for Skylo firmware update process has both hardware and software requirements. Note that some of the required hardware may not be included as part of a Starnote for Skylo starter kit.

**Hardware Requirements**

- Starnote for Skylo
- Notecarrier that can seat a Starnote (floating, not screwed down) **in the Notecard M.2 socket**
- Micro USB or USB-C cable (depending on the model of your Notecarrier)
- Jumper wire

**Software Requirements**

- [STM32CubeProgrammer](https://www.st.com/en/development-tools/stm32cubeprog.html) (version >= 2.20.0)
- Access to a terminal (e.g. macOS Terminal, Linux shell, or Windows Powershell)
- Serial Terminal Application (e.g. [CoolTerm](https://freeware.the-meiers.org/) or [Tera Term](https://teratermproject.github.io/index-en.html))

> **Note:**
>
> If you are installing STM32CubeProgrammer for the first time, see [these installation notes](https://dev.blues.io/notecard/notecard-walkthrough/updating-notecard-firmware.md#stm32cubeprogrammer-installation-notes) for some additional (required) platform-specific instructions.

## Placing Starnote in DFU Mode

The first step is to configure your Starnote for Skylo to accept firmware updates.

1. Place your Starnote into the **Notecard M.2 connector** of your Notecarrier. Ensure your Starnote is snug in the M.2 connector, but don't expect it to lay flat and do NOT attempt to use the screw terminal. Starnote will end up "floating" in the socket. This is ok as long as it's firmly snug in the M.2 connector!

   ![starnote floating in notecarrier xs socket](https://dev.blues.io/images/firmware/starnote-dfu-1.jpg?v=771c0371)

2. Attach a jumper wire between the `BOOT` and `VIO` pins. On a Notecarrier F you can do this by running the wire from `N_BOOT` to `N_VIO`.

   > **Warning:**
   >
   > Do NOT use the `BOOT` pin under the `ALT DFU` label available on some Notecarriers.

   ![jumper wire bridging boot and vio pins](https://dev.blues.io/images/firmware/starnote-dfu-2.jpg?v=3ff73fa1)

3. Connect your Notecarrier to your computer using a USB cable. **NOTE:** You must have the jumper wire connected from `BOOT` to `VIO` **BEFORE** you connect your Notecarrier!

   ![notecarrier xs connected to computer](https://dev.blues.io/images/firmware/starnote-dfu-3.jpg?v=bc9d85d7)

4. Remove the jumper wire between `VIO` and `BOOT`.

   ![notecarrier xs without jumper wire connected](https://dev.blues.io/images/firmware/starnote-dfu-4.jpg?v=8143c024)

5. At this point, your Starnote should be in DFU mode. To verify, open a terminal and run the following command.

   ```bash
   STM32_Programmer_CLI --list usb
   ```

   If all went well, STM32CubeProgrammer should detect and list a single device in DFU mode.

   ```bash
   -------------------------------------------------------------------
                       STM32CubeProgrammer v2.20.0                  
     -------------------------------------------------------------------
   =====  DFU Interface   =====
   Total number of available STM32 device in DFU mode: 1
    Device Index           : USB1
    USB Bus Number         : 001
    USB Address Number     : 004
    Product ID             : STM32  BOOTLOADER
    Serial number          : 208F35A85830
    Firmware version       : 0x011a
    Device ID              : 0x0435
   ```

## Flashing a New Starnote Firmware Binary

With your Starnote in DFU mode, you can now flash a new binary to update its firmware.

1. Download the appropriate Starnote for Skylo firmware binary from the list of [firmware releases](https://dev.blues.io/starnote/starnote-firmware-releases.md#firmware-releases).

2. From your terminal, use the command shown below to flash the binary to your device. Make sure to:

   1. Replace the listed `port` with the "Device Index" returned from your `STM32_Programmer_CLI --list usb` command, if necessary.

   2. Update the path to the binary to the correct location on your computer.

   ```bash
   STM32_Programmer_CLI --connect port=USB1 --write '/path/to/starnote.bin' 0x08000000 --verify --go
   ```

3. The update process may take a minute or so to complete. If all goes well, you will see a "Start operation achieved successfully" message.

   ```bash
   ...
   RUNNING Program ... 
     Address:      : 0x8000000
   Start operation achieved successfully
   ```

## Verifying Success of a Starnote Firmware Update

As a final step, you can verify that the update completed successfully by checking the Starnote's firmware version from a serial terminal.

1. With your Starnote still connected to your computer via USB, open a serial terminal application (e.g. CoolTerm or Tera Term).

   > **Note:**
   >
   > If you're new to serial terminal applications, see one of the following guides: [CoolTerm](https://discuss.blues.com/t/how-do-i-configure-coolterm-to-communicate-with-notecard/151) (all platforms), [Tera Term](https://discuss.blues.com/t/how-do-i-configure-tera-term-to-communicate-with-notecard/150) (Windows only).

2. Configure your serial terminal application to perform a UART connection with a baud rate of 115200, 8 bit data, no parity, and a 1-bit stop bit: `115200 8N1`.

3. Connect to your Starnote and issue a `{"req":"card.version"}` request. If the update completed successfully you'll see the updated firmware `version` somewhere in the JSON response.

   ```json
   "version":"starnote-s-11.3.1.17696"
   ```

If you have any trouble with the Starnote firmware update process, please reach out to us via the [Blues Developer Forum](https://discuss.blues.com/).

## Additional Resources

- [Starnote Firmware Releases](https://dev.blues.io/starnote/starnote-firmware-releases.md)
- [Updating Notecard Firmware](https://dev.blues.io/notecard/notecard-walkthrough/updating-notecard-firmware.md)
- [Satellite Best Practices](https://dev.blues.io/starnote/satellite-best-practices.md)
