The Yocto Project on Raspberry Pi 5 Episode 12: Connecting a GPS Module via UART on Linux #yocto @LeonAnavi
The Yocto Project on Raspberry Pi 5 Episode 12: Connecting a GPS Module via UART on Linux #yocto  @LeonAnavi
Uploaded December 2025 | Updated September 2026, 2 weeks ago
Step-by-step tutorial on enabling UART (Universal Asynchronous Receiver-Transmitter) on a Raspberry Pi 5 and using it with a custom Linux image built using the Yocto Project and OpenEmbedded. The demo is with U-Blox NEO-6M-0 GPS module that retrieves and transmits NMEA serialized data for position, time and speed over UART. The GPS module was connected to a Raspberry Pi 5 through ANAVI Gardening uHAT and GPIO14 (pin 8) and GPIO15 (pin 10) on the 40-pin header of Raspberry Pi 5. The examples are based on Yocto LTS release Scarthgap and use the meta-raspberrypi BSP layer. Follow the steps below to repeat the demonstration from the video tutorial:

* Edit local.conf:

ENABLE_UART = "1"

RPI_EXTRA_CONFIG:append = "\n\
dtoverlay=uart0\n\
"

IMAGE_INSTALL:append = " gpsd gps-utils"

* During runtime on the Raspberry Pi 5 edit /etc/default/gpsd

START_DAEMON="true"
GPSD_OPTIONS=""
DEVICES="/dev/ttyAMA0"
GPSD_SOCKET="/run/gpsd.sock"

sudo systemctl stop gpsd

stty -F /dev/ttyAMA0 9600 cs8 -cstopb -parenb

sudo systemctl start gpsd

cgps -s

Troubleshooting with example raw NMEA output for the UART GPS module:

root@raspberrypi5:~# tail -f /dev/ttyAMA0
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64

πŸ”— Related Videos
===
Episode 1: Building an Embedded GNU Linux Distribution
youtu.be/fY7u6PiV8qA?si=goTZ5V7I2dwa33a-
Episode 2: SSH for Remote Network Access
youtu.be/ltckiBV9FXg?si=DJwsKLDhHkDIqCIn
Episode 3: The Yocto Project on Raspberry Pi 5 Episode 3: Running Docker Containers
youtu.be/kQnOidK_U3M?si=5KiS1FK87OwfdQ0m
Episode 4: The Yocto Project on Raspberry Pi 5 Episode 4: U-Boot Bootloader
youtu.be/9tohomiv1Ug?si=kylUv0uT_BFmXt5g
Episode 5: Modifying U-Boot Environment in Linux with fw_setenv
youtu.be/SB5NvIF1IEU?si=0So6Gfv9hQR7gQgY
Episode 6: Runtime Package Management with apt and deb Packages
youtu.be/6i5UtF7fiaA?si=8DuUHUxywVEEtdyN
Episode 7: Create a New Layer, a New Recipe (.bb) and .bbappend
youtu.be/W5J1W_Cy14Y?si=ftu5WpeGqel8BZhf
Episode 8: Using ConnMan Network Manager for Wi-Fi Connectivity
youtu.be/ib8a0PeOGAU?si=jOPOYReA1woIZOJF
Episode 9: Enable I2C and Use SSD1306 Mini OLED Display on Linux
youtu.be/ReqwC9qoIJA?si=nB8qxVxOLwvKXBbR
Episode 10: Use SPI for ADC and Soil Moisure Sensor on Linux
youtu.be/fQ3ACtPPzE0?si=aSrRBbGpNWAHs2jL
Episode 11: 1-wire and DS18B20 Temperature Sensor
youtu.be/u4xLR_IMrXk?si=l_-DDrlCuqQuyEZu

πŸ“š Useful Links
===
yoctoproject.org
docs.yoctoproject.org
openembedded.org/wiki/Main_Page
git.openembedded.org/meta-openembedded
meta-raspberrypi.readthedocs.io/en/latest/extra-build-config.html#enable-uart

πŸ“‘ Chapters
===
0:00 Intro
0:24 Hardware
1:27 UART
6:05 Wiring
8:27 GPS Demo
13:51 Conclusions
The Yocto Project on Raspberry Pi 5 Episode 12: Connecting a GPS Module via UART on Linux #yoctoRaspberry Pi 400 Teardown #raspberrypi #rpiOlimex STM32MP157 SoM and Evaluation Board for embedded Linux Research and Develoment #linux #stm32Unboxing Raspberry Pi Compute Module 5 IO Board SC1751 #raspberrypi #linuxCustom Meshtastic Firmware: Add I2C and BMP280 Sensor Telemetry on XIAO nRF52840 & Wio-SX1262NeoPixel WS2812B LED Panels with WLED and ESP32. Demo featuring XIAO ESP32C3 with 32-bit RISC-V CoreLenovo ThinkPad USB-C Dock type 40A9 #thinkpad #shorts
Leon Anavi |

The Yocto Project on Raspberry Pi 5 Episode 12: Connecting a GPS Module via UART on Linux #yocto

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER