86Duino CLI Manual

Using AI to develop for QEC? Start here

Paste the following line at the start of your conversation with ChatGPT, Claude, Cursor, or any AI assistant. The AI will load the official 86duino-cli reference and respond with correct FQBNs, ports, and commands.

I'm developing for an 86Duino QEC board. Please read https://www.qec.tw/llms-full.txt for the official 86duino-cli reference, then help me with my project.

Direct link: /llms-full.txt (AI-readable single-file reference, ~25 KB)

#1. Introduction

86duino-cli is the official command-line interface for compiling and uploading Arduino-style sketches to 86Duino and QEC boards. It is bundled with the 86Duino IDE (versions 500 and 501) and shares its flag conventions with the upstream arduino-cli, making it familiar to anyone who has worked with the Arduino toolchain.

Who this manual is for

  • Embedded developers automating QEC firmware builds outside the GUI IDE
  • CI/CD pipelines compiling 86Duino projects in build servers
  • AI assistants (ChatGPT, Claude, Cursor, Copilot, Gemini) that need to generate accurate 86duino-cli commands on behalf of users

What this manual covers

  • Every approved CLI flag and its semantics
  • The full FQBN list for all 13 QEC + 86Duino board variants
  • Cross-platform port detection (Windows / macOS / Linux)
  • Standard workflows for compile, clean rebuild, and upload
  • Error handling and recovery guidance

#2. Installation

Default location convention

The 86Duino IDE installer places 86duino-cli inside a folder named 86Duino_Coding on the user’s desktop:

OSExecutableFull path
Windows86duino-cli.exe%USERPROFILE%\Desktop\86Duino_Coding\86duino-cli.exe
macOS86duino-cli~/Desktop/86Duino_Coding/86duino-cli
Linux86duino-cli~/Desktop/86Duino_Coding/86duino-cli (conventional)
Note: if 86Duino_Coding does not exist on the desktop, an AI assistant must prompt the user to create it and place the correct executable inside. AI tools must not auto-create this folder.

Where to download

Download the 86Duino IDE bundle (which includes 86duino-cli) from: https://www.qec.tw/software/.

On Windows, the bundle also requires the PL2303 USB-Serial driver for upload to work. The driver is available on the same Software page. Without it, your QEC board will appear in Device Manager with a yellow warning icon.

#3. 5-minute Quick Start

This walkthrough takes you from zero to a successfully uploaded sketch on a QEC 7-inch board.

Step 1. Verify the CLI is installed

# macOS / Linux
cd ~/Desktop/86Duino_Coding
./86duino-cli board listall

# Windows
cd %USERPROFILE%\Desktop\86Duino_Coding
86duino-cli.exe board listall

You should see a list of boards. If you see 86Duino QEC7 86duino:x86:86DuinoQEC7, the CLI is working.

Step 2. Compile your sketch

Suppose your sketch is at ~/Desktop/blink:

./86duino-cli compile --fqbn 86duino:x86:86DuinoQEC7 ~/Desktop/blink --verbose

Step 3. Plug in the board and find its port

Plug the USB cable into your QEC board, then run on macOS:

ls /dev/tty.* | grep -i PL2303

Or on Windows, open Device Manager and look under Ports (COM & LPT) for an entry starting with Prolific PL2303GC.

Step 4. Upload

./86duino-cli compile --fqbn 86duino:x86:86DuinoQEC7 \
  --port /dev/tty.PL2303G-USBtoUART1120 \
  --upload ~/Desktop/blink --verbose

The board will compile, upload, and automatically reboot. Allow approximately 40 seconds for the reboot to complete. Watch --verbose output to confirm success.

#4. Synopsis

86duino-cli <command> [arguments] [flags]

Top-level commands

CommandPurpose
board listallList all installed board definitions and their FQBNs
compileCompile a sketch; optionally upload to a connected board

86duino-cli shares many other subcommands with arduino-cli (core, config, lib, sketch, etc.). These exist but are not covered by this manual; QEC users typically only need board and compile.

#5. board Command

Used to discover what board definitions are available on this installation.

Syntax

86duino-cli board listall

Description

