Developer World Spresense
日本語 中文
Table of Contents

General

What is Spresense?

A single-board development kit equipped with Sony chipsets CXD5602 & CXD5247 microcomputer for IoT application. It features Global Navigation Satellite Systems (GNSS), high resolution audio playback and recording, and six low power consumption application processor cores.

How can I use Spresense?

By combining different communication modules and/or sensor modules, you can create IoT system prototypes. As the board contains a low power consumption high performance capable chipset, you can prototype high performance IoT system for mobile applications.

How do I supply power to Spresense?

Please use the micro USB port on the main board to supply 5V power into Spresense. Please refer to Spresense Hardware for more details.

What are the supported development tools for Spresense?

Arduino IDE, Visual Studio Code and a development environment in the console. Please refer to Spresense Software for more information.

What is the development language for programming Spresense?

C ++ language and C language are supported.

What OS is used in Spresense?

NuttX Real-Time Operating System is adopted. If you are using the Arduino IDE for development, you do not need to be aware of the underlying OS.

Is it possible to run Linux on Spresense?

It is not possible to run Linux. NuttX has features familiar to Linux users.

Is there connectivity functionality on Spresense?

Connectivity options are not present by default. By using the Spresense Add-on board or Arduino shield, you can add connectivity capabilities. Please check the Extension Options section on Spresense Developer World website for information and where to buy.

What sensors are available for Spresense?

Spresense main board comes with a GNSS sensor and support for 8 microphone inputs making it possible to create an acoustic sensor. With the use of Spresense Add-on board or Arduino shield, other sensors can be connected.

Can I connect a camera to Spresense?

A dedicated camera module is available.

Where can I buy Spresense?

Please check the Spresense distributors webpage.

Are there project kits for Spresense?

There are no plans for such kits from Sony. Our distributors may produce such kits. You can find their contact details from Spresense distributors webpage.

Troubleshooting

Why does the PC not recognize Spresense when connecting to the serial port?

Please check for the following:

  1. Is the cable connected to the correct USB connector?

    The cable should be connected to the USB connector on the Spresense main board. If the connection works, the LED on the main board will be lighted. There is a USB connector on both the Spresense main board and the Spresense extension board. The one on the main board is used for serial port connections.

    • Is the serial driver installed?

      Please download and install the suitable Spresense serial driver from here.

  2. Is the USB connection faulty?

    Please test the connection by plugging in and out the USB cable. If the PC does not recognize the board, use another cable.

I can’t upload Arduino IDE sketch.

Please check for the following:

  • Is the serial port connection correctly set up?

    Set up the connection by following the instructions on Spresense Arduino Library Getting Started Guide.

  • Is the board set to "Spresense" in the Arduino IDE?

    Set the board setting in Arduino IDE to "Spresense". Please refer to Spresense Arduino Library Getting Started Guide for the detailed instructions.

  • Is the serial driver installed?

    Please download and install the suitable Spresense serial driver from here. More installation information can be found in: Spresense Arduino Library Getting Started Guide

  • Have you tried resetting the board?

    If you are using an unsuitable serial driver, the upload may not start unless you press the reset button. If upload does not start, try to reset the board. To avoid this issue, re-install the appropriate driver from here.

  • Is the USB cable connection faulty?

    USB cable contact failure may cause upload to fail. Please unplug and plug in the USB cable, ensuring it is properly plugged into the USB connector on the PC and Spresense, before trying to do the upload again. Please refer to the Spresense Arduino Library Getting Started Guide for the detailed instructions.

  • Are you using the highest possible upload speed setting?

    It is possible the highest possible upload speed setting is not compatible for use with your PC. Please change to a lower baud rate and try again.

  • After starting "Install files …​", Saving package to "nuttx" message cannot be shown.

    >>> Install files ...
    install
    Install C:\Users\xxx\AppData\Local\Temp\arduino_build_849056/Blink.ino.spk
    |0%-----------------------------50%------------------------------100%|
    ######################################################################
    
    144544 bytes loaded.
    Package validation is OK.
    Saving package to "nuttx"
    sync
    Restarting the board ...
    reboot

    Some files in the flash memory may be corrupted unexpectedly. Please refer to here and execute the recovery tool.

I get a validation error in the Arduino IDE although the code is not wrong.

Please check for the following:

  • Do you have copies of .ino files in the sketch folder?

    If there is an .ino file with the same content in the sketch folder, a double definition will cause a validation error. This is most common when trying to save a file for backup. Please move the backup file to a different directory or delete it.

  • Try to compile again by pushing the verify button.

    Re-compilation must complete without problems.

  • Is the serial port connection correctly set up?

    If the serial port is not specified, a validation error may appear to have occurred. Please refer to Spresense Arduino Library Getting Started Guide for the correct serial port settings to use.

