Arduino Portenta C33

Overview

The Portenta C33 is a powerful System-on-Module based on the Renesas RA6M5 microcontroller group, which utilizes the high-performance Arm® Cortex®-M33 core. The Portenta C33 shares the same form factor as the Portenta H7 and is backward compatible with it, making it fully compatible with all Portenta family shields and carriers through its High-Density connectors.

Hardware

  • Renesas RA6M5 ARM Cortex-M33 processor at 200 MHz

  • 24 MHz crystal oscillator

  • 32.768 kHz crystal oscillator for RTC

  • 2 MB flash memory and 512 KiB of RAM

  • 16 MB external QSPI flash

  • One RGB user LED

  • One reset button

  • NXP SE050 secure element

  • Onboard 10/100 Ethernet PHY

  • WiFi + Bluetooth via ESP32-C3 running esp-hosted [3] firmware

  • Battery charger

  • MKR header connector exposing standard peripherals (UART, SPI, I2C, ADC, PWM)

  • 160 pins high density Portenta connectors exposing SD, CAN, I2S, SWD interfaces

Supported Features

The arduino_portenta_c33 board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
arduino_portenta_c33
/
r7fa6m5bh3cfc

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M33 CPU1

arm,cortex-m33

ADC

on-chip

Renesas RA ADC node1 1

renesas,ra-adc

Bluetooth

on-board

Extension of the Bluetooth H:4 HCI driver for a Renesas DA1453x based controller, allowing control of the GPIO used to reset the DA1453x1

renesas,bt-hci-da1453x

Clock control

on-board

An external clock signal driven by a PWM pin1

pwm-clock

on-chip

Renesas RA Clock Generation Circuit external clock configuration1

renesas,ra-cgc-external-clock

on-chip

Generic fixed-rate clock provider3

fixed-clock

on-chip

Renesas RA Sub-Clock1

renesas,ra-cgc-subclk

on-chip

Renesas RA Clock Generation Circuit PLL Clock1 1

renesas,ra-cgc-pll

on-chip

Renesas RA Clock Control node pclk block1

renesas,ra-cgc-pclk-block

on-chip

Renesas RA Clock Control Peripheral Clock7 6

renesas,ra-cgc-pclk

on-chip

Renesas RA External Bus Clock1

renesas,ra-cgc-busclk

Counter

on-chip

Renesas RA AGT as Counter6

renesas,ra-agt-counter

DAC

on-chip

Renesas RA DAC Controller Global1

renesas,ra-dac-global

on-chip

Renesas RA DAC Controller2

renesas,ra-dac

Ethernet

on-chip

Renesas RA Ethernet1

renesas,ra-ethernet

on-board

Generic MII PHY1

ethernet-phy

Flash controller

on-chip

Renesas RA family flash high-performance controller1

renesas,ra-flash-hp-controller

GPIO & Headers

on-chip

Renesas RA GPIO I/O Port12

renesas,ra-gpio-ioport

on-board

GPIO pins exposed on Arduino MKR headers1

arduino-mkr-header

I2C

on-chip

Renesas RA I2C Master controller2 1

renesas,ra-iic

Interrupt controller

on-chip

ARMv8-M NVIC (Nested Vectored Interrupt Controller)1

arm,v8m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

MDIO

on-chip

Renesas RA External MDIO controller1

renesas,ra-mdio

Miscellaneous

on-chip

Renesas RA Event Link Controller1

renesas,ra-elc

on-chip

Renesas RA SCI controller2 8

renesas,ra-sci

on-chip

Renesas RA AGT6

renesas,ra-agt

on-chip

Renesas RA External Interrupt2 14

renesas,ra-external-interrupt

MMU / MPU

on-chip

ARMv8-M MPU (Memory Protection Unit)1

arm,armv8m-mpu

MTD

on-chip

Flash memory binding for Renesas RA Code flash region1

renesas,ra-nv-code-flash

on-board

Fixed partitions of a flash (or other non-volatile storage) memory2

fixed-partitions

on-chip

Flash memory binding for Renesas RA Data flash region1

renesas,ra-nv-data-flash

PHY

on-chip

This binding is to be used by all the usb transceivers which are built-in with USB IP1

usb-nop-xceiv

on-chip

Renesas RA USBHS internal PHY controller1

renesas,ra-usbphyc

Pin control

on-chip

Renesas RA Pin Controller1

renesas,ra-pinctrl-pfs

PWM

on-chip

Renesas RA Pulse Width Modulation2 8

renesas,ra-pwm

Regulator

on-board

Fixed voltage regulators1

regulator-fixed

RNG

on-chip

Renesas RA SCE9 TRNG1

renesas,ra-sce9-rng

Serial controller

on-chip

Renesas RA SCI UART controller2 8

renesas,ra-sci-uart

SPI

on-chip

Renesas RA SPI controller1 1

renesas,ra-spi

SRAM

on-chip

Generic on-chip SRAM1

mmio-sram

Timer

on-chip

ARMv8-M System Tick1

arm,armv8m-systick

USB

on-chip

Renesas RA USB full-speed controller1

renesas,ra-usbfs

on-chip

Renesas RA USB device controller1 1

renesas,ra-udc

on-chip

Renesas RA USB high-speed controller1

renesas,ra-usbhs

Watchdog

on-chip

Renesas RA Watchdog (wdt)1

renesas,ra-wdt

Wi-Fi

on-board

Espressif ESP-Hosted WiFi1

espressif,esp-hosted

Connections and IOs

The Arduino store [1] has detailed information about board connections. Download the Arduino Portenta C33 Schematic [2] for more details.

Serial Port

The Portenta C33 exposes 4 serial ports with hardware flow control.

PWM

The Portenta C33 exposes 10 dedicated independent PWM pins.

USB Device Port

The RA6M5 MCU has an high speed USB device port that can be used to communicate with a host PC. See the USB device support sample applications for more, such as the USB CDC-ACM sample which sets up a virtual serial port that echos characters back to the host PC. A second full speed USB interface is exposed on the high density connectors.

DAC

The RA6M5 MCU has two DACs with 12 bits of resolution. On the Arduino Portenta C33, the DACs are available on pins A5 and A6.

Programming and Debugging

The arduino_portenta_c33 board supports the runners and associated west commands listed below.

flash debug rtt debugserver attach
dfu-util ✅ (default)
jlink ✅ (default)
pyocd

The Arduino Portenta C33 ships with a DFU compatible bootloader. The bootloader can be entered by quickly tapping the reset button twice.

Flashing

  1. Build the Zephyr kernel and the Hello World sample application:

    west build -b arduino_portenta_c33 samples/hello_world
    
  2. Connect the Portenta C33 to your host computer using USB

  3. Connect a 3.3 V USB to serial adapter to the board and to the host. See the Serial Port section above for the board’s pin connections.

  4. Run your favorite terminal program to listen for output. Under Linux the terminal should be /dev/ttyACM0. For example:

    $ minicom -D /dev/ttyACM0 -o
    

    The -o option tells minicom not to send the modem initialization string. Connection should be configured as follows:

    • Speed: 115200

    • Data: 8 bits

    • Parity: None

    • Stop bits: 1

  5. Tap the reset button twice quickly to enter bootloader mode

  6. Flash the image:

    west build -b arduino_portenta_c33 samples/hello_world
    west flash
    

    You should see “Hello World! arduino_portenta_c33” in your terminal.

References