Developer World Spresense
日本語 中文
Table of Contents

1. HW design files

HW design files for the Spresense boards are found on Spresense HW Design Files repo. There are schematics, Bill of Materials (BOM) and design guidelines to help you design your own boards using Sony CXD5602 chip and add-on boards to the Spresense main board.

Please right-click on below each link to download CAD data.

2. Chipset

The datasheets for the chipset are available from Sony Semiconductor Solutions Corporation website.

3. How-to Guides

3.1. Using mini-spacers with the main board

When the Spresense main board is used alone without the extension board, it can be convenient to install mini-spacers in the 4 corners of the main board.
The mini-spacers are fixed with screws. The mini-spacers and screws must be non metallic. The screw diameter is 2mm, and the screw length is 3mm.
They are not included in the product package of the Spresense main board, so they have to be purchased separately.

Using metal mini-spacers and screws will have big negative effect on the reception performance of the GNSS. Make sure you use non metallic parts.
Table 1. Suggested mini-spacer and screw type:
Vendor Mini-spacer Screw




3.2. Setting the operating voltage of the GPIO pin sockets on the extension board

The operating voltage on pin socket JP2 and JP13 of the extension board can be set to 5V or 3.3V by changing the position of the jumper on JP1.
The extension board operating voltage is set to 5V when shipped.

HW voltage level in extension E
Figure 1. Jumper settings on the extension board to select 5V or 3.3V operating voltage.
  • Changing the jumper on JP1 while the board is powered on might destroy the Spresense main and extension board. Make sure the board is completely powered off before you change the jumper setting.

  • Please set the voltage to match the operation voltage of the boards you are connecting to the extension board such as Arduino shields. Setting the wrong voltage might destroy the Spresense and connected boards.

Table 2. The following pins will have the same voltage level as the set operating voltage:
Socket Pin Name







3.3. How to use reset function

Spresense can reset the system in the following way.

  • Press SW2 on the main board.

  • UART connection (DTR signal trigger) by serial monitor etc.

  • Reduce the signal level of JP3’s 3rd pin of the extension board to Low (see details below)

When a system reset is applied, from the CXD5247 of the LSI that manages the power supply and each power supply LSI Since power supply stops for a moment, caution is required when connecting an external circuit to an extension board or Add-on board.

Resetting pin No.3 of JP3 on the extension board can be used as bidirectional. That is

  • Input the signal to reset the system from the extension board.

  • Reset the system connected outside the extension board.

Although it can be used as any of the above, please connect the recommended circuit shown below as an external circuit. However, as a user device to be connected, a microprocessor LSI We assume high impedance devices such as.

HW reset en

Also, the reset signal (XRST_PIN_1.8V) on pin No.1 of JP2 on the main board outputs the system reset status. It is Low when the system reset is applied, and in other states It outputs High (1.8V). By using this signal, it is possible to reset the Add-on board etc at the same timing as the sensing processor CXD5602.

3.4. CXD5602 I/O current

CXD5602 is a very low power processor. Typical I/O current values are limited to around 6mA.

3.5. How to use the I2C

Both Spresense main board and extension board have I2C terminals. The interface voltage is 1.8V on the main board, and 5V or 3.3V on the extension board.

How to set the interface voltage on the extension board is described in this chapter.

The main board and extension board use the same system for I2C. They can be connected to several I2C slave devices at the same time if the slave devices have different slave addresses.

Table 3. I2C on Spresense:
Board Voltage Max clock speed Pull up Comment





Additional bus exposed on the B2B connector


5V or 3.3V



Voltage selectable via jumper

Read Spresense Hardware Documents for more details.

Refer the Wire Library for more information on how to use the I2C from the Arduino environment.

3.6. How to use the UART

The Spresense main board and extension board have UART terminals.

It is not possible to use the UART on both the main board and the extension board at the same time.

The extension board is configured to have the UART enabled when it is shipped. To use the UART pins on the main board when attached to the extension board, a 2.54mm pitch jumper have to be connected to pin 1 and 2 on JP10 of the extension board to disable the extension board UART. No jumper is supplied with the Spresense boards so this has to be purchased separately.

When the extension board UART is activated, the UART pins (D00, D01, D27 and D28) of the main board cannot be used as GPIO.

Table 4. UART on Spresense:
Board Voltage Max transmission rate Comment




Flow control available on pin socket and B2B connector.


5V or 3.3V


Can be disabled via jumper. Initial setting when shipped: On.

The B2B connector has all the UART related signals (including handshake signals UART2_CTS and UART2_RTS) that can be used on custom boards. Refer to Spresense Hardware Documents for details.

