I am attempting to get an adafruit board, the bluefruit LE UART working with my Teensy 3.1. I'm using Arduino IDE 1.6.4 and Teensyduino 1.23. I am using the library located here. This is able to be replicated on multiple computers.
When attempting to run any of their example sketches (such as this one)
I receive the following error message:
I resolved the first error by changing isDigit() to isdigit() (lowercase, in case you missed it). The second error with timedPeek() is causing me more trouble. The original arduino libraries have it in a protected class. Making it protected or public stops the errors, however it gets stuck while compiling at approximately 40%.
Here is the verbose output from the compiler:
Any help would be much appreciated.
Thanks!
EDIT: That last line of the compiler output is where it's stuck. It never finishes compiling.
When attempting to run any of their example sketches (such as this one)
Code:
/*!
@file bleuart_datamode.ino
@author hathach, ktown (Adafruit Industries)
This demo will show you how to initialize the module in COMMAND mode then
send data in DATA mode, uses the MODE pin
*/
#include <string.h>
#include <Arduino.h>
#include <SPI.h>
#include <SoftwareSerial.h>
#include "Adafruit_BLE.h"
#include "Adafruit_BLE_HWSPI.h"
#include "Adafruit_BluefruitLE_UART.h"
// If you are using Software Serial....
// The following macros declare the pins used for SW serial, you should
// use these pins if you are connecting the UART Friend to an UNO
#define BLUEFRUIT_SWUART_RXD_PIN 9 // Required for software serial!
#define BLUEFRUIT_SWUART_TXD_PIN 10 // Required for software serial!
#define BLUEFRUIT_UART_CTS_PIN 11 // Required for software serial!
#define BLUEFRUIT_UART_RTS_PIN -1 // Optional, set to -1 if unused
// If you are using Hardware Serial
// The following macros declare the Serial port you are using. Uncomment this
// line if you are connecting the BLE to Leonardo/Micro or Flora
//#define BLUEFRUIT_HWSERIAL_NAME Serial1
// Other recommended pins!
#define BLUEFRUIT_UART_MODE_PIN 12 // Optional but recommended, set to -1 if unused
// Sketch Settings
#define BUFSIZE 128 // Read buffer size for incoming data
#define VERBOSE_MODE true // Enables full debug output is 'true'
/* Create the bluefruit object, either software serial... */
SoftwareSerial bluefruitSS = SoftwareSerial(BLUEFRUIT_SWUART_TXD_PIN, BLUEFRUIT_SWUART_RXD_PIN);
Adafruit_BluefruitLE_UART ble(bluefruitSS, BLUEFRUIT_UART_MODE_PIN,
BLUEFRUIT_UART_CTS_PIN, BLUEFRUIT_UART_RTS_PIN);
/* ...or hardware serial, which does not need the RTS/CTS pins. Uncomment this line */
//Adafruit_BluefruitLE_UART ble(BLUEFRUIT_HWSERIAL_NAME, BLUEFRUIT_UART_MODE_PIN);
// A small helper
void error(const __FlashStringHelper*err) {
Serial.println(err);
while (1);
}
/**************************************************************************/
/*!
@brief Sets up the HW an the BLE module (this function is called
automatically on startup)
*/
/**************************************************************************/
void setup(void)
{
Serial.begin(115200);
Serial.println(F("Adafruit Bluefruit Command <-> Data Mode Example"));
Serial.println(F("------------------------------------------------"));
/* Initialise the module */
Serial.print(F("Initialising the Bluefruit LE module: "));
if ( !ble.begin(VERBOSE_MODE) )
{
error(F("Couldn't find Bluefruit, make sure it's in CoMmanD mode & check wiring?"));
}
Serial.println( F("OK!") );
/* Perform a factory reset to make sure everything is in a known state */
Serial.print(F("Performing a factory reset: "));
if (! ble.factoryReset() ){
error(F("Couldn't factory reset"));
}
/* Disable command echo from Bluefruit */
ble.echo(false);
Serial.println("Requesting Bluefruit info:");
/* Print Bluefruit information */
ble.info();
Serial.println(F("Please use Adafruit Bluefruit LE app to connect in UART mode"));
Serial.println(F("Then Enter characters to send to Bluefruit"));
Serial.println();
ble.verbose(false); // debug info is a little annoying after this point!
/* Wait for connection */
while (! ble.isConnected()) {
delay(500);
}
Serial.println(F("*****************"));
// Set module to DATA mode
if (BLUEFRUIT_UART_MODE_PIN >= 0) {
Serial.println( F("Switching to DATA mode using the MODE pin!") );
ble.setModePin(BLUEFRUIT_MODE_DATA);
} else {
Serial.println( F("Switching to DATA mode using +++!") );
ble.println("+++");
delay(100);
ble.waitForOK();
}
Serial.println(F("*****************"));
}
/**************************************************************************/
/*!
@brief Constantly poll for new command or response data
*/
/**************************************************************************/
void loop(void)
{
// Check for user input
char n, inputs[BUFSIZE+1];
if (Serial.available())
{
n = Serial.readBytes(inputs, BUFSIZE);
inputs[n] = 0;
// Send characters to Bluefruit
Serial.print("Sending: ");
Serial.print(inputs);
// Send input data to host via Bluefruit
ble.print(inputs);
}
// Echo received data
while ( ble.available() )
{
int c = ble.read();
Serial.print((char)c);
// Hex output too, helps w/debugging!
Serial.print(" [0x");
if (c <= 0xF) Serial.print(F("0"));
Serial.print(c, HEX);
Serial.print("] ");
}
}
I receive the following error message:
Code:
C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE.cpp: In member function 'bool Adafruit_BLE::sendCommandWithIntReply(const __FlashStringHelper*, uint32_t*)':
C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE.cpp:170:26: error: 'isDigit' was not declared in this scope
if (! isDigit(buffer[0]))
^
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3/HardwareSerial.h:163:0,
from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3/WProgram.h:16,
from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3/Arduino.h:1,
from C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE.h:41,
from C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE.cpp:36:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3/Stream.h: In member function 'size_t Adafruit_BLE::readln(char*, size_t)':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3/Stream.h:62:6: error: 'int Stream::timedPeek()' is private
int timedPeek();
^
C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE.cpp:212:10: error: within this context
if ( timedPeek() == '\n' ) read();
^
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3/HardwareSerial.h:163:0,
from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3/WProgram.h:16,
from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3/Arduino.h:1,
from C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE.h:41,
from C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE.cpp:36:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3/Stream.h:62:6: error: 'int Stream::timedPeek()' is private
int timedPeek();
^
C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE.cpp:212:20: error: within this context
if ( timedPeek() == '\n' ) read();
^
Error compiling.
I resolved the first error by changing isDigit() to isdigit() (lowercase, in case you missed it). The second error with timedPeek() is causing me more trouble. The original arduino libraries have it in a protected class. Making it protected or public stops the errors, however it gets stuck while compiling at approximately 40%.
Here is the verbose output from the compiler:
Code:
Build options changed, rebuilding all
Using library SPI in folder: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SPI (1.0.x format)
Using library SoftwareSerial in folder: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SoftwareSerial (1.0.x format)
Using library Adafruit_BluefruitLE_nRF51-master in folder: C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master (1.0.x format)
C:\Program Files (x86)\Arduino/hardware/tools/arm/bin/arm-none-eabi-g++ -c -O -g -Wall -ffunction-sections -fdata-sections -MMD -nostdlib -fno-exceptions -felide-constructors -std=gnu++0x -fno-rtti -mthumb -mcpu=cortex-m4 -D__MK20DX256__ -DTEENSYDUINO=123 -DARDUINO=10604 -DF_CPU=96000000 -DARDUINO_ARCH_AVR -DUSB_SERIAL -DLAYOUT_US_ENGLISH -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3 -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SPI -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SoftwareSerial -IC:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master C:\Users\Shadowed\AppData\Local\Temp\build4077207500859128305.tmp\bleuart_datamode.cpp -o C:\Users\Shadowed\AppData\Local\Temp\build4077207500859128305.tmp\bleuart_datamode.cpp.o
bleuart_datamode.ino: In function 'void loop()':
bleuart_datamode.ino:129:13: warning: array subscript has type 'char' [-Wchar-subscripts]
C:\Program Files (x86)\Arduino/hardware/tools/arm/bin/arm-none-eabi-g++ -c -O -g -Wall -ffunction-sections -fdata-sections -MMD -nostdlib -fno-exceptions -felide-constructors -std=gnu++0x -fno-rtti -mthumb -mcpu=cortex-m4 -D__MK20DX256__ -DTEENSYDUINO=123 -DARDUINO=10604 -DF_CPU=96000000 -DARDUINO_ARCH_AVR -DUSB_SERIAL -DLAYOUT_US_ENGLISH -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3 -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SPI -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SoftwareSerial -IC:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SPI\utility C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SPI\SPI.cpp -o C:\Users\Shadowed\AppData\Local\Temp\build4077207500859128305.tmp\SPI\SPI.cpp.o
C:\Program Files (x86)\Arduino/hardware/tools/arm/bin/arm-none-eabi-g++ -c -O -g -Wall -ffunction-sections -fdata-sections -MMD -nostdlib -fno-exceptions -felide-constructors -std=gnu++0x -fno-rtti -mthumb -mcpu=cortex-m4 -D__MK20DX256__ -DTEENSYDUINO=123 -DARDUINO=10604 -DF_CPU=96000000 -DARDUINO_ARCH_AVR -DUSB_SERIAL -DLAYOUT_US_ENGLISH -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3 -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SPI -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SoftwareSerial -IC:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SoftwareSerial\utility C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SoftwareSerial\SoftwareSerial.cpp -o C:\Users\Shadowed\AppData\Local\Temp\build4077207500859128305.tmp\SoftwareSerial\SoftwareSerial.cpp.o
C:\Program Files (x86)\Arduino/hardware/tools/arm/bin/arm-none-eabi-g++ -c -O -g -Wall -ffunction-sections -fdata-sections -MMD -nostdlib -fno-exceptions -felide-constructors -std=gnu++0x -fno-rtti -mthumb -mcpu=cortex-m4 -D__MK20DX256__ -DTEENSYDUINO=123 -DARDUINO=10604 -DF_CPU=96000000 -DARDUINO_ARCH_AVR -DUSB_SERIAL -DLAYOUT_US_ENGLISH -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3 -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SPI -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SoftwareSerial -IC:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master -IC:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\utility C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE.cpp -o C:\Users\Shadowed\AppData\Local\Temp\build4077207500859128305.tmp\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE.cpp.o
C:\Program Files (x86)\Arduino/hardware/tools/arm/bin/arm-none-eabi-g++ -c -O -g -Wall -ffunction-sections -fdata-sections -MMD -nostdlib -fno-exceptions -felide-constructors -std=gnu++0x -fno-rtti -mthumb -mcpu=cortex-m4 -D__MK20DX256__ -DTEENSYDUINO=123 -DARDUINO=10604 -DF_CPU=96000000 -DARDUINO_ARCH_AVR -DUSB_SERIAL -DLAYOUT_US_ENGLISH -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3 -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SPI -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SoftwareSerial -IC:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master -IC:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\utility C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE_HWSPI.cpp -o C:\Users\Shadowed\AppData\Local\Temp\build4077207500859128305.tmp\Adafruit_BluefruitLE_nRF51-master\Adafruit_BLE_HWSPI.cpp.o
C:\Program Files (x86)\Arduino/hardware/tools/arm/bin/arm-none-eabi-g++ -c -O -g -Wall -ffunction-sections -fdata-sections -MMD -nostdlib -fno-exceptions -felide-constructors -std=gnu++0x -fno-rtti -mthumb -mcpu=cortex-m4 -D__MK20DX256__ -DTEENSYDUINO=123 -DARDUINO=10604 -DF_CPU=96000000 -DARDUINO_ARCH_AVR -DUSB_SERIAL -DLAYOUT_US_ENGLISH -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy3 -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SPI -IC:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SoftwareSerial -IC:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master -IC:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\utility C:\Users\Shadowed\Documents\Arduino\libraries\Adafruit_BluefruitLE_nRF51-master\Adafruit_BluefruitLE_UART.cpp -o C:\Users\Shadowed\AppData\Local\Temp\build4077207500859128305.tmp\Adafruit_BluefruitLE_nRF51-master\Adafruit_BluefruitLE_UART.cpp.o
Any help would be much appreciated.
Thanks!
EDIT: That last line of the compiler output is where it's stuck. It never finishes compiling.
Last edited: