Having trouble compiling TinyUSB library on Seeduino XIAO

Board: Seeduino XIAO
Libraries: Adafruit TinyUSB v0.10.5

Long story short I am trying to turn several XIAO boards into HID keyboards.

Previously I wrote a sketch using the Keyboard library from Arduino, but these boards are not supported. I found that if I use specifically the "Adafruit TinyUSB v0.10.5" the board are supported and compiles/uploads using the example "hid_keyboard". I had trouble understanding how the TinyUSB example operates and hoped I could adapt my old sketch to use the the TinyUSB library, but am having trouble getting it to compile.

#include "Adafruit_TinyUSB.h"

uint8_t const desc_hid_report[] =
{
  TUD_HID_REPORT_DESC_KEYBOARD(),
};

Adafruit_USBD_HID usb_hid;


const int buttonPin7 = 7;
int buttonState7 = 0;
const int ledPin = 13;  

void setup() {

  Serial.begin(9600);
  Serial.println();

  usb_hid.begin();

  pinMode(13, OUTPUT);

  pinMode(buttonPin7, INPUT_PULLUP);

}

void loop() {

    buttonState7 = digitalRead(buttonPin7);

    if (buttonState7 == LOW) {
      digitalWrite(ledPin, HIGH);
      Serial.println(7);
      delay(10);
      usb_hid.keyboardReport("12xx");
      delay(10);
      usb_hid.keyboardReport(HID_KEY_TAB);
      delay(10);
      usb_hid.keyboardRelease();
      delay(200);
      digitalWrite(ledPin, LOW);
    } 
    else {
      digitalWrite(ledPin, LOW);
    }

}

Verbose Output when compiling:

