Skip to content

OPENEVB is an innovative evaluation platform built upon the GD32F4 series, engineered to significantly expedite the development process involving Quectel GNSS modules such as the LCx9H and LCx6G. This platform serves as a comprehensive solution for developers working on GNSS - related projects.

License

Notifications You must be signed in to change notification settings

quectel-open-source/OpenEVB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OPENEVB

License

OPENEVB is a GD32F4-based evaluation platform designed to accelerate development with Quectel GNSS modules(e.g., LCx9H, LCx6G). It provides:

  • Complete NMEA protocol parsing
  • Firmware upgrade workflows
  • Hardware abstraction layer for Quectel EVB boards
  • Verification of RTK functionality via cellular module
  • Save NMEA logs

Target Hardware:

  • MCU: GD32F470ZI (Cortex-M4 @ 240MHz)
  • GNSS Module: Quectel LCx9H (e.g.)
  • EVB Board: Quectel EVB

Table of Contents


Supported Features

This open-source project provides the following example functionalities:

  • LCx6G I2C Firmware Upgrade
  • LCx9H I2C Firmware Upgrade & Download
  • NMEA0183 Data Reading via LCx9H I2C/SPI Interfaces
  • LG69TAP I2C NMEA0183 Data Acquisition
  • NMEA0183 Data Parsing & Storage
  • QuecRTK Differential Injection
  • NTRIP Client-Based Differential Injection

Quectel EVB

To better validate Quectel GNSS modules, we have developed the Quectel EVB. Below is the framework of our EVB: The EVB is powered via a Type-C USB cable, with power routed to the GNSS module through a Low-Dropout Regulator (LDO). The GNSS module outputs signals through its communication interface on the EVB via a USB-to-UART bridge chip.

alt text

Quick Start

Code Structure

Introduction to directory structure:

.
├── doc                  -- Store documents that explain the function or structure of the project
│   └── dir_describe.md
├── os                   -- Operating system
│   └── FreeRTOS
├── plat                 -- Chip platform
│   └── gd32f4xx
├── quectel              -- Code ported or developed by quectel
│   ├── app              -- Configuration files and public files
│   ├── bootloader       -- Binary file of the bootloader
│   ├── bsp              -- Board support package
│   ├── component        -- Various components
│   ├── example          -- Sample code for specific business implementation
│   ├── hal              -- Hardware abstraction layer
│   ├── project          -- Project compilation mode
│   └── tools            -- Tools for packaging
└── third_party          -- Third party
    ├── cJSON            -- JSON library
    ├── ff15             -- FAT file system
    └── mbedtls          -- C library that implements cryptographic primitives.

Development Environment Setup

  1. Install Keil MDK Software
    • Download and install the Keil MDK development environment.
  2. Install Software Package
    • Add the ‌GigaDevice.GD32F4xx_DFP‌ package via Keil's Pack Installer.

Feature Selection

The example feature code resides in the Quectel/example directory. Use macro definitions in inc/example.h to enable specific functionalities. Ensure ‌only one macro is active‌ multiple enabled macros will cause compilation errors. For example:

#define __EXAMPLE_NMEA_PARSE__      // Enable NMEA data parsing
// #define __EXAMPLE_NMEA_SAVE__    // Disable other macros

The sample code is located in the src/ directory. The entry function ‌Ql_Example_Task‌ is called in quectel/app/ql_application.c. This function is registered as a FreeRTOS task when the system is initialized.

void Ql_Example_Task(void *Param)
{
    static uint8_t rx_buf[NMEA_BUF_SIZE] = {0};
    int32_t Length = 0;

    (void)Param;
    
    QL_LOG_I("--->NMEA Sentence Parse<---");

    Ql_Uart_Init("GNSS COM1", NMEA_PORT, 115200, NMEA_BUF_SIZE, NMEA_BUF_SIZE);

    // NMEA Handle
    extern const Ql_NMEA_Table_TypeDef NMEA_Table[];
    Ql_NMEA_Init(&NMEA_Handle,
                 (Ql_NMEA_Table_TypeDef *)NMEA_Table,
                 NULL,
                 NMEA_BUF_SIZE);

    while (1)
    {
        Length = Ql_Uart_Read(NMEA_PORT, rx_buf, NMEA_BUF_SIZE, 100);
        QL_LOG_D("read data from uart, len: %d", Length);

        if (Length <= 0)
        {
            continue;
        }
        rx_buf[Length] = '\0';

        Ql_NMEA_Parse(&NMEA_Handle, (const char *)rx_buf, Length);
        vTaskDelay(pdMS_TO_TICKS(700));
    }
}

...

Compilation

After selecting the desired example features, proceed with the following steps to compile and deploy the firmware.

Download

  1. ST-Link Download
    • EVB leads to 4 pins: 3.3V, MCU_RESET, MCU_SWCLK, MCU_SWDIO. Use ST-Link to connect and download to the EVB board.
  2. QGNSS Download
    • Download QGNSS tool from Quectel official website: www.quectel.com.cn/download-zone.
    • EVB Connects to QGNSS and Click “Firmware Download”
      • Connect the serial port of MCU to QGNSS tool, then click the “Tools” and select the “Firmware Download” after the EVB connects to the QGNSS tool successfully. alt text
    • Download Firmware
      • Step 1: Select the firmware you want to download.
      • Step 2: Click the start button.
      • Step 3: Restart the MCU when the screen displays ‌“Synchronize…”.‌ The firmware update can be started after the synchronization is finished. alt text

License

Apache 2.0 License:

Permits commercial closed-source derivatives.

Requirements:

Copyright statement is retained, and there is no mandatory open source requirement.

About

OPENEVB is an innovative evaluation platform built upon the GD32F4 series, engineered to significantly expedite the development process involving Quectel GNSS modules such as the LCx9H and LCx6G. This platform serves as a comprehensive solution for developers working on GNSS - related projects.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published