The Arduino Nano R4 brings the Renesas RA4M1 from the UNO R4 family into the compact 45 × 18 mm Nano format.
It is a major architectural jump from the classic ATmega328P Nano and Nano Every while deliberately keeping a familiar 5 V hardware environment.
The Nano R4 provides:
- 48 MHz Arm Cortex-M4 with hardware floating-point support;
- 256 kB Flash;
- 32 kB SRAM;
- 8 kB non-volatile data memory;
- 8 analog inputs with up to 14-bit ADC resolution;
- a true 12-bit DAC on A0;
- an integrated operational amplifier on A1/A2/A3;
- classic CAN controller hardware on D4/D5;
- a real-time clock with VBATT backup support;
- two I²C buses, including a level-shifted 3.3 V Qwiic connector;
- native USB-C for programming, serial and HID;
- six official PWM pins;
- an onboard RGB LED and separate orange user LED.
The board is especially interesting because it combines a modern 32-bit MCU with 5 V I/O, something many newer Nano-family boards do not provide.
This guide maps the Nano R4 pins and explains the functions that matter when designing real hardware around it.
Arduino Nano R4 Specifications
| Feature | Arduino Nano R4 |
|---|---|
| Microcontroller | Renesas R7FA4M1AB3CFM / RA4M1 |
| CPU | 32-bit Arm Cortex-M4 with FPU |
| Clock speed | 48 MHz |
| Operating logic voltage | 5 V |
| Flash | 256 kB |
| SRAM | 32 kB |
| Non-volatile data memory | 8 kB EEPROM-style data storage |
| Analog inputs | 8, A0-A7 |
| ADC resolution | Up to 14 bit |
| DAC | 12-bit DAC on A0 |
| OpAmp | A1 input+, A2 input-, A3 output |
| PWM pins | D3, D5, D6, D9, D10, D11 |
| UART | Serial1 on D0/D1 plus native USB Serial |
| I²C | Two buses: Wire and Wire1 |
| SPI | D10-D13 |
| CAN | D4 TX, D5 RX; external transceiver required |
| RTC | Built in, VBATT backup supported |
| USB | Native USB-C |
| VIN | 6-21 V |
| GPIO current | 8 mA per pin |
| Dimensions | 45 × 18 mm |
Nano R4 Physical Pin Layout
With the USB-C connector at the bottom, the current Arduino pinout is arranged as follows:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Left side Right side D13 / SCK D12 / MISO 3V3 D11 / MOSI / PWM AREF D10 / SS / PWM A0 / DAC D9 / PWM A1 / OPAMP+ D8 A2 / OPAMP- D7 A3 / OPAMP OUT D6 / PWM A4 / SDA D5 / CAN RX / PWM A5 / SCL D4 / CAN TX A6 D3 / PWM A7 D2 5V GND BOOT RST GND D0 / RX VIN D1 / TX |
This remains mechanically close to the Nano family layout, but the left-side position that older Nano users may remember as an additional reset connection is now labelled BOOT on Nano R4.
RA4M1 Pin Mapping
| Arduino pin | RA4M1 pin | Main functions |
|---|---|---|
| D0 | P301 | Digital I/O, Serial1 RX |
| D1 | P302 | Digital I/O, Serial1 TX |
| D2 | P105 | Digital I/O, interrupt-capable |
| D3 | P104 | Digital I/O, PWM, interrupt-capable |
| D4 | P103 | Digital I/O, CAN TX |
| D5 | P102 | Digital I/O, PWM, CAN RX |
| D6 | P106 | Digital I/O, PWM |
| D7 | P107 | Digital I/O |
| D8 | P304 | Digital I/O, interrupt-capable |
| D9 | P303 | Digital I/O, PWM |
| D10 | P112 | Digital I/O, PWM, SPI CS |
| D11 | P109 | Digital I/O, PWM, SPI MOSI/COPI |
| D12 | P110 | Digital I/O, SPI MISO/CIPO |
| D13 | P111 | Digital I/O, SPI SCK |
| A0 | P014 | ADC, 12-bit DAC |
| A1 | P000 | ADC, OPAMP positive input |
| A2 | P001 | ADC, OPAMP negative input |
| A3 | P002 | ADC, OPAMP output |
| A4 | P101 | ADC, I²C SDA |
| A5 | P100 | ADC, I²C SCL |
| A6 | P004 | Analog input |
| A7 | P003 | Analog input |
A6 and A7 Documentation Note
Arduino’s current Nano R4 material is not completely consistent about A6 and A7.
The published pinout assigns them numerical aliases:
|
1 2 3 4 5 |
A6 = 20 A7 = 21 |
and the current Renesas variant file also includes them in the board pin table.
However, Arduino’s current Nano R4 user manual explicitly labels both:
|
1 2 3 4 5 6 |
A6 A7 → Analog input only |
For portable code, the safest approach is therefore to treat A6 and A7 as analog inputs unless you have tested digital behaviour with the exact Arduino Renesas core version used by your project.
A0-A5 are the conventional multifunction analog pins.
5 V Logic
One of the Nano R4’s most important features is that the RA4M1 runs in a 5 V I/O environment.
This makes it much easier to connect:
- older Nano accessories;
- 5 V LCD modules;
- relay boards;
- classic digital sensors;
- 74HC logic running at 5 V.
This is a major difference from boards such as Nano ESP32, Nano 33 IoT and Nano 33 BLE, which use 3.3 V logic.
GPIO Current Limit
Arduino specifies approximately:
|
1 2 3 4 |
8 mA per GPIO pin |
for Nano R4.
This is much lower than the current many users associate with older AVR boards.
Do not directly drive:
- relays;
- motors;
- solenoids;
- high-power LEDs;
- other significant loads.
Use a transistor, MOSFET or dedicated driver.
PWM Pins
The six official PWM pins are:
|
1 2 3 4 5 6 7 8 9 |
D3 D5 D6 D9 D10 D11 |
These match the familiar six positions used on several older Arduino boards.
Use:
|
1 2 3 4 |
analogWrite(9, 128); |
for normal 8-bit-style PWM.
High-Resolution PWM
The RA4M1 timer hardware supports higher PWM resolution than a classic AVR Nano.
Arduino’s current Nano R4 examples support:
|
1 2 3 4 5 6 7 8 |
analogWriteResolution(8); analogWriteResolution(10); analogWriteResolution(12); analogWriteResolution(14); analogWriteResolution(16); |
For example:
|
1 2 3 4 5 |
analogWriteResolution(12); analogWrite(D9, 2048); |
requests approximately 50% duty cycle at 12-bit resolution.
Higher numerical resolution does not automatically increase the physical timer frequency or accuracy. Timer configuration still determines the actual PWM waveform.
D3 and D11 Share a Timer Resource
Arduino’s current Nano R4 documentation notes that D3 and D11 use the same GPT timer channel group.
This matters when changing PWM frequency because both outputs can become coupled through the shared timer configuration.
For ordinary analogWrite(), this is usually invisible.
Eight Analog Inputs
Nano R4 exposes:
|
1 2 3 4 5 6 7 8 9 10 11 |
A0 A1 A2 A3 A4 A5 A6 A7 |
The RA4M1 ADC supports up to 14-bit resolution.
Arduino keeps the default behaviour compatible with older boards:
|
1 2 3 4 5 6 |
analogRead(A0) → 10-bit result by default → 0 to 1023 |
To use 14 bits:
|
1 2 3 4 5 6 |
analogReadResolution(14); uint16_t value = analogRead(A0); |
The returned range becomes:
|
1 2 3 4 |
0 to 16383 |
14-Bit Resolution Does Not Mean 14-Bit Accuracy
The 14-bit ADC gives finer quantisation, but real measurement accuracy still depends on:
- reference-voltage accuracy;
- source impedance;
- grounding;
- noise;
- ADC offset and gain error;
- sensor accuracy.
The same analog principles discussed in our UNO R4 ADC and DAC guide apply because Nano R4 uses the same RA4M1 family.
True 12-Bit DAC on A0
A0 can operate as a true analog output through the RA4M1’s 12-bit DAC.
This is fundamentally different from PWM.
Example:
|
1 2 3 4 5 6 7 8 9 10 |
void setup() { analogWriteResolution(12); } void loop() { analogWrite(A0, 2048); } |
A 12-bit DAC uses values from:
|
1 2 3 4 |
0 to 4095 |
and creates an actual analog voltage level rather than a pulse train.
A0 Is Shared Between ADC and DAC
A0 cannot act as an independent external ADC input and DAC output at exactly the same time.
A typical mixed-signal design would use:
|
1 2 3 4 5 6 7 8 |
A0 → DAC output A1-A7 → analog inputs |
Built-In Operational Amplifier
The RA4M1 OpAmp is exposed on:
|
1 2 3 4 5 6 |
A1 = positive input A2 = negative input A3 = output |
This can be useful for:
- sensor amplification;
- buffering;
- active filters;
- analog signal conditioning.
The OpAmp is an MCU peripheral, not a general high-power output amplifier.
Main I²C Bus: Wire
The main 5 V I²C bus uses:
|
1 2 3 4 5 |
A4 = SDA A5 = SCL |
and is accessed with:
|
1 2 3 4 |
Wire |
Example:
|
1 2 3 4 5 6 7 8 |
#include <Wire.h> void setup() { Wire.begin(); } |
A4/A5 operate in the main 5 V board domain.
Do Not Use A4/A5 as ADC Inputs While I²C Is Active
A4 and A5 are shared-function pins.
When the main I²C bus is active:
|
1 2 3 4 5 |
A4 = SDA A5 = SCL |
so they should not simultaneously be used as independent ADC channels.
Qwiic Bus: Wire1
Nano R4 includes a dedicated Qwiic connector.
This is a second hardware I²C bus:
|
1 2 3 4 |
Wire1 |
and not the standard Wire object.
Use:
|
1 2 3 4 |
Wire1.begin(); |
Qwiic Voltage and Level Translation
The Qwiic connector operates at:
|
1 2 3 4 |
3.3 V |
The board includes bidirectional level translation between the 5 V RA4M1 side and the 3.3 V Qwiic side.
This is a particularly useful Nano R4 feature because you can simultaneously support:
|
1 2 3 4 5 6 7 8 |
Wire → 5 V legacy I²C devices Wire1 → 3.3 V Qwiic sensors |
Qwiic Internal Pin Mapping
The current Arduino Renesas core maps the Qwiic bus internally as:
|
1 2 3 4 5 |
Wire1 SDA = Arduino internal pin 27 / RA4M1 P401 Wire1 SCL = Arduino internal pin 26 / RA4M1 P400 |
Normal users do not need to access those internal pin numbers.
Use the physical Qwiic connector and Wire1.
Using Both I²C Buses
|
1 2 3 4 5 6 7 8 9 |
#include <Wire.h> void setup() { Wire.begin(); Wire1.begin(); } |
The buses can host different devices independently.
This can even solve fixed-address conflicts by placing one identical sensor on each bus.
For a deeper explanation of the dual-bus model, see our Wire vs Wire1 Qwiic guide.
SPI Pins
The hardware SPI interface uses:
|
1 2 3 4 5 6 7 |
D10 = CS / SS D11 = MOSI / COPI D12 = MISO / CIPO D13 = SCK |
Example:
|
1 2 3 4 5 6 7 8 |
#include <SPI.h> void setup() { SPI.begin(); } |
Arduino documents SPI operation up to 24 MHz on Nano R4.
D10 and D11 Have Dual Roles
D10 and D11 are also PWM-capable.
When the hardware SPI bus is actively using those pins, do not expect them to behave simultaneously as independent PWM outputs.
UART: Serial1 on D0/D1
The physical UART uses:
|
1 2 3 4 5 |
D0 = RX D1 = TX |
This mapping is confirmed by Arduino’s current pinout and the Nano R4 core:
|
1 2 3 4 5 |
UART1_RX_PIN = 0 UART1_TX_PIN = 1 |
Use:
|
1 2 3 4 |
Serial1.begin(115200); |
for an external UART device.
USB Serial Is Separate from Serial1
Nano R4 has native USB-C on the RA4M1.
So:
|
1 2 3 4 5 6 7 8 |
Serial → USB-C virtual serial Serial1 → D0/D1 hardware UART |
This is convenient because using Serial Monitor does not consume the D0/D1 hardware serial port in the same way as the classic Nano’s FT232RL architecture.
USB-C
The USB-C connector is used for:
- 5 V board power;
- programming;
- USB serial;
- native USB applications;
- HID keyboard/mouse projects.
Do not apply more than 5 V to the USB-C input.
Native USB HID
Because the RA4M1 has native USB support, Nano R4 can emulate devices such as:
- keyboard;
- mouse;
- custom USB serial devices.
This is a major upgrade over the classic Nano and Nano Every, whose main application MCUs do not directly own the USB connector in the same way.
CAN Bus
Nano R4 includes a classic CAN controller inside the RA4M1.
The pins are:
|
1 2 3 4 5 |
D4 = CAN TX D5 = CAN RX |
The Arduino core confirms:
|
1 2 3 4 5 |
PIN_CAN0_TX = 4 PIN_CAN0_RX = 5 |
You Still Need a CAN Transceiver
D4 and D5 are logic-level CAN controller signals.
They cannot connect directly to CANH and CANL.
You need:
|
1 2 3 4 5 6 7 8 9 10 |
Nano R4 D4 CAN TX D5 CAN RX ↓ CAN transceiver ↓ CANH / CANL |
A 5 V-compatible transceiver such as an appropriate MCP2561/MCP2562-family device is a straightforward match.
Check the exact transceiver datasheet and logic-voltage requirements before wiring.
CAN Is Classic CAN, Not CAN-FD
The RA4M1 controller supports classic CAN 2.0A/2.0B operation with:
- 11-bit standard identifiers;
- 29-bit extended identifiers;
- up to 8 payload bytes;
- rates up to 1 Mbit/s.
It is not a CAN-FD controller.
The detailed transceiver, termination and Arduino_CAN workflow in our UNO R4 CAN bus guide applies directly to the same RA4M1 CAN architecture.
Basic CAN Initialisation
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <Arduino_CAN.h> void setup() { Serial.begin(115200); if (!CAN.begin(CanBitRate::BR_500k)) { Serial.println("CAN init failed"); while (true) { } } } void loop() { } |
RTC
Nano R4 includes a real-time clock inside the RA4M1.
Arduino provides support through:
|
1 2 3 4 |
#include "RTC.h" |
The RTC supports:
- date;
- time;
- day of week;
- calendar operation;
- alarm and periodic features through the R4 RTC library.
VBATT Backup Power
The board exposes a dedicated VBATT connection for the RTC backup domain.
Arduino specifies:
|
1 2 3 4 |
1.6 V to 3.6 V |
for backup power.
A suitable approximately 3 V backup source can keep the RTC running while the main board supply is removed.
VBATT does not power the entire Nano R4.
It only maintains the RTC/backup domain.
RTC Calendar Range
Arduino documents the calendar mode for:
|
1 2 3 4 |
2000 to 2099 |
with leap-year handling.
For a complete coding guide, see our UNO R4 RTC guide.
Onboard RGB LED
Nano R4 includes a programmable RGB LED exposed through:
|
1 2 3 4 5 6 |
LEDR LEDG LEDB |
The current board manual maps them to:
|
1 2 3 4 5 6 |
LEDR = P409 LEDG = P410 LEDB = P411 |
The RGB LED is active-low:
|
1 2 3 4 5 |
LOW = colour on HIGH = colour off |
Orange Built-In LED
There is also a conventional user LED:
|
1 2 3 4 |
LED_BUILTIN |
mapped to:
|
1 2 3 4 |
P204 |
This LED behaves normally:
|
1 2 3 4 5 |
HIGH = on LOW = off |
BOOT and RESET
Nano R4 exposes:
- a normal RST pin;
- a BOOT pin;
- an onboard reset button.
Normal Arduino development rarely requires manual use of BOOT because the USB bootloader and Arduino IDE handle standard uploading automatically.
BOOT becomes useful during recovery or lower-level bootloader work.
Powering the Nano R4
The board can be powered from:
- USB-C at 5 V;
- VIN from approximately 6 to 21 V.
VIN feeds an onboard buck converter.
Arduino specifies:
|
1 2 3 4 5 6 |
VIN minimum: 6 V VIN typical: 7 V VIN maximum: 21 V |
3.3 V Rail
The board provides a 3.3 V output rail used by the Qwiic subsystem and available for external peripherals.
Arduino warns that the 3.3 V regulator can become hot at loads above roughly 150 mA.
Do not design around the 3.3 V pin as a high-current supply.
Nano R4 vs Classic Nano
| Feature | Classic Nano | Nano R4 |
|---|---|---|
| MCU | ATmega328P | RA4M1 |
| CPU | 8-bit AVR, 16 MHz | 32-bit Cortex-M4, 48 MHz |
| Flash | 32 kB | 256 kB |
| SRAM | 2 kB | 32 kB |
| ADC | 10 bit | Up to 14 bit |
| DAC | No | 12-bit on A0 |
| CAN | No built-in controller | Yes |
| RTC | No | Yes |
| USB | FT232RL bridge | Native USB-C |
| Qwiic | No | Yes |
| Logic voltage | 5 V | 5 V |
For the complete legacy mapping, see our classic Nano pinout guide.
Nano R4 vs Nano Every
Nano Every also keeps a 5 V Nano environment but remains an 8-bit AVR platform.
Nano R4 adds:
- much more SRAM;
- 32-bit Cortex-M4 processing;
- hardware floating point;
- true DAC;
- CAN;
- RTC;
- Qwiic;
- native USB-C;
- integrated OpAmp.
For the Every’s exact pin mapping, see our Nano Every pinout guide.
UNO R4 Code Compatibility
Nano R4 uses the same RA4M1 family and Arduino UNO R4 Boards core as UNO R4 Minima and UNO R4 WiFi.
That means high-level code using:
- ADC;
- DAC;
- RTC;
- CAN;
- OpAmp;
- native USB;
is often straightforward to move between the R4 boards.
The important part is to update pin assignments for the Nano R4 layout.
Do Not Assume AVR Register Compatibility
A sketch written entirely with Arduino APIs may port from an older Nano quite easily.
Code that directly accesses AVR registers will not.
For example:
|
1 2 3 4 5 6 7 8 |
PORTB DDRB TCCR1A TCCR1B TIMSK1 |
belong to the old AVR hardware model.
Nano R4 uses Renesas RA peripheral registers and a completely different timer architecture.
Interrupt-Capable Pins
The RA4M1 interrupt controller is much more flexible than the classic Nano’s two dedicated external interrupt inputs.
Arduino’s current Nano R4 manual lists interrupt capability on:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
D0 D1 D2 D3 D8 D12 D13 A1 A2 A3 A4 A5 A6 |
Some of these pins share hardware interrupt channels, so they cannot necessarily all be used simultaneously.
For simple portable designs, D2 and D3 remain good conventional choices.
Quick Pin Reference
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
UART D0 = RX D1 = TX CAN D4 = TX D5 = RX external transceiver required PWM D3 D5 D6 D9 D10 D11 SPI D10 = CS D11 = MOSI / COPI D12 = MISO / CIPO D13 = SCK I2C main bus A4 = SDA A5 = SCL Wire 5 V Qwiic Wire1 3.3 V with onboard level shifting ADC A0-A7 up to 14 bit DAC A0 12 bit OPAMP A1 = + A2 = - A3 = output RTC backup VBATT 1.6-3.6 V USB native USB-C Serial External UART Serial1 D0/D1 |
Best Practices
- Remember that Nano R4 is a 5 V board even though its Qwiic connector is 3.3 V.
- Use
Wirefor A4/A5 andWire1for Qwiic. - Use an external CAN transceiver; D4/D5 cannot connect directly to CANH/CANL.
- Keep GPIO current within the 8 mA-per-pin specification.
- Use
Serialfor USB andSerial1for D0/D1. - Remember A0 becomes the DAC output when using the true analog-output feature.
- Do not use A4/A5 as independent ADC inputs while the main I²C bus is active.
- Treat A6/A7 conservatively because Arduino’s current documentation is inconsistent about digital use.
- Use VBATT only for the RTC backup domain, not as a main board power input.
- Review old AVR libraries that access registers directly before migrating from classic Nano.
Final Thoughts
The Arduino Nano R4 is one of the most capable 5 V Nano-format boards because it brings the RA4M1’s modern peripheral set into a compact footprint without forcing the project into a 3.3 V-only environment.
The most important mappings are:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
D0/D1 → Serial1 RX/TX D4/D5 → CAN TX/RX D3/D5/D6/D9/D10/D11 → PWM D10-D13 → SPI A4/A5 → main 5 V I2C / Wire Qwiic → secondary 3.3 V I2C / Wire1 A0-A7 → analog inputs, up to 14 bit A0 → true 12-bit DAC A1/A2/A3 → integrated OpAmp VBATT → RTC backup, 1.6-3.6 V USB-C → native USB, programming and Serial |
For existing Nano projects, the 5 V logic and familiar physical arrangement make migration much easier than moving to many other modern boards.
For new projects, the combination of native USB, CAN, DAC, RTC, dual I²C, Qwiic and a 48 MHz Cortex-M4 makes the Nano R4 far more than a small replacement for the ATmega328P Nano.