3.7. How to use the SPI

Both the Spresense main board and the extension board have SPI terminals. SPI can only be used in master mode on both boards.

You can use both SPI functions on main board and extension board at the same time because the boards do not share the same bus.

Table 5. SPI on Spresense:
Board Voltage Mode Max speed Comment



Master only


SPI5 + SPI2 (on the B2B connector).


5V or 3.3V

Master only



Read the SPI Library documentation for more information on how to use the SPI from the Arduino environment.

The max speed stated in the table above is the rated speed for the CXD5602. When used together with the voltage level shifters on the extension board the max speed drops to around 20MHz. This speed is also influenced of the environment.

3.8. How to use the PWM

Table 6. PWM on Spresense:
Board Voltage Resolution Max frequency Comment





PWM0, PWM1, PWM2 and PWM3 but only available through B2B connector.


5V or 3.3V



PWM0, PWM1, PWM2 and PWM3

Read Spresense Hardware Documents for details about the PWM on the main board B2B connector.

3.9. How to use the SDIO

The CXD5602 has a 1.8V 4-bit (or 1-bit) SD mode interface compliant with the SDIO standard, and Spresense can use the microSD card by converting the voltage to 3.3V using a level shifter on the extension board .

The maximum data transfer rate for Spresense’s SDIO is 21 MB/s.

3.10. Attention when using digital signals (UART/SPI/PWM /GPIO) on extension board

It is possible to change voltage and direction of a signal for a digital pin input and output automatically on the extension board by connecting a circuit with the following characteristics.

HW LVS1 en
Figure 2. The level shifter used on the extension board.

The pins of this voltage level transfer device at socket side is always pull to 5V or 3.3V by 1kΩ resistor.

If a circuit with low impedance is connected to the pin socket, CXD5602 will not be able to detect the threshold voltage which will result in incorrect detection of the logic value.

In this case, it is recommended to insert a one-way buffer, as shown in the diagram, for the signal where the input/output direction does not change between the pin socket.

HW LVS2 en
Figure 3. One way buffer connected between the extension board and user circuit

3.11. Powering the main board with external power

The maximum current that can be drained from the Spresense main board micro USB connector is 500mA. This is true also when both the main board and extension board are mounted and have separate USB power connected. The 500mA current that is sourced by the main board will be shared with the Add-on board too.

In case that the 500mA current from the micro USB connector is not sufficient it is possible to supply more power using the battery terminal CN1 on the main board. The CN1 battery connector’s recommended operating voltage is 3.6 to 4.4V with an absolute maximum voltage of 7V. Using the CN1 battery connector the sourced current from EXT_VDD (JP2 pin number 3) to an Add-on board can be increased.

See the table below for recommended battery connector that will fit CN1.

It is necessary to solder on the main board to mount a battery connector on CN1.

Modifying the Spresense boards will void the warranty. Please do it at your own risk.
Table 7. List of battery connector that will fit on CN1 of the main board:
Vendor Type Comment

Japan Crimp Terminal Mfg. Co., Ltd.


PH male connector


PH female connector

HW power supply en
Figure 4. Powering the main board from the battery connector CN1.

Powering the main board via the CN1 battery connector will boot the Spresense system even if the micro USB is not connected.

Even if power is supplied from PH connector (CN1) on the main board, you can supply power from the microUSB connector on the main board and extension board. The lower limit of the voltage output of the EXT_VDD pin is about 4V.

3.12. How to use microphones

The Spresense extension board can be connected to maximum 4 analog or 8 digital microphones via JP10’s 2.54mm pitch header.

The Spresense extension board is set to analog microphone mode when shipped.

To use digital microphones, the extension board needs to be configured by soldering. This configuration requires soldering of very small components and should only be attempted by people with appropriate skills and equipment.

Modifying the Spresense boards will void the warranty. Please do it at your own risk.

3.12.1. Placement of the microphone channel

The image below in this section will show where the microphone pin header (JP10 in the schematic) is located on the extension board.

In this image, the groups of A,B,C and D are analog microphone channels, and the groups of D01, D23, D45 and D67 with same color are digital microphone channels.

You can select microphone mode by configuring the software for each channel.

HW Mic placement E
Figure 5. JP10, 2.54mm pitch microphone pin header to the left and pin description to the right.

3.12.2. How to change microphone mode from analog to digital

It is necessary to make modifications to the hardware to change the microphone mode from analog to digital.