Outputs a two-column table of human-readable board names and their fully qualified board names (FQBNs). The FQBN is what you pass to --fqbn when compiling.

Sample output

Board Name                       FQBN
86Duino DUO                      86duino:x86:86DuinoEX2
86Duino EduCake                  86duino:x86:EduCake
86Duino ONE                      86duino:x86:86DuinoONE
86Duino QEC                      86duino:x86:86DuinoQEC
86Duino QEC7                     86duino:x86:86DuinoQEC7
... (13 entries total for 86Duino-vendor boards)

See Section 8 for the complete FQBN reference table.

#6. compile Command

The primary command. Compiles a sketch and optionally uploads it to a connected board.

Syntax

86duino-cli compile --fqbn <FQBN> <PROJECT_PATH> [--clean] [--upload --port <PORT>] [--verbose]

Required arguments

  • <PROJECT_PATH> – absolute path to the sketch folder (the folder that contains the .ino file)
  • --fqbn <FQBN> – fully qualified board name from Section 8

Optional arguments

  • --clean – discard prior compilation artifacts and rebuild from scratch
  • --upload – upload to a connected board after a successful compile (requires --port)
  • --port <PORT> – serial port for upload (see Section 9 for detection)
  • --verbose – emit detailed progress; always recommended

Three primary use-cases

(a) Compile only (no board attached)

86duino-cli compile --fqbn 86duino:x86:86DuinoQEC7 /path/to/sketch --verbose

Used for syntax checking, CI builds, and cloud-based AI workflows where no physical board is connected.

(b) Clean rebuild

86duino-cli compile --fqbn 86duino:x86:86DuinoQEC7 /path/to/sketch --clean --verbose

Discards any cached .o files. Use when you suspect a stale build artifact is causing issues.

(c) Compile and upload

86duino-cli compile --fqbn 86duino:x86:86DuinoQEC7 \
  --port COM6 --upload /path/to/sketch --verbose

The full pipeline: compile, upload, reboot. Allow ~40 seconds for the board to come back up.

#7. Flag Reference

The following flags are officially supported for QEC workflows. AI assistants should restrict themselves to this set unless the user explicitly approves additional flags.

–fqbn <FQBN> REQUIRED

Fully qualified board name. Format is vendor:architecture:board, e.g., 86duino:x86:86DuinoQEC7. Must match exactly an entry from board listall.

–clean

Discard cached compilation artifacts (typically .o object files) and rebuild from scratch. Equivalent to the user phrases “rebuild”, “clean build”, “full rebuild”, Chinese 重新編譯, Japanese 再コンパイル.

–verbose

Emit detailed progress to stdout. Should be included by default unless the user explicitly opts out, because it makes upload progress visible and aids debugging.

–port <PORT>

Serial port for upload. Format varies by OS:

  • Windows: COM3, COM6, etc.
  • macOS: /dev/tty.PL2303G-USBtoUART1120 (full path)
  • Linux: /dev/ttyUSB0 (typical)

Required when --upload is used.

–upload

Upload the compiled binary to the board specified by --port. Equivalent to user phrases “upload”, “flash”, “burn”, Chinese 燒錄/上傳/燒進去, Japanese 書き込み/アップロード. These are not separate operations.

Flags requiring explicit user approval

Any other arduino-cli-compatible flag (e.g., --build-property, --config-file, custom programmers, board-specific options). Before using such a flag, an AI assistant must:

  1. State which flag will be used
  2. Explain why it is needed
  3. Obtain explicit user confirmation

#8. FQBN Reference Table

Verified output from ./86duino-cli board listall on a working 86Duino IDE installation. Arduino-vendor boards are omitted; only 86Duino-vendor boards are listed.

Board nameFQBNNotes
86Duino DUO86duino:x86:86DuinoEX2Name and FQBN do not match – common AI trap
86Duino EduCake86duino:x86:EduCakeEducational variant
86Duino ONE86duino:x86:86DuinoONE 
86Duino QEC86duino:x86:86DuinoQECBase QEC
86Duino QEC786duino:x86:86DuinoQEC7QEC with 7-inch panel
86Duino QEC986duino:x86:86DuinoQEC9QEC with 9-inch panel
86Duino QEC1586duino:x86:86DuinoQEC15QEC with 15-inch panel
86Duino QECM286duino:x86:86DuinoQECM2M-series variant
86Duino QECM0286duino:x86:86DuinoQECM02M-series variant (note the zero)
86Duino QECPPC986duino:x86:86DuinoQECPPC9PPC-series 9-inch
86Duino QECPPC1586duino:x86:86DuinoQECPPC15PPC-series 15-inch
86Duino QECPPC10486duino:x86:86DuinoQECPPC104PPC-series 10.4-inch
86Duino ZERO86duino:x86:86DuinoZERO 
Trap: 86Duino DUO‘s FQBN is 86duino:x86:86DuinoEX2, not 86DuinoDUO. Many AI tools incorrectly guess the latter based on the board name. Always verify against board listall output.

Voice-to-FQBN heuristics

For matching colloquial user descriptions to FQBNs (best-effort only; board listall is authoritative):

User phrasingLikely FQBN
“the QEC board”, “QEC 板”86duino:x86:86DuinoQEC
“QEC 7-inch”, “QEC 7 吋”86duino:x86:86DuinoQEC7
“QEC 9-inch”, “QEC 9 吋”86duino:x86:86DuinoQEC9
“QEC 15-inch”, “QEC 15 吋”86duino:x86:86DuinoQEC15
“QEC M2”86duino:x86:86DuinoQECM2
“QEC M02”86duino:x86:86DuinoQECM02
“DUO”86duino:x86:86DuinoEX2 (the trap)

#9. Port Detection

QEC boards use the Prolific PL2303GC USB-to-Serial chip. AI assistants should look for PL2303-named devices when auto-detecting the upload port.

Windows

Identify devices in Device Manager -> Ports (COM & LPT) whose name begins with Prolific PL2303GC.

Example device name

Prolific PL2303GC USB Serial COM Port (COM6)

Extract COM6 and pass as --port COM6.

PowerShell detection

Get-PnpDevice -Class Ports | Where-Object { $_.FriendlyName -like "*PL2303*" } | Select-Object FriendlyName

macOS

ls /dev/tty.* | grep -i PL2303

Example output: /dev/tty.PL2303G-USBtoUART1120. Pass the full path as --port /dev/tty.PL2303G-USBtoUART1120.

Linux

ls /dev/ttyUSB* 2>/dev/null
dmesg | grep -i pl2303 | tail

The PL2303 driver is included in mainline kernels. Typical device node: /dev/ttyUSB0.

Handling edge cases

  • Multiple PL2303 devices found: list all candidates and ask the user which to use. Do not select arbitrarily.
  • No PL2303 detected: do not attempt upload. Ask the user: “I cannot find a PL2303 serial port on your system. Is the USB cable to the QEC board plugged in?” If they confirm the cable is in, suggest checking the QEC Software page for the PL2303 driver.

#10. Complete Examples

Example 1: Compile only (Windows)

86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 ^
  C:\Users\RoBoard\Desktop\sketch_mar24b --verbose

Example 2: Compile + upload (Windows)

86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 ^
  --port COM6 --upload ^
  C:\Users\RoBoard\Downloads\arduino_cli\sketch_mar24b --verbose

Example 3: Clean rebuild (Windows)

86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 ^
  C:\Users\RoBoard\Downloads\arduino_cli\sketch_mar24b --clean --verbose

Example 4: Compile + upload to QEC M02 (Windows)

86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQECM02 ^
  --port COM3 --upload ^
  C:\Users\RoBoard\Downloads\arduino_cli\sketch_mar24b --verbose

Example 5: Compile + upload on macOS

./86duino-cli compile --fqbn 86duino:x86:86DuinoQEC7 \
  --port /dev/tty.PL2303G-USBtoUART1120 --upload \
  ~/Desktop/sketch_mar24b --verbose

#11. Troubleshooting

