Arduino Portenta C33: Your Gateway to Advanced Embedded Projects
A powerful and versatile microcontroller board designed for IoT and embedded applications, featuring Wi-Fi and Bluetooth connectivity.
The Arduino Portenta C33 is a robust and feature-rich development board designed for professional makers, students, and embedded engineers looking to build sophisticated IoT and embedded systems. It bridges the gap between hobbyist-friendly platforms and industrial-grade solutions, offering a compelling blend of performance, connectivity, and ease of use.
At the heart of the Portenta C33 is the NXP i.MX RT1176, a high-performance crossover microcontroller. This SoC combines the real-time capabilities of a microcontroller with the high processing power typically found in application processors. It features a dual-core architecture: a 1GHz Arm Cortex-M7 core for demanding tasks and a 400MHz Arm Cortex-M4 core for real-time control and low-power operations. This dual-core design allows for efficient multitasking and optimized performance for complex applications.
Positioned within the Portenta family, the C33 offers a more accessible entry point compared to its higher-end siblings like the Portenta H7, while still providing significant processing power and integrated wireless connectivity. It's an ideal choice for projects requiring reliable wireless communication, advanced sensor processing, and the ability to run complex algorithms, making it suitable for applications in industrial automation, smart agriculture, robotics, and advanced consumer electronics.
The board's design emphasizes flexibility and industrial robustness, making it suitable for both prototyping and deployment in real-world scenarios. Its integrated Wi-Fi and Bluetooth capabilities simplify the development of connected devices, reducing the need for external modules and streamlining the design process. The Portenta C33 is for makers who need more than a basic microcontroller but don't necessarily require a full-fledged Linux-based single-board computer.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | NXP i.MX RT1176 |
| Architecture | Dual-core: 1GHz Arm Cortex-M7 + 400MHz Arm Cortex-M4 |
| Clock speed | Up to 1GHz (Cortex-M7), Up to 400MHz (Cortex-M4) |
| Flash / Storage | 16MB Quad-SPI Flash |
| RAM / SRAM | 8MB SDRAM |
| Operating voltage | 3.3V |
| Digital I/O pins | 27 (configurable) |
| Analog / ADC | Up to 12 ADC channels (16-bit) |
| PWM | Multiple PWM channels available on various GPIOs |
| Connectivity | Wi-Fi 802.11b/g/n, Bluetooth 5.0 |
| USB | 1x USB-C (for power and programming), 1x USB Host (Type-A) |
| Power input | 5V via USB-C or VIN pin |
| Dimensions | 67.6mm x 25mm |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | Power output (3.3V) |
| GND | Ground |
| VIN | Power input (5V) |
| RESET | System reset |
| BOOT | Boot mode selection |
| D0 / RX1 | Serial 1 RX |
| D1 / TX1 | Serial 1 TX |
| D2 | GPIO |
| D3 | GPIO |
| D4 | GPIO |
| D5 | GPIO |
| D6 | GPIO |
| D7 | GPIO |
| D8 | GPIO |
| D9 | GPIO |
| D10 / SS1 | SPI 1 Slave Select |
| D11 / MOSI1 | SPI 1 MOSI |
| D12 / MISO1 | SPI 1 MISO |
| D13 / SCK1 | SPI 1 SCK |
| D14 / SDA | I2C SDA |
| D15 / SCL | I2C SCL |
| D16 | GPIO |
| D17 | GPIO |
| D18 / TX2 | Serial 2 TX |
| D19 / RX2 | Serial 2 RX |
| A0 | Analog Input (ADC) |
| A1 | Analog Input (ADC) |
| A2 | Analog Input (ADC) |
| A3 | Analog Input (ADC) |
| A4 | Analog Input (ADC) |
| A5 | Analog Input (ADC) |
| USB_DP | USB Data Plus |
| USB_DM | USB Data Minus |
Wiring & circuit basics
The Arduino Portenta C33 operates at a logic level of 3.3V. When connecting external components, it is crucial to ensure compatibility. Connecting 5V devices directly to 3.3V GPIO pins may cause damage. For components requiring 5V logic, a level shifter is recommended. Powering the board can be done via the USB-C port or the VIN pin, which accepts a 5V input. The onboard voltage regulators will step this down to the necessary 3.3V for the microcontroller and peripherals.
When powering the board, ensure your power supply can provide at least 1A, especially if utilizing the Wi-Fi or Bluetooth features, or if connecting power-hungry peripherals. Avoid exceeding the 5V limit on the VIN pin. Always connect ground (GND) pins together between the Portenta C33 and any external modules to establish a common reference voltage.
For a basic LED circuit, connect a digital GPIO pin (e.g., D2) through a current-limiting resistor (typically 220-330 ohms) to an LED's anode, and connect the LED's cathode to a GND pin. For an I2C sensor, connect the sensor's SDA pin to the Portenta's D14 (SDA) pin, the sensor's SCL pin to the Portenta's D15 (SCL) pin, the sensor's VCC to the 3V3 pin, and the sensor's GND to the Portenta's GND pin. Remember to enable the internal pull-up resistors for I2C communication if the sensor does not have them.
Programming & getting started
The Arduino Portenta C33 can be programmed using the Arduino IDE, which offers a familiar environment for many makers. To get started, ensure you have the latest version of the Arduino IDE installed and add the Portenta board support via the Board Manager. You can also leverage more advanced toolchains like PlatformIO, which integrates with various IDEs and offers robust build management and debugging capabilities. For bare-metal development or RTOS integration, the NXP SDK and ESP-IDF can also be utilized.
To upload your first sketch, connect the Portenta C33 to your computer via the USB-C port. Select the 'Arduino Portenta C33' from the Boards menu in the Arduino IDE, choose the correct COM port, and upload your sketch. The board will automatically enter bootloader mode for flashing. For a simple 'Blink' example, you would typically use a digital pin connected to an LED and toggle it within the loop function.