I encountered an error while installing Spresense Arduino board package.

  • If you had installed Spresense Arduino board package using manual installation method

    The error message below may appear. Please remove the Spresense Arduino board package files from the Arduino15 folder and try the installation procedure. You will not be able to install Spresense Arduino board package through Arduino IDE Boards Manager as the system may not be able to remove the installed files.

    Could not find boards.txt in <Arduino15 root path>\packages\SPRESENSE\hardware\spresense\1.0.0. Is it pre-1.5?
  • If you have been editing Spresense Arduino board package files

    You will see the following error message when the Arduino IDE is not able to remove those files. Please remove the files from the Arduino15 folder or exit edit mode for those files, and try the installation procedure.

    Could not find boards.txt in <Arduino15 root path>\packages\SPRESENSE\hardware\spresense\1.0.0. Is it pre-1.5?

Why do I see a "Welcome to nash…​" message?

If you see the message "Welcome to nash (build xxxxxxx) updater#" on the serial console with 115200 baud rate, it means the boot loader is missing.. Please re-install the boot loader as described in the Install Bootloader for Arduino IDE or Flashing bootloader for Spresense SDK.

Why do I see a "D>" message? or why cannot I upload into my board?

If you see the message "D>" on the serial console with 115200 baud rate or cannot upload your sketch, it means some files in the flash memory may be corrupted unexpectedly. Please download the recovery tool from Recovery tool download page. You can use this tool to restore the board to the factory reset state. See the README in the downloaded ZIP file for instructions to use.

All data in flash memory will be erased. After running the recovery tool, please install boot loader again as described in section Install Bootloader for Arduino IDE or Flashing bootloader for Spresense SDK.

Why are functions like the micro sd card and audio on the extension board not working as expected?

  • Is the main board and the extension board B-2-B connector properly engaged?

    It is possible that the B-2-B connector on the main and extension board is not properly engaged. If this is the case, it is necessary to pinch the main and the extension boards together with light force.

Why is Spresense SW unable to access the micro SD card?

Please check for the following:

  • Is the micro SD card formatted to FAT32?

    Spresense SW is only able to handle FAT32 file formats. Please check the micro SD card format.

  • Have you partitioned the micro SD card into multiple partitions?

    Spresense SW does not support multi-partitioned file systems. Please use a micro SD card with a single partition formatted to FAT32.

Why is Spresense unable to get GNSS location information?

Please check for the following:

  • It takes time to measure the location after turning on the power supply.

    Immediately after turning on the power supply, it takes time to complement the number of satellites required for positioning because it starts by searching for the satellites. Depending on the environment, please wait for about 1 to 3 minutes until the positioning is completed.

  • Is the Spresense board placed in a location where there is no clear line-of-sight to satellites?

    For best performance, place the board in areas where there are no or little obstructions to the sky.

  • Is a light shielding seal fitted?

    If the light shielding seal is not fitted to the predetermined place, there is a possibility of malfunction due to strong light such as sunlight. Please refer to How to fit a shading seal on the main board/HDR camera board and fit a light shielding seal to the predetermined position.

  • Can I use the audio playback and GNSS functionality at the same time?

    It is possible that getting GNSS location information may take longer when audio playback is ongoing. Also, please try to place the board in areas where there are no or little obstructions to the sky.

Why does audio file playback fail?

Please check for the following:

  • Did you install a DSP binary?

    In order to playback audio, you have to install a DSP binary. Please refer to Audio Library for available binaries and instructions.

  • Is the audio file format a supported format?

    The supported audio file formats are WAV and MP3.

  • Is the sampling rate set correctly?

    A wrong sampling rate will cause playback to fail. Please specify AS_SAMPLINGRATE_AUTO if you do not know the sampling rate. Please take a look at Spresense audio player sample sketches for reference.

I am having trouble using the recording function.

Please check for the following:

  1. Have you connected the microphone correctly?

    You can connect a wide range of analog and digital microphones. For types and the connection method of the microphone, please refer to How to use microphones.

  2. Did you install a DSP binary?

    In order to record audio, you have to install a DSP binary. Please refer to Audio Library for available binaries and instructions.

The Arduino shield attached to extension board operating at 5V I/O voltage does not work.

  • Is the micro USB cable that is used to power the board too long or too thin?

    The voltage supplied from the micro USB connector may already have dropped significantly from 5V. Please try with another type of micro USB cable.