Steps to change from analog to digital microphone mode:
  • Remove R50 and mount 0 Ω to R49 (or short with a jumper wire etc).

  • To enable digital a microphone channel pair, an upper and a lower pad pair on JP14 have to be shorted. Jumper wire can be soldered to connect the pads or just solder the pads together.

The best way to change microphone mode is to use 1.27mm pitch short jumpers as stated below.

  • 1.27mm pitch 8pin headers (surface mount type) can be mounted on the solder pads on JP14.

This enables to select the digital microphone mode by using a jumper.

Table 8. List of 1.27mm pitch pin header models and short jumpers that can be mounted on JP14:
Vendor Pin header Short jumper











HW Mic mode Switch
Figure 6. JP14 1.27mm pitch jumper pads.

3.12.3. How to connect analog microphones Dynamic microphones

The microphone interface provides 4 analog microphone inputs, MICA, MICB, MICC and MICD. These terminals are AC-coupled by capacitors. It is important to use the GND on JP10 for the lowest noise operation. Electret Microphones

2 wire electret condenser based microphones need to be biased with a 2.0V bias voltage on the input lines. To activate the bias voltage on the input line it is necessary to mount load resistors (RL) (size 1005 metric or 0402 imperial) on the extension board.

The table below will show what resistor that will activate the bias voltage for each channel on JP10.

The load resistor value is recommended for each microphone, please check the data sheet of the microphone used. The output impedance of the microphone is almost the value of the load resistor.

Table 9. Microphone channels and bias resistors:
Microphone channel Resistor ref to mount





HW MICBIAS mapping
Figure 7. JP10 microphone pin header and location of bias resistors.

The following is an example of an electret microphone that can be used. The recommended microphone load resistor for the following microphones is 2.2kΩ.

Table 10. Example of an electret microphone that can be used:
Vendor Model






EM-6022P Analog MEMS Microphones

For analog MEMS microphones the bias pins on JP10 provide power to the MEMS microphone, connect the bias pin of JP10 to the MEMS microphones power supply pin.

Table 11. Examples of analog MEMS microphone that can be used:
Vendor Model





3.12.4. How to connect digital microphones

The following way is the recommended way of connecting digital microphones to the extension board. Two digital silicon MEMS microphones can be connected using 4 pins on the JP10 pin header per microphone pair.

It is necessary to select what side each microphone in a pair is, this is done by setting the left/right select signal (LR_SEL) to LOW on one microphone and to HIGH on the other microphone. Each microphone has to connect four more pins, DMIC for data, DCLK for clock, GND to ground and VDD to 1.8V power supply.

It is possible to use the 1.8V from the MIC_BIAS pin on the extension board terminals of the A and B channel (C and D channel MIC_BIAS cannot be used).

HW Mic digital E
Figure 8. Recommended way of connecting digital microphones to the Spresense extension board.
Table 12. Examples of digital silicon MEMS microphones:
Vendor Model







3.13. How to use speakers

CXD5247 on Spresense main board has an on-chip Class-D stereo amplifier that can drive a stereo pair of speakers.
This section will describe how to configure the Spresense boards to enable the speaker output when using the main board together with the extension board. The Class-D stereo amplifier can produce up to 400mW into 8Ω impedance speakers.

Speakers with main board alone

It is not possible to use speakers directly with the main board without using an external voltage source and an external circuit with similar function as the audio circuit on the extension board.
It is necessary to supply low noise 3.3V from an external source to Pin 1 and Pin 3 on the board to board connector (CN4 on the main board) to power the Class-D amplifier. Supply current must be sufficient to drive the attached speakers

Speakers with main board and extension board

The extension board has a 3.3V power supply designed to supply the Class-D amplifier. The default configuration of the main board is to output audio to the headphone jack on the extension board.
To use speakers it is necessary to replace small chip components on the main board and attach speaker cords to the extension board.
This modification requires soldering of very small components and should only be attempted by people with appropriate skills and equipment.

Modifying the Spresense boards will void the warranty. Please do it at your own risk.

3.13.1. Main board modifications to support speakers

The modifications are needed to filter the output from the Class-D amplifier of the CXD5247 when used to drive speakers.
Replace the following components:

  • R15, 16, 17, 18 → 15uH/220mA(2012) [orange frame in the picture below]
       replace to inductors.
       recommend to use BRL2012T150M made by Taiyo Yuden.

  • C45, 46, 47, 48 → 0.47uF(1005) [green frame in the picture below]

HW Speaker Main E
Figure 9. Components to replace to support speaker output
Do not use the headphones with the extension board after doing this modification.

3.13.2. Extension board modifications to support speakers

Mount 2.54mm pitch pin header on JP8 and JP9 to connect speakers (or solder speaker cords directly to the board).

The Spresense board is designed to drive speakers differentially. The left and right speaker negative connections should not be connected together.
HW Speaker Ext
Figure 10. JP8 and JP9, speaker output connectors on the Spresense extension board.

3.14. How to use JTAG Debugger

You can use a JTAG/SWD debugger for Cortex-M series ARM microcontrollers by using the CoreSight 10 connector on the Spresense extension board. Interface voltage is 3.3V.

The Spresense CoreSight 10 connector is intended for serial wire debug (SWD) only. It does not support JTAG, because the SWD pin (can be called TDO/SWO), which is used also for JTAG TDO, is not connected on the extension board.

The extension board comes with a CoreSight 10 footprint but with no pin header mounted. To mount a pin header it is necessary to solder the pin header onto the board. This modification requires soldering of small components and should only be attempted by people with appropriate skills and equipment.

Modifying the Spresense boards will void the warranty. Please do it at your own risk.

To use the SWD function, you have to mount a connector (1.27mm pitch 10 pin header) for CoreSight 10 at CN1 on the Spresense extension board.

The connector hole on the position of KEY on the cable side of the CoreSight 10 connector can be blocked. So it is recommended to remove the pin on position KEY from the pin header before it is soldered onto the extension board. See picture below.

Figure 11. CoreSight 10 on CN1 on the extension board. Note the position of the pin named KEY.
Table 13. A few pin header models that can be used for CoreSight 10:
Vendor Pin Header









3.15. How to use the external antenna for GNSS

The Spresense is equipped with a chip antenna for GNSS on the main board, enabling positional measurement to be possible with no external components.

If you connect an external antenna to the uFL connector, higher-performance positional measurement is possible. To do this you have to solder a uFL connector on the main board. This modification requires soldering of very small components and should only be attempted by people with appropriate skills and equipment.

Modifying the Spresense hardware by performing soldering work as described here will void the product warranty. Please proceed at your own risk.

The following steps will describe the necessary work needed to fit an uFL connector to be able to use an external GNSS antenna.

  • Mount the uFL connector on CN3, see the picture below.

HW gnss cn3
Figure 12. CN3 on the main board
Table 14. A suitable model of uFL connector:
Vendor Model

Hirose Electric


  • Depending on the type of the antenna you plan to use, the resistor chips have to be changed on the main board as shown in the table below.

In the table below, "OPEN" stands for the status that a part is not mounted in the applicable location, and "CLOSE" stands for the status that it is short-circuited with 0 Ω resister or a wire.

Table 15. Antenna resistor configuration table:
Antenna R29 R31 R33 R30 R32 Note

chip (on board)







passive (external)






active (external)






3.3V supplied to antenna

HW gnss setting

4. Differences between Spresense and Arduino Uno

The pin header on the Spresense extension board is compatible with Arduino Uno pins. Spresense and Arduino Uno are the same size. The following table lists the functional differences:

Function Spresense Arduino Uno

Supply voltage on header

VOUT pin: 5V can be connected to the pin to power the boards

VIN pin: 7 to 12V.

Digital IO Voltage

3.3V or 5V.

Fixed 5V only.

GPIO As output

Extension board uses level shifters with 1KΩ pull-up resistors on all GPIO. Pull-ups are not compatible with some existing shield designs. GPIO pin’s typical sink current is several mA at 5V IO voltage. [1]

Directly driven from the ATmega328 MPU and can deliver up to 40mA per pin.

GPIO As input

Extension board uses level shifters with 1KΩ pull-up resistors on all GPIO. Pull-up resistors are not compatible with all shield designs. [1]

The ATmega328 MPU has a high-input impedance.

Analog pins A0-A5 as GPIO

Can only be used as analog in.

Can be used as analog in pins or as GPIO.

Analog pins A0-A5 impedance

A0 to A3 72k Ohms, A4 and A5 37k Ohms

100M Ohm

Analog pins A0-A5 reference voltage

Fixed 5V ADC reference. [2]

Settable sources as ADC reference.

VREF pin

Output digital I/O voltage reference.

Input reference for ADC.

USB ports

Two ports: main board (Serial monitor) and extension board (Mass Storage).


Serial communication

Main board USB is addressed as UART serial.

UART shared with DO0 DO1 addressed as serial.

SPI pin

Master mode only.

Master/Slave both mode supported.

DO0 DO1 serial communication

UART2 addressed as serial2.

UART shared with USB addressed as serial.

[1] Digital Input/Output Pins: 1.8 V of CXD5602 is converted to 3.3 V or 5 V via the level shifter on the expansion board. It is connected to the pin socket via a pull-up resistor, which may cause problems depending on the shield and device connected.
[2] Analog Input Pins: Since the analog input range of CXD5602 is 0.7 V, resistance voltage division is adopted to lower the voltage from 5 V to 0.7 V. Since this method may cause problems depending on the connected device, when using the AIN terminal on the expansion board, pay attention to the output impedance of the connected device.

5. Spresense Hardware comparison

To better introduce Spresense board’s features, it is compared with Arduino Uno and Raspberry PI (model 3B), which are known to many developers.

5.1. Processor and OS


Arduino Uno


Raspberry Pi 3B

Processor type








Number of cores




Clock speed

16 MHz

156 MHz

1.2 GHz

Operating system




Boot time


<1 second

~20 Seconds

Spresense has a processor that is far more powerful than Arduino. This allows it to be used for applications which are computationally intensive, but it does not match the performance of the Raspberry Pi.

The Spresense has the advantage of an operating system while still having a typical boot time of under 1 second.

5.2. Memory


Arduino Uno


Raspberry Pi 3B



1.5 MB




8 MB


SD Card


On-Board, optional

On-Board, essential







Use Flash

Use microSD card

Arduino has a small memory size, which is a limiting factor for complex programs. Even the Arduino Mega only has 256k flash and 8k SRAM. The Raspberry Pi has much larger memory, but relies on having a microSD card instead of on board Flash.

Spresense fits between these two extremes. It has the advantage of 8MB on board Flash memory and 1.5MB RAM. It also has support for microSD card, without the need for a shield, when larger memory is required.

Spresense doesn’t have EEPROM, but EEPROM library emulates EEPROM using flash memory. If you want to handle persistent data, you can use the EEPROM library or the microSD card on the extension board.

5.3. Power


Arduino Uno


Raspberry Pi 3B


5V or 6-20V

5V or LiPo(3.7V)


Typical Operating Power

50 mW

100mW + low power modes


The CXD5602 and the CXD5247 were designed for use in wearable products powered by a single LiPo battery. The battery charge function is not available on the Spresense boards. Spresense main and extension boards are designed to be powered from 5V, for example directly from a USB port.

Spresense has been optimized to provide a high processing capability while consuming little power. It supports multiple low power modes allowing long battery life from smaller batteries than Raspberry Pi, which make it great for battery or renewable powered IoT applications.

5.4. Audio


Arduino Uno


Raspberry Pi 3B







up to 8 microphone






The CXD5602 and the CXD5247 have been designed as a chipset to support high quality audio recording and playback. The CXD5247 includes a high quality ADC for up to 4 analog inputs or up to 8 digital microphone. The CXD5602 includes a dedicated DSP for Audio processing and stereo audio output.

5.5. GNSS and Real Time clock


Arduino Uno


Raspberry Pi 3B









The Spresense has an ultra low power GNSS receiver. This allows precise positioning for applications such as tracking devices and drones. It also includes a real time clock which is great for data logging. Arduino and Raspberry Pi need shields to implement these functions.

5.6. Digital IO


Arduino Uno


Raspberry Pi 3B

IO Pins


29 + 4 LED


IO voltage










1 (3.3/5V) +1 (1.8V)




1 (3.3/5V) +1 (1.8V/camera)






The Spresense has a wide range of digital IO pins and hardware UART, I2C, SPI and PWM channels. It supports IO voltages of 5V, 3.3V and 1.8V which make it easy to connect to many devices. It has 4 on board LEDs instead of using available GPIO pins for LEDs. Spresense provides even more IO capability for custom shields with the 100 B2B connector.

5.7. Analog to digital converter


Arduino Uno


Raspberry Pi 3B









Fastest rate

~10 kHz

500 kSPS


Spresense, like Arduino, has 6 analog input channels, but unlike Arduino these are dedicated pins which do not reduce the usable number of digital IO. Two of the Spresense analog channels are high speed with anti-aliasing. This is in addition to 4 microphone ADCs on the CXD5247.

5.8. Connectivity


Arduino Uno


Raspberry Pi 3B


1 device

2 device

4 host



5M Pixel

8M Pixel

Video display


SPI up to 360x240 Pixel









4.1 Classic, Low Energy









Spresense like Raspberry Pi is designed with direct connection to camera. It can support HD resolution, still images and low resolution video for a viewfinder. Like Arduino, any wireless communication requires a shield.