Arduino GIGA R1 WiFi: Powering the Next Generation of Embedded Projects
The Arduino GIGA R1 WiFi is a high-performance, dual-core microcontroller board designed for complex IoT applications and demanding embedded projects.

The Arduino GIGA R1 WiFi represents a significant leap forward in Arduino's microcontroller offerings, bridging the gap between hobbyist accessibility and professional-grade performance. At its heart lies the STMicroelectronics STM32H747XI, a powerful dual-core ARM Cortex-M7 and Cortex-M4 processor, enabling sophisticated multitasking and parallel processing capabilities. This board is designed for makers, students, and embedded engineers who require more computational power, memory, and connectivity than traditional Arduino boards can provide.
Positioned as a high-end board within the Arduino ecosystem, the GIGA R1 WiFi is suitable for applications that push the boundaries of what's typically achievable with a microcontroller. Its dual-core architecture allows for complex real-time control on one core while handling higher-level tasks like networking or user interfaces on the other. This makes it ideal for projects involving machine learning at the edge, advanced sensor fusion, real-time audio processing, or complex industrial automation.
Released around 2023, the GIGA R1 WiFi builds upon the legacy of powerful STM32-based Arduino boards like the Portenta H7, offering a more accessible form factor and a familiar Arduino IDE programming environment. Its robust feature set, including extensive I/O, high-speed interfaces, and integrated WiFi/Bluetooth, makes it a versatile platform for a wide range of applications, from advanced robotics and IoT gateways to sophisticated data acquisition systems and interactive installations.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | STMicroelectronics STM32H747XI (Dual-Core: 1x ARM Cortex-M7 @ 480 MHz, 1x ARM Cortex-M4 @ 240 MHz) |
| Architecture | 32-bit ARM Cortex-M7 + Cortex-M4 |
| Clock speed | 480 MHz (Cortex-M7), 240 MHz (Cortex-M4) |
| Flash / Storage | 1 MByte (Internal Flash) |
| RAM / SRAM | 640 KByte (Internal SRAM) |
| Operating voltage | 3.3V |
| Digital I/O pins | 76 (including analog, PWM, I2C, SPI, UART) |
| Analog / ADC | 20 Analog Inputs (12-bit ADC) |
| PWM | 28 PWM Outputs |
| Connectivity | WiFi 802.11b/g/n, Bluetooth 5.0 |
| USB | 1x USB-C (for programming/power), 1x USB-OTG |
| Power input | 5V via USB-C or VIN pin (7-12V recommended) |
| Dimensions | 75mm x 30mm |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | 3.3V Power Output |
| GND | Ground |
| VIN | Voltage Input (7-12V recommended) |
| VBAT | Battery Input (for RTC backup) |
| NRST | Reset Pin |
| BOOT0 | Boot Mode Select |
| D0 (RX1) | Digital Pin 0 / UART1 RX |
| D1 (TX1) | Digital Pin 1 / UART1 TX |
| D2 | Digital Pin 2 |
| D3 | Digital Pin 3 |
| D4 | Digital Pin 4 |
| D5 | Digital Pin 5 |
| D6 | Digital Pin 6 |
| D7 | Digital Pin 7 |
| D8 | Digital Pin 8 |
| D9 | Digital Pin 9 / PWM |
| D10 | Digital Pin 10 / PWM |
| D11 | Digital Pin 11 / PWM |
| D12 | Digital Pin 12 / PWM |
| D13 | Digital Pin 13 / PWM |
| D14 (SCL1) | Digital Pin 14 / I2C1 SCL |
| D15 (SDA1) | Digital Pin 15 / I2C1 SDA |
| D16 (SCK1) | Digital Pin 16 / SPI1 SCK |
| D17 (MISO1) | Digital Pin 17 / SPI1 MISO |
| D18 (MOSI1) | Digital Pin 18 / SPI1 MOSI |
| D19 (CS1) | Digital Pin 19 / SPI1 CS |
| D20 | Digital Pin 20 |
| D21 | Digital Pin 21 |
| D22 | Digital Pin 22 |
| D23 | Digital Pin 23 |
| D24 | Digital Pin 24 |
| D25 | Digital Pin 25 |
| D26 | Digital Pin 26 |
| D27 | Digital Pin 27 |
| D28 | Digital Pin 28 |
| D29 | Digital Pin 29 |
| D30 | Digital Pin 30 |
| D31 | Digital Pin 31 |
| D32 | Digital Pin 32 |
| D33 | Digital Pin 33 |
| D34 | Digital Pin 34 |
| D35 | Digital Pin 35 |
| D36 | Digital Pin 36 |
| D37 | Digital Pin 37 |
| D38 | Digital Pin 38 |
| D39 | Digital Pin 39 |
| D40 | Digital Pin 40 |
| D41 | Digital Pin 41 |
| A0 | Analog Input 0 / Digital Pin 42 |
| A1 | Analog Input 1 / Digital Pin 43 |
| A2 | Analog Input 2 / Digital Pin 44 |
| A3 | Analog Input 3 / Digital Pin 45 |
| A4 | Analog Input 4 / Digital Pin 46 |
| A5 | Analog Input 5 / Digital Pin 47 |
| A6 | Analog Input 6 / Digital Pin 48 |
| A7 | Analog Input 7 / Digital Pin 49 |
| A8 | Analog Input 8 / Digital Pin 50 |
| A9 | Analog Input 9 / Digital Pin 51 |
| A10 | Analog Input 10 / Digital Pin 52 |
| A11 | Analog Input 11 / Digital Pin 53 |
| A12 | Analog Input 12 / Digital Pin 54 |
| A13 | Analog Input 13 / Digital Pin 55 |
| A14 | Analog Input 14 / Digital Pin 56 |
| A15 | Analog Input 15 / Digital Pin 57 |
| A16 | Analog Input 16 / Digital Pin 58 |
| A17 | Analog Input 17 / Digital Pin 59 |
| A18 | Analog Input 18 / Digital Pin 60 |
| A19 | Analog Input 19 / Digital Pin 61 |
| USB_FS_DP | USB Full Speed Data Plus |
| USB_FS_DM | USB Full Speed Data Minus |
| USB_HS_DP | USB High Speed Data Plus |
| USB_HS_DM | USB High Speed Data Minus |
Wiring & circuit basics
Powering the Arduino GIGA R1 WiFi requires careful consideration to ensure stability and prevent damage. The board can be powered via its USB-C port, which typically supplies 5V. Alternatively, the VIN pin can accept a wider voltage range, generally between 7V and 12V, which is then regulated down to 3.3V for the core components. Always ensure your power supply can provide sufficient current, especially when driving numerous peripherals or high-power modules. Avoid exceeding the recommended VIN voltage, as this can damage the onboard voltage regulator.
The Arduino GIGA R1 WiFi operates at a logic level of 3.3V. This is crucial when interfacing with external components. Connecting a 5V device directly to a 3.3V input pin can cause permanent damage to the microcontroller. Conversely, a 3.3V output from the GIGA R1 WiFi might not be recognized by a 5V-tolerant input. For interfacing with 5V logic devices, use a logic level shifter. For example, to blink an LED, connect an LED's anode to a digital pin (e.g., D13) through a current-limiting resistor (typically 220-330 ohms) and the LED's cathode to a GND pin. Ensure the resistor value is appropriate for the LED's forward voltage and current requirements.
When connecting I2C devices, which are common for sensors, use the designated SDA and SCL pins. On the GIGA R1 WiFi, these are typically D15 (SDA1) and D14 (SCL1). Remember that I2C is a two-wire bus, and all devices share these lines. Each I2C device needs a unique address. Ensure your sensor is compatible with 3.3V logic or use a level shifter if it operates at 5V. Connect the sensor's VCC to the 3.3V pin, GND to a GND pin, SDA to D15, and SCL to D14.
Programming & getting started
The Arduino GIGA R1 WiFi is primarily programmed using the Arduino IDE, which offers a familiar and accessible environment for most makers. You'll need to install the correct board support package for the STM32H7 series. This is typically done through the Board Manager in the IDE. Once installed, select the 'Arduino GIGA R1 WiFi' from the board list. Connect the board via USB-C, select the correct COM port, and upload your sketch. The board also supports MicroPython and CircuitPython, offering alternative programming environments for those who prefer Python. For advanced users, the ESP-IDF or PlatformIO can also be leveraged for more complex projects and fine-grained control.