About Spresense main board

What can I use the Spresense main board for?

Spresense main board has a positioning function and an antenna for capturing GPS satellites. You can easily make prototype GPS tracker using the on board GNSS. In addition, the pin socket is equipped with I2S, UART, SPI, I2C, AIN to add audio related LSI, communication module and sensor module, so we can prototype the IoT system relatively easily with a small size.

What is the IO voltage on the main board pin socket?

The IO voltage of the digital pin is 1.8V. The voltage range on the analog inputs is 0-0.7V.

What is the IO voltage on the extension board pin socket?

The IO voltage of the digital pin is selectable, 3.3V or 5V. The analog input pin is 0-5V.

What type of USB connector is used?

The board supports micro USB (2.0) micro B connector.

Where can I find the board reset button?

The reset button is shown in this image.

Do I need to connect a GPS antenna?

The main board has a GPS antenna installed, so it is not necessary to attach a separate antenna.

Can I use the audio function?

If you want to enjoy the audio function easily, please consider purchasing Spresense extension board which provides an analogue audio interface.

Will Sony sell an enclosure/housing for the Spresense main board?

There are no plans to sell this.

What is the power consumption of the Spresense main board?

Without any other connected parts, the power consumption when executing the Arduino GNSS sample code is approximately 20 mA at 5V which is 100mW.

About the Spresense extension board

What can I do with the Spresense extension board ?

Spresense extension board only works with Spresense main board. It is a breakout board making it easy to use the audio function, SD card and 5V/3.3V IO.

Do I need to supply power to the Spresense extension board?

It is enough to power one of the boards, main board or extension board to be able to use them both together.

What is the IO voltage on pin socket?

It is possible to use 3.3V or 5V on the JP1 pin socket. The analog input pin is fixed at 5V. Please refer to Extension board for more information.

What kind of microphone can be attached?

You can connect a wide range of analog and digital microphones. For types and the connection method of the microphone, please refer to How to use microphones.

Can I connect an Arduino Shield?

Arduino shields with a physical protrusion at the location shown in the picture will interfere with the main board. Please use shields that do not have this protrusion.

ArduinoShieldConfliction
Figure 1. Arduino shields with a physical protrusion

What is the difference compared with Arduino Uno?

What is the input/output current on the main board GPIO?

Maximum output is about 6mA and the sink current is about 6mA.

Can I output audio to speakers?

Can use the power supplied type active speaker via the headphone connector.

What can I use the extension board USB function for?

The Mass Storage Class (MSC) is supported. For example, you can access SD card and eMMC on the add-on board from the PC. It is necessary to specify explicitly which USB configuration to use when the option is presented on the PC. It is not possible to access Spresense program if you use that storage on PC and MSC. For more information please refer to the SDHCI Library.

What is the power consumption when using both Spresense main board and extension board?

The power consumption when playing an MP3 file from the SD card is approximately 60 mA at 5V which is 300mW. The example application used for this test is the audio player Arduino sketch app.

About the Spresense LTE extension board

What kind of communication system is LTE-M? What are its features?

LTE-M is a LPWAN (Low Power, Wide Area Network) wireless communication technology for IoT. This communication method is, with its low power use and low communication charges, expected to be deployed for IoT.

What kind of applications can I use it for?

By using the LTE extension board, you can create applications that upload data to a server using the high-quality LTE communication network provided by a telecommunication carrier. Unlike when using wireless technologies such as Wi-Fi and Bluetooth, the device can easily perform wireless transmissions without you having to prepare a receiver device by yourself.

How far can the communication reach?

The standard communication distance is 10 to 50 km.

The transmission rate is 375 kbps upstream and 300 kbps downstream in best-effort.

Can it be used in hot, cold, dry or humid places?

The following conditions are recommended for using the extension board:

  • Temperature 10°C to 40°C

  • Humidity 30% to 80% (no condensation)

Which SIM cards can I use?

Please check the list of confirmed SIMs:

I want to check the available service area, where can I find it?

This depends on the telecommunication carrier, so please contact your operator.

I bought a SIM card, but it doesn’t seem to work. What should I do?

After purchasing a SIM card, it needs to be registered with a telecommunication carrier. Please register it at the site of the service provider with which you have a contract. If you still cannot communicate, please contact your provider.

Can I develop LTE-M applications with the Arduino IDE?

Yes, you can develop applications in both the Arduino and SDK environments. Please refer to the LTE tutorials for more details.

How can I check my signal strength?

