Errors with Bare Conductive example sketches

Hi. I am trying to run a proximity example sketch that came with my Bare Conductive touch board. I have not changed anything but the sketch wont compile, I get the following error message: (Sketch followed by error):

// compiler error handling
#include "Compiler_Errors.h"

// touch includes
#include <MPR121.h>
#include <Wire.h>
#define MPR121_ADDR 0x5C
#define MPR121_INT 4

// mp3 includes
#include <SPI.h>
#include <SdFat.h>
#include <FreeStack.h>
#include <SFEMP3Shield.h>

// mp3 variables
SFEMP3Shield MP3player;
byte result;
int lastPlayed = 0;

// mp3 behaviour defines
#define REPLAY_MODE TRUE // By default, touching an electrode repeatedly will
// play the track again from the start each time.
//
// If you set this to FALSE, repeatedly touching an
// electrode will stop the track if it is already
// playing, or play it from the start if it is not.

// touch behaviour definitions
#define firstPin 0
#define lastPin 11

// sd card instantiation
SdFat sd;

void setup(){
Serial.begin(57600);

pinMode(LED_BUILTIN, OUTPUT);

//while (!Serial) ; {} //uncomment when using the serial monitor
Serial.println("Bare Conductive Proximity MP3 player");

if(!sd.begin(SD_SEL, SPI_HALF_SPEED)) sd.initErrorHalt();

if(!MPR121.begin(MPR121_ADDR)) Serial.println("error setting up MPR121");
MPR121.setInterruptPin(MPR121_INT);

// Changes from Touch MP3

// this is the touch threshold - setting it low makes it more like a proximity trigger
// default value is 40 for touch
MPR121.setTouchThreshold(8);

// this is the release threshold - must ALWAYS be smaller than the touch threshold
// default value is 20 for touch
MPR121.setReleaseThreshold(4);

result = MP3player.begin();
MP3player.setVolume(10,10);

if(result != 0) {
Serial.print("Error code: ");
Serial.print(result);
Serial.println(" when trying to start MP3 player");
}

}

void loop(){
readTouchInputs();
}

void readTouchInputs(){
if(MPR121.touchStatusChanged()){

MPR121.updateTouchData();

// only make an action if we have one or fewer pins touched
// ignore multiple touches

if(MPR121.getNumTouches()<=1){
for (int i=0; i < 12; i++){ // Check which electrodes were pressed
if(MPR121.isNewTouch(i)){

//pin i was just touched
Serial.print("pin ");
Serial.print(i);
Serial.println(" was just touched");
digitalWrite(LED_BUILTIN, HIGH);

if(i<=lastPin && i>=firstPin){
if(MP3player.isPlaying()){
if(lastPlayed==i && !REPLAY_MODE){
// if we're already playing the requested track, stop it
// (but only if we're in REPLAY_MODE)
MP3player.stopTrack();
Serial.print("stopping track ");
Serial.println(i-firstPin);
} else {
// if we're already playing a different track (or we're in
// REPLAY_MODE), stop and play the newly requested one
MP3player.stopTrack();
MP3player.playTrack(i-firstPin);
Serial.print("playing track ");
Serial.println(i-firstPin);

// don't forget to update lastPlayed - without it we don't
// have a history
lastPlayed = i;
}
} else {
// if we're playing nothing, play the requested track
// and update lastplayed
MP3player.playTrack(i-firstPin);
Serial.print("playing track ");
Serial.println(i-firstPin);
lastPlayed = i;
}
}
}else{
if(MPR121.isNewRelease(i)){
Serial.print("pin ");
Serial.print(i);
Serial.println(" is no longer being touched");
digitalWrite(LED_BUILTIN, LOW);
}
}
}
}
}
}

ERROR:

Arduino: 1.6.7 (Mac OS X), TD: 1.27, Board: "Bare Conductive Touch Board"

/Users/Simon2/Documents/Arduino/libraries/MPR121/MPR121.cpp: In member function 'bool MPR121_type::begin(uint8_t, uint8_t, uint8_t, uint8_t)':
/Users/Simon2/Documents/Arduino/libraries/MPR121/MPR121.cpp:132:14: error: 'PIN_WIRE_SDA' was not declared in this scope
::pinMode( PIN_WIRE_SDA, INPUT_PULLUP );
^
/Users/Simon2/Documents/Arduino/libraries/MPR121/MPR121.cpp:133:14: error: 'PIN_WIRE_SCL' was not declared in this scope
::pinMode( PIN_WIRE_SCL, INPUT_PULLUP );
^
exit status 1
Error compiling.

I am not experienced with programming, I have located the library, but Im not sure what, if anything I am looking to change. Any advice gratefully received! TIA

My guess is the problem was caused by you updating to a newer version of the MPR121 library, a version that requires features added since the outdated version of the Arduino AVR Boards platform you have installed. Even though you are using the third party "Bare Conductive Touch Board", it references its variant (pin mapping definitions) from Arduino AVR Boards, so you are still affected by the Arduino AVR Boards version you have installed.

Try this:

  • Tools > Board > Boards Manager
  • Wait for the downloads to finish
  • From the list of boards platforms, click on "Arduino AVR Boards".
  • Click the "Update" button.
  • Wait for the update to finish.
  • Click the "Close" button.

Now try compiling the sketch again. Hopefully that will have fixed the problem.

YES!!

This has worked. THANK YOU.

You're welcome. I'm glad to hear it's working now. Enjoy!
Per