MakerLab
ArduinoArduino GIGA R1 WiFi

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.

Arduino GIGA R1 WiFi

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 / SoCSTMicroelectronics STM32H747XI (Dual-Core: 1x ARM Cortex-M7 @ 480 MHz, 1x ARM Cortex-M4 @ 240 MHz)
Architecture32-bit ARM Cortex-M7 + Cortex-M4
Clock speed480 MHz (Cortex-M7), 240 MHz (Cortex-M4)
Flash / Storage1 MByte (Internal Flash)
RAM / SRAM640 KByte (Internal SRAM)
Operating voltage3.3V
Digital I/O pins76 (including analog, PWM, I2C, SPI, UART)
Analog / ADC20 Analog Inputs (12-bit ADC)
PWM28 PWM Outputs
ConnectivityWiFi 802.11b/g/n, Bluetooth 5.0
USB1x USB-C (for programming/power), 1x USB-OTG
Power input5V via USB-C or VIN pin (7-12V recommended)
Dimensions75mm x 30mm

Pinout & pin functions

PinFunction
3V33.3V Power Output
GNDGround
VINVoltage Input (7-12V recommended)
VBATBattery Input (for RTC backup)
NRSTReset Pin
BOOT0Boot Mode Select
D0 (RX1)Digital Pin 0 / UART1 RX
D1 (TX1)Digital Pin 1 / UART1 TX
D2Digital Pin 2
D3Digital Pin 3
D4Digital Pin 4
D5Digital Pin 5
D6Digital Pin 6
D7Digital Pin 7
D8Digital Pin 8
D9Digital Pin 9 / PWM
D10Digital Pin 10 / PWM
D11Digital Pin 11 / PWM
D12Digital Pin 12 / PWM
D13Digital 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
D20Digital Pin 20
D21Digital Pin 21
D22Digital Pin 22
D23Digital Pin 23
D24Digital Pin 24
D25Digital Pin 25
D26Digital Pin 26
D27Digital Pin 27
D28Digital Pin 28
D29Digital Pin 29
D30Digital Pin 30
D31Digital Pin 31
D32Digital Pin 32
D33Digital Pin 33
D34Digital Pin 34
D35Digital Pin 35
D36Digital Pin 36
D37Digital Pin 37
D38Digital Pin 38
D39Digital Pin 39
D40Digital Pin 40
D41Digital Pin 41
A0Analog Input 0 / Digital Pin 42
A1Analog Input 1 / Digital Pin 43
A2Analog Input 2 / Digital Pin 44
A3Analog Input 3 / Digital Pin 45
A4Analog Input 4 / Digital Pin 46
A5Analog Input 5 / Digital Pin 47
A6Analog Input 6 / Digital Pin 48
A7Analog Input 7 / Digital Pin 49
A8Analog Input 8 / Digital Pin 50
A9Analog Input 9 / Digital Pin 51
A10Analog Input 10 / Digital Pin 52
A11Analog Input 11 / Digital Pin 53
A12Analog Input 12 / Digital Pin 54
A13Analog Input 13 / Digital Pin 55
A14Analog Input 14 / Digital Pin 56
A15Analog Input 15 / Digital Pin 57
A16Analog Input 16 / Digital Pin 58
A17Analog Input 17 / Digital Pin 59
A18Analog Input 18 / Digital Pin 60
A19Analog Input 19 / Digital Pin 61
USB_FS_DPUSB Full Speed Data Plus
USB_FS_DMUSB Full Speed Data Minus
USB_HS_DPUSB High Speed Data Plus
USB_HS_DMUSB 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.

Project ideas

Advanced IoT GatewayBuild a sophisticated IoT gateway that collects data from multiple sensors (using I2C and SPI), processes it locally with the dual-core processors, and transmits it wirelessly via WiFi to a cloud platform. This project leverages the GIGA R1 WiFi's processing power, extensive I/O, and wireless connectivity, teaching about data aggregation, local processing, and cloud integration.
Real-time Audio VisualizerCreate a device that captures audio input (e.g., via an external microphone module) and generates dynamic visual patterns on an attached display (e.g., an SPI TFT screen). This project utilizes the high clock speeds and processing capabilities of the Cortex-M7 core for audio analysis and the Cortex-M4 for driving the display, teaching about real-time signal processing and embedded graphics.
Edge AI Machine Learning ModelDeploy a lightweight machine learning model (e.g., for keyword spotting or simple object detection) directly onto the GIGA R1 WiFi. The dual-core architecture allows one core to run the ML inference while the other handles sensor data acquisition and communication. This project teaches the fundamentals of edge AI, model optimization, and embedded machine learning.
Robotics Control HubDesign a central control unit for a complex robot. The GIGA R1 WiFi can manage multiple motor controllers (via PWM), read data from various sensors (IMU, encoders, distance sensors), and communicate wirelessly for remote operation or telemetry. This project highlights the board's extensive PWM outputs, ADC inputs, and communication interfaces for advanced robotics.
Industrial Automation MonitorDevelop a system to monitor industrial equipment. The board can read analog sensor data (e.g., temperature, pressure) via its 12-bit ADCs, process fault conditions, and send alerts over Ethernet (using an external module) or WiFi. This project demonstrates the board's suitability for industrial environments requiring reliable data acquisition and communication.
Custom USB DeviceProgram the GIGA R1 WiFi to act as a custom USB Human Interface Device (HID), such as a programmable keyboard or a specialized controller for a game or application. This project utilizes the USB OTG capabilities and the processing power to emulate complex USB interactions.

Buying tips & gotchas

When purchasing the Arduino GIGA R1 WiFi, ensure you are buying from authorized distributors to avoid counterfeit or modified boards. Be aware that while it supports the Arduino IDE, some advanced features or specific STM32 peripherals might require deeper dives into the STM32Cube ecosystem or specialized libraries. Common pitfalls include misinterpreting the 3.3V logic level, which can lead to damaged components if not handled with level shifters when interfacing with 5V devices. Accessories that complement the GIGA R1 WiFi include high-quality USB-C cables, appropriate power supplies, and a range of sensors and actuators compatible with 3.3V logic. Consider investing in an external debugger like a J-Link for more advanced debugging scenarios.