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-clicommands 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:
| OS | Executable | Full path |
|---|---|---|
| Windows | 86duino-cli.exe | %USERPROFILE%\Desktop\86Duino_Coding\86duino-cli.exe |
| macOS | 86duino-cli | ~/Desktop/86Duino_Coding/86duino-cli |
| Linux | 86duino-cli | ~/Desktop/86Duino_Coding/86duino-cli (conventional) |
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 listallYou 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 --verboseStep 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 PL2303Or 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 --verboseThe 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
| Command | Purpose |
|---|---|
board listall | List all installed board definitions and their FQBNs |
compile | Compile 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 listallDescription
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.inofile)--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 --verboseUsed 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 --verboseDiscards 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 --verboseThe 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.
Fully qualified board name. Format is vendor:architecture:board, e.g., 86duino:x86:86DuinoQEC7. Must match exactly an entry from board listall.
Discard cached compilation artifacts (typically .o object files) and rebuild from scratch. Equivalent to the user phrases “rebuild”, “clean build”, “full rebuild”, Chinese 重新編譯, Japanese 再コンパイル.
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.
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 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:
- State which flag will be used
- Explain why it is needed
- 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 name | FQBN | Notes |
|---|---|---|
| 86Duino DUO | 86duino:x86:86DuinoEX2 | Name and FQBN do not match – common AI trap |
| 86Duino EduCake | 86duino:x86:EduCake | Educational variant |
| 86Duino ONE | 86duino:x86:86DuinoONE | |
| 86Duino QEC | 86duino:x86:86DuinoQEC | Base QEC |
| 86Duino QEC7 | 86duino:x86:86DuinoQEC7 | QEC with 7-inch panel |
| 86Duino QEC9 | 86duino:x86:86DuinoQEC9 | QEC with 9-inch panel |
| 86Duino QEC15 | 86duino:x86:86DuinoQEC15 | QEC with 15-inch panel |
| 86Duino QECM2 | 86duino:x86:86DuinoQECM2 | M-series variant |
| 86Duino QECM02 | 86duino:x86:86DuinoQECM02 | M-series variant (note the zero) |
| 86Duino QECPPC9 | 86duino:x86:86DuinoQECPPC9 | PPC-series 9-inch |
| 86Duino QECPPC15 | 86duino:x86:86DuinoQECPPC15 | PPC-series 15-inch |
| 86Duino QECPPC104 | 86duino:x86:86DuinoQECPPC104 | PPC-series 10.4-inch |
| 86Duino ZERO | 86duino:x86:86DuinoZERO |
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 phrasing | Likely 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 FriendlyNamemacOS
ls /dev/tty.* | grep -i PL2303Example 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 | tailThe 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 --verboseExample 2: Compile + upload (Windows)
86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 ^
--port COM6 --upload ^
C:\Users\RoBoard\Downloads\arduino_cli\sketch_mar24b --verboseExample 3: Clean rebuild (Windows)
86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 ^
C:\Users\RoBoard\Downloads\arduino_cli\sketch_mar24b --clean --verboseExample 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 --verboseExample 5: Compile + upload on macOS
./86duino-cli compile --fqbn 86duino:x86:86DuinoQEC7 \
--port /dev/tty.PL2303G-USBtoUART1120 --upload \
~/Desktop/sketch_mar24b --verbose#11. Troubleshooting
| Symptom | Likely cause | Action |
|---|---|---|
Desktop has no 86Duino_Coding folder | 86Duino IDE not installed, or installed to a non-default location | Reinstall the 86Duino IDE from qec.tw/software, or manually create the folder and place the CLI inside |
| Folder exists but no CLI executable inside | Partial install or accidental deletion | Re-download the CLI from the QEC Software page |
| Board name cannot be matched to FQBN | Ambiguous user description or unknown variant | Run board listall and present candidates to the user |
| No PL2303 port detected | Cable unplugged, or PL2303 driver not installed on Windows | Confirm cable is plugged in; install PL2303 driver from QEC Software page |
| Multiple PL2303 ports found | Other PL2303 devices on system (debug consoles, other boards) | List candidates and ask the user to choose |
| Compile fails with error | Syntax error, missing library, wrong FQBN | Read the error verbatim, apply minimum fix, retry once |
| Upload fails partway | Cable disconnected mid-upload, wrong port, board not in bootloader mode | Stop immediately. Report the raw error. Do not retry blindly. |
| Board appears stuck after upload | Normal reboot in progress | Wait 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
--verboseunless the user explicitly opts out. - Never guess an FQBN. Run
board listalland match against actual output. If ambiguous, present candidates and ask. - Never auto-create the
86Duino_Codingfolder. 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-clito86duino-cli.exeor vice versa based on guess.
Cloud AI vs Local AI
| Capability | Cloud AI (ChatGPT web, Claude.ai) | Local AI (Claude Desktop, Cursor, Cline) |
|---|---|---|
| Read user’s filesystem | No | Yes |
Execute 86duino-cli directly | No | Yes |
| Detect COM / tty ports on user’s machine | No | Yes |
| Best behavior | Produce copy-pastable commands | Run the CLI directly, observe output |
#14. Multilingual Terminology
QEC’s user community is multilingual (English, 繁體中文, 日本語). AI assistants should treat the following phrases as equivalent.
| Action | English | Chinese (zh-Hant) | Japanese | CLI 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:
| Topic | Source |
|---|---|
| 13-board FQBN list | Verified output of ./86duino-cli board listall on a working installation |
| PL2303GC chip name | QEC FAQ, USB detection section: qec.tw/faq |
| 40-second reboot delay | QEC official 86duino-cli skill specification |
| 86Duino IDE 500 / 501 versions | QEC homepage Software section: qec.tw |
| Product families (MDevice, SubDevice) | QEC Overview page: qec.tw/overview |
| Allowed CLI flag set | QEC official skill specification (downloadable above) |
Related references on this site
- 86Duino Development Environment overview
- 86Duino Library Catalog (all 23 official libraries)
- EtherCAT Library API Manual
- CiA 402 Motion Profile
- 86EVA – EtherCAT-Based Virtual Arduino
- Getting Started: Set up QEC for 86Duino
- AI-readable single-file reference (/llms-full.txt)
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.
- hermes-86duino-cli-skill.md – main skill specification (zh-Hant)
- hermes-86duino-cli-reference.md – supplementary reference (board list, port detection examples, error templates)
- Hermes_86duino_cli.txt – legacy plain-text specification
Manual authored and maintained by QEC. Last verified 2026-06-17. Report inaccuracies via the QEC contact form.
For an AI-readable single-file version of this content, see /llms-full.txt.