The main board uses a processor developed by Sony for IoT and sensing applications.
The main board can be operated alone or with the extension board.
The Spresense uses Sony’s new chipset on the main board:
The CXD5602 System on Chip (SoC) multi core processor with GNSS
The CXD5247 power management and audio analog interface chip
The Spresense extension board is a board which extends the interfaces compared to the Spresense main board.
The Spresense main board and the Spresense extension board are connected by a Board-to-Board (B-2-B) connector.
The Spresense extension board has Arduino Uno pin compatible shape and pin socket locations.
However, there are some differences compared to the Arduino Uno.
For details, please refer the Differences between Spresense and Arduino Uno.
The Spresense extension board has the following connectors in addition to Arduino Uno compatible pin sockets.
3.5 mm headphone jack
Micro SD card
An extra USB port
Multiple microphone pins
Figure 4. Spresense extension board
The extension boards configuration is set by jumpers.
Table 2. Extension Board Connectors and Jumpers
B-2-B connector 100 pins connector for the main board.
Micro SD card.
Micro USB Type-B connector.
It can provide USB MSC (Mass Storage Class) function allowing access
to the SD card on the extension board directly from the PC.
Headphone 3-pole 3.5mm jack.
GPIO voltage can be set to 5V or 3.3V by using a jumper on JP1.
A standard 2.54mm pitch jumper should be used. This one will be supplied with the extension board.
JP10 - pins 3 to 16
These pins connect analog or digital microphone.
Please refer How to use microphones for details.
JP10 - pins 1 and 2
You can disable UART2 on the extension board by closing pin 1 and 2 on JP10.
This allows UART2 on the main board to be used at 1.8V I/O.
No jumper is shipped with the extension board, a 2.54 mm pitch jumper should be used.
The Spresense camera board has the Sony ISX012 image sensor mounted together with a lens.
The Sony ISX012 has an effective pixel count of 5.11M pixels and an onboard encoder that can aquire pictures in JPEG, RAW, Y/C or RGB format.
Figure 6. Spresense camera board with the ISX012 camera module.
Table 3. Sony ISX012 image sensor specification:
1/4 type CMOS image sensor
Exposure control mode
Auto, Shutter proprity, ISO sensitivity priority, Long time AE
2.3.1. How to fit a shading seal on the main board
A shading seal is provided with the kit and should be mounted on IC4 in Spresense main board before it is used.
The location of where to fit the seal is shown in the picture.
Malfunction might occur if the board is placed under direct
or in the proximity of a strong light source, e.g. sunlight or a bright lamp if no shading seal is mounted.
Figure 7. Shading seal position.
Figure 8. Shading seal.
Table 5. The recommended shading seal details are if you loose the provided one:
2.3.2. How to attach the Spresense extension board and the Spresense main board
This section explains how to install the Spresense extension board and the Spresense main board.
The package of the Spresense board has 4 spacers to attach the Spresense main board.
Figure 9. Spresense spacers.
These spacers are put in to the through-holes on the Spresense extension board.
Please note the positions of the through-holes.
Figure 10. The positions of the through-holes for the spacers.
After putting in the spacers on the Spresense extension board, attach the Spresense main board.
Figure 11. Exploded view of the Spresense extension board, spacers and the Spresense main board.
Figure 12. The direction of the Spresense extension board and the Spresense main board.
The USB connectors face the same direction.
On this picture the Spresense main board and the Spresense extension board have been mounted.
Figure 13. The Spresense main board attached to the Spresense extension board.
Please confirm the mating of the B-2-B connector by pressing the Spresense main board and Spresense expansion board from the top and bottom again after completing the installation etc.
Please note that the function on the Spresense expansion board such as the micro SD card and the audio function may not work if the mating is incomplete.
Do not separate the Spresense main board from the extension board by force once mounted.
2.3.3. How to connect and prepare the Spresense main board and Spresense camera board
This section explains how to attach the Spresense camera board to the Spresense main board.
Since the camera module is very sensitive to static electricity it is advised to discharge any static electricity from the body before handling the camera module.
This can be done by touching a grounded part, like a grounded computer chassis.
Static electricity can cause the camera module to malfunction.
The camera module is connected to the main board (CN5) via a flat cable.
The picture below shows how the flat cable is supposed to be mounted.
The flat cable can only be inserted in one way to work so it is important to take note on which side it should be connected on.
Figure 14. How to connect the Spresense camera board.
The lens of this camera is covered with a small translucent blue plastic film. This is for protection, please remove it before use.
Please be gentle when removing the protecting plastic film.
2.3.4. About the flat cable on the Spresense camera board side
The flat cable connector on both the camera board and main board is rather fragile it is advised not to insert/remove the cable more than necessary.
Please follow the instructions below when inserting/removing the flat cable.
When pulling out the flat cable:
A. Apply a uniform force to both sides of the lever of the connector, slide the lever slowly and horizontally and pull it out horizontally.
B. Pull out the flat cable.
When inserting the flat cable
C. Insert the flat cable firmly into the connector. The electrode side of the flat cable should be facing away from the PCB. See image below.
D. Apply a uniform force to both sides of the lever of the connector and slide the lever slowly horizontally and push it in parallel with the board.
Figure 15. How to insert or remove a flat cable on the Spresense camera board side.
Please operate the lever of the connector of the camera board slowly and carefully.
If you apply uneven force to sides of the lever or move it in an other than horizontal direction with respect to the board you might damage the lever.
Also, the flat cable that can be used as a substitute when the flat cable for the camera is damaged is shown below.
Below is list of replacement flat cables, it is advised to use a flat cable as short as possible.
Table 6. Alternative flat cable list:
2.3.5. Powering the Spresense Board
There are several ways to power the Spresense boards:
Figure 16. Spresense main board USB connector
Use the main board’s micro USB connector.
Simply connect your PC to the micro USB connector on the main board to get started.
It will power the main board alone,
or the main board and extension board as a set.
This is the preferred method for most development.
The main board USB is intended for serial port applications only.
Connect a 5V±0.25V power source to the VOUT pin on the main board.
If you are using the Spresense extension board the micro USB connector
on the extension board can be used to power the system when the two boards are being used as a set.
The Spresense can be powered by a USB battery pack.
Some USB battery packs require a minimum load current and Spresense may take less than this current,
which will cause the USB battery pack to turn off after a few seconds.
For reliable USB battery pack operation choose a battery pack that has an "always on" feature or use a USB "keep-alive load".
The above power supply can be performed simultaneously from plural.
Also, when supplying power via the micro USB connector, please use micro USB cable that is as thick and short as possible.
3. Spresense Software
Spresense provides the following two software development environments:
Spresense Arduino Library
By selecting to use the Spresense Arduino Library software development can be undertaken
relatively easily using Arduino IDE, which will be familiar to many developers.
The Spresense SDK is Sony’s original development environment for the CXD5602 chipset.
It based on NuttX and uses GNU Make.
This system provides a low level API, allowing users to maximising the performance of a Spresense based system,
such as optimizing memory use, power saving,
control of multicore processing, etc.
The features and structure of these two development environments are explained in the coming sections.
3.1. Development environment using the Spresense Arduino Library
The Spresense Arduino Library is a software library for developing application software
for Spresense using the
It is compatible with the
Arduino programming language
and you can use many existing Arduino sketches.
If you have experience of developing software with the Arduino IDE,
you can easily begin Spresense software development.
This library not only provides an Arduino compatible development environment,
but also provides access Spresense unique features such as GPS positioning
function and high resolution audio functions.
Using these advanced features is possible in the Arduino IDE.
For those who would like to develop software using Spresense Arduino Library,
please refer to following chapters.
The Spresense Arduino Library is an extension wrapper library designed to make
the Spresense SDK easy to use from the Arduino IDE.
Internally the Arduino’s sketch works as a tasks running on
the NuttX real time operating system,
but when Spresense software development is undertaken using the Arduino IDE,
the developer is able to program without being conscious of the Spresense SDK or
the NuttX operating system.
In addition it includes libraries equivalent to
such as SPI and Software Serial.
Although the Spresense Arduino Library is largely compatible with
the Arduino programming language there are some differences because of hardware
features and constraints.
For details, see the Functional Differences
described in Spresense Arduino Library Developer Guide.
The Spresense Arduino Library also offers the following libraries not found in Arduino the standard Library:
Table 7. Spresense Arduino Library specific library
3.2. Development environment using the Spresense SDK
The Spresense SDK is a development environment that
allows full access to Spresense’s unique functions.
It is based on the NuttX real-time operating systems.
It provides low-level APIs to maximize the performance of Spresense,
such as memory optimization, power saving, and control of multi-core processing.
If you are an experienced programmer and are interested in multicore programming,
power saving, effective utilization of memory,
please consider using the Spresense SDK.
If you would like to try developing software immediately using the Spresense SDK,
please refer to following chapters.
The Spresense SDK is designed to maximize access to the features of CXD5602
using NuttX as the operating system.
Figure 18. SDK overview
It consists of a series of drivers,
implemented according to the NuttX driver framework,
and middleware that provides services to software applications beyond
those available from the operating system.
3.2.2. Features of the Spresense SDK
The features of the Spresense SDK are as follows.
Since it adopts NuttX as the operating system, it has the following features.
Optimization of configuration using Kconfig
Support of standard C library
C ++ language support
Support for various file systems
Support for various device drivers
Flash memory support
USB function (MSC and CDC) support
In addition to this, various specialist functions of CXD5602 are supported by middleware.
Audio recording playback function
Asymmetric multicore programming library
GPS positioning function
Power save function
In addition to this, almost all features of CXD5602,
such as DMA controller driver, can be used within the Spresense SDK.
The usage of API is demonstrated in a range of examples.
Spresense is an open source project where the related source code is stored on
We highly welcome contributions from you and appreciate your help and time to
make the source code better for everyone!
Each repository has contribution guidelines on how you can contribute to the project.
Please read them when you are ready to make your first contribution.
This chapter provides an overview of how the Spresense repositories are
organized if you require to work directly with them.