Using board 'seeed_XIAO_m0' from platform in folder: C:\Users\firex\AppData\Local\Arduino15\packages\Seeeduino\hardware\samd\1.8.3
Using core 'arduino' from platform in folder: C:\Users\firex\AppData\Local\Arduino15\packages\Seeeduino\hardware\samd\1.8.3
Detecting libraries used...
"C:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++14 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions "-D__SKETCH_NAME__=\"\"\"tinyUSB" "attempt.ino\"\"\"" -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SEEED_XIAO_M0 -DARDUINO_ARCH_SAMD -DARDUINO_SAMD_ZERO -D__SAMD21__ -D__SAMD21G18A__ -DARM_MATH_CM0PLUS -DSEEED_XIAO_M0 -DUSB_VID=0x2886 -DUSB_PID=0x802F -DUSBCON -DUSB_CONFIG_POWER=100 "-DUSB_MANUFACTURER=\"Seeed\"" "-DUSB_PRODUCT=\"Seeed XIAO M0\"" -DUSE_TINYUSB "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore/tinyusb/src" -DARDUINO_SAMD_ZERO -D__SAMD21__ -D__SAMD21G18A__ -DARM_MATH_CM0PLUS -DSEEED_XIAO_M0 -DUSB_VID=0x2886 -DUSB_PID=0x802F -DUSBCON -DUSB_CONFIG_POWER=100 "-DUSB_MANUFACTURER=\"Seeed\"" "-DUSB_PRODUCT=\"Seeed XIAO M0\"" -DUSE_TINYUSB "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore/tinyusb/src" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS\\5.7.0/CMSIS/Core/Include/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS\\5.7.0/CMSIS/DSP/Include/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS-Atmel\\1.2.1/CMSIS-Atmel/CMSIS/Device/ATMEL/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\variants\\XIAO_m0" "C:\\Users\\firex\\AppData\\Local\\Temp\\arduino-sketch-86748D88CA06B87B55A58AF2E48B45D6\\sketch\\tinyUSB attempt.ino.cpp" -o nul
Error while detecting libraries included by C:\Users\firex\AppData\Local\Temp\arduino-sketch-86748D88CA06B87B55A58AF2E48B45D6\sketch\tinyUSB attempt.ino.cpp
Generating function prototypes...
"C:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++14 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions "-D__SKETCH_NAME__=\"\"\"tinyUSB" "attempt.ino\"\"\"" -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SEEED_XIAO_M0 -DARDUINO_ARCH_SAMD -DARDUINO_SAMD_ZERO -D__SAMD21__ -D__SAMD21G18A__ -DARM_MATH_CM0PLUS -DSEEED_XIAO_M0 -DUSB_VID=0x2886 -DUSB_PID=0x802F -DUSBCON -DUSB_CONFIG_POWER=100 "-DUSB_MANUFACTURER=\"Seeed\"" "-DUSB_PRODUCT=\"Seeed XIAO M0\"" -DUSE_TINYUSB "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore/tinyusb/src" -DARDUINO_SAMD_ZERO -D__SAMD21__ -D__SAMD21G18A__ -DARM_MATH_CM0PLUS -DSEEED_XIAO_M0 -DUSB_VID=0x2886 -DUSB_PID=0x802F -DUSBCON -DUSB_CONFIG_POWER=100 "-DUSB_MANUFACTURER=\"Seeed\"" "-DUSB_PRODUCT=\"Seeed XIAO M0\"" -DUSE_TINYUSB "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore/tinyusb/src" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS\\5.7.0/CMSIS/Core/Include/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS\\5.7.0/CMSIS/DSP/Include/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS-Atmel\\1.2.1/CMSIS-Atmel/CMSIS/Device/ATMEL/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\variants\\XIAO_m0" "C:\\Users\\firex\\AppData\\Local\\Temp\\arduino-sketch-86748D88CA06B87B55A58AF2E48B45D6\\sketch\\tinyUSB attempt.ino.cpp" -o "C:\\Users\\firex\\AppData\\Local\\Temp\\arduino-sketch-86748D88CA06B87B55A58AF2E48B45D6\\preproc\\ctags_target_for_gcc_minus_e.cpp"
arm-none-eabi-g++: error: attempt.ino""": Invalid argument

exit status 1

Compilation error: exit status 1

a seeeduino XIAO is a microcontroller with native USB-support.
You don't need the Tiny-USB library

here is a code that I was quickly digging out where I used a XIAO for receiving bytes over serial interface and then let them send as keystrokes to the computer

You have to install the SafeString-library if you want to use this code

be careful with sending keystrokes. You should make the sending conditional to a hardware button and not immidiately start sending keystrokes
This would happen even in case you want to modify your source-code and then your source-code gets screwed up

// MACRO-START * MACRO-START * MACRO-START * MACRO-START * MACRO-START * MACRO-START *

// a detailed explanation how these macros work is given in this tutorial
// https://forum.arduino.cc/t/comfortable-serial-debug-output-short-to-write-fixed-text-name-and-content-of-any-variable-code-example/888298

#define dbg(myFixedText, variableName) \
  Serial.print( F(#myFixedText " "  #variableName"=") ); \
  Serial.println(variableName);
// usage: dbg("1:my fixed text",myVariable);
// myVariable can be any variable or expression that is defined in scope

#define dbgi(myFixedText, variableName,timeInterval) \
  do { \
    static unsigned long intervalStartTime; \
    if ( millis() - intervalStartTime >= timeInterval ){ \
      intervalStartTime = millis(); \
      Serial.print( F(#myFixedText " "  #variableName"=") ); \
      Serial.println(variableName); \
    } \
  } while (false);
// usage: dbgi("2:my fixed text",myVariable,1000);
// myVariable can be any variable or expression that is defined in scope
// third parameter is the time in milliseconds that must pass by until the next time a
// Serial.print is executed
// end of macros dbg and dbgi
// print only once when value has changed
#define dbgc(myFixedText, variableName) \
  do { \
    static long lastState; \
    if ( lastState != variableName ){ \
      Serial.print( F(#myFixedText " "  #variableName" changed from ") ); \
      Serial.print(lastState); \
      Serial.print( F(" to ") ); \
      Serial.println(variableName); \
      lastState = variableName; \
    } \
  } while (false);
// MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END *


//Test
#include "Keyboard.h"
#include <SafeString.h>

createSafeString(myDemo_SS, 32);
createSafeString(mySecondDemo_SS, 32);

#define KEY_7 0x24 // Keyboard 7 and &

const byte D0 = 0;
const byte D1 = 1;
const byte D2 = 2;

const byte OnBoard_LED = 13;

byte Button0;
byte Button1;
byte Button2;

unsigned long MyTestTimer = 0;                   // variables MUST be of type unsigned long
unsigned long MyButtonTimer = 0;                   // variables MUST be of type unsigned long
unsigned long KeyTimer = 0;

boolean TimePeriodIsOver (unsigned long &periodStartTime, unsigned long TimePeriod) {
  unsigned long currentMillis  = millis();  
  if ( currentMillis - periodStartTime >= TimePeriod )
  {
    periodStartTime = currentMillis; // set new expireTime
    return true;                // more time than TimePeriod) has elapsed since last time if-condition was true
  } 
  else return false;            // not expired
}

void BlinkHeartBeatLED(int IO_Pin, int BlinkPeriod) {
  static unsigned long MyBlinkTimer;
  pinMode(IO_Pin, OUTPUT);
  
  if ( TimePeriodIsOver(MyBlinkTimer,BlinkPeriod) ) {
    digitalWrite(IO_Pin,!digitalRead(IO_Pin) ); 
  }
}


int count = 0;
void PrintFileNameDateTime() {
  Serial.println("Code running comes from file ");
  Serial.println(__FILE__);
  Serial.print("  compiled ");
  Serial.print(__DATE__);
  Serial.print(" ");
  Serial.println(__TIME__);  
}


void setup() {
  Serial.begin(115200);
  Serial.println("Setup-Start");
  PrintFileNameDateTime();
  Keyboard.begin();
  pinMode(D0, INPUT_PULLUP);
  pinMode(D1, INPUT_PULLUP);
  pinMode(D2, INPUT_PULLUP);
  myDemo_SS = "";
}


void ReceiveBytes() {
  static byte ndx = 0;
  char endMarker = '\n';
  char rc;

  dbgi("RcvBytes",myDemo_SS,1000);
  
  if (Serial.available() > 0) { // whenever a byte is received
    rc = Serial.read();       // read byte from receive-buffer

    if (rc != endMarker) {    // if it is not the endmarker 
      if (myDemo_SS.length() == 0 ) {
        myDemo_SS = rc;
      }
      else {
        myDemo_SS += rc;  // store byte
        ndx++;                    // increase position by one
      }  
    }
    else {
      Serial.print(myDemo_SS);
      myDemo_SS = "";
    }
  }  
}


void loop() {
  BlinkHeartBeatLED(OnBoard_LED,100);

  Button0 = digitalRead(D0);
  Button1 = digitalRead(D1);
  Button2 = digitalRead(D2);

/*  
  if ( TimePeriodIsOver(MyButtonTimer,500) ) {
    debugTxtVar(D0,Button0);
    debugTxtVar(D1,Button1);
    debugTxtVar(D2,Button2);

    Serial.println();
    Serial.println();
  }  
*/


  if ( TimePeriodIsOver(KeyTimer,2000) ) {

    if (Button0 == LOW) {
      Serial.println("Button0 is pressed");
      Keyboard.press(KEY_LEFT_GUI);
      Keyboard.press(KEY_LEFT_ALT);            
      Keyboard.press('l');

      Keyboard.release('l');
      Keyboard.release(KEY_LEFT_GUI);    
      Keyboard.release(KEY_LEFT_ALT);    
    }
  }

  // dbgi("0:",count,1000);

  ReceiveBytes();
    
  if (count < 1) {
    if ( TimePeriodIsOver(MyTestTimer,10000) ) {
      dbg("10 seconds over",0);
      Keyboard.press(KEY_RETURN);
      Keyboard.release(KEY_RETURN);    
      
      Keyboard.print("Hello");
      Keyboard.press(KEY_RIGHT_ALT);
      Keyboard.press('q');
      Keyboard.releaseAll();      
      Keyboard.print("world.com");
      Keyboard.press(KEY_RETURN);
      Keyboard.release(KEY_RETURN);    

      Keyboard.print("some keystrokes");

      Keyboard.press(KEY_RETURN);
      Keyboard.release(KEY_RETURN);    
      
      count++;
    }  
  }  
}

best regards Stefan

The Adafruit HID keyboard example has a much more complicated constructor for the device than you do:


// USB HID object. For ESP32 these values cannot be changed after this declaration
// desc report, desc len, protocol, interval, use out endpoint
Adafruit_USBD_HID usb_hid(desc_hid_report, sizeof(desc_hid_report), HID_ITF_PROTOCOL_KEYBOARD, 2, false);

The Xiao uses the same processor as the the Arduino Zero (and several of the MKR boards.) The "Arduino Keyboard" library OUGHT to be supported - are you sure that your version is up-to-date?

Hi there,

Here is the error message when I try and compile my code using the "Keyboard.h" library:

Verbose Output:

Using board 'seeed_XIAO_m0' from platform in folder: C:\Users\firex\AppData\Local\Arduino15\packages\Seeeduino\hardware\samd\1.8.3
Using core 'arduino' from platform in folder: C:\Users\firex\AppData\Local\Arduino15\packages\Seeeduino\hardware\samd\1.8.3
Detecting libraries used...
"C:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++14 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions "-D__SKETCH_NAME__=\"\"\"Seeeduino" XIAO as HID "Keyboard.ino\"\"\"" -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SEEED_XIAO_M0 -DARDUINO_ARCH_SAMD -DARDUINO_SAMD_ZERO -D__SAMD21__ -D__SAMD21G18A__ -DARM_MATH_CM0PLUS -DSEEED_XIAO_M0 -DUSB_VID=0x2886 -DUSB_PID=0x802F -DUSBCON -DUSB_CONFIG_POWER=100 "-DUSB_MANUFACTURER=\"Seeed\"" "-DUSB_PRODUCT=\"Seeed XIAO M0\"" -DUSE_TINYUSB "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore/tinyusb/src" -DARDUINO_SAMD_ZERO -D__SAMD21__ -D__SAMD21G18A__ -DARM_MATH_CM0PLUS -DSEEED_XIAO_M0 -DUSB_VID=0x2886 -DUSB_PID=0x802F -DUSBCON -DUSB_CONFIG_POWER=100 "-DUSB_MANUFACTURER=\"Seeed\"" "-DUSB_PRODUCT=\"Seeed XIAO M0\"" -DUSE_TINYUSB "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore/tinyusb/src" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS\\5.7.0/CMSIS/Core/Include/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS\\5.7.0/CMSIS/DSP/Include/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS-Atmel\\1.2.1/CMSIS-Atmel/CMSIS/Device/ATMEL/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\variants\\XIAO_m0" "C:\\Users\\firex\\AppData\\Local\\Temp\\arduino-sketch-A3142BC871913B7C9CCD70A76A34FBD9\\sketch\\Seeeduino XIAO as HID Keyboard.ino.cpp" -o nul
Error while detecting libraries included by C:\Users\firex\AppData\Local\Temp\arduino-sketch-A3142BC871913B7C9CCD70A76A34FBD9\sketch\Seeeduino XIAO as HID Keyboard.ino.cpp
arm-none-eabi-g++: error: XIAO: No such file or directory
Generating function prototypes...
"C:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++14 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions "-D__SKETCH_NAME__=\"\"\"Seeeduino" XIAO as HID "Keyboard.ino\"\"\"" -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SEEED_XIAO_M0 -DARDUINO_ARCH_SAMD -DARDUINO_SAMD_ZERO -D__SAMD21__ -D__SAMD21G18A__ -DARM_MATH_CM0PLUS -DSEEED_XIAO_M0 -DUSB_VID=0x2886 -DUSB_PID=0x802F -DUSBCON -DUSB_CONFIG_POWER=100 "-DUSB_MANUFACTURER=\"Seeed\"" "-DUSB_PRODUCT=\"Seeed XIAO M0\"" -DUSE_TINYUSB "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore/tinyusb/src" -DARDUINO_SAMD_ZERO -D__SAMD21__ -D__SAMD21G18A__ -DARM_MATH_CM0PLUS -DSEEED_XIAO_M0 -DUSB_VID=0x2886 -DUSB_PID=0x802F -DUSBCON -DUSB_CONFIG_POWER=100 "-DUSB_MANUFACTURER=\"Seeed\"" "-DUSB_PRODUCT=\"Seeed XIAO M0\"" -DUSE_TINYUSB "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore/tinyusb/src" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS\\5.7.0/CMSIS/Core/Include/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS\\5.7.0/CMSIS/DSP/Include/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\tools\\CMSIS-Atmel\\1.2.1/CMSIS-Atmel/CMSIS/Device/ATMEL/" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\cores\\arduino" "-IC:\\Users\\firex\\AppData\\Local\\Arduino15\\packages\\Seeeduino\\hardware\\samd\\1.8.3\\variants\\XIAO_m0" "C:\\Users\\firex\\AppData\\Local\\Temp\\arduino-sketch-A3142BC871913B7C9CCD70A76A34FBD9\\sketch\\Seeeduino XIAO as HID Keyboard.ino.cpp" -o "C:\\Users\\firex\\AppData\\Local\\Temp\\arduino-sketch-A3142BC871913B7C9CCD70A76A34FBD9\\preproc\\ctags_target_for_gcc_minus_e.cpp"
arm-none-eabi-g++: error: as: No such file or directory
arm-none-eabi-g++: error: HID: No such file or directory
arm-none-eabi-g++: error: Keyboard.ino""": Invalid argument

exit status 1

Compilation error: exit status 1

Sketch code:

#include "Keyboard.h"

const int buttonPin7 = 7;

int buttonState7 = 0;

const int ledPin = 13;  

void setup() {

  Serial.begin(9600);
  Serial.println();

  Keyboard.begin();

  pinMode(13, OUTPUT);

  pinMode(buttonPin7, INPUT_PULLUP);

}

void loop() {

    buttonState7 = digitalRead(buttonPin7);

    if (buttonState7 == LOW) {
      digitalWrite(ledPin, HIGH);
      Serial.println(7);
      delay(10);
      Keyboard.print("12xx");
      delay(10);
      Keyboard.press(KEY_TAB);
      delay(10);
      Keyboard.releaseAll();
      delay(200);
      digitalWrite(ledPin, LOW);
    } 
    else {
      digitalWrite(ledPin, LOW);
    }

}

(have you un-set the BOARD option to use TinyUSB?)

...  sketch\\Seeeduino XIAO as HID Keyboard.ino.cpp
    :
arm-none-eabi-g++: error: XIAO: No such file or directory

Although frankly, that looks like the IDE has a problem with your sketch name containing spaces...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.