# expected unqualified-id before '.' token

**URL:** <https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147>\
**Category:** Programming\
**Created:** [July 18, 2020, 9:58pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147 "2020-07-18T21:58:44Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![sprool](https://avatars.discourse-cdn.com/v4/letter/s/9dc877/32.png) [@sprool](https://forum.arduino.cc/u/sprool)\
**Post date:** [July 18, 2020, 9:58pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/1 "2020-07-18T21:58:44Z")

</div>

Grateful for help on this one bug in the sketch, for a USB button box & rotary encoder games controller.  
The error is : expected unqualified-id before '.' token, it relates to the Joystick.setButton line

The lines are:  
unsigned char rotary\_process(int \_i) {  
unsigned char pinstate = (digitalRead(rotaries[\_i].pin2) \<\< 1) | digitalRead(rotaries[\_i].pin1);  
rotaries[\_i].state = ttable[rotaries[\_i].state & 0xf][pinstate];  
return (rotaries[\_i].state & 0x30);  
}

void CheckAllEncoders(void) {  
for (int i=0;i\<NUMROTARIES;i++) {  
unsigned char result = rotary\_process(i);  
if (result == DIR\_CCW) {Joystick.setButton(rotaries\_.ccwchar, 1); delay(50); Joystick.setButton(rotaries\*.ccwchar,0);_\_  
\__ };_\_  
  if (result == DIR\_CW) {Joystick.setButton(rotaries\_.cwchar, 1); delay(50); Joystick.setButton(rotaries.cwchar, 0);  
  };  
  }  
 }\*\__

---

<div class="post-metadata">

**Author:** ![LarryD](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/larryd/32/215550_2.png) [@LarryD](https://forum.arduino.cc/u/LarryD)\
**Post date:** [July 18, 2020, 10:01pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/2 "2020-07-18T22:01:17Z")

</div>

:o

CTRL T is your/our friend.

---

<div class="post-metadata">

**Author:** ![UKHeliBob](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ukhelibob/32/215663_2.png) [@UKHeliBob](https://forum.arduino.cc/u/UKHeliBob)\
**Post date:** [July 18, 2020, 10:03pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/3 "2020-07-18T22:03:27Z")

</div>

Post your complete sketch and complete error message but only after you look at [Read this before posting a programming question](https://forum.arduino.cc/index.php?topic=97455.0) so you know how to do it

---

<div class="post-metadata">

**Author:** ![anon73444976](https://avatars.discourse-cdn.com/v4/letter/a/439d5e/32.png) [@anon73444976](https://forum.arduino.cc/u/anon73444976)\
**Post date:** [July 18, 2020, 10:07pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/4 "2020-07-18T22:07:15Z")

</div>

Post the code.  
Use code tags  
Post the error message.  
All of it.

---

<div class="post-metadata">

**Author:** ![sprool](https://avatars.discourse-cdn.com/v4/letter/s/9dc877/32.png) [@sprool](https://forum.arduino.cc/u/sprool)\
**Post date:** [July 19, 2020, 12:38am UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/5 "2020-07-19T00:38:30Z")

</div>

#include \<Joystick.h\>

#include \<Key.h\>  
#include \<Keypad.h\>

/\*  
These libraries will be used to emulate a joystick, and assigning keys to the button output

> **[Keypad](https://www.arduinolibraries.info/libraries/keypad)**
>
> Keypad is a library for using matrix style keypads with the Arduino.

> **[GitHub - MHeironimus/ArduinoJoystickLibrary: An Arduino library that adds one...](https://github.com/MHeironimus/ArduinoJoystickLibrary)**
>
> An Arduino library that adds one or more joysticks to the list of HID devices an Arduino Leonardo or Arduino Micro can support. - GitHub - MHeironimus/ArduinoJoystickLibrary: An Arduino library tha...

\*/

/\*  
We enable the onboard resistors that pull the current down to the board  
as you can see in the schema  
\*/  
#define ENABLE\_PULLUPS  
#define NUMROTARIES 5  
#define NUMBUTTONS 16  
#define NUMROWS 4  
#define NUMCOLS 4

/\*  
This variable will map our 2D matrix, and assign a number for each button  
The values are just incrementing numbers  
\*/  
byte buttons[NUMROWS][NUMCOLS] = {  
{0,1,2,3},  
{4,5,6,7},  
{8,9,10,11},  
{12,13,14,15}  
};

struct rotariesdef {  
byte pin1;  
byte pin2;  
int ccwchar;  
int cwchar;  
volatile unsigned char state;  
};

/\*  
Here we map each of the rotary encoders into an array  
You will notice that 1 and 0 are reversed, that's because on this arduino board, tx and rx are reversed  
{  
pin1 (clk),  
pin2 (dta),  
button to press when turning backwards,  
button to press when turning forwards  
current state of button (0)  
}  
\*/  
rotariesdef rotaries[NUMROTARIES] {  
{1,0,16,17,0},  
{2,3,18,19,0},  
{4,5,20,21,0},  
{6,7,22,23,0},  
{8,9,24,25,0}  
};

/\*  
This is some next level shit, don't look at it for too long  
And don't worry about it, it works.  
\*/  
#define DIR\_CCW 0x10  
#define DIR\_CW 0x20  
#define R\_START 0x0

#ifdef HALF\_STEP  
#define R\_CCW\_BEGIN 0x1  
#define R\_CW\_BEGIN 0x2  
#define R\_START\_M 0x3  
#define R\_CW\_BEGIN\_M 0x4  
#define R\_CCW\_BEGIN\_M 0x5  
const unsigned char ttable[6][4] = {  
// R\_START (00)  
{R\_START\_M, R\_CW\_BEGIN, R\_CCW\_BEGIN, R\_START},  
// R\_CCW\_BEGIN  
{R\_START\_M | DIR\_CCW, R\_START, R\_CCW\_BEGIN, R\_START},  
// R\_CW\_BEGIN  
{R\_START\_M | DIR\_CW, R\_CW\_BEGIN, R\_START, R\_START},  
// R\_START\_M (11)  
{R\_START\_M, R\_CCW\_BEGIN\_M, R\_CW\_BEGIN\_M, R\_START},  
// R\_CW\_BEGIN\_M  
{R\_START\_M, R\_START\_M, R\_CW\_BEGIN\_M, R\_START | DIR\_CW},  
// R\_CCW\_BEGIN\_M  
{R\_START\_M, R\_CCW\_BEGIN\_M, R\_START\_M, R\_START | DIR\_CCW},  
};  
#else  
#define R\_CW\_FINAL 0x1  
#define R\_CW\_BEGIN 0x2  
#define R\_CW\_NEXT 0x3  
#define R\_CCW\_BEGIN 0x4  
#define R\_CCW\_FINAL 0x5  
#define R\_CCW\_NEXT 0x6

const unsigned char ttable[7][4] = {  
// R\_START  
{R\_START, R\_CW\_BEGIN, R\_CCW\_BEGIN, R\_START},  
// R\_CW\_FINAL  
{R\_CW\_NEXT, R\_START, R\_CW\_FINAL, R\_START | DIR\_CW},  
// R\_CW\_BEGIN  
{R\_CW\_NEXT, R\_CW\_BEGIN, R\_START, R\_START},  
// R\_CW\_NEXT  
{R\_CW\_NEXT, R\_CW\_BEGIN, R\_CW\_FINAL, R\_START},  
// R\_CCW\_BEGIN  
{R\_CCW\_NEXT, R\_START, R\_CCW\_BEGIN, R\_START},  
// R\_CCW\_FINAL  
{R\_CCW\_NEXT, R\_CCW\_FINAL, R\_START, R\_START | DIR\_CCW},  
// R\_CCW\_NEXT  
{R\_CCW\_NEXT, R\_CCW\_FINAL, R\_CCW\_BEGIN, R\_START},  
};  
#endif

/\*  
This one is important, here we defined the number of the ports we are using for the rows and cols  
If you look at my schema, you will see that the rows (in red) and cols (in blue) match with the numbers below  
\*/  
byte rowPins[NUMROWS] = {15,14,16,10};  
byte colPins[NUMCOLS] = {21,20,19,18};

/\*  
The following code will loop all inputs and assign them to buttons that our fake joystick can output  
The code below uses the above inputs, so you don't have to make any changes here.  
\*/  
Keypad buttbx = Keypad( makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS);

//Joystick Joystick(JOYSTICK\_DEFAULT\_REPORT\_ID,  
//JOYSTICK\_TYPE\_JOYSTICK, 32, 0, false, false, false, false, false, false, false, false, false, false, false);

void setup() {  
Joystick.begin();  
rotary\_init();  
}

void loop() {

CheckAllEncoders();  
CheckAllButtons();

}

void CheckAllButtons(void) {  
if (buttbx.getKeys())  
{  
for (int i=0; i\<LIST\_MAX; i++)  
{  
if ( buttbx.key\*.stateChanged ) \*

- {\*  
\_ switch (buttbx.key\*.kstate) { _\_  
\__ case PRESSED:_\_  
\__ case HOLD:_\_  
 \_ Joystick.setButton(buttbx.key.kchar, 1);  
  break;  
  case RELEASED:  
  case IDLE:  
  Joystick.setButton(buttbx.key.kchar, 0);  
  break;  
  }  
  }   
  }  
  }  
 }  
 void rotary\_init() {  
  for (int i=0;i\<NUMROTARIES;i++) {  
  pinMode(rotaries.pin1, INPUT);  
  pinMode(rotaries.pin2, INPUT);\_  
  #ifdef ENABLE\_PULLUPS\*_  
_\_ digitalWrite(rotaries\*.pin1, HIGH);  
  digitalWrite(rotaries.pin2, HIGH);  
  #endif\*  
 \* }  
 }\_  
 unsigned char rotary\_process(int \_i) {  
  unsigned char pinstate = (digitalRead(rotaries[i].pin2) \<\< 1) | digitalRead(rotaries[i].pin1);  
  rotaries[i].state = ttable[rotaries[i].state & 0xf][pinstate];  
  return (rotaries[i].state & 0x30);\*  
 }  
 void CheckAllEncoders(void) {  
 \* for (int i=0;i\<NUMROTARIES;i++) {\_  
  unsigned char result = rotary\_process(i);  
  if (result == DIR\_CCW) {  
  Joystick.setButton(rotaries\_.ccwchar, 1); delay(50); Joystick.setButton(rotaries.ccwchar, 0);  
  };\_  
  if (result == DIR\_CW) {  
  Joystick.setButton(rotaries\_.cwchar, 1); delay(50); Joystick.setButton(rotaries.cwchar, 0);  
  };  
  }  
 }\*\__

---

<div class="post-metadata">

**Author:** ![sprool](https://avatars.discourse-cdn.com/v4/letter/s/9dc877/32.png) [@sprool](https://forum.arduino.cc/u/sprool)\
**Post date:** [July 19, 2020, 12:44am UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/6 "2020-07-19T00:44:19Z")

</div>

another\_arduino\_buttonbox:188:70: error: expected unqualified-id before '.' token  
Joystick.setButton(rotaries\_.ccwchar, 1); delay(50); Joystick.setButton(rotaries\*.ccwchar, 0);_\_  
\__ ^_\_  
 another\_arduino\_buttonbox:191:15: error: expected unqualified-id before '.' token  
  Joystick.setButton(rotaries\_.cwchar, 1); delay(50); Joystick.setButton(rotaries.cwchar, 0);  
  ^  
 another\_arduino\_buttonbox:191:69: error: expected unqualified-id before '.' token  
  Joystick.setButton(rotaries.cwchar, 1); delay(50); Joystick.setButton(rotaries.cwchar, 0);  
  ^\*\__

---

<div class="post-metadata">

**Author:** ![groundFungus](https://avatars.discourse-cdn.com/v4/letter/g/73ab20/32.png) [@groundFungus](https://forum.arduino.cc/u/groundFungus)\
**Post date:** [July 19, 2020, 12:48am UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/7 "2020-07-19T00:48:48Z")

</div>

Post code and errors in accordance with the forum guidelines (see posts 1, 2 and 3).

---

<div class="post-metadata">

**Author:** ![sprool](https://avatars.discourse-cdn.com/v4/letter/s/9dc877/32.png) [@sprool](https://forum.arduino.cc/u/sprool)\
**Post date:** [July 19, 2020, 8:55am UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/8 "2020-07-19T08:55:05Z")

</div>

yep my apologies I tried to go back in and edit the post but it would not let me.

```cpp
#include <Joystick.h>

#include <Key.h>
#include <Keypad.h>

/*
    These libraries will be used to emulate a joystick, and assigning keys to the button output
    https://www.arduinolibraries.info/libraries/keypad
    https://github.com/MHeironimus/ArduinoJoystickLibrary
*/

/*
    We enable the onboard resistors that pull the current down to the board
    as you can see in the schema
*/
#define ENABLE_PULLUPS
#define NUMROTARIES 5
#define NUMBUTTONS 16
#define NUMROWS 4
#define NUMCOLS 4

/*
    This variable will map our 2D matrix, and assign a number for each button
    The values are just incrementing numbers
*/
byte buttons[NUMROWS][NUMCOLS] = {
  {0,1,2,3},
  {4,5,6,7},
  {8,9,10,11},
  {12,13,14,15}
};

struct rotariesdef {
  byte pin1;
  byte pin2;
  int ccwchar;
  int cwchar;
  volatile unsigned char state;
};

/*
    Here we map each of the rotary encoders into an array
    You will notice that 1 and 0 are reversed, that's because on this arduino board, tx and rx are reversed
    {
        pin1 (clk),
        pin2 (dta),
        button to press when turning backwards,
        button to press when turning forwards
        current state of button (0)
    }
*/
rotariesdef rotaries[NUMROTARIES] {
  {1,0,16,17,0},
  {2,3,18,19,0},
  {4,5,20,21,0},
  {6,7,22,23,0},
  {8,9,24,25,0}
};

/*
    This is some next level shit, don't look at it for too long
    And don't worry about it, it works.
*/
#define DIR_CCW 0x10
#define DIR_CW 0x20
#define R_START 0x0

#ifdef HALF_STEP
#define R_CCW_BEGIN 0x1
#define R_CW_BEGIN 0x2
#define R_START_M 0x3
#define R_CW_BEGIN_M 0x4
#define R_CCW_BEGIN_M 0x5
const unsigned char ttable[6][4] = {
  // R_START (00)
  {R_START_M,            R_CW_BEGIN,    R_CCW_BEGIN,  R_START},
  // R_CCW_BEGIN
  {R_START_M | DIR_CCW, R_START,        R_CCW_BEGIN,  R_START},
  // R_CW_BEGIN
  {R_START_M | DIR_CW,  R_CW_BEGIN,    R_START,      R_START},
  // R_START_M (11)
  {R_START_M,            R_CCW_BEGIN_M,  R_CW_BEGIN_M, R_START},
  // R_CW_BEGIN_M
  {R_START_M,            R_START_M,      R_CW_BEGIN_M, R_START | DIR_CW},
  // R_CCW_BEGIN_M
  {R_START_M,            R_CCW_BEGIN_M,  R_START_M,    R_START | DIR_CCW},
};
#else
#define R_CW_FINAL 0x1
#define R_CW_BEGIN 0x2
#define R_CW_NEXT 0x3
#define R_CCW_BEGIN 0x4
#define R_CCW_FINAL 0x5
#define R_CCW_NEXT 0x6

const unsigned char ttable[7][4] = {
  // R_START
  {R_START,    R_CW_BEGIN,  R_CCW_BEGIN, R_START},
  // R_CW_FINAL
  {R_CW_NEXT,  R_START,    R_CW_FINAL,  R_START | DIR_CW},
  // R_CW_BEGIN
  {R_CW_NEXT,  R_CW_BEGIN,  R_START,    R_START},
  // R_CW_NEXT
  {R_CW_NEXT,  R_CW_BEGIN,  R_CW_FINAL,  R_START},
  // R_CCW_BEGIN
  {R_CCW_NEXT, R_START,    R_CCW_BEGIN, R_START},
  // R_CCW_FINAL
  {R_CCW_NEXT, R_CCW_FINAL, R_START,    R_START | DIR_CCW},
  // R_CCW_NEXT
  {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START},
};
#endif

/*
    This one is important, here we defined the number of the ports we are using for the rows and cols
    If you look at my schema, you will see that the rows (in red) and cols (in blue) match with the numbers below
*/
byte rowPins[NUMROWS] = {15,14,16,10};
byte colPins[NUMCOLS] = {21,20,19,18};

/*
    The following code will loop all inputs and assign them to buttons that our fake joystick can output
    The code below uses the above inputs, so you don't have to make any changes here.
*/
Keypad buttbx = Keypad( makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS);

//Joystick Joystick(JOYSTICK_DEFAULT_REPORT_ID,
//JOYSTICK_TYPE_JOYSTICK, 32, 0,  false, false, false, false, false, false,  false, false, false, false, false);

void setup() {
  Joystick.begin();
  rotary_init();
}

void loop() {

  CheckAllEncoders();
  CheckAllButtons();

}

void CheckAllButtons(void) {
      if (buttbx.getKeys())
    {
      for (int i=0; i<LIST_MAX; i++)   
        {
          if ( buttbx.key.stateChanged )   
            {
            switch (buttbx.key.kstate) { 
                    case PRESSED:
                    case HOLD:
                              Joystick.setButton(buttbx.key.kchar, 1);
                              break;
                    case RELEASED:
                    case IDLE:
                              Joystick.setButton(buttbx.key.kchar, 0);
                              break;
            }
          }   
        }
    }
}

void rotary_init() {
  for (int i=0;i<NUMROTARIES;i++) {
    pinMode(rotaries.pin1, INPUT);
    pinMode(rotaries.pin2, INPUT);
    #ifdef ENABLE_PULLUPS
      digitalWrite(rotaries.pin1, HIGH);
      digitalWrite(rotaries.pin2, HIGH);
    #endif
  }
}

unsigned char rotary_process(int _i) {
  unsigned char pinstate = (digitalRead(rotaries[_i].pin2) << 1) | digitalRead(rotaries[_i].pin1);
  rotaries[_i].state = ttable[rotaries[_i].state & 0xf][pinstate];
  return (rotaries[_i].state & 0x30);
}

void CheckAllEncoders(void) {
  for (int i=0;i<NUMROTARIES;i++) {
    unsigned char result = rotary_process(i);
    if (result == DIR_CCW) {
      Joystick.setButton(rotaries.ccwchar, 1); delay(50); Joystick.setButton(rotaries.ccwchar, 0);
    };
    if (result == DIR_CW) {
      Joystick.setButton(rotaries.cwchar, 1); delay(50); Joystick.setButton(rotaries.cwchar, 0);
    };
  }
}

```

Error message again:

error: expected unqualified-id before '.' token  
Joystick.setButton(rotaries.cwchar, 1); delay(50); Joystick.setButton(rotaries.cwchar, 0);  
^

I got this program to run on a teensy but not on the pro micro. As you will surmise, I am very new to this and hope someone with more experience will help me get this working - thanks.

---

<div class="post-metadata">

**Author:** ![anon73444976](https://avatars.discourse-cdn.com/v4/letter/a/439d5e/32.png) [@anon73444976](https://forum.arduino.cc/u/anon73444976)\
**Post date:** [July 19, 2020, 9:11am UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/9 "2020-07-19T09:11:16Z")

</div>

Is that all of the error message?

---

<div class="post-metadata">

**Author:** ![UKHeliBob](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ukhelibob/32/215663_2.png) [@UKHeliBob](https://forum.arduino.cc/u/UKHeliBob)\
**Post date:** [July 19, 2020, 10:20am UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/10 "2020-07-19T10:20:13Z")

</div>

It looks like you need to create an instance of Joystick before you use it

What do the examples for the Joystick library do ?

---

<div class="post-metadata">

**Author:** ![TomGeorge](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tomgeorge/32/215261_2.png) [@TomGeorge](https://forum.arduino.cc/u/TomGeorge)\
**Post date:** [July 19, 2020, 10:50am UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/11 "2020-07-19T10:50:01Z")

</div>

Hi,  
As suggested by @UKHeliBOB look at the examples for the Joystick library.

```cpp
#include "Joystick.h"

// Create Joystick
Joystick_ Joystick;

```

Tom... 🙂

---

<div class="post-metadata">

**Author:** ![sprool](https://avatars.discourse-cdn.com/v4/letter/s/9dc877/32.png) [@sprool](https://forum.arduino.cc/u/sprool)\
**Post date:** [July 19, 2020, 1:27pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/12 "2020-07-19T13:27:24Z")

</div>

This is the entire error msg I get if I add Joystick\_ Joystick:

"error: expected unqualified-id before '.' token  
Joystick.setButton(rotaries\_.cwchar, 1); delay(50); Joystick.setButton(rotaries\*.cwchar, 0);_\_  
\__ ^_\_  
 Multiple libraries were found for "Joystick.h"  
 Used: C:\Users\alhee\OneDrive\Documents\Arduino\libraries\Joystick  
 Not used: C:\Users\alhee\OneDrive\Documents\Arduino\libraries\AxisJoystick  
 Not used: C:\Program Files (x86)\Arduino\libraries\ArduinoJoystickLibrary-master  
 'Joystick\_' does not name a type; did you mean 'Joystick'? "\*_  
_When I got the code working for the Teensy I just deleted the line Joystick\_ Joystick._  
_I'm also getting a lot of problems with the Pro Micro not being recognised by Windows, tried following loads of threads about drivers but nothing seems to work._

---

<div class="post-metadata">

**Author:** ![UKHeliBob](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ukhelibob/32/215663_2.png) [@UKHeliBob](https://forum.arduino.cc/u/UKHeliBob)\
**Post date:** [July 19, 2020, 2:12pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/13 "2020-07-19T14:12:09Z")

</div>

The normal way to create an instance of an object such as the joystick would be

```cpp
Joystick theJoystick;

```

where Joystick is the name of the library and theJoystick (or whatever name you choose, except Joystick) is the name of the object that you then use throughout the program as in

```cpp
theJoystick.begin();

```

---

<div class="post-metadata">

**Author:** ![sprool](https://avatars.discourse-cdn.com/v4/letter/s/9dc877/32.png) [@sprool](https://forum.arduino.cc/u/sprool)\
**Post date:** [July 19, 2020, 3:24pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/14 "2020-07-19T15:24:35Z")

</div>

maybe its an issue with my libraries then?

---

<div class="post-metadata">

**Author:** ![anon57585045](https://avatars.discourse-cdn.com/v4/letter/a/ed8c4c/32.png) [@anon57585045](https://forum.arduino.cc/u/anon57585045)\
**Post date:** [July 19, 2020, 3:33pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/15 "2020-07-19T15:33:10Z")

</div>

> sprool:  
> maybe its an issue with my libraries then?

It told you:

> Multiple libraries were found for "Joystick.h"

---

<div class="post-metadata">

**Author:** ![UKHeliBob](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ukhelibob/32/215663_2.png) [@UKHeliBob](https://forum.arduino.cc/u/UKHeliBob)\
**Post date:** [July 19, 2020, 3:59pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/16 "2020-07-19T15:59:45Z")

</div>

Please post you latest version and full error message

---

<div class="post-metadata">

**Author:** ![sprool](https://avatars.discourse-cdn.com/v4/letter/s/9dc877/32.png) [@sprool](https://forum.arduino.cc/u/sprool)\
**Post date:** [July 19, 2020, 4:30pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/17 "2020-07-19T16:30:56Z")

</div>

so how do i know there should only be one joystick library and which is the correct one to keep?

---

<div class="post-metadata">

**Author:** ![groundFungus](https://avatars.discourse-cdn.com/v4/letter/g/73ab20/32.png) [@groundFungus](https://forum.arduino.cc/u/groundFungus)\
**Post date:** [July 19, 2020, 5:12pm UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/18 "2020-07-19T17:12:42Z")

</div>

You should examine the documentation for each library to determine which library is most appropriate for the Arduino that you are using and what you want to do.

Use only the example code for the library that the code was written for. You cannot just grab any old joystick code off the net and expect it to work with any old library that you find.

---

<div class="post-metadata">

**Author:** ![sprool](https://avatars.discourse-cdn.com/v4/letter/s/9dc877/32.png) [@sprool](https://forum.arduino.cc/u/sprool)\
**Post date:** [July 20, 2020, 8:35am UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/19 "2020-07-20T08:35:27Z")

</div>

All part of the learning curve, I guess. I whittled it down to a single joystick library mentioned in the button box build project I'mmost closely following, its not like 'grabbing any old code and any old library'! but when there are 2 or 3 thread running about building joystick button boards and they all mention a joystick library I had to assume they are same in my current state of ignorance. Although the code compiles fine now, the pro micro is refusing to reset or accept code. I think I'll save myself a load of hassle and go back to building this project with another teensy2 board.

---

<div class="post-metadata">

**Author:** ![TomGeorge](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tomgeorge/32/215261_2.png) [@TomGeorge](https://forum.arduino.cc/u/TomGeorge)\
**Post date:** [July 20, 2020, 8:40am UTC](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147/20 "2020-07-20T08:40:27Z")

</div>

> sprool:  
> Although the code compiles fine now, the pro micro is refusing to reset or accept code.

What do you mean, what error do you get?  
You do have ProMini slected as the board and the correct COM port selected?  
Thanks.. Tom.... 🙂

[Next page](https://forum.arduino.cc/t/expected-unqualified-id-before-token/666147.md?page=2)
