The Arduino Portenta C33 is a cost-optimised industrial IoT module built around the Renesas RA6M5 microcontroller.
Its architecture combines:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Renesas R7FA6M5BH2CBG → Arm Cortex-M33 → up to 200 MHz → 2 MB internal Flash → 512 KB SRAM → TrustZone → Secure Crypto Engine 9 16 MB external QSPI Flash → 2.4 GHz Wi-Fi → Bluetooth Low Energy NXP SE050C2 → secure element 100Mb Ethernet PHY USB-C High Speed two 80-pin high-density connectors |
The board uses the same Portenta family form factor as the H7, so it keeps the familiar MKR-style edge headers while exposing most industrial interfaces through the two high-density connectors underneath.
Quick Portenta C33 Specifications
| Feature | Portenta C33 |
|---|---|
| Main MCU | Renesas R7FA6M5BH2CBG / RA6M5 |
| CPU | Arm Cortex-M33 |
| Clock | Up to 200 MHz |
| Internal Flash | 2 MB |
| SRAM | 512 KB |
| External Flash | 16 MB QSPI |
| Logic voltage | 3.3 V |
| Main digital pins | D0-D14 |
| Main analogue pins | A0-A6 |
| Additional analogue input | A7 on high-density connector |
| DAC | 2 external DAC-capable pins: A5 and A6 |
| PWM | Main-header D0-D6 plus additional high-density PWM |
| UART | Multiple SCI/UART channels through header and HDC |
| I2C | Multiple I2C buses |
| SPI | Main SPI plus SPI0/SPI1 on HDC |
| CAN | CAN0 and CAN1 TX/RX pairs on HDC |
| Ethernet | 100Mb Ethernet PHY |
| USB | USB-C High Speed plus USB0/USB1 signals on HDC |
| Wireless | ESP32-C3-MINI-1U Wi-Fi + BLE |
| Secure element | NXP SE050C2 |
| Operating temperature | -40 °C to +85 °C |
| Dimensions | 66.04 × 25.40 mm |
3.3 V Logic
The Portenta C33 is a:
|
1 2 3 4 |
3.3 V logic platform |
Do not confuse the presence of:
|
1 2 3 4 5 |
+5V VIN |
power pins with 5 V-compatible GPIO.
Check signal voltage before connecting:
- 5 V sensors;
- legacy Arduino shields;
- UART modules;
- I2C devices with 5 V pull-ups;
- SPI peripherals.
GPIO Current Limits
Arduino’s current full pinout specifies:
|
1 2 3 4 5 6 7 8 |
8 mA maximum per I/O pin 80 mA maximum overall |
Those are board limits, not recommended operating targets.
Use external drivers for:
- relays;
- motors;
- solenoids;
- large LEDs;
- high-current loads.
Main MKR-Style Digital Pin Mapping
The standard top headers expose:
|
1 2 3 4 |
D0-D14 |
with the following primary RA6M5 mappings:
| Arduino pin | RA6M5 pin | Main function |
|---|---|---|
| D0 | P105 | GPIO / PWM |
| D1 | P106 | GPIO / PWM |
| D2 | P111 | GPIO / PWM |
| D3 | P303 | GPIO / PWM |
| D4 | P401 | GPIO / PWM |
| D5 | P210 | GPIO / PWM |
| D6 | P601 | GPIO / PWM |
| D7 | P402 | SPI CS / SCI_CTS4 |
| D8 | P900 | SPI COPI / SCI_TXD4 |
| D9 | P204 | SPI SCK / SCI_SCK4 |
| D10 | P315 | SPI CIPO / SCI_RXD4 |
| D11 | P407 | I2C SDA |
| D12 | P408 | I2C SCL |
| D13 | P110 | UART RX / SCI_RXD9 |
| D14 | P602 | UART TX / SCI_TXD9 |
PWM on the Main Header
The current Arduino pinout marks:
|
1 2 3 4 5 6 7 8 9 10 |
D0 D1 D2 D3 D4 D5 D6 |
as PWM-capable on the standard MKR-style header.
The high-density connectors expose additional PWM timer outputs labelled:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
PWM0 PWM1 PWM2 PWM3 PWM4 PWM5 PWM6 PWM7 PWM8 PWM9 |
for carrier-board applications.
Analogue Inputs
The main header exposes:
|
1 2 3 4 |
A0-A6 |
and the high-density connector adds:
|
1 2 3 4 |
A7 |
as another ADC-capable input.
| Arduino pin | RA6M5 pin | ADC/DAC function |
|---|---|---|
| A0 | P006 | AN006 |
| A1 | P005 | AN005 |
| A2 | P004 | AN004 |
| A3 | P002 | AN002 |
| A4 | P001 | AN001 |
| A5 | P015 | AN013 / DAC1 |
| A6 | P014 | AN012 / DAC0 |
| A7 | HDC only | ADC A7 |
Two True DAC Outputs
One useful difference from Portenta H7’s normal user-facing pinout is that Portenta C33 exposes two DAC-capable analogue pins:
|
1 2 3 4 5 6 7 8 |
A5 → DAC1 A6 → DAC0 |
These are genuine analogue outputs rather than PWM.
This is useful for:
- control voltages;
- waveform generation;
- analogue setpoints;
- audio experiments;
- industrial reference signals.
ADC Reference Pins
The high-density connector exposes:
|
1 2 3 4 5 |
ADC VREF+ GND / VREF- |
for advanced analogue configurations.
This is especially useful in carrier designs where ADC accuracy and reference stability matter.
SPI on the Main Header
The default SPI mapping is:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
D7 → CS → P402 D8 → COPI / MOSI → P900 D9 → SCK → P204 D10 → CIPO / MISO → P315 |
Use:
|
1 2 3 4 |
#include <SPI.h> |
SPI Example
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <SPI.h> const int csPin = 7; void setup() { pinMode(csPin, OUTPUT); digitalWrite(csPin, HIGH); SPI.begin(); } void loop() { } |
Two Additional SPI Groups on the HDC
The J2 high-density connector exposes:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
SPI0 CS SPI0 SCLK SPI0 CIPO SPI0 COPI SPI1 CS SPI1 SCLK SPI1 CIPO SPI1 COPI |
This is useful for custom carrier boards that need multiple independent SPI buses.
As always, the physical hardware labels and Arduino software object names may not map one-to-one, so check the current core API when using non-default buses.
I2C on the Main Header
The normal external I2C bus uses:
|
1 2 3 4 5 6 7 8 9 10 |
D11 → SDA → P407 D12 → SCL → P408 |
Use:
|
1 2 3 4 |
#include <Wire.h> |
Additional I2C Buses
The high-density connectors also expose:
|
1 2 3 4 5 6 |
I2C0 SDA/SCL I2C1 SDA/SCL I2C2 SDA/SCL |
giving the board considerably more flexibility than the normal MKR header suggests.
UART on the Main Header
The default external serial pair is:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
D13 → RX → P110 → SCI_RXD9 D14 → TX → P602 → SCI_TXD9 |
This is the normal hardware serial connection for many Arduino sketches.
Additional UARTs
The high-density connectors expose multiple SCI/UART groups:
|
1 2 3 4 5 6 7 |
UART0 UART1 UART2 UART3 |
with RTS/CTS hardware-flow-control signals on several groups.
This is valuable for:
- industrial modems;
- GNSS receivers;
- serial instruments;
- RS-485 transceiver interfaces;
- multiple MCU links.
Dual CAN Interfaces
The Portenta C33 high-density connector exposes two separate CAN controller signal pairs:
|
1 2 3 4 5 6 7 8 |
CAN0 TX CAN0 RX CAN1 TX CAN1 RX |
This is a significant industrial feature.
CAN Still Requires External Transceivers
The pins are logic-level:
|
1 2 3 4 5 |
CAN TX CAN RX |
not:
|
1 2 3 4 5 |
CANH CANL |
Each physical CAN bus requires a suitable transceiver.
If using two independent CAN networks, each CAN controller needs its own physical transceiver path.
Ethernet
Portenta C33 includes a:
|
1 2 3 4 |
100Mb Ethernet PHY |
and exposes the differential Ethernet pairs on J1:
|
1 2 3 4 5 6 7 |
ETH A+ ETH A- ETH B+ ETH B- |
along with LED/status signals:
|
1 2 3 4 5 |
ETH L1 ETH L2 |
No RJ45 on the Module
As with Portenta H7, the SoM itself does not contain a conventional RJ45 socket.
A carrier board provides:
- RJ45 connector;
- magnetics;
- mechanical interface;
- supporting protection/components.
USB-C High Speed
The Portenta C33 uses:
|
1 2 3 4 |
USB-C |
for programming, power and native USB communication.
Arduino lists:
|
1 2 3 4 |
USB-C High Speed |
in the current product specification.
Additional USB Interfaces on HDC
The high-density connector exposes:
|
1 2 3 4 5 6 7 8 9 10 11 |
USB0 D+ USB0 D- USB0 ID USB0 VBUS USB1 D+ USB1 D- USB1 ID |
for carrier-board USB connectivity.
SD Card Interface
The J1 connector exposes a native SD interface:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
SDC CLK SDC CMD SDC D0 SDC D1 SDC D2 SDC D3 SDC CD SDC WP V-SDCARD |
This allows a Portenta carrier to provide a high-performance SD-card socket without using the main SPI bus.
I2S Digital Audio
Portenta C33 exposes an I2S group on the high-density connector:
|
1 2 3 4 5 6 7 |
I2S MCK I2S WS I2S SDI I2S SDO |
for:
- audio codecs;
- digital microphones;
- digital amplifiers;
- streaming audio.
Additional GPIO on the High-Density Connector
J2 provides general-purpose signals labelled:
|
1 2 3 4 5 6 7 8 9 10 |
GPIO0 GPIO1 GPIO2 GPIO3 GPIO4 GPIO5 GPIO6 |
in addition to the standard D0-D14 pins.
This is why the Portenta form factor can support much larger custom carrier designs than an ordinary MKR board.
Debug Interface
The J1 connector exposes:
|
1 2 3 4 5 6 7 |
SWDIO SCK / SWCLK SWO RESET |
for low-level debugging and production programming.
Single-Core Cortex-M33 Architecture
Unlike Portenta H7, the C33 is not a dual-core board.
It uses one:
|
1 2 3 4 5 |
Arm Cortex-M33 up to 200 MHz |
application processor.
This makes the architecture simpler than:
|
1 2 3 4 5 |
H7 → M7 + M4 |
but it also means there is no second real-time Cortex core to partition application tasks onto.
TrustZone
The Cortex-M33 supports:
|
1 2 3 4 |
Arm TrustZone |
which allows software to create:
|
1 2 3 4 5 6 |
secure and non-secure |
execution regions.
This can be useful for industrial devices where:
- keys;
- boot validation;
- secure services;
- application code;
need different security boundaries.
Secure Crypto Engine 9
The RA6M5 also includes:
|
1 2 3 4 |
Secure Crypto Engine 9 |
for hardware-accelerated cryptographic operations.
This complements the separate onboard:
|
1 2 3 4 |
NXP SE050C2 |
secure element.
SE050C2 Secure Element
The secure element is intended for:
- device identity;
- private-key storage;
- certificate operations;
- secure authentication;
- industrial IoT security.
ESP32-C3 Wireless Co-Processor
The board uses:
|
1 2 3 4 |
for wireless connectivity.
It provides:
|
1 2 3 4 5 |
2.4 GHz Wi-Fi Bluetooth Low Energy |
while the RA6M5 remains the main application MCU.
Wireless Architecture
The normal software model is:
|
1 2 3 4 5 6 7 8 |
RA6M5 → runs Arduino application ESP32-C3 → wireless co-processor |
This is conceptually similar to other Arduino boards that use a separate radio processor.
External Antenna
The ESP32-C3-MINI-1U is the U.FL-style module variant intended for use with an external antenna.
Use an antenna appropriate for:
|
1 2 3 4 |
2.4 GHz Wi-Fi/BLE |
and the intended mechanical enclosure.
16 MB External QSPI Flash
In addition to the RA6M5’s:
|
1 2 3 4 |
2 MB internal Flash |
the board includes:
|
1 2 3 4 |
16 MB QSPI Flash |
for larger:
- filesystems;
- OTA images;
- assets;
- data storage;
- application resources.
512 KB SRAM
The C33 has:
|
1 2 3 4 |
512 KB SRAM |
which is far larger than classic Arduino-class MCUs, but smaller than the H7 platform once its external SDRAM is considered.
MicroPython Support
Arduino officially supports:
|
1 2 3 4 |
MicroPython |
and other high-level language workflows on Portenta C33.
The:
|
1 2 3 4 5 6 |
200 MHz Cortex-M33 512 KB SRAM 16 MB external Flash |
make it substantially more comfortable for high-level scripting than small AVR or SAMD boards.
Li-Po Battery Support
The board includes support for a:
|
1 2 3 4 |
3.7 V single-cell Li-Po |
through its battery connector and PMIC.
The current full pinout contains an important warning:
|
1 2 3 4 |
the battery must have an NTC cable |
because the charger expects battery-temperature monitoring.
+3V3_EXT Is Not the MCU 3.3 V Rail
This is a particularly important Portenta C33 power detail.
The pinout explicitly states:
|
1 2 3 4 5 6 |
+3V3_EXT is not the same +3V3 that powers the microcontroller |
Instead:
|
1 2 3 4 5 |
+3V3_EXT → separate PMIC-generated net |
Do not assume every 3.3 V label on the board refers to the same power domain.
VIN and 5 V
The main headers expose:
|
1 2 3 4 5 6 7 |
VIN +5V outputs +3V3_EXT GND |
Power design should follow the official Portenta C33 datasheet rather than UNO-style assumptions.
Portenta H7 Compatibility
Arduino describes Portenta C33 as backward-compatible with the Portenta H7 form factor.
It is compatible with the Portenta carrier/shield ecosystem through the:
|
1 2 3 4 5 6 |
MKR-style headers + two 80-pin high-density connectors |
However, physical connector compatibility does not mean every H7-specific software feature is automatically available.
What C33 Does Not Have from H7
Portenta C33 is a streamlined board.
Compared with H7 it does not provide the same:
- dual-core M7/M4 architecture;
- 480 MHz M7 performance;
- 8 MB SDRAM;
- MIPI DSI display interface;
- camera DCMI-oriented feature set;
- DisplayPort-over-USB-C workflow.
Its focus is instead:
|
1 2 3 4 5 6 7 |
cost-effective secure real-time industrial IoT |
Common Mistake 1: Applying 5 V to GPIO
The C33 is a:
|
1 2 3 4 |
3.3 V logic platform |
Use proper voltage translation where necessary.
Common Mistake 2: Assuming H7 and C33 Are Electrically Identical
The carrier form factor is compatible, but:
|
1 2 3 4 5 6 |
STM32H747 ≠ RA6M5 |
Peripheral capabilities, pin functions, memory and software architecture differ.
Common Mistake 3: Connecting CANH/CANL Directly
CAN0 and CAN1 pins are logic-level TX/RX signals.
Use a proper CAN transceiver for each physical network.
Common Mistake 4: Ignoring the 8 mA GPIO Limit
Portenta C33 has lower pin-current limits than many users expect from older Arduino boards.
Use external load drivers.
Common Mistake 5: Assuming +3V3_EXT Is the MCU Supply Rail
It is a separate PMIC-generated rail.
Read the carrier power requirements before tying rails together.
Common Mistake 6: Using a Two-Wire Li-Po Without Temperature Sense
The official pinout warns that the battery:
|
1 2 3 4 |
must have NTC cable |
for the onboard charging system.
Common Mistake 7: Assuming Every HDC Bus Has a Ready-Made Arduino Object
The physical connectors expose many RA6M5 peripheral signals.
Some advanced functions may require:
- custom Renesas FSP configuration;
- lower-level core APIs;
- carrier-specific libraries.
Quick Main-Header Reference
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
D0 P105 PWM D1 P106 PWM D2 P111 PWM D3 P303 PWM D4 P401 PWM D5 P210 PWM D6 P601 PWM D7 P402 SPI CS D8 P900 SPI COPI D9 P204 SPI SCK D10 P315 SPI CIPO D11 P407 I2C SDA D12 P408 I2C SCL D13 P110 UART RX D14 P602 UART TX |
Quick Analogue Reference
|
1 2 3 4 5 6 7 8 9 10 11 |
A0 P006 AN006 A1 P005 AN005 A2 P004 AN004 A3 P002 AN002 A4 P001 AN001 A5 P015 AN013 / DAC1 A6 P014 AN012 / DAC0 A7 high-density ADC |
Quick High-Density Reference
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
J1 / J2 expose: 100Mb Ethernet CAN0 CAN1 USB0 USB1 UART0-UART3 I2C0-I2C2 SPI0 SPI1 SD card / SDHI I2S GPIO0-GPIO6 PWM0-PWM9 ADC A0-A7 ADC VREF SWD / SWO power rails battery / PMIC control |
Final Thoughts
The Arduino Portenta C33 is best understood as:
|
1 2 3 4 5 6 7 |
a secure single-core 200 MHz Cortex-M33 industrial IoT module in the Portenta carrier ecosystem |
The normal MKR-style header provides familiar Arduino wiring:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
SPI → D7-D10 I2C → D11-D12 UART → D13-D14 ADC → A0-A6 DAC → A5 and A6 |
while the two 80-pin connectors add:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
dual CAN Ethernet multiple UARTs multiple I2C buses multiple SPI buses SD I2S extra GPIO extra PWM extra ADC debug power-management signals |
Compared with Portenta H7, C33 gives up the dual-core STM32H747, large SDRAM and high-end multimedia interfaces in exchange for a simpler, lower-cost architecture centred on:
|
1 2 3 4 5 6 7 8 9 |
RA6M5 TrustZone Secure Crypto Engine 9 SE050C2 ESP32-C3 wireless industrial connectivity |
For the higher-performance dual-core alternative, see our Arduino Portenta H7 pinout guide. For a maker-oriented STM32H747 board, see our Arduino GIGA R1 WiFi pinout guide.