A sample application is provided.
You can check the status of your connection after setting the APN, username and password of the service provider you are using.

How can I check that network communication is possible?

A sample application is provided.
You can check that communication with a server is possible after setting the APN, username and password of the service provider you are using.

Is it possible to use the socket API when building communication applications with LTE-M?

Yes, you can. The SDK environment supports the BSD socket API, which is available for Linux and other platforms.

Does it support MQTT?

In the Arduino environment, support can be enabled by adding the stand-alone ArduinoMqttClient library in the IDE.
See the Arduino LTE example, LTE → LteGnssTracker.

The SDK environment supports the MQTT library (Eclipse Paho MQTT C/C++ client for Embedded platforms).
Please see the SDK source code example in the spresense/sdk/examples/lte_mqtt folder.

What cloud services can I connect to? Is there a library available?

It is possible to connect to various cloud services. As an example, sample code that connects to AWS services is provided.

Communication is unstable. What can I do to make it more stable?

There are several factors that may cause unstable communication.

  • Keep the device away from devices that emit strong radio waves that may interfere with the communication.

  • Communication may be unstable in locations with poor reception, such as inside a building or a place surrounded by metal.

  • Network connection failures could also be caused by some issue on the mobile network operator side.

  • Please contact your telecommunication carrier.

You can check the reception status by using the sample application for connection check.

Communication conditions are unstable and sometimes communication errors occur.

If the main board is powered only by the PC, a communication error may occur due to insufficient current capacity. Using a USB power supply capable of supplying a current of 1A or more may improve the problem. If you are using the USB connector on the main board as a serial console, please use the USB connector on the LTE extension board for the power supply.

Cannot start LTE communication. What should I do?

If LTE communication cannot be started, please check the following

The TLS secure communication function does not work correctly, what should I do?

If the TLS secure communication function does not work correctly, the following factors may be considered.

  • The LTE firmware version is RK_03_00_00_00_00_04121_001.

    If the LTE firmware version is RK_03_00_00_00_00_04121_001, the TLS communication API may not work. (Please refer to here )
    Please update firmware to refer to the Updater Tool on the download site.

  • The certificate has not been downloaded correctly.

    Secure communication by TLS requires the correct certificate.

    If you are accessing a public web site, please refer to How to download a root certificate for HTTPS server access to download the RootCA file.

    For services that require individual access, such as AWS, please check how to create a certificate for your service.

  • The certificate path is not set correctly.

    If the certificate path is incorrect, secure communication via TLS is not possible.

    Please make sure that you have set the path to the stored certificates correctly in the program.

Sometimes fail to send/receive SMS

If the LTE firmware version is RK_03_00_00_00_00_04121_001, the SMS function may not work correctly. (Please refer to here )
Please update firmware to refer to the Updater Tool on the download site.

When using the camera board and LTE extension board at the same time, the acquired camera image has noise.

If the camera image is acquired while LTE data is being transmitted, noise may appear on the camera image. The noise level can be decreased by shifting the timing of LTE data transmission and camera image acquisition so that they are not simultaneous.

Unable to read/write SD card

Check the connection between the main board and the LTE extension board.

The amount of communication seems to be greater than the amount of data sent. What’s going on?

Communication with a cloud server is usually done using HTTP/HTTPS or MQTT when sending data. These communication protocols add extra information to the data sent, both to and from servers. In other words, this additional information will be added to the data even if it is only a few bytes. The amount of data added varies greatly depending on the library and communication method.

About Arduino IDE

What is Arduino IDE?

It is an open source program development environment provided by Arduino. Please refer to Download the Arduino IDE for more information.

What should I do to program Spresense with Arduino IDE?

Please refer to Spresense Arduino Library Getting Started Guide for more information.

How can I use Arduino API or Arduino Library to program Spresense?

Please refer to Spresense Software for more information.

Can I do multi-core programming with Arduino IDE?

Multi-core programming functionality is available in Arduino IDE. Please refer to Spresense Arduino multi-core environment.

Can I use interrupts with Arduino IDE?

Interrupts are supported for digital pins and a timer. Please refer to Spresense Arduino Sketch App Development and note that Arduino language interrupts function behave slightly differently on Spresense and Arduino Uno.

How do I develop an application that uses the positioning function of Spresense with Arduino IDE?

Please take a look at Spresense GNSS sample sketch for more details.

How do I develop an application that uses the audio function of Spresense with Arduino IDE?

You can test the application described in Audio Library and modify it for your needs.

About the Spresense SDK

What can I do with the Spresense SDK?

