Skip to content

qualcomm/qcom-test-automation-controller

Qualcomm Test Automation Controller (QTAC)

CMake Build

Table of Contents

Introduction

QTAC is a software suite that enables users to control Qualcomm devices remotely via a Qualcomm approved debug board connected to a host.

What You Get

Application Description
Test Automation Controller (TAC) Control Qualcomm devices remotely using UI
TAC Configuration Editor Design configurable TAC UI based on GPIO use-cases
Device Catalog Program debug board and view supported Qualcomm platforms
Command-line utilities DevList, FTDICheck, LITEProgrammer, PSOCProgrammer, TACDump, UpdateDeviceList

QTAC UI Overview

Hardware Requirements

Required Hardware:

  • Qualcomm approved debug board (FTDI, Cypress PSoC5LP or Microchip PIC32CX SG41-based)
  • Qualcomm device to be controlled
  • USB Cables: Type B Micro-USB (Board to Host) & Type-C (Device to Host)

Setup: Connect the device to the debug board (directly or via cable strip) and both to the host.

Important

PSOC debug boards must be factory-programmed with firmware. If the board isn't recognized, it likely lacks programming.

QTAC Hardware Software Setup

Common Prerequisites

Development Tools

Category Software Minimum Version
OS Windows / Debian Windows 10+ / Ubuntu 22.04+
Compiler MSVC 2022 / GCC MSVC 2022 / GCC-11, G++-11, GLIBC-2.35
Build System CMake 3.22+
Build Tool Ninja (via Qt installer, system package manager, or direct download) 1.10+
UI Framework Qt Open-source 6.9.0+

Note

Review license terms for Visual Studio and Qt. MSVC 2022 is linked as Qt does not yet support later MSVC versions.

Drivers

Note

FTDI libraries are downloaded automatically during the cmake configuration step when building from source. If the automatic download fails (e.g. due to network restrictions), download the archive manually and place it in the third-party/ directory before re-running cmake:

Platform Archive
Windows x64 CDM-v2.12.36.4-WHQL-Certified.zip
Windows ARM64 CDM-v2.12.36.20-for-ARM64-WHQL-Certified.zip
Linux x86_64 libftd2xx-linux-x86_64-1.4.33.tgz

Optional Software

QTAC allows you to view streaming device logs as you transition the device between different states. The debug logs are streamed over USB serial interface(s).

To view these logs, you may install Putty or similar terminal software. QTAC does not depend on or use this software.

Clone Repository

git clone https://github.com/qualcomm/qcom-test-automation-controller.git

Windows Guide

Configuration

  1. Visual Studio: Install Desktop development with C++ and .NET desktop development. Desktop development with C++
  2. Qt: Install Qt 6.9+ for MSVC 2022 64-bit, Qt Serial Port and Qt Multimedia components. For ARM64, also install the MSVC 2022 ARM64 Qt component.

Note

Installation using Qt Online Installer will require users to create a Qt account.

  1. Environment Variable:

    x64:

    setx QTBIN C:\Qt\<version>\msvc2022_64\bin

    ARM64:

    setx QTBIN C:\Qt\<version>\msvc2022_arm64\bin

Build & Usage

Execute build.bat to generate executables. The build targets the host architecture automatically (x64 on an x64 host, ARM64 on an ARM64 host):

build.bat

Build output:

  • x64 Debug: __Builds\x64\Debug
  • x64 Release: __Builds\x64\Release
  • ARM64 Debug: __Builds\ARM64\Debug
  • ARM64 Release: __Builds\ARM64\Release

Usage:

__Builds\x64\Release\QTAC.exe
__Builds\ARM64\Release\QTAC.exe

Linux Guide

Configuration

Important

  • Installation using Qt Online Installer will require users to create a Qt account.
  • If you're frequently working with Qt on Linux, consider adding the environment variables to .bashrc.
  • Using sudo apt install <package> will update setup packages. Review command usage to prevent issues with other applications.
  1. Qt Installation (choose one):

    Option A: Qt Online Installer

    • Install Qt 6.9+ for GCC 64-bit and Qt Serial Port and Qt Multimedia components using Qt Online Installer

    Option B: Quick Installation via apt

    sudo apt install qt6-base-dev qt6-serialport-dev qt6-multimedia-dev
  2. Runtime Dependencies:

    sudo cp udev-rules/99-QTAC-USB.rules /etc/udev/rules.d/
    sudo udevadm control --reload
  3. Environment Variable:

    export QTBIN=/path/to/Qt/directory/<version>/gcc_64/bin

Build & Usage

Execute build.sh to generate executables:

./build.sh

Build output:

  • Debug: __Builds/Linux/Debug
  • Release: __Builds/Linux/Release

Usage:

./__Builds/Linux/Release/QTAC

Repository Structure

Directory Content
.github CI/CD build pipelines
configurations Platform-specific pin configurations
docs Documentation and guides
examples Device-control automation scripts
interfaces APIs for C++, Python, C#, and Java
src Source files (Applications & Libraries)
third-party External dependency scripts

Application Dependency Architecture

App dependency

Advanced Topics

Support & Contributing

About

Perform power off, power on, EDL, UEFI and more on Qualcomm devices remotely using debug board

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

7 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors