Skill function: Use 86duino-cli.exe to "compile", "flash", or "upload" 86Duino programs. Note that "flash" and "upload" refer to the same operation. Trigger condition: When the user wants to "compile", "flash", or "upload" an 86Duino program. Required executable: 86duino-cli.exe, which must reside in the 86Duino_Coding folder on the Desktop. If this folder does not exist on the Desktop, prompt the user to create it - do not create it automatically. How to use 86duino-cli.exe: 1. Obtain the FQBN parameter: 86duino-cli.exe board listall - You will get a result similar to this: Board Name FQBN 86Duino DUO 86duino:x86:86DuinoEX2 86Duino EduCake 86duino:x86:EduCake 86Duino ONE 86duino:x86:86DuinoONE 2. Compile an 86Duino project: 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 path\project_name - Note: compiling a project requires the fqbn parameter and the absolute path to the 86Duino project. 3. Force a clean rebuild of an 86Duino project (treat it as a first-time compile; previously compiled .o files will not be reused to speed things up): 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 path\project_name --clean 4. Enable verbose output to observe compile and upload (flash) progress in real time, useful for debugging: 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 path\project_name --verbose 5. Compile + upload (flash) the program, using a specified port to upload: 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 --port COM6 --upload path\project_name - Note: on Windows, automatically detect all device names under Device Manager > Ports (COM & LPT). Find the device whose name begins with "Prolific PL2303GC" and use the trailing COM number as the parameter. - For example, if Device Manager > Ports (COM & LPT) contains: Prolific PL2303GC USB Serial COM Port (COM6) then pass COM6 as the --port argument, i.e., --port COM6. - Note: on macOS (Apple Silicon), automatically list all device names under /dev/tty.* . Find the tty device whose name begins with "PL2303" and pass it directly as the parameter. - For example, if /dev/tty.* contains: /dev/tty.Bluetooth-Incoming-Port /dev/tty.debug-console /dev/tty.PL2303G-USBtoUART1120 then pass /dev/tty.PL2303G-USBtoUART1120 as the --port argument, i.e., --port /dev/tty.PL2303G-USBtoUART1120. - To summarize: the user may or may not provide a port. If no port is supplied, enable the auto-detection mechanism. If no device matching the PL2303 keyword is detected, ask the user back whether they may have forgotten to plug in the cable. - If a failure occurs during upload, stop the entire process immediately, then print the upload error message to the user. - Note: 86duino-cli.exe will automatically reboot the target board during upload. The reboot wait may take up to 40 seconds; it is recommended to run 86duino-cli.exe as a background process and observe the debug output to determine whether the upload succeeded. 6. Prefer the parameters listed above. Of course, other parameters function the same as in arduino-cli.exe; if it becomes necessary to use one of them, you must first inform the user of the parameter you intend to use and obtain the user's consent before proceeding. The following are concrete usage examples of 86duino-cli.exe: 1. Compile example: 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 C:\Users\RoBoard\Downloads\arduino_cli\sketch_mar24b --verbose 2. Compile + upload (flash) example: 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 --port COM6 --upload C:\Users\RoBoard\Downloads\arduino_cli\sketch_mar24b --verbose 3. Clean rebuild example: 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 C:\Users\RoBoard\Downloads\arduino_cli\sketch_mar24b --clean --verbose Real user-interaction examples: simulated dialogues between the user and the large language model CASE1: (User prompt): My 86Duino project is in the sketch_mar24b folder on the desktop. I'm using the QEC 7-inch board. Please compile the program and check for errors; if any errors are found, fix them automatically. (LLM behavior): (use skill) - Obtain the FQBN from the board name (use skill) - Start compiling the project (use 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 C:\Users\RoBoard\Desktop\sketch_mar24b --verbose) Compile error detected Fix the error (use skill) - Recompile (use 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 C:\Users\RoBoard\Desktop\sketch_mar24b --verbose) Compile succeeds CASE2: (User prompt): My 86Duino project is at C:\Users\RoBoard\Downloads\arduino_cli\sketch_mar24b. I'm using the QEC M02 board. Please compile the program and check for errors; if any errors are found, fix them automatically. Finally, flash the correctly compiled program to the board. (LLM behavior): (use skill) - Obtain the FQBN from the board name (use skill) - Obtain the COM port (auto-detect); assume it is COM3 on Windows (use skill) - Start compiling the project (use 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQECM02 --port COM3 --upload C:\Users\RoBoard\Downloads\arduino_cli\sketch_mar24b --verbose) Compile error detected Fix the error (use skill) - Recompile (use 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQECM02 --port COM3 --upload C:\Users\RoBoard\Downloads\arduino_cli\sketch_mar24b --verbose) Compile succeeds and upload begins; wait for the target board to reboot and observe the printed messages during the process. CASE3: (User prompt): My 86Duino project is in the sketch_mar24b folder on the desktop. Please force a clean rebuild and check for errors; if any errors are found, fix them automatically. (LLM behavior): (use skill) - Obtain the FQBN from the board name (use skill) - Start the clean rebuild (use 86duino-cli.exe compile --fqbn 86duino:x86:86DuinoQEC7 C:\Users\RoBoard\Desktop\sketch_mar24b --clean --verbose) No errors detected during compile; compile succeeds If, before running 86duino-cli.exe, you find that some required information is missing, automatically ask the user back. For example: CASE 1: (User prompt): Please help me compile and upload an 86Duino project. (LLM response): Please tell me the project location and the target board name. Also, I have noticed that the 86Duino_Coding folder is not on the Desktop, and that folder is where I expect to find 86duino-cli.exe. Please create it first. CASE 2: (User prompt): Please help me compile and upload an 86Duino project. My 86Duino project is in the sketch_mar24b folder on the desktop, and I'm using the QEC 7-inch board. (LLM response): I cannot find a PL2303 USB COM port on your computer. Could you have forgotten to plug in the cable?