The Spresense SDK is a development kit that can directly access the Spresense hardware resources. With utilizing multi-core programming, disabling the unused hardware resources and power saving mode, memory saving and power saving design become possible.

How do I set up the development environment to use Spresense SDK?

Where can I find the sample programs and details on the Spresense SDK?

Please refer to Spresense SDK Overview.

Build error has been occurred with following message

If an error occurs in build configuration

If you get an error like the following two, you may not have set up your terminal correctly.

./tools/config.py --kernel release
sh: kconfig-tweak: command not found
sh: kconfig-tweak: command not found
sh: kconfig-tweak: command not found
/bin/sh: kconfig-conf: command not found
make[1]: *** [Makefile.unix:499: do_olddefconfig] Error 127
make: *** [Makefile:308: olddefconfigkernel] Error 2
Post process failed. 512
Try 'make distcleankernel' first.
./tools/config.py --kernel release
make[1]: *** [Makefile.unix:300: include/arch] Error 1
make: *** [Makefile:308: olddefconfigkernel] Error 2
Post process failed. 512
Try 'make distcleankernel' first.

In this case, close the terminal once, and start the MSYS2 MSYS (not the MSYS2 MinGW) again, and execute the following command.

source ~/spresenseenv/setup
cd <Spresense SDK root directory>
rm -rf nuttx/include/arch
rm -rf nuttx/arch/arm/src/board

If an error occurs in arm-none-eabi-ld command

arm-none-eabi-ld: error: /tmp/spresense/sdk/nuttx uses VFP register arguments, /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/libm.a(lib_a-sf_sin.o) does not
arm-none-eabi-ld: failed to merge target specific data of file /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/libm.a(lib_a-sf_sin.o)

Please use recommended toolchain, see Development environment.

About GNSS positioning function

What is the positioning function on Spresense?

It is a low power multi-GNSS function where the receiver locks on to multiple GPS and GLONASS positioning satellites at the same time. The positioning accuracy is high compared to a GPS-only receiver due to synchronization and locking to a larger number of satellites.

How can I use the positioning function on Spresense?

There is an API for this in the Spresense Arduino Library and Spresense SDK. Please refer to Spresense Software for more information.

Does Spresense provide NMEA output?

It is possible to retrieve NMEA output. Please refer to File →Examples for SPRESENSE → GNSS → gnss_tracker for more details.

About the audio function

What types of audio file formats are supported for playback?

WAV and MP3 formats are supported.

What are the supported audio file sampling rate and resolution for playback?

You can specify 44.1kHz/24 bits, 48 kHz/24 bits, 96kHz/24 bits, 192kHz/24 bits.

How can I record audio in high resolution?

Please look at File →Examples for SPRESENSE →Audio →application → recorder to see how high resolution audio recording can be done.

Is it possible to use noise cancellation and beam forming?

There is no plan to offer noise cancellation and beam forming software.

About multi-core processor functionality

Where can I find more information to develop programs using the multi-core processor functionality?

Please refer to ASMP Framework.

Where can I find code samples to use the multi-core processor functionality?

About the battery

What kind of battery can I use on Spresense?

Please use a USB battery pack that has a low minimum requirement on the input current such as "CP-V5B","CP-V10B","CP-VC10" from Sony. The reason is some batteries may shutdown the power supply because of the low power consumption of Spresense board.

Can I use a Lipo battery?

The use of Lipo battery is not recommended.

Is it possible to charge the battery?

Battery charging function is not supported.

About the Spresense Add-on board

What is the Spresense Add-on board?

This is a compact functional board that can be mounted on the Spresense main board pin socket to expand Spresense capabilities.

Where can I purchase Spresense add-on board?

Please check the Extension Options section on Spresense Developer World website for information and links to purchase.

About the source code for Spresense

Where can I find the source code for Spresense?

The source code is available in public. Please refer to Repository overview for the details.

Where can I find the Spresense source code license?

Please look at the LICENCE files in the respective Spresense GitHub repositories.

How can I make contributions to the Spresense source code?

Please look at the CONTRIBUTING files in the respective Spresense GitHub repositories.

About the circuit diagrams for Spresense

Where can I find the circuit diagrams?

The circuit diagrams are available to the public at Hardware design materials.

Can I use the circuit diagrams?

It is available under the CC BY-SA license stipulated in Creative Commons License.

About Spresense SoC (CXD5602/CXD5247)

Can I purchase CXD5602/CXD5247?

Small volume sales through distributors are not supported. If you are interested in large commercial applications, please use the Contact inquiry form.

Where can I find the data sheets for CXD5602 & CXD5247?