Contents
- Introduction
- Software Version List
- How to Startup
- How to Check Functions
- Tips
- Known Issues & Restrictions
- Support
Introduction
This is the Yocto BSP page for Sparrow Hawk.
Software Version List
| Software | Version |
|---|---|
| Yocto Project | 5.0.14 |
| Linux kernel | 6.12.58 |
| U-Boot | 2025.10 |
| Arm Trusted Firmware | 2.14.0 |
How to Startup
If you want to quickly start, please start 3.1.1. Quick preparation: download binary.
If you want to normally start, please start 3.1.2. Normal preparation: build source code.
Preparation of the software
Quick preparation: download binary
- Download binary from GitHub
- Bootloader: ipl-burning.zip
- BSP(either of the following BSP)
- In case of BSP: core-image-minimal-sparrow-hawk.rootfs.wic.gz
- In case of BSP + 3D Graphics: core-image-weston-sparrow-hawk.rootfs.wic.gz
- Unzip download zip file
unzip ipl-burning.zipNext, jump to 3.2. How to flash.
Normal preparation: build source code
git clone https://github.com/rcar-community/meta-sparrow-hawk -b scarthgap
cd meta-sparrow-hawk
In case of BSP:
./build.sh
In case of BSP + 3D Graphics:
./build.sh --weston
Next, jump to 3.2. How to flash.
How to flash
Flashing loader
Run script in ipl-burning directory(Linux: run.sh, Windows: run.bat). If using Linux host PC, please install python3 and pip command on your system before running the script and close other console which uses serial port of the board before executing the script.
Note:
- This script use serial device /dev/ttyUSB* in Linux. But, it cannot be accessed from user without previledged right by default settings. Please use sudo command or add current user into dialout group.
Note:
- Please change the Mode Switch(=SW2) according to the ipl-burning(run.sh or run.bat).
Flashing OS image into SD card
- Linux case
- In case of BSP:
gzip -cd core-image-minimal-sparrow-hawk.rootfs.wic.gz | sudo dd of=<device file> bs=1M status=progress && sync - In case of BSP + 3D Graphics
gzip -cd core-image-weston-sparrow-hawk.rootfs.wic.gz | sudo dd of=<device file> bs=1M status=progress && sync
- In case of BSP:
- Windows case
- Extract gzip image using 7zip or similer software.
- Flash extracted image into SD card using Etcher, win disk imager, and so on.
How to boot
- Insert the SD card into CN1 which is bottom of the board.
- Open terminal application and open serial device.
- Press SW1 to power on the board.
- After booting U-Boot, please press any key while showing “Hit any key to stop autoboot:” to enter U-Boot shell.
- Input following command into U-Boot shell and press enter key.
env default -a; boot - If command and environment is correct, Linux kernel log will output.
If you want to boot OS image automatically when power on the board, please run following to setup autoboot. Run following command:
env default -a
saveenv
After that, OS image boots automatically when power on the board.
How to Check Functions
Software support list
| Function | Status(minamal) | Status(weston) |
|---|---|---|
| CAN | Supported | Supported |
| Ethernet | Supported | Supported |
| Audio(Output/Input) | Supported | Supported |
| Display Port | Supported | Supported |
| GPIO | Supported | Supported |
| I2C | Supported | Supported |
| JTAG | Supported | Supported |
| USB3.0 | Not supported | Not supported |
| UART | Supported | Supported |
| Thermal | Supported | Supported |
| M.2 | Not supported | Not supported |
| Pi Camera | Supported | Supported |
| Pi Display | Supported | Supported |
| PCIe Endpoint | Not supported | Not supported |
| Pi Active Cooler | Supported | Supported |
| GPU | Not supported | Supported |
| AI Accelerator | Not supported | Not supported |
| Desktop(GUI) | Not supported | Supported |
Note:
- “Supported”: Function scceeded in the simple test as below.
- “Not supported”: Function isn’t supported.
CAN
Loop back
- Connect the following pins of CONN2: Connect Pin1(CAN1L) - Pin2(CAN0L) and Pin5(CAN1H) - Pin6(CAN0H)
- Execute following commands on Linux:
ip link set can0 up type can restart-ms 100 bitrate 1000000 dbitrate 5000000 fd on ip link set can1 up type can restart-ms 100 bitrate 1000000 dbitrate 5000000 fd on candump can0 & cangen can1 -I i -L i -D i -f -n 16 killall candump candump can1 & cangen can0 -I i -L i -D i -f -n 16 killall candump
Audio
- Connect headset/earphone/Speaker to CONN3.
- (if possible) Connect audio output like a smartphone to CONN4.
- Setup(Mix Aux in and Headset mic and setup audio output via CONN3)
amixer set "Headphone" 40% amixer set "Headphone" on amixer set "Mixout Left DAC Left" on amixer set "Mixout Right DAC Right" on amixer set "Aux" on amixer set "Aux" 80% amixer set "Mixin PGA" on amixer set "Mixin PGA" 50% amixer set "ADC" on amixer set "ADC" 80% amixer set "Mixin Left Aux Left" on amixer set "Mixin Right Aux Right" on amixer set "Mic 1" on amixer set "Mic 1" 80% amixer set "Mixin Left Mic 1" on amixer set "Mixin Right Mic 1" on - Test function
- Recording and Playback test(5sec)
arecord -D hw:0,0 -t wav -d 5 -c 2 -r 48000 -f S16_LE | aplay - Only Playback test
speaker-test -c 2 -t wav -W /usr/share/sounds/alsa/
- Recording and Playback test(5sec)
GPIO
Toggle GP2_12(Pin11 on Pin Header)
- Connect LED or Oscilloscope to the board
- Execute following command
python3 /usr/bin/example-apps/toggle_gpio_GP2_12.py
For more examples, please see also https://github.com/brgl/libgpiod/raw/refs/heads/master/bindings/python/examples
I2C
- Detect I2C device
i2c-detect -r 3 i2c-detect -r 4
Please search i2c-tools to use other commands(i2cdump, i2cget, i2cset, i2ctransfer).
UART
Loop back
- Connect UART TX and RX(pin 8 and pin 10) on PinHeader.
- Execute following commands:
stty -F /dev/ttySC2 -echo cat /dev/ttySC2 & echo Hello > /dev/ttySC2
Thermal
- Check SoC temperature
cat /sys/class/thermal/thermal_zone*/temp # ex.) 55000 # (Unit is millicelsius => 55.000 °C) -
Thermal throttling
CA76 core temp function ~ 68°C Normal operation 68 ~ 100 °C CPU clock is limited 100 °C System is shutdown forcely -
Measurement point
zone Measurement point thermal_zone0 CR52 thermal_zone1 CNN thermal_zone2 CA76 thermal_zone3 DDR
Pi Camera
Note:
- Currently, Raspberry Pi Camera V2 and Raspberry Pi Camera V3 is only supported.
Note:
- The Raspberry Pi Camera v3 is currently under development on mainline Linux and libcamera, so at this stage the image may appear dark and features such as auto-focus are not yet suppor ted. In addition, recognition may occasionally fail.
- Connect Raspberry Pi Camera V2 and/or Raspberry Pi Camera V3 to J1 and/or J2 connector.
- The board connector has 22 pin so that you need to prepare pitch convert cable.
- ex.) Raspberry Pi Official Accesary https://www.raspberrypi.com/products/camera-cable/
- Setup for using camera
- Change bootcmd variable on U-Boot shell as follows:
setenv bootcmd "load mmc 0:1 0x58000000 /boot/fitImage && bootm {CONFIG}" -
Cobination of connected cameras
J1 J2 CONFIG V2 - 0x58000000#default#j1-imx219 - V2 0x58000000#default#j2-imx219 V2 V2 0x58000000#default#j1-imx219#j2-imx219 V3 - 0x58000000#default#j1-imx708 - V3 0x58000000#default#j2-imx708 V3 V3 0x58000000#default#j1-imx708#j2-imx708 V2 V3 0x58000000#default#j1-imx219#j2-imx708 V3 V2 0x58000000#default#j1-imx708#j2-imx219 This table shows the results when connecting the Raspberry Pi Camera V2 and Raspberry Pi Camera V3 to either J1 or J2, and to both J1 and J2.
- Change bootcmd variable on U-Boot shell as follows:
-
Check camera device is recognized
Raspberry Pi Camera V2
root@sparrow-hawk:~# cam -l (snip) Available cameras: 1: External camera 'imx219' (/base/soc/i2c@e6508000/cam@10) // J1 2: External camera 'imx219' (/base/soc/i2c@e6510000/cam@10) // J2Raspberry Pi Camera V3
root@sparrow-hawk:~# cam -l (snip) Available cameras: 1: External camera 'imx708' (/base/soc/i2c@e6508000/sensor@1a) // J1 2: External camera 'imx708' (/base/soc/i2c@e6510000/sensor@1a) // J2 - Test camera
-
Display Output(Need to connect Display)
minimal: Raspberry Pi Camera V2 and Raspberry Pi Camera V3(J1 or J2)
cam -c 1 -C -Dminimal: Raspberry Pi Camera V2 and Raspberry Pi Camera V3(J1 and J2)
cam -c 1 -C -D cam -c 2 -C -DIf you connect a Raspberry Pi Touch Display, it will take precedence, so execute the following command.
root@sparrow-hawk:~# ls /sys/class/drm/ card0 card0-DP-1 card0-DSI-1 card0-Writeback-1 card0-Writeback-2 version root@sparrow-hawk:~# cam -c 1 -C -DDP-1weston: Raspberry Pi Camera V2(J1 or J2)
gst-launch-1.0 libcamerasrc ! video/x-raw,format=NV16,width=1920,height=1080 ! videoconvert ! waylandsinkor
gst-launch-1.0 libcamerasrc ! video/x-raw,format=NV16,width=640,height=480 ! videoconvert ! waylandsinkweston: Raspberry Pi Camera V2(J1 and J2)
gst-launch-1.0 libcamerasrc camera-name="/base/soc/i2c@e6508000/cam@10" ! video/x-raw,format=NV16,width=640,height=480 ! videoconvert ! waylandsink gst-launch-1.0 libcamerasrc camera-name="/base/soc/i2c@e6510000/cam@10" ! video/x-raw,format=NV16,width=640,height=480 ! videoconvert ! waylandsinkweston: Raspberry Pi Camera V3(J1 or J2)
gst-launch-1.0 libcamerasrc ! videoconvert ! waylandsinkweston: Raspberry Pi Camera V3(J1 and J2)
gst-launch-1.0 libcamerasrc camera-name="/base/soc/i2c@e6508000/sensor@1a" ! videoconvert ! waylandsink gst-launch-1.0 libcamerasrc camera-name="/base/soc/i2c@e6510000/sensor@1a" ! videoconvert ! waylandsink -
Using camshark(Need to connect Network and Linux PC)
- Please execute following command on Linux PC.
sudo apt install pipx pipx install git+https://gitlab.freedesktop.org/camera/camshark.git camshark root@<sparrow_hawk_ip_address>
- Please execute following command on Linux PC.
-
Pi Display
Note:
- Please perform the following “1. Setup” without connecting the AC adapter to the board (USB1).
Note:
- There is a risk of damaging the board or the display, so please connect them with great care.
- Setup
- Connect Raspberry Pi Touch Display 2 cable to the J4 connector.
- Connect the Power (red wire) to pin 2 of CN7 and the Ground (black wire) to pin 6 of CN7.

-
Change bootcmd variable on U-Boot shell as follows:
5 inch
setenv bootcmd "load mmc 0:1 0x58000000 /boot/fitImage && bootm 0x58000000#default#rpi-display-2-5in"7 inch
setenv bootcmd "load mmc 0:1 0x58000000 /boot/fitImage && bootm 0x58000000#default#rpi-display-2-7in" - Display will work correctly after changing above.
Pi Active Cooler
Manual control of fan speed
echo 2 > /sys/class/hwmon/hwmon4/pwm1_enable
echo 150 > /sys/class/hwmon/hwmon4/pwm1
#1 ~ 255 is acceptable but low speeds are not recommended from thermal perspective.
Tips
- How to flash sdcard without removing the card from the board.
- Preparation: TFTP server on your host PC and network connection between board and your host PC. And copy the gzipped image file into tftp server root.
- ex.) /tftp/core-image-minimal-sparrow-hawk.rootfs.wic.gz
- Execute following command on u-boot shell:
- Note:
- After this operation, all data is erased on the SD card which is inserted in the board.
setenv ethaddr setenv serverip setenv ipaddr tftp ${loadaddr} <image file with gzipped> && gzwrite mmc 0 ${loadaddr} ${filesize}- ex.) tftp ${loadaddr} core-image-minimal-sparrow-hawk.rootfs.wic.gz && gzwrite mmc 0 ${loadaddr} ${filesize}
- Note:
- Preparation: TFTP server on your host PC and network connection between board and your host PC. And copy the gzipped image file into tftp server root.
- How to expand the rootfs
- Please run “expand-rootfs.sh” script on your board. Rootfs is expanded to use whole storage.
Known Issues & Restrictions
- PCIe module outputs error log that firmware is not found in boot process. We are preparing the PCIe firmware, then please ignore it and please wait a moment.
[ 2.629357] pcie-rcar-gen4 e65d0000.pcie: Failed to load firmware (rcar_gen4_pcie.bin): -22
Support
FAQ: https://github.com/orgs/rcar-community/discussions/categories/faq
Q&A Forum: https://github.com/orgs/rcar-community/discussions/categories/q-a