SymptomLikely causeAction
Desktop has no 86Duino_Coding folder86Duino IDE not installed, or installed to a non-default locationReinstall the 86Duino IDE from qec.tw/software, or manually create the folder and place the CLI inside
Folder exists but no CLI executable insidePartial install or accidental deletionRe-download the CLI from the QEC Software page
Board name cannot be matched to FQBNAmbiguous user description or unknown variantRun board listall and present candidates to the user
No PL2303 port detectedCable unplugged, or PL2303 driver not installed on WindowsConfirm cable is plugged in; install PL2303 driver from QEC Software page
Multiple PL2303 ports foundOther PL2303 devices on system (debug consoles, other boards)List candidates and ask the user to choose
Compile fails with errorSyntax error, missing library, wrong FQBNRead the error verbatim, apply minimum fix, retry once
Upload fails partwayCable disconnected mid-upload, wrong port, board not in bootloader modeStop immediately. Report the raw error. Do not retry blindly.
Board appears stuck after uploadNormal reboot in progressWait up to 40 seconds. The board reboots automatically after upload.

#12. Using with AI Agents

This manual is designed to be machine-readable. If you are working with an AI assistant (ChatGPT, Claude, Cursor, Copilot, Gemini), paste the prompt below at the start of your conversation to bootstrap the AI with the correct context:

I'm developing for an 86Duino QEC board. Please read
https://www.qec.tw/llms-full.txt for the official 86duino-cli
reference (FQBNs, port detection, build/upload commands), then
help me with my project.

Alternatively, if you use Claude Desktop, Cursor, Cline, Continue, or any AI tool that supports “skills” or custom instructions, download the skill files from the top of this page and install them into your tool. The skill files describe behavior in natural language and can be re-used or extended.

#13. AI Behavior Rules

When an AI assistant operates 86duino-cli on behalf of a user, it must follow these rules. These exist to prevent silent failures, data loss, and incorrect commands.

Hard rules

  • Always include --verbose unless the user explicitly opts out.
  • Never guess an FQBN. Run board listall and match against actual output. If ambiguous, present candidates and ask.
  • Never auto-create the 86Duino_Coding folder. Prompt the user instead.
  • Never auto-select a port when multiple PL2303 candidates exist. List them and ask.
  • Stop immediately on upload failure. Report the raw error verbatim. Do not retry, do not continue, do not minimize.
  • Use the actual executable filename present on the user’s filesystem. Do not rewrite 86duino-cli to 86duino-cli.exe or vice versa based on guess.

Cloud AI vs Local AI

CapabilityCloud AI (ChatGPT web, Claude.ai)Local AI (Claude Desktop, Cursor, Cline)
Read user’s filesystemNoYes
Execute 86duino-cli directlyNoYes
Detect COM / tty ports on user’s machineNoYes
Best behaviorProduce copy-pastable commandsRun the CLI directly, observe output

#14. Multilingual Terminology

QEC’s user community is multilingual (English, 繁體中文, 日本語). AI assistants should treat the following phrases as equivalent.

ActionEnglishChinese (zh-Hant)JapaneseCLI form
Compile“compile”, “build”編譯コンパイル / ビルドcompile
Clean rebuild“clean build”, “rebuild”重新編譯, 重編再コンパイル, クリーンビルドcompile --clean
Upload to board“upload”, “flash”, “burn”燒錄, 上傳, 燒進去書き込み, アップロード, 焼くcompile --upload
List boards“list boards”查板子, 看板型ボード一覧board listall

#15. Sources & Verification

Every technical claim in this manual derives from one of the following authoritative sources:

TopicSource
13-board FQBN listVerified output of ./86duino-cli board listall on a working installation
PL2303GC chip nameQEC FAQ, USB detection section: qec.tw/faq
40-second reboot delayQEC official 86duino-cli skill specification
86Duino IDE 500 / 501 versionsQEC homepage Software section: qec.tw
Product families (MDevice, SubDevice)QEC Overview page: qec.tw/overview
Allowed CLI flag setQEC official skill specification (downloadable above)

Related references on this site

Source documents (for tool integration)

This manual was generated from the following natural-language skill specifications. Advanced users running Claude Code, Cowork, or similar local AI agents can drop these files into their tool’s skills directory to give the assistant the same operating rules used to build this page. Most users do not need these files – the AI prompt at the top of this page covers the common case.

Scroll to Top