Arduino GIGA R1 Camera, Display and Audio Guide

Arduino GIGA R1 camera, display and audio guide: use the 20-pin camera connector, GIGA Display Shield, 8 MB SDRAM framebuffers, dual 12-bit DACs, microphone input and Arduino multimedia libraries.

The Arduino GIGA R1 WiFi is unusual among Arduino boards because it combines high-performance processing with dedicated hardware for:

  • camera input;
  • high-resolution displays;
  • touch interfaces;
  • stereo analogue audio output;
  • microphone input;
  • large framebuffers.

At the centre of the board is the:

supported by:

That combination makes the GIGA much better suited to multimedia work than a traditional UNO, Mega or Due.

Quick Multimedia Reference

Feature GIGA R1 WiFi
Camera connector 20-pin dedicated connector
Supported Arduino camera families OV7670, OV7675, GC2145, HM01B0
Camera digital pins D54-D67
Display connector GPIO D68-D75 plus dedicated DSI signals
External SDRAM 8 MB
External Flash 16 MB
GIGA Display Shield 3.97-inch 480×800 / 800×480 orientation, touch
Display libraries Arduino_H7_Video, LVGL, GFX, ArduinoGraphics
Touch library Arduino_GigaDisplayTouch
Audio output 2 × 12-bit DAC
DAC0 A12 / D84 / right audio channel
DAC1 A13 / D85 / left audio channel
Microphone input A7 / D83
Audio connector 3.5 mm TRRS

Why the 8 MB SDRAM Matters

Large displays and cameras consume RAM quickly.

For example, a:

requires approximately:

A double-buffered display can therefore consume around:

before any application data, networking or graphics assets are considered.

The GIGA’s:

makes these workloads practical.

Camera Connector

The GIGA includes a dedicated:

designed to accept compatible camera breakout boards directly.

Arduino’s current Camera library supports:

  • OV7670;
  • OV7675;
  • GC2145;
  • Himax HM01B0.

The connector provides:

  • 3.3 V;
  • ground;
  • I2C control;
  • parallel image data;
  • pixel clock;
  • horizontal reference;
  • vertical synchronisation;
  • camera power/control signals.

Camera Connector Digital Mapping

The camera connector uses:

for the major camera signals.

The current GIGA pinout maps:

The official connector also duplicates D66 and D67 on the 20-pin header.

Camera I2C

The camera connector includes the dedicated I2C control signals:

These are used to configure camera registers such as:

  • resolution;
  • frame rate;
  • exposure;
  • colour format;
  • sensor operating mode.

The Camera Library Is Included with the GIGA Board Core

Arduino’s current camera workflow uses the:

library bundled with the Arduino Mbed board package.

A typical OV7670 declaration begins:

For an OV7675, the sensor class can be changed accordingly.

Camera Image Formats

The official GIGA camera example uses formats such as:

for colour cameras.

Other supported camera modules can provide grayscale output.

RGB565 is useful because each pixel uses:

which balances memory use and colour quality.

Camera Frame Memory Adds Up Quickly

A 320 × 240 RGB565 frame requires:

A 640 × 480 RGB565 frame would require:

This is another reason the GIGA’s external SDRAM is important.

Stream a Camera Image over Web Serial

Arduino provides an official example that:

The example is available through the Camera examples in the Arduino IDE.

This is useful for testing a camera without first adding a physical display.

Camera Plus Display

The more interesting GIGA configuration is:

This can be used for:

  • machine vision previews;
  • inspection systems;
  • robot cameras;
  • door-entry systems;
  • embedded dashboards;
  • image-processing experiments.

Dedicated Display Connector

Next to the camera interface, the GIGA includes a dedicated display connector.

The general-purpose display GPIO group is:

and the connector also includes dedicated high-speed:

differential signals.

DSI Pins Are Not Normal GPIO

The official GIGA pinout explicitly warns that the dedicated DSI signals are:

and should not be treated as:

  • ordinary digital GPIO;
  • analogue inputs;
  • general-purpose header pins.

GIGA Display Shield

The easiest way to use the display interface is Arduino’s:

which attaches directly to the board.

It provides a:

capable of displaying up to:

The Display Shield Adds More Than a Screen

The shield also includes:

  • capacitive touch;
  • MP34DT06JTR digital MEMS microphone;
  • Bosch BMI270 6-axis IMU;
  • RGB LED;
  • camera connector.

This makes it a useful HMI platform rather than simply an LCD panel.

Arduino_H7_Video

The main Arduino video/display layer is:

which is included with the GIGA board package.

A typical initialisation is:

Touch Support

For touch input, use:

and initialise it with:

LVGL

The GIGA Display Shield supports:

which is useful for sophisticated graphical interfaces containing:

  • buttons;
  • sliders;
  • charts;
  • gauges;
  • animations;
  • menus;
  • touch controls.

Basic LVGL Display Setup

Other Graphics Libraries

Arduino also documents support for:

  • GFX;
  • ArduinoGraphics;
  • LVGL;
  • emWin;
  • AppWizard-based workflows.

This gives you a choice between lightweight drawing and full UI frameworks.

