I. Project Introduction
There are two reasons for creating this project.
First, it was for practice. I initially saw a project on Bilibili (link: https://oshwhub.com/W_Linus/gnss_box_basic). I was drawn to the author's exquisite design and the delicate color reproduction of the screen. I wanted to learn about screen-related drivers, so I referenced it.
Second, I wanted to learn about GPS protocols. I then upgraded the original author's project, essentially creating a small screen board with GPS according to my own ideas.
This project uses the original author's code, with only minor modifications to the serial port parsing.
After completion, I took this project on high-speed trains, regular trains, and subways. In some places, it could detect speed, while in others, without GPS signal, it could only temporarily obtain a time.
II. Component Introduction

The positioning chip used is the Air530z, the same positioning chip used by the original author. This chip has sufficient basic functions and is very small.
Detailed introduction:
The Air530Z is a high-performance, high-precision, highly integrated, and low-power multi-mode satellite navigation and positioning module. It supports satellite positioning systems such as BeiDou-3, GPS, and GLONASS, and supports multi-system joint positioning and single-system independent positioning. The module
adopts an integrated RF baseband design, integrating DC/DC converter, LDO, RF front-end, low-power application processor, RAM, Flash storage, RTC, and power management. It can be powered by a button battery or a supercapacitor, reducing the initial positioning time. It can be widely used in vehicle positioning and navigation equipment, high-precision time synchronization, safety monitoring, surveying and mapping, precision agriculture, and other fields that require navigation/positioning/time synchronization. Key features include:
1) Supports GPS+BDS or GPS+GLONASS multi-system joint positioning, and A-GNSS assisted positioning;
2) High sensitivity: cold start acquisition -148dBm, warm start acquisition -156dBm, tracking acquisition -162dBm
; 3) Integrated 3.3V active antenna power supply circuit and detection circuit;
4) Power input range 2.7~3.6V;
5) Ultra-low power consumption: 33.3mA for acquisition, 29.2mA for tracking, and 9uA for sleep mode;
6) Supports PPS output
; 7) Output format: supports NMEA0183 V4.1 and earlier versions
; 8) Fully compatible with Air530Z and Air530 packages;
9) Extremely small size, only 12.9 x 9.9 x 2.3mm, LCC package: 14 pins, easily embedded in various applications.
The main controller uses the Heze F103 chip. The original intention was to use its high-speed clock speed for screen refresh, but this was unsuccessful, so the HAL library was used instead.
The board has a Type-C interface with identification resistors and a CH340E serial chip. Power and communication can be achieved directly using the phone's charging port with a CC cable, allowing data to be printed directly to the phone for viewing.
The screen uses an FPC connector, which reduces soldering difficulty but also increases it (it's cheaper when buying the screen). The screen size is a 2.4-inch LCD with a 10-pin SPI serial port.
There is also a flash chip for storing data; this is just a reserve, and its specific purpose is not yet decided, but it could store time, visited addresses, etc.
There are four buttons: one reset button and several page-changing buttons.
A power switch was also added

. Initially, a small ceramic antenna was used, but it was too small and while it could locate, it was very slow. A larger ceramic antenna was then used, resulting in much faster positioning.
If you don't want to learn GPS, you can use it directly as a screen learning board.
The code hasn't been further developed; for now, we're just open-sourcing the hardware, which is essentially a complete hardware upgrade.