Spresense Header CodeSpresense Header Code

Edge computing with low power consumption

The Spresense development board enables edge solutions with high computing ability and low power consumption.

Spresense Hardware Documents

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.

2. Chipset

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

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

4. How-to Guides

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




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







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

4.4. CXD5602 I/O current

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

4.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 SPI from the Arduino environment.

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

If the UART of the main board is used as GPIO when the extension board UART is activated, only D27 and D28 (UART2_RTS and UART2_CTS) are available on the main board.

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.

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

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

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

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

4.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. :toc: left :toclevels: 3 :sectnums: 3 :SPRESENSE_CHIP: CXD5602 :ACAPULCO_CHIP: CXD5247

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

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

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

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







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





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







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

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

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

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









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