Camera Feed on the GIGA Display Shield

Arduino provides examples that combine:

including OpenMV-based workflows.

The high-level pipeline is:

Use the M7 for Graphics

For dual-core projects, the:

is the natural place for:

  • camera acquisition;
  • display rendering;
  • large framebuffers;
  • LVGL;
  • USB;
  • Wi-Fi;
  • image processing.

Use the M4 for Real-Time Control

The:

can then handle:

  • motors;
  • sensors;
  • CAN;
  • timing-sensitive control;
  • background acquisition.

The cores can exchange status and commands through RPC.

Audio Hardware

The GIGA has a built-in:

connected to:

This allows the board to both generate and capture analogue audio signals.

DAC0 and DAC1

The two STM32H747 DAC channels are:

Each DAC supports:

Microphone Input

The microphone input on the 3.5 mm jack is shared with:

That means the same analogue channel used as A7 is electrically connected to the microphone path on the jack.

Do Not Drive a Passive Speaker Directly

This is one of the most important audio warnings.

The GIGA does:

include a power amplifier for a speaker.

Arduino explicitly warns that directly connecting a non-amplified speaker can damage:

  • the DAC;
  • the GIGA board.

Use:

  • an active/powered speaker;
  • a line-level amplifier;
  • a suitable audio amplifier stage.

Arduino_AdvancedAnalog

For high-performance ADC/DAC applications, Arduino provides:

This library supports configuration of:

  • resolution;
  • sample rate;
  • buffer size;
  • queue depth;
  • DMA-driven ADC/DAC operation.

Generate a DAC Waveform

A simple buffered DAC configuration can start with:

This configures:

Fill a DAC Buffer

This demonstrates DMA/buffer-oriented waveform generation rather than repeatedly calling a slow single-sample function.

Generate Sine, Square and Sawtooth Waves

The same architecture can produce:

  • sine;
  • square;
  • triangle;
  • sawtooth;
  • arbitrary lookup-table waveforms.

This makes the GIGA useful for:

  • synthesizers;
  • signal generators;
  • control voltages;
  • test equipment;
  • audio experiments.

Advanced ADC

The STM32H747 contains three ADC blocks with configurable resolutions.

Arduino’s AdvancedAnalog library supports acquisition with parameters such as:

For example:

This is significantly more sophisticated than the simple:

workflow.

USB Audio Playback

The GIGA can combine its multimedia features into:

Arduino’s official workflow uses:

  • Arduino_AdvancedAnalog;
  • Arduino_USBHostMbed5;
  • FATFileSystem;
  • USBHostMSD.

USB Drive Format

For the official WAV playback example, Arduino specifies a USB storage device formatted as:

The USB-A port is then used as the host interface.

Why Multimedia Work Benefits from Dual Core

A complex GIGA application might need to do all of this simultaneously:

Trying to place all time-critical and high-level work into one loop can make the application harder to maintain.

A better design is:

M7

M4

Common Mistake 1: Treating DSI Signals as GPIO

The dedicated DSI differential pairs are display signals only.

Do not treat them as:

even though they appear on the physical display connector.

Common Mistake 2: Connecting the Camera from the Wrong Side

The GIGA pinout explicitly warns:

Follow the official connector orientation for the camera module.

Common Mistake 3: Forgetting Shared Pins

The camera/display expansion system shares some signals with other board functions.

For example, the camera I2C bus is shared with:

on the board headers.

Do not independently attach conflicting devices without considering bus addresses and ownership.

Common Mistake 4: Running Out of RAM

Camera and display buffers become large very quickly.

Calculate memory before choosing:

  • resolution;
  • colour depth;
  • double buffering;
  • camera frame count;
  • UI assets.

Common Mistake 5: Driving a Speaker Directly

The DAC is:

not a speaker power amplifier.

Use amplified audio hardware.

Common Mistake 6: Using Blocking Code in a UI Loop

LVGL and similar frameworks need regular servicing.

A long:

or blocking camera/network operation can make the UI appear frozen.

Use:

  • non-blocking state machines;
  • threads;
  • dual-core task separation;
  • buffered I/O.

Quick Camera Reference

Quick Display Reference

Quick Audio Reference

Final Thoughts

The GIGA R1 WiFi is one of the few Arduino boards that can realistically combine:

  • camera capture;
  • large graphical UI;
  • touch input;
  • stereo DAC output;
  • microphone input;
  • USB storage;
  • Wi-Fi;
  • real-time control.

The hardware that makes this possible is the combination of:

For a camera project, start with one of Arduino’s supported camera modules and the bundled Camera library.

For an HMI, the GIGA Display Shield plus Arduino_H7_Video and LVGL is the easiest high-level route.

For audio, use Arduino_AdvancedAnalog when you need buffered, high-rate ADC/DAC operation, and always use a proper amplified audio output stage.

For full board pin mapping, see our Arduino GIGA R1 WiFi pinout guide. For splitting multimedia and real-time workloads between processors, see our GIGA R1 dual-core M7/M4 guide. For USB storage and peripherals, see the GIGA R1 USB Host guide.

Share your love