The Arduino Due and ESP32-S3 are both 3.3 V 32-bit microcontroller platforms, but they come from very different generations.
The Due is based on the:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
SAM3X8E Arm Cortex-M3 84 MHz 512 kB Flash 96 kB SRAM 54 digital I/O 12 analog inputs 2 DAC 4 UARTs 2 I2C buses native USB OTG CAN hardware |
A typical ESP32-S3 development board such as ESP32-S3-DevKitC-1 uses:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
dual-core Xtensa LX7 up to 240 MHz 512 kB SRAM external Flash optional PSRAM Wi-Fi Bluetooth LE 5 USB OTG USB Serial/JTAG TWAI touch sensing vector instructions |
The Due’s strength is its large, simple Arduino header layout with four UARTs, dual DAC and a very mature SAM3X ecosystem.
ESP32-S3’s strength is modern connected computing: much faster CPU performance, Wi-Fi/BLE, optional PSRAM, native USB/JTAG and a far larger software ecosystem for IoT, audio and Edge AI.
Quick Comparison
| Feature | Arduino Due | ESP32-S3 |
|---|---|---|
| Main MCU | SAM3X8E | ESP32-S3 |
| CPU | Arm Cortex-M3 | Dual-core Xtensa LX7 |
| Clock | 84 MHz | Up to 240 MHz |
| Logic voltage | 3.3 V | 3.3 V |
| Internal SRAM | 96 kB | 512 kB |
| Flash | 512 kB internal | External; module-dependent |
| PSRAM | No | Optional; module-dependent |
| Digital I/O | 54 dedicated digital pins | 45 programmable GPIO at SoC level |
| Analog inputs | 12 | 20 ADC channels at SoC level |
| ADC | 12-bit hardware | 2 × 12-bit SAR ADC |
| True DAC | 2 × 12-bit | No true DAC |
| PWM | 12 pins | Flexible LEDC/MCPWM |
| UART | 4 | 3 |
| I2C | 2 | 2 |
| SPI | 1 main SPI header | Multiple SPI controllers |
| CAN/TWAI | 2 CAN controllers in SAM3X8E | 1 TWAI controller |
| Wi-Fi | No | 2.4 GHz Wi-Fi 4 |
| Bluetooth | No | Bluetooth 5 LE |
| USB | Native USB OTG + programming USB | USB OTG + USB Serial/JTAG |
| Touch sensing | No | Yes |
| AI/DSP acceleration | No dedicated vector extensions | Vector instructions |
Both Are 3.3 V Platforms
Unlike Mega 2560, both Due and ESP32-S3 use:
|
1 2 3 4 |
3.3 V logic |
That means neither should be treated as a 5 V-tolerant platform.
This makes migration electrically easier between the two than between Mega and ESP32-S3, but you still need to check:
- pin assignments;
- analog ranges;
- peripheral voltage levels;
- USB use;
- module-specific GPIO restrictions.
CPU Performance
Due:
|
1 2 3 4 5 |
1 × Cortex-M3 84 MHz |
ESP32-S3:
|
1 2 3 4 5 |
2 × Xtensa LX7 up to 240 MHz |
ESP32-S3 has a clear performance advantage.
It is better suited to:
- networking;
- TLS;
- large JSON documents;
- audio processing;
- graphics;
- machine learning;
- parallel tasks.
Dual-Core Execution
ESP32-S3 runs Arduino on top of FreeRTOS.
That lets you divide work into tasks such as:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
Core 0 → Wi-Fi → MQTT → web services Core 1 → sensors → control → display |
Due uses a simpler single-core application model.
Vector Instructions Give ESP32-S3 an Edge in DSP and AI
ESP32-S3 includes vector instructions designed to accelerate operations common in:
- DSP;
- neural-network inference;
- audio;
- signal processing.
Espressif supports these through libraries such as:
|
1 2 3 4 5 6 |
ESP-NN ESP-DSP ESP-DL |
Due does not have comparable vector acceleration.
RAM: ESP32-S3 Has More Than Five Times the Internal SRAM
Due:
|
1 2 3 4 |
96 kB SRAM |
ESP32-S3:
|
1 2 3 4 |
512 kB SRAM |
That difference is already substantial.
ESP32-S3 then adds the option of external PSRAM.
PSRAM Is a Major ESP32-S3 Advantage
Many ESP32-S3 modules provide:
|
1 2 3 4 5 6 |
2 MB 8 MB 16 MB |
of PSRAM depending on module configuration.
This enables:
- camera framebuffers;
- large display buffers;
- audio ring buffers;
- large ML tensors;
- large MicroPython heaps;
- large network buffers.
Due has no comparable external-memory architecture onboard.
Flash Storage
Due contains:
|
1 2 3 4 |
512 kB internal Flash |
ESP32-S3 uses external Flash integrated into the selected module.
Common modules provide several megabytes, and high-memory variants provide much more.
This makes ESP32-S3 better suited to:
- OTA partitions;
- filesystems;
- web assets;
- large firmware;
- ML models.
GPIO: Due Has the Simpler Large Header
Due exposes:
|
1 2 3 4 |
54 dedicated digital I/O |
in a large Arduino-compatible layout.
ESP32-S3 contains:
|
1 2 3 4 |
45 programmable GPIO |
at SoC level, but the number freely usable on a development board depends on the module and memory configuration.
DevKitC-1 GPIO Availability Depends on Module Variant
On ESP32-S3-DevKitC-1 boards using Octal Flash/PSRAM variants:
|
1 2 3 4 5 6 |
GPIO35 GPIO36 GPIO37 |
are used internally for memory communication and are not available externally.
This is an important difference from Due, where the large header assignment is fixed and much easier to reason about.
Strapping Pins
ESP32-S3 also has boot strapping pins whose levels are sampled during reset.
On common S3 boards these include pins such as:
|
1 2 3 4 5 6 7 |
GPIO0 GPIO3 GPIO45 GPIO46 |
External circuits should not force inappropriate boot states.
Due has fewer pin-selection complications of this kind.
Analog Inputs
Due exposes:
|
1 2 3 4 |
12 analog inputs |
with 12-bit hardware ADC support.
ESP32-S3 has:
|
1 2 3 4 5 |
2 × 12-bit SAR ADC 20 ADC channels at SoC level |
although not every ADC-capable pin is necessarily exposed or conveniently usable on every development board.
Due ADC Is Simpler
Due’s analog system is very Arduino-like:
|
1 2 3 4 5 |
analogReadResolution(12); int value = analogRead(A0); |
and the input range is:
|
1 2 3 4 |
0-3.3 V |
ESP32-S3 ADC operation can involve:
- attenuation;
- calibration;
- ADC1 vs ADC2;
- continuous/DMA modes.
S3 is more flexible, but Due can be easier for straightforward analog measurement.
Due Has Two True DAC Outputs
Due provides:
|
1 2 3 4 5 |
DAC0 DAC1 |
with 12-bit DAC hardware.
ESP32-S3 has:
|
1 2 3 4 |
no true DAC |
This is a genuine Due advantage.
Due DAC Voltage Range
The Due DAC output is approximately:
|
1 2 3 4 |
0.55 V to 2.75 V |
rather than a full 0-3.3 V swing.
Even with that limitation, it is still a true analogue output.
ESP32-S3 requires:
- external DAC;
- PWM + filter;
- I2S audio DAC/codec.
for real analogue voltage output.
PWM
Due provides:
|
1 2 3 4 |
D2-D13 |
as its 12 PWM-capable digital pins.
ESP32-S3 uses flexible:
- LEDC;
- MCPWM;
- RMT;
peripherals.
The S3 approach is more configurable and better suited to advanced motor-control and waveform generation.
UART Count: Due Wins
Due provides:
|
1 2 3 4 |
4 UARTs |
ESP32-S3 provides:
|
1 2 3 4 |
3 UART controllers |
If a design needs four independent hardware serial links, Due has the raw-count advantage.
ESP32-S3 Has Flexible UART Routing
The GPIO matrix allows UART signals to be routed to many suitable pins.
That makes custom PCB routing easier than Due’s fixed header arrangement.
I2C
Both platforms provide:
|
1 2 3 4 |
2 I2C controllers |
Due exposes them as:
|
1 2 3 4 5 |
Wire Wire1 |
with dedicated board pins.
ESP32-S3 can route I2C signals flexibly through its GPIO matrix.
SPI
Due uses its:
|
1 2 3 4 |
central 6-pin SPI header |
for the main SPI interface.
ESP32-S3 provides multiple SPI controllers, though some are used by external Flash/PSRAM depending on module configuration.
For complex systems with several high-speed SPI peripherals, S3 is generally more flexible.
CAN vs TWAI
Due’s SAM3X8E contains:
|
1 2 3 4 |
2 CAN controllers |
ESP32-S3 contains:
|
1 2 3 4 |
1 TWAI controller |
compatible with classic CAN-style communication.
Both require an external physical CAN transceiver.
Due Wins on Raw CAN Controller Count
If the project specifically needs:
|
1 2 3 4 |
two independent CAN controllers |
Due has a real hardware advantage.
ESP32-S3 would need an external CAN controller for an additional independent bus.
Wi-Fi Is a Major ESP32-S3 Advantage
ESP32-S3 integrates:
|
1 2 3 4 5 |
2.4 GHz Wi-Fi 4 802.11 b/g/n |
Due has no onboard Wi-Fi.
S3 can directly run:
- MQTT;
- HTTP/HTTPS;
- web servers;
- OTA updates;
- Home Assistant integrations;
- cloud APIs.
Bluetooth LE
ESP32-S3 includes:
|
1 2 3 4 |
Bluetooth 5 LE |
Due has no onboard Bluetooth.
For phone configuration, BLE sensing or provisioning, S3 avoids the need for an external module.
ESP-NOW
ESP32-S3 supports:
|
1 2 3 4 |
ESP-NOW |
for direct peer-to-peer ESP-family communication.
Due has no equivalent integrated radio protocol.
Native USB: Both Are Capable
Due includes a native SAM3X USB OTG port.
ESP32-S3 includes:
|
1 2 3 4 5 6 |
USB 2.0 Full-Speed OTG + USB Serial/JTAG |
Both can support advanced USB device functions.
ESP32-S3 Has the Better Debugging Story
USB Serial/JTAG combines:
- flashing;
- serial console;
- JTAG debugging;
through the native ESP32-S3 USB interface.
Due has a JTAG header, but typically requires an external debugger for JTAG use.
USB Pins on ESP32-S3
Native USB uses:
|
1 2 3 4 5 |
GPIO19 = USB D- GPIO20 = USB D+ |
on ESP32-S3.
If USB is active, those pins should not be treated as free general-purpose I/O.
Touch Sensing
ESP32-S3 includes capacitive-touch hardware.
That enables:
- touch buttons;
- sliders;
- simple proximity sensing.
Due has no dedicated touch peripheral.
Camera and Display Work
ESP32-S3 includes interfaces suitable for:
- parallel camera input;
- LCD output;
- I2S audio;
- DMA-driven data movement.
Combined with optional PSRAM, this makes S3 much more suitable for:
- camera projects;
- graphical HMIs;
- audio;
- Edge AI.
Due has neither the memory capacity nor the specialised peripheral ecosystem to compete well in those workloads.
Security
ESP32-S3 includes modern security features such as:
- secure boot;
- Flash encryption;
- eFuses;
- AES;
- RSA;
- SHA;
- HMAC;
- digital-signature hardware.
Due does not provide an equivalent modern secure-boot and encrypted-Flash architecture.
Low-Power Operation
ESP32-S3 provides:
- deep sleep;
- RTC memory;
- ULP coprocessor;
- radio power-management features.
Due supports MCU sleep modes, but it was not designed around the same battery-oriented connected-IoT architecture.
Software Ecosystem
Due uses the Arduino SAM core and a mature set of SAM3X-specific libraries.
ESP32-S3 can use:
- Arduino-ESP32;
- ESP-IDF;
- FreeRTOS;
- ESP-NN/ESP-DSP/ESP-DL;
- MicroPython;
- ESPHome;
- ESP-NOW.
For modern IoT and connected embedded development, the ESP32-S3 ecosystem is much broader.
Porting Due Code to ESP32-S3
High-level Arduino code using:
|
1 2 3 4 5 6 7 8 9 |
digitalRead() digitalWrite() analogRead() Wire SPI Serial |
is generally the easiest to move.
Code using:
- SAM3X timer registers;
- Due-specific CAN libraries;
- Due Native USB internals;
- PIO controller registers;
will require redesign.
Which Is Better for Many Direct GPIO?
Due is attractive because its:
|
1 2 3 4 |
54 digital I/O |
are presented in a large, fixed Arduino header layout.
ESP32-S3 has many GPIO, but board/module restrictions make pin planning more complex.
Which Is Better for Four Serial Devices?
Due.
It provides four hardware UARTs versus three on ESP32-S3.
Which Is Better for True Analog Output?
Due.
It has two true 12-bit DAC outputs.
Which Is Better for Dual CAN?
Due.
SAM3X8E contains two CAN controllers.
Which Is Better for Wi-Fi/BLE?
ESP32-S3.
Both radios are integrated.
Which Is Better for USB Debugging?
ESP32-S3.
Its integrated USB Serial/JTAG is significantly more convenient.
Which Is Better for Camera, Display or Audio?
ESP32-S3 by a large margin.
Which Is Better for TinyML?
ESP32-S3.
The combination of:
|
1 2 3 4 5 6 7 |
dual 240 MHz cores vector instructions 512 kB SRAM optional PSRAM |
puts it in a completely different Edge AI class.
Which Is Better for Existing Due Shields?
Due.
If the project already depends on:
- Due-specific shields;
- 54-pin large header arrangement;
- dual DAC;
- four UARTs;
- SAM3X-specific libraries;
keeping Due may avoid unnecessary redesign.
Which Is Better for a New Connected Project?
ESP32-S3 is normally the stronger starting point because it integrates:
- Wi-Fi;
- BLE;
- much more RAM;
- optional PSRAM;
- native USB/JTAG;
- modern security;
- IoT software ecosystem.
Decision Table
| Requirement | Better fit |
|---|---|
| Large fixed Arduino header layout | Arduino Due |
| Four UARTs | Arduino Due |
| Two true DAC outputs | Arduino Due |
| Two CAN controllers | Arduino Due |
| Existing Due shields/software | Arduino Due |
| CPU performance | ESP32-S3 |
| More internal SRAM | ESP32-S3 |
| External PSRAM | ESP32-S3 |
| Wi-Fi | ESP32-S3 |
| Bluetooth LE | ESP32-S3 |
| ESP-NOW | ESP32-S3 |
| Integrated USB/JTAG | ESP32-S3 |
| Touch sensing | ESP32-S3 |
| Camera/display/audio | ESP32-S3 |
| TinyML / DSP | ESP32-S3 |
| Modern secure IoT | ESP32-S3 |
Quick 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 |
Arduino Due SAM3X8E Cortex-M3 84 MHz 3.3 V logic 512 kB Flash 96 kB SRAM 54 digital I/O 12 analog inputs 12-bit ADC 12 PWM 2 × 12-bit DAC 4 UART 2 I2C 1 main SPI 2 CAN controllers Native USB OTG JTAG header no Wi-Fi no Bluetooth ESP32-S3 dual-core Xtensa LX7 up to 240 MHz 3.3 V logic 512 kB SRAM external Flash optional PSRAM 45 programmable GPIO at SoC level 20 ADC channels at SoC level no true DAC 3 UART 2 I2C multiple SPI Wi-Fi 4 Bluetooth 5 LE ESP-NOW 1 TWAI controller USB OTG USB Serial/JTAG touch sensing vector instructions modern secure boot/encryption features |
Final Thoughts
Arduino Due remains a useful large-format 3.3 V board when you need:
- 54 straightforward digital pins;
- four UARTs;
- two DAC outputs;
- dual CAN controllers;
- existing Due hardware compatibility.
ESP32-S3 is the far stronger general-purpose platform for new connected designs.
It brings:
- dual-core 240 MHz processing;
- more than five times the internal SRAM;
- optional PSRAM;
- Wi-Fi;
- BLE 5;
- ESP-NOW;
- native USB/JTAG;
- touch;
- vector acceleration;
- modern security.
The simplest decision rule is:
|
1 2 3 4 5 6 7 8 9 10 |
Need Due's large fixed I/O layout, four UARTs, dual DAC or dual CAN? → Arduino Due Need modern wireless, memory, USB debugging, AI/DSP headroom and a broader IoT ecosystem? → ESP32-S3 |
For detailed pin information, see our Arduino Due pinout guide and ESP32-S3 DevKitC-1 pinout and safe GPIO guide.