FWAuto QuickStart Guide

Get started quickly with FWAuto firmware development automation.

Installation

Prerequisites

ItemRequirementDescription
FWAuto accountRegisteredRegister through the FWAuto Dashboard before continuing.
uvLatestPython package manager
Node.js>= 20Includes npm, which is used to install AI CLI tools.

The installer automatically checks uv and Node.js. It skips tools that are already installed at a supported version and provides installation guidance for missing tools. Windows users should see Appendix A for the Node.js installation procedure.

Linux / macOS

curl -LsSf https://fwauto.ai/install.sh | bash

Windows

powershell -ExecutionPolicy ByPass -c "irm https://fwauto.ai/install.ps1 | iex"
FWAuto installer reporting missing uv and Node.js prerequisites

After the environment check succeeds, the script automatically installs fwauto and the required AI CLI tools.

Successful FWAuto installation in Windows PowerShell

Verify the installation

fwauto --help
FWAuto command-line help output

Authentication

FWAuto uses Google OAuth for authentication:

fwauto auth login
  1. Your browser opens the Google sign-in page. Select an account.
  2. Authorize FWAuto access.
  3. After sign-in succeeds, close the browser window and return to the terminal.
Google OAuth account selection screen
Google OAuth authorization screen
FWAuto login successful confirmation

Check your authentication status:

fwauto auth status

Project Initialization

Enter your firmware project directory and run any fwauto command, such as fwauto build. FWAuto automatically starts a three-step setup wizard covering SDK, build, and deployment configuration.

⚠ FWAuto project not initialized
🚀 Starting setup wizard (3 step(s))...
[1/3] SDK Configuration
SDK path [/opt/ti-sdk]:
[2/3] Build Configuration
Build type:
1. makefile
2. command
Select [1]:
[3/3] Deploy Configuration
Deploy type:
1. network
2. serial
3. command
Select [1]:

When setup is complete, FWAuto creates:

.fwauto/
├── config.toml # Project configuration
├── build/
│ └── Makefile # Build script (edit for your project)
└── logs/ # Log directory

Basic Usage

Build

fwauto build

If a build fails, the AI automatically attempts to repair it up to three times.

Deploy

fwauto deploy
fwauto deploy --binary-args "on"

Analyze logs

fwauto log "Are there any errors?"
fwauto log "Analyze this log" --log-path /path/to/uart.log

Help and Chat Mode

fwauto --help
fwauto
fwauto "Make the LED blink quickly"

Chat mode supports explicit Slash Commands such as /build and /deploy, as well as natural-language requests such as “build my firmware” or “deploy to the development board.”

CommandFunction
/buildBuild the firmware
/deployDeploy the firmware
/logAnalyze logs
/configManage configuration
/helpShow help
/exitExit chat mode

Troubleshooting

Authentication fails

fwauto auth logout
fwauto auth login

FWAuto cannot find .fwauto/

Run FWAuto from the project directory or one of its subdirectories. FWAuto searches parent directories for .fwauto/.

Update FWAuto

uv tool upgrade fwauto

After updating, run fwauto --help and verify the version shown below the banner.

Change the AI conversation language

/config set project.language zh-TW

Supported languages are en (English) and zh-TW (Traditional Chinese). Configuration errors, such as a missing Makefile, do not trigger AI repair. Confirm that the failure is a compilation error rather than a configuration error.

Appendix A: Windows Prerequisites

Install uv

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Install Node.js

Download the Windows Installer (.msi), version 20 or later, from Node.js Downloads. Use the default installation options and ensure “Add to PATH” is selected. Close and reopen PowerShell after installation. When required, run Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process again.

Node.js Windows Installer download option

Appendix B: Makefile Requirements

When you select the makefile build type, FWAuto copies a template to .fwauto/build/Makefile. Modify it for your project.

RequirementDescription
Defined targetThe default target is build and can be changed in config.toml.
Return codeSuccess = 0; failure = non-zero.
Outputstdout and stderr are captured for AI error analysis.
VariablePurpose
ARAGO_ENVSDK environment configuration path
SYSROOTCross-compilation sysroot
CCCompiler
SRC_DIRSource directory
BUILD_DIROutput directory

Appendix C: Configuration Management

Use /config in chat mode to view the project configuration. Modify values with:

/config set <key> <value>
/config set project.language zh-TW

Appendix D: Arduino

[project]
name = "Blink"
[sdk]
path = "~/.arduino15"
[build]
type = "command"
command = "arduino-cli compile --fqbn arduino:avr:nano ."
[deploy]
type = "command"
command = "arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:avr:nano ."
[log]
type = "serial"
serial_port = "/dev/ttyUSB0"
baudrate = 9600

Appendix E: AM62X Development Board

[project]
name = "my-am62x-project"
[sdk]
path = "/home/alientek/ATK-AM62x-SDK"
[build]
type = "makefile"
makefile = ".fwauto/build/Makefile"
target = "build"
[deploy]
type = "network"
[deployment]
board_ip = "192.168.50.169"
board_user = "root"
deploy_path